[kwlug-disc] Presentation requests: package formats, repository best practices

Doug Moen doug at moens.org
Tue Dec 29 18:46:02 EST 2020


> Is TravisCI still working for you? Or would you consider switching to
> Github Actions as suggested here?

Curv runs on Linux, Windows and MacOS. My plan is to use Github Actions for all 3 platforms, since GA is free for all 3 platforms, and Travis requires a paid plan. GA is also easier from my perspective due to not requiring both a github acccount and a travis account.

The problem with Travis CI: https://www.theregister.com/2020/11/02/travis_ci_pricng/

I have a github actions script for the Windows build. It used to work. It is currently broken due to a recent API change, but that will be fixed as soon as either I or somebody else gets around to it. The travis script needs to be deleted, thanks for reminding me.

> Could you use either the go or Rust package manager out of this box?
> The Ruby bundler system will also load package directly out of git
> repositories using a Gemfile.
> 
> https://bundler.io/
> 
> (But I might also be biased, consider my default respond to many thing
> is "Have you consider using Ruby"? :) )

The answer to all questions is, I don't know. I haven't spent time researching any of this.

My general concern is, what dependencies does this add to the Curv project, and how much does this complicate the project of shipping binaries for Linux, MacOS and Windows? What additional dependencies does the end user need to install? I don't use either Go or Rust, but I am aware that both languages are capable of being compiled to statically linked executables with no dependencies.

Also consider that I eventually want to run Curv inside a web browser, so I also have to consider dependencies for the web browser binaries. Targeting the browser would require gpkg to be written in JS, or to be compiled into JS or WebAssembly. Once again, I happen to know that Go and Rust compile to webassembly. I know very little about Ruby.

----------

On Tue, Dec 29, 2020, at 5:03 PM, Andrew Sullivan Cant wrote:
> >> Building Curv on Windows might be an interesting opportunity to learn
> >> Choclaty. [1]
> >>
> >> [1] https://chocolatey.org/
> > 
> > Hmm, interesting. I haven't investigated Chocolatey. The next stage of my plan for Windows was to build a statically linked 'curv.exe' executable (no DLLs), and bundle that in a ZIP file with library  files, examples and documentation. And then make the ZIP file available for download from Github. The ZIP file would be built using a github actions script. There is some work to be done before Curv can be statically linked on Windows. The reason for static linking is that Curv is a command line tool, which your shell (cmd.exe, power shell, bash.exe) needs to locate in the PATH. I don't want to put Curv DLLs in the PATH to avoid conflicts with other software.
> > 
> > More discussion here: https://github.com/curv3d/curv/issues/97
> 
> Thanks for the link. I will have a look at it.
> 
> Is TravisCI still working for you? Or would you consider switching to
> Github Actions as suggested here?
> 
> 
> > 
> >> This would be a library level package manager for the Curv language?
> >> (e.g., I have a curv program that uses library x,y, and z. I add those
> >> in my specification file, and then I can run "gpkg install" to install
> >> all the libraries.)
> > 
> > Yes.
> 
> Could you use either the go or Rust package manager out of this box?
> The Ruby bundler system will also load package directly out of git
> repositories using a Gemfile.
> 
> https://bundler.io/
> 
> (But I might also be biased, consider my default respond to many thing
> is "Have you consider using Ruby"? :) )
> 
> 
> Andrew
> 
>




More information about the kwlug-disc mailing list