1 Star 0 Fork 0

Jesse.Ding/gensio

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
RELEASE_PROCESS.rst 3.21 KB
一键复制 编辑 原始数据 按行查看 历史

This is a list of things I do when getting a release ready, mostly here for me to follow when doing a release.

After everything is ready, on Linux(x86_64 and arm64), Windows, MacOS, and FreeBSD do:

mkdir Ztest ../configure --enable-internal-trace make -j<n> make check make install DESTDIR=$HOME/tmp/install rm -rf $HOME/tmp/install cd .. rm -rf Ztest (on FreeBSD use gmake instead of make)

and obviously everything should pass on all platforms. Before running tests on Linux, make sure the serialsim driver is installed so it will be able to run all the tests.

Install it on a local system, make sure the serialsim driver is installed, and run the ser2net tests.

Then create the new version. To do this:

  • Edit configure.ac, change the version in both places right at the top. Also fix it in gensio.iss in MyAppVersion.
  • If necessary, update GENSIO_LIB_VERSION in configure.ac. Do an "info libtool" and look under "Versioning" then "Updating version info" for the rules, which are complicated. The library version will be "C - A", if that changes from the previous version, you need to update MyAppLibVersion in gensio.iss. Note that if you change C and A together (like if there were only additions and not removals or changes to the API) the version doesn't change.
  • Commit those changes with the subject "Move to version x.x.x"
  • Tag the current version with "git tag -s vx.x.x". I usually just use "Gensio x.x.x" for the tag text, as it's not that important.
  • Do a "git push" then "git push origin vx.x.x" to get it into git.
  • Create the tarball. I do "make distcheck" on Linux and make sure everything builds, installs, uninstalls, etc. ok.

So now we have a tarball and everything in git. Now we have to build on Windows, after doing a get pull to get everthing:

  • rm -rf $HOME/install/Gensio
  • I have a build directory lying around set up with "../configure". From there do "make -j<x>" then "make install DESTDIR=$HOME/install".
  • rm $HOME/install/Gensio/lib/*.la
  • Then run the "Inno Setup Compiler" and select gensio.iss in the main gensio directory.
  • The output will be named "Gensio.exe" in the home directory. Rename it "Gensio-x.x.x-windows.exe" and copy that to the Linux system where you upload everything.

Now on github, create the release and upload Gensio-x.x.x-windows.exe and gensio-x.x.x.tar.gz as part of the release.

Now we can check homebrew on MacOS. On a MacOS system, do:

  • Do a sha256sum on the gensio-x-x-x.tar.gz file.
  • vi /opt/homebrew/cd Library/Taps/homebrew/homebrew-core/Formula/g/gensio.rb and edit the version number and set the sha256.
  • HOMEBREW_NO_INSTALL_FROM_API=1 brew reinstall --build-from-source gensio It should complete without error. Well, there may be errors about being unable to uninstall the old version, but that's ok. It will tell you how to remove it by hand. Then do a "brew test gensio" and "brew audit gensio"
  • Do "sudo sudo brew services stop gensio" then "sudo sudo brew services start gensio" and test that gtlsshd works.
  • Do "sudo sudo brew services stop ser2net" then "sudo sudo brew services start ser2net" and test that ser2net works.

If MacOS fails for some reason, you have to back everything out and start over :(.

Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/bluewind/gensio.git
git@gitee.com:bluewind/gensio.git
bluewind
gensio
gensio
master

搜索帮助