黑神话:仙童,数据库自动反射魔法棒

news2025/2/4 12:55:19

黑神话:仙童,数据库自动反射魔法棒

Golang 通用代码生成器仙童发布了最新版本电音仙女尝鲜版十一及其介绍视频,视频请见:https://www.bilibili.com/video/BV1ET4wecEBk/

此视频介绍了使用最新版的仙童代码生成器,将 MariaDB 数据库迁徙至 PostgreSQL,或者将数据库整理成一个 Excel 文件的方法,详细情况请见视频。

 通用代码生成器是一种非常方便的软件开发工具,除了简单直接的生成代码,制作快速原型以外。通用代码生成器还可以应用在各种场景上。比如可以使用通用代码生成器,将 MariaDB 数据库连数据迁徙到 PostgreSQL。操作并不复杂,却十分适用。

视频中,我们采用最新发布的 golang 通用代码生成器仙童 2.4.0 电音仙女尝鲜版十一来完成这项功能,在完成数据库迁徙的同时,我们得到了一个副产品,即 Golang 的应用程序。

本例子使用的数据库是 TKCourseManagement 和 CivMariaSample 数据库,此前已经在多个视频演示中使用,大家应该比较熟悉了。

golang 通用代码生成器仙童的项目地址为:https://gitee.com/jerryshensjf/Fairchild

其二进制发布包下载地址为:https://gitee.com/jerryshensjf/Fairchild/attach_files

Go 语言通用代码生成器:仙童

项目简介

Go 语言通用代码生成器:仙童,基于 Java 通用代码生成器:光的架构。

生成的代码基于 go 语言,使用 gin 作为 web 框架。目前支持 MariaDB,MySQL,PostgreSQL 和 Oracle 四种数据库。支持生成 Vue 和 ElementUI 的基于 Node.js 的独立前端。支持 Excel,PDF 两种数据导出格式。

项目图片

Image description

最新大版本号

正在研发的最新大版本号是仙童 2.4.0 电音仙女 TechnoFairy 短名 TF。对标 java 通用代码生成器光 2.4.0 电音之王和 Rust 通用代码生成器红莲。

Golang 通用代码生成器仙童,2.4.0 电音仙女尝鲜版十一。版本彻底增强修复了数据库自动反射功能。并有更多测试修复。

Golang 通用代码生成器仙童,2.4.0 电音仙女尝鲜版十。版本增强修复了数据库自动反射功能,修复了多对多数据加载。增强了复数字典,新加了 SGS2 模板。

Golang 通用代码生成器仙童 2.4.0 电音仙女尝鲜版九。此版本支持完善的数据库自动发射功能。大大完善了数据与元数据编辑器功能,是一个重要的版本更新。

Golang 通用代码生成器仙童,电音仙女尝鲜版八,此版本增强修复了数据库自动反射功能。更新修复了前端代码生成器无登录模块时的错误。修复了多对多候选的缺陷。修复了清洗登录数据功能。

Golang 通用代码生成器仙童,电音仙女尝鲜版七,此版本测试修复了 PostgreSQL 数据库自动反射功能。此版本更新修复了前端代码生成器,并修复了前端多对多界面的缺陷。

Golang 通用代码生成器仙童,电音仙女尝鲜版六,此版本新增了数据库自动反射功能,可以为遗留数据库配上操作软件。此版本增强了模板向导界面的编辑器功能,可以不清空数据的情况下编辑项目的元数据和数据。可以切换域对象和枚举,可以清洗登录数据。此版本新增了多对多候选功能,支持多对多候选的编辑,持久化和反射功能。此版本彻底修复了枚举和哑数据功能。并有前端界面更新。

输入图片说明

百度话题

#通用代码生成器#

重点组件和功能

  • 动词算子
  • 域对象
  • 棱柱
  • 项目
  • 时空之门前端代码生成器引擎
  • 弹性登录模块
  • Grid 页生成模块
  • 多对多生成模块
  • 数据库脚本生成模块
  • 动态椰子树功能群
  • 动词否定功能群
  • 字段否定功能群
  • 高级定制功能群
  • 部分生成功能群
  • 自动生成差异版本功能群
  • 上传生成界面
  • 模板向导生成界面
  • 自动生成差异版本生成界面
  • Excel 数据导出功能
  • PDF 数据导出功能
  • 数据库后端模式
  • 数据库工具模式
  • 哑数据模式
  • 数据库自动反射功能

开发测试环境

  • jdk 21
  • Apache Tomcat 9
  • Node.js 21, 18, 14
  • golang 1.22
  • MariaDB 15.1
  • MySQL 8
  • PostgreSQL 16
  • Oracle 11

安装教程

  • 先装好 open jdk 21 和 Apache Tomcat 9,如果您从源码编译代码生成器还需要事先装好 Apache Maven
  • 下载编译好的 Golang 通用代码生成器仙童的 war 包,或者下载源码,解压后使用 mvn install 命令编译,得到代码生成器的 war 包
  • 把代码生成器的 war 包的名字改短,成为 Fairchild.war,并放置在 Apache Tomcat 9 的 webapps 目录下
  • 启动 Apache Tomcat 9
  • 访问 http://localhost:8080/Fairchild/
  • 即可使用代码生成器

后端代码生成物运行

  • 使用代码生成器生成一个示例或自己的 SGS2 模板,得到两个代码生成物,一个前端,一个后端
  • 将后端项目下载并解压
  • 根据您的数据库选项,配置好您后端的数据库,并使用后端代码生成物的 sql 文件夹下的数据库脚本完成建库建表并加载初始化数据
  • 您需要检查后端代码生成物内的配置文件,确认数据库和用户名密码的正确性
  • 您需要安装配置好 Golang 1.20 或其他兼容版本的 Golang 环境
  • 在后端代码生成物的根目录下运行 go mod tidy
  • 在后端代码生成物的根目录下运行 go mod download
  • 在后端代码生成物的根目录下运行 go mod vendor
  • 在后端代码生成物的根目录下运行 go run Server.go
  • 启动完毕后访问后端代码生成物,http://localhost:8081

前端代码生成物运行

  • 使用代码生成器生成一个示例或自己的 SGS2 模板,得到两个代码生成物,一个前端,一个后端
  • 将前端代码生成物解压
  • 确认您已经安装好和您选择的 Nodejs 版本相容的前端 Nodejs 环境
  • 使用 npm install -registry=https://registry.npm.taobao.org 安装 Nodejs 依赖包
  • 如果您使用的是 Nodejs 21 和 Nodejs18,请运行命令:export NODE_OPTIONS=--openssl-legacy-provider
  • 运行命令:node --max-http-header-size=1000000 ./node_modules/.bin/webpack-dev-server --inline --progress --config build/webpack.dev.conf.js
  • 如此访问前端代码生成物,http://localhost:8000/

百度话题

#通用代码生成器#

代码生成器截图

代码生成器正在研发中,2.4.0 尝鲜版十一已发布。

Image description

Image description

电音仙女尝鲜版十一下载

二进制发布包下载地址:

附件 · 火鸟/Go语言通用代码生成器:仙童 - Gitee.com

电音仙女最新视频

电音仙女尝鲜版十一介绍视频请见: https://www.bilibili.com/video/BV1ET4wecEBk/

电音仙女尝鲜版九介绍视频请见: /BV1jKHgeKEjP/](https://www.bilibili.com/video/BV1jKHgeKEjP/)

电音仙女尝鲜版八

[https://www.bilibili.com/video/BV11maXeYE12/ https://www.bilibili.com/video

https://www.bilibili.com/video/BV1LJvve6Ed9/

电音仙女尝鲜版七 https://www.bilibili.com/video/BV1eT421a7j5/

电音仙女尝鲜版六 https://www.bilibili.com/video/BV1Sr421c7zY/

仙童的安装运行

仙童是使用 Java 语言写成的代码生成器。运行仙童您需要装好 Java8 和安装好 Tomcat9 或 8.5 应用服务器。并把仙童的 war 包部署在 Tomcat 的 webapps 目录下。

代码生成物的运行还需要安装好 Go 语言开发环境,您要使用 go mod 管理依赖,并把代码生成物解压在 go 语言工作空间的 src 文件夹的一级子目录下。还需要对应的数据库服务器运行代码生成物的建库 sql 脚本。

前端代码生成物的运行需要装好 node.js 运行环境并安装 js 依赖库。

Vue 独立前端截图

输入图片说明

输入图片说明

输入图片说明

输入图片说明

代码生成物截图

Image description

Image description

源码编译用户指南

通用代码生成器已经支持自己编译源码,我已把原来缺的前端代码生成器的 jar 包上传。支持大家自行编译源码。

需要注意的是,现在我的开发平台是 Fedora 37 上的 openjdk 17。所以大家编译源码最好使用 openjdk17。编译好的 war 包运行在 apache tomcat 9.0 上。

已有 jdk8 的用户报告默认下载的代码生成器 war 包在他的平台上无法运行。您如果遇到类似问题请报告。我的电子邮件是:jerry_shen_sjf@qq.com

附 openjdk 17 下载地址:

https://jdk.java.net/java-se-ri/17

使用前端功能的注意事项

由于图片文件比较大,原来前端使用 cnpm instll 安装类型,npm run dev 运行有所改动,改为先使用 npm install --registry=https://registry.npm.taobao.org 安装类库,出错后使用 cnpm install 安装类库, 使用 node --max-http-header-size=1000000 ./node_modules/.bin/webpack-dev-server --inline --progress --config build/webpack.dev.conf.js  运行系统。

您也可以从安装好的本系列代码生成器的前端项目中拷贝 node_modules 目录,即可运行前端。

node-sass 不兼容的解决办法

办法一:

npm uninstall node-sass
npm install sass-loader
npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/

办法二:

npm uninstall sass-loader node-sass //卸载
npm install sass-loader@7.3.1 node-sass@4.14.1 --save-dev //安装对应的版本

动词算子式代码生成器的应用场景

1. 项目前期

通用代码生成器是一种自动化编程软件,是一种先进的编译系统。它具有表级抽象。把系统抽象为域对象,枚举,弹性登录模块,复杂版面和图形报表。使用通用代码生成器完成项目前期,比直接使用对应的高级语言快的多,也方便的多。

在常规的项目开发阶段,可以分为前期,中期和后期。前期完成设计,数据库设计,项目初始化,数据库初始化和 CRUD 等常用功能的开发。

中期是各种业务功能的开发。

业务功能开发完成后,项目即进入后期。后期主要是测试,修错。完成项目 Change Request 和基线化,代码冻结。构建软件发布包,给客户安装,用户培训等等。

当客户签章认可软件交付物,软件的开发阶段就结束了,进入了软件的售后服务阶段。

通用代码生成器对软件开发而言,在项目前期的价值最大。它可以把月余的项目前期压缩到短短数日。从而为您的设计和开发增加数周的时间。用于设计,您可以更加详细。用于开发,大大缓解开发时间的紧张。而且,由于通用代码生成器的高生产率,您可以采用多轮设计,采用迭代式的项目设计循环,使设计阶段结束时,系统更全面更一致,同时仍然可以节约数周的时间帮助开发阶段。

通用代码生成器为项目全周期迭代式的使用通用代码生成器做了优化。它可以精确的控制代码生成物。可以按水平层级或者按竖直功能选择性的输出代码生成物,并可以同时使用水平和竖直的控制功能。最强大的是,您可以上传同一个项目的不同时期的 SGS2 模板,系统会对比两个版本,自动生成两个版本的差异部分,而一致的,它不输出。利用这个功能,您可以定向,只修改更改的部分,结合归并工具的功能,可以成数量级的提高劳动生产率。

2. 快速原型

对项目经理,产品经理和售前工程师而言,开发快速原型是一种常见的需求。使用通用代码生成器,您可以更好,更快的开发系统的快速原型。通用代码生成器对完成 CRUD 和登录系统阶段的快速原型比手工编程快的多,典型情况,您可以使用一天时间完成如此规格的快速原型,而直接编程,您可能至少需要两周时间才可以达到同样的完成度。故使用通用代码生成器,您可以更快的完成快速原型,您也有更多的时间,使您的原型达到更高的完成度。

并且,通用代码生成器有专门为快速原型设计的哑数据模式。此模式不使用数据库,而是使用硬编码的哑数据作为数据来源,它方便您给不同的客户多次演示,不需要担心数据遗留问题。只需要重新启动,数据即回归到原始数据,没有搞错演示数据的烦恼。而且,您可以和您的客户共享此快速原型。客户可以深入研究此快速原型,但无法直接使用此快速原型,因为此快速原型没有数据持久化功能。对双方都很方便。

3. 遗留项目反向工程

如果您有一个遗留项目,要重新开发,或者源代码遗失,或者需要重新开发,但是希望复用原来的数据,并加快开发。

如果您的项目是通用代码生成器生成的,如果您保留了它的 SGS 源文件或 SGS2 的 Excel 模板,您可以使用这些资源重新生成。

但是大多数遗留项目都没有这些资源,或者本来就不是通用代码生成器生成的。这种情况下,您只需要有系统的数据库,并且,这个数据库是 MariaDB,MySQL 或者 PostgreSQL 的。您就可以使用 Rust 通用代码生成器莲花的数据库自动反射功能来反向工程这种遗留项目。借助这个功能,您可以把一个数据库反射为一个莲花的 Project。并可以进一步将数据库反射为一个 Rust 语言项目或者一个莲花的 SGS2 模板。

借助 Java 通用代码生成器光和 Golang 通用代码生成器仙童的 Rust 语言兼容性。您可以把这个莲花的 SGS2 模板生成为 Java 语言项目或 Golang 语言项目。

这个数据库自动反射功能可以保留原系统的数据,您不需要重新开始。

4. 跨编程语言翻译

如果您有一个 Java 工程,想把它移植到 Rust 或 Golang 语言中去,希望尽可能加快研发速度。

如果您的系统是通用代码生成器开发的,保留了系统的 SGS 源文件或者 SGS2 的 Excel 模板,您可以使用这些源文件或模板结合您的目标语言生成新语言的代码生成物,以加速新语言的应用程序的开发。

如果您没有保留此源文件或模板,或者您的应用系统是手工搭建的或使用了其他来源。您可以使用数据库自动反射功能达到需求。如果您使用的是 MariaDB,MySQL 或者 PostgreSQL。您可以使用 Rust 通用代码生成器莲花新版本的数据库自动反射功能,将数据库反射成 Rust 应用程序,您也可以将数据库反射为一个 SGS2 的 Excel 模板。而后通过 Java 通用代码生成器光或 Golang 通用代码生成器的 Rust 语言兼容性功能,将此 SGS2 模板编译成 Java 或 Golang 的应用程序,在此过程中,您可以保留数据库中的所有数据,不必从零开始。

5. 任意需求应用急就章

在中国文化中,如果您在任何的政府,商业或者私人事务上需要表明身份。您需要一枚自己的私章。如果在必须的场合,您没有此私章。如果您知道如何刻写图章,可以临时使用普通的石料甚至萝卜,肥皂等等,刻写一个临时性的图章使用,这就是所谓的急就章。

通用代码生成器也有类似功能。如果您有一个业务或者需求,但是您没有现成的电子商务系统,您往往是使用 Excel 表格或者 Acess 数据库来完成这些功能的簿记和管理工作。但这种方法有明显缺陷,首先,如果随着业务的流转,多人手头有不同的 Excel 表单,如果数据不一致,您很难找出正确的答案,而且,没有统一的密码和登录系统,容易泄密和忘记密码。

有了通用代码生成器,可以完美的解决这一问题。您可以利用和写一个 Excel 表单同等的时间写一个 SGS2 的 Excel 模板,利用代码生成器生成一个系统临时凑和着用,几乎是零成本的。您可以轻易的拥有数据库管理系统的全部优势,就是特定功能少一些而已,而数据库的簿记功能可以完美的使数据一致性问题,多人同步工作问题完美解决。同时,您零成本的拥有了一个完善的系统的密码和登录系统,每个人可以维护自己的密码,而系统管理员也可以有效的管理,支持和急救。

所以,通用代码生成器的代码生成物是可以直接使用的,它有完善的通用功能,就是没有定制功能而已,对于任何需求,这种代码生成物都远远优于 Excel 表格,而成本是一样的。通用代码生成器的代码生物可以完成完善的电子商务系统 70% 的功能。这就是通用代码生成器的急就章功能。

6. 为完善的应用系统收集需求

使用急就章功能可以开发一个简单的应用先凑和着使用。此应用系统也可以成为完善的应用系统的原型和祖先。如果您新规划一个完善的应用系统,您可以先使用通用代码生成器生成一个临时使用的系统,并在实际的使用中收集需求和现用系统的不足,然后您可以使用手工编程完善此系统,得到一个完善的应用系统。

使用数据库自动反射功能,您可以把原型系统内的您需要的数据迁徙到新的完善的应用系统,

源码研读者注意事项

无垠式代码生成器第一个完整版本源码,有兴趣可以抄写一下:

无垠式代码生成器第一个完整版本0.6.5: 现在动词算子式代码生成器已经公布了无垠式的最后版本0.8.5。和平之翼代码生成器已进化到4.1版本。 谁有兴趣研究早期的动词算子式代码生成器。 我有所有的版本。其中无垠式代码生成器0.6.5是早期的完整版本,但是只有simplejee一个技术栈。对原理学习,可能是最佳的。此版本为原理学习,自己动手的参考。我会回答关于原理的问题,不会修正此版本的Bug(其实在后续版本中已经解决。)

相关技术视频:

https://www.bilibili.com/video/BV1eT421a7j5/

https://www.bilibili.com/video/BV1Sr421c7zY/

https://www.bilibili.com/video/BV1fX4y1u7Bn/

https://www.bilibili.com/video/BV1rv41187qY/

https://www.bilibili.com/video/BV1xv41187cA/

https://www.bilibili.com/video/BV1t64y1v7WA/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2191101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法笔记(六)——链表

文章目录 两数相加两两交换链表中的节点重排链表合并 K 个升序链表K个一组翻转链表 技巧: 画图观察指针指向;添加虚拟头节点;可以多定义几个节点;快慢双指针; 常见操作: 定义new head逆序时,头插 ListNode*…

带你深入浅出设计模式:八、适配器模式:代码世界中的万能转换器

此为设计模式第八谈! 用总-分-总的结构和生活化的例子给你讲解设计模式! 码农不易,各位学者学到东西请点赞收藏支持支持! 开始部分: 总:适配器模式主要解决的问题是已有类的接口与所需的接口不匹配的问题…

[Python学习日记-38] Python 中的函数的名称空间

[Python学习日记-38] Python 中的函数的名称空间 简介 名称空间 作用域查找顺序 简介 在前面学习函数的时候我们发现,函数内部也有一个内存空间是用于存储函数自己的一些变量的,及时这个变量名与外部的变量名一样是也没关系,Python 会优先…

CGLib动态代理和JDK动态代理Demo、ASM技术尝鲜

本文主要介绍CGLib和JDK动态代理的使用,不对源码进行深入分析。代码可直接复制使用。 类型 机制 回调方式 适用场景 效率 JDK动态代理 委托机制。代理类和目标类都实现了同样的接口。InvocationHandler持有目标类。代理类委托InvocationHandler去调用目标类原…

令牌主动失效机制范例(利用redis)注释分析

介绍该机制 令牌生成 在需要限流的场景中,系统会根据一定的速率生成令牌,存储在 Redis 中。可以设定每秒生成的令牌数量。 令牌获取 当用户请求时,系统会从 Redis 中获取令牌。可以使用原子性操作(如 DECR)来确保令牌…

SHAP分析

SHAP分析(SHapley Additive exPlanations)是一种基于博弈论的解释机器学习模型输出的方法。它提供了一种统一的方式来解释模型的预测结果,量化每个特征对模型预测的贡献,能够为复杂的机器学习模型(如随机森林、梯度提升…

C语言基础(8)之操作符(2)(详解)

目录 1. 操作符汇总表 2. 关系操作符 3. 条件操作符 4. 逗号表达式 5. 下标引用、函数调用和结构成员 5.1 下标引用 5.2 函数调用操作符 5.3 结构成员 6. 操作符的属性 6.1 操作符的优先级 大家好呀!上篇文章中我们详细讲解了操作符的前半部分&#xff0c…

【成长day】SuperPointSuperGlue(01): Superpoint论文算法学习与对应源码解析

两年前自己在实习公司做过superpoint相关的工作,当时是负责利用superpoint代替slam前端的特征点部分,来达到把特征点相关的处理放到推理计算平台上减轻CPU压力并且精度无损的目的,最终也是成功完成了这部分工作。但是当时没有留下任何的记录&…

YOLOv8 基于MGD的知识蒸馏

YOLOv8 基于MGD的知识蒸馏 接着上一篇我们介绍了YOLOv8的剪枝方案和代码,本篇文章将剪枝后的模型作为学生模型,剪枝前的模型作为教师模型对剪枝模型进行蒸馏,从而进一步提到轻量模型的性能。 Channel-wise Distillation (CWD) 问题和方法 …

IDM下载器如何下载网盘文件 IDM下载器支持哪些网盘

不用开通会员,也能高速下载网盘文件。使用IDM下载加速器,直接从服务器高速下载文件,轻松突破网盘限速。掌握IDM下载网盘文件的技巧,不仅可以节省会员费用,还可以大幅提高下载效率。有关IDM下载器如何下载网盘文件&…

【Linux:线程控制】

目录 线程的创建与等待: ​编辑 代码中tid是什么? 如何看待线程函数传参? ​编辑 ​编辑创建多线程:​编辑 终止多线程: 线程分离: 线程的创建与等待: void *threadrun(void *args) {int …

QT 中如何保存matlab 能打开的.mat数据矩阵!

Windows 上安装并使用 MATIO 库来保存 MATLAB 格式的 .mat 文件,需要进行以下步骤: 1. 下载并安装 CMake MATIO 使用 CMake 构建项目,因此你需要先安装 CMake。 前往 CMake 官网下载适用于 Windows 的安装程序并安装。 2. 下载 MATIO 库源…

Unity基础-矩阵-坐标转换结果的个人理解+数学公式说明

想做一些渲染效果做到头大,根本很多空白,完全无法实现,只能先暂停一下,重新学习矩阵 目录 Unity基础-数学矩阵 1.我们利用最简单的“转换矩阵”, 2.然后,视图坐标又是如何 3.最后就是剪裁坐标 3.1 - 其…

硬件设计-利用环路设计优化PLL的输出性能

目录 前言 问题描述 问题分析步骤 杂散源头排查 245.76M 参考相噪: 30.72M VCXO的相噪性能测试如下: 解决方案 前言 LMK04832是TI 新发布的低抖动双环去抖模拟时钟, 其最高输出频率可以到达3250MHz, 输出抖动极低,3200MHz…

MySQL 中的数据库锁和表锁

在 MySQL 数据库中,为了保证数据的一致性和完整性,会使用各种类型的锁。其中,数据库锁和表锁是比较常见的两种锁类型。 一、数据库锁和表锁的概念 (一)数据库锁 数据库锁是对整个数据库进行锁定,限制对数…

尝试从 http://pypi.doubanio.com/simple 这个索引源安装 webdriver 时出现了问题

问题如下: WARNING: The repository located at pypi.doubanio.com is not a trusted or secure host and is being ignored. If this repository is available via HTTPS we recommend you use HTTPS instead, otherwise you may silence this warning and allow …

ElasticSearch备考 -- 异步检索

一、题目 通过异步方式查询earthquakes索引下Magnitude大于5的数据 二、思考 正常的查询大家可能会用的多一点,这种异步查询为了可以数据量量比较大的查询在后台执行,不用同步等待结果,待执行完成在获取结果。 三、解题 Step 1、准备基础数…

【深度强化学习基础】(一)基本概念

【深度强化学习基础】(一)基本概念 一、概率论基础知识二、强化学习领域术语三、强化学习中两个随机性的来源:四、rewards以及returns五、Value Functions1.Action-Value Function Q π ( s , a ) Q_\pi(s,a) Qπ​(s,a)1.State-Value Funct…

Yolov8改进WIoU,SIoU,EIoU,α-IoU

1,IOU原理部分 IoU(Intersection over Union)是一种在计算机视觉领域常用的性能评估指标,尤其在目标检测和图像分割任务中。它通过计算预测边界框(预测框)与真实边界框(真实框)之间的交集面积与并集面积之比来衡量预测的准确性。IoU的值越接近1,表示预测框与真实框的重…

Error while loading conda entry point: conda-libmamba-solver

问题 解决方法 conda install --solverclassic conda-forge::conda-libmamba-solver conda-forge::libmamba conda-forge::libmambapy conda-forge::libarchive