haven-protocol-org / haven-main

Haven is an untraceable cryptocurrency with a mix of standard market pricing and real world asset-pegged value storage. It achieves this via a “mint and burn” process within a single blockchain.
https://havenprotocol.org
Other
39 stars 25 forks source link

Include git submodules in release tarballs. #52

Closed amano-kenji closed 1 year ago

amano-kenji commented 1 year ago

Because release tarballs don't include git submodules, it's painful to build haven-main.

goshiz commented 1 year ago

tarball source code is provided by github, we can't include the submodule in it. You can clone the repo and checkout the release tag with --recursive option to get the submodule in one sweep.

git clone https://github.com/haven-protocol-org/haven-main.git --recursive -b v3.0.2

amano-kenji commented 1 year ago

You can manually upload tarballs with git submodules to https://github.com/haven-protocol-org/haven-main/releases

gael-donat commented 1 year ago

We don't want to do manual stuff as it's centralized process and we are trying to avoid it.

amano-kenji commented 1 year ago

The problem is that package maintainers are stuck doing the manual process.

Now, the manual process has to be repeated by all linux distributions that want to distribute haven-main package.

Because the manual process wasn't done by the upstream, multiple downstream maintainers have to exert duplicated efforts.

This manual thing is best done at the upstream.

amano-kenji commented 1 year ago

The real problem is that because I don't know cmake, I don't know which git submodules are optional.

Some git submodules are skipped, and system libraries are used. I still don't understand why some libraries are optional git submodules.

This is really confusing for package maintainers. It is more confusing than only using system libraries or only using git submodules.

Because I believed in haven protocol, I somehow figured out how to build it. However, the build process really needs to be simplified. Either, make everything git submodules, or make everything system dependencies.

Most developers don't really care much about haven protocol, so they won't exert effort to figure out a right way to build linux distribution package for haven-main.

I strongly suggest depending only on system libraries. At best, git submodules add manual labor for upstream or downstream. At worst, they make it difficult to understand how to build something. Also, cmake is confusing for many package maintainers. Meson and ninja are far simpler than cmake for linux package maintainers.

. System libraries only . Replace cmake with meson and ninja if possible.