Update package

Create branch for working on package update:

[hunter]> git checkout master
[hunter]> git checkout -b pr.hunter_box_1

Calculate SHA1 of release:

> wget https://github.com/hunterbox/hunter_box_1/archive/v1.0.1.tar.gz
> openssl sha1 v1.0.1.tar.gz
SHA1(v1.0.1.tar.gz)= 10d046eec6c8b0aabd28bd3d1b99faf6beeb226b

Add URL and SHA1 to corresponding hunter.cmake:

--- /home/docs/checkouts/readthedocs.org/user_builds/hunter/checkouts/latest/docs/creating-new/hunter.cmake
+++ /home/docs/checkouts/readthedocs.org/user_builds/hunter/checkouts/latest/docs/creating-new/hunter-NEW.cmake
@@ -19,6 +19,17 @@
     4fa7fe75629f148a61cedc6ba0bce74f177a6747
 )
 
+hunter_add_version(
+    PACKAGE_NAME
+    hunter_box_1
+    VERSION
+    1.0.1
+    URL
+    "https://github.com/hunterbox/hunter_box_1/archive/v1.0.1.tar.gz"
+    SHA1
+    10d046eec6c8b0aabd28bd3d1b99faf6beeb226b
+)
+
 hunter_pick_scheme(DEFAULT url_sha1_cmake)
 hunter_cacheable(hunter_box_1)
 hunter_download(PACKAGE_NAME hunter_box_1)

Hint

Put new hunter_add_version at the bottom of file, diff will look prettier in this case.

Update default version in cmake/configs/default.cmake:

--- /home/docs/checkouts/readthedocs.org/user_builds/hunter/checkouts/latest/docs/creating-new/default.cmake
+++ /home/docs/checkouts/readthedocs.org/user_builds/hunter/checkouts/latest/docs/creating-new/default-NEW.cmake
@@ -181,7 +181,7 @@
 hunter_default_version(glproto VERSION 1.4.17)
 hunter_default_version(half VERSION 1.1.0-p1)
 hunter_default_version(hdf5 VERSION 1.8.15-p1)
-hunter_default_version(hunter_box_1 VERSION 1.0.0)
+hunter_default_version(hunter_box_1 VERSION 1.0.1)
 hunter_default_version(ice VERSION 1.0.8)
 hunter_default_version(imshow VERSION 1.0.0-p0)
 hunter_default_version(inputproto VERSION 2.2)

Commit changes:

[hunter]> git add cmake/projects/hunter_box_1/hunter.cmake
[hunter]> git add cmake/configs/default.cmake
[hunter]> git commit -m "Update 'hunter_box_1' to v1.0.1"

Testing

Note

Check Create package: CI testing page for registering services and branches/remotes description.

Fetch latest CI configs, you may need to run git pull if you have pkg.hunter_box_1 locally:

[hunter]> git fetch ci
[hunter]> git checkout pkg.hunter_box_1
[hunter]> git pull

If the package has not been updated in some time, the CI toolchains may have fallen out of date. It is preferable to keep the CI configuration in sync with the working defaults from pkg.template to make sure the package will build with recent compilers and to help ensure cache hits for any required Hunter managed dependencies.

[hunter]> git checkout pkg.template
[hunter]> git pull
[hunter]> git checkout pkg.hunter_box_1
[hunter]> git merge pkg.template

Create temporary branch test.hunter_box_1 for testing basing on pkg.hunter_box_1:

[hunter]> git checkout -b test.hunter_box_1

Merge it with hunter_box_1 package updates:

[hunter]> git merge pr.hunter_box_1

Push changes to your Hunter fork remote to start tests:

[hunter]> git push -u origin test.hunter_box_1
Branches

Add toolchains

If new version of package fix some build:

  • Add new version to master
  • Tests against old set of toolchains
  • New version merged to master
  • Send pull request to pkg.hunter_box_1 to enable new toolchains

Remove toolchains

If new version broke some toolchain:

  • Disable toolchains in pkg.hunter_box_1
  • Add new version to master
  • Tests against new set of toolchains without broken

Submit the pull request to Hunter

Once the tests are passing, and all required toolchain modifications have been applied to the ci fork in pkg.hunter_box_1 via pull requests (see above), the original package update in pr.hunter_box_1 should then be pushed to your Hunter fork (origin in above discussions):

[hunter]> git push -u origin pr.hunter_box_1

Finally, a pull request should be opened to send the package update to the main Hunter repository, as illustrated in the previous section pull request screen shot.