How to add or upgrade libraries in /external or /internal directories
When you change something in /external or /internal, it will only affect people who do a full Chandler build, like documented in
BuildingChandlerDesktop. Most people won't do that - they will just run Chandler from source, documented here:
RunningChandlerFromSourceReleases or download a distribution.
Note that whenever you change anything in /external or /internal, you cannot immediately rely on it in /chandler. You must first go through
all the steps outlined below.
- Make changes in /external or /internal locally
- Test that you can do a full build in clean tree
- Test that you can run Chandler and everything still works as expected
- Get your changes reviewed
- Make new binaries tarballs:
- In the Tinderbox-assisted way:
- Check in
- Once Tbox clients have finished the new builds (over 2 h) they upload the builds to a staging area
- Make changes to /chandler/Makefile locally (with temporary change to staging area URL)
- Test that you can do a build in clean tree in /chandler
- cd chandler; make install
- Undo temporary staging URL change to chandler/Makefile
- Test that you can run Chandler and everything still works as expected
- Use http://builds.osafoundation.org/cgi-bin/tbhelp.cgi to copy the tarballs
- Manual way:
- You, or preferably the build engineer, does new tarballs by hand on official build machines for all platforms and uploads them with make upload and make DEBUG=1 upload. Do tests like in Tinderbox-assisted way.
- See if you need to change /chandler/distrib/[linux|osx|win]/manifest.* files
- On Windows all new DLLs need to be explicitly added, at least at the moment
- If you added new directories, they may need to be added
- If you changed manifest files, or you otherwise think distributions might not work, make a test distribution:
- for a release distribution: cd chandler; ../hardhat/hardhat.py -D mytestdistrib
- for a debug distribution: cd chandler; ../hardhat/hardhat.py -d -D mytestdistrib
- CVS tag the /external or /internal subdirectory, for example /internal/m2crypto: cvs rtag -D now M2CRYPTO_0_12_1 internal/m2crypto (or whatever the relver happens to be)
- Announce your changes to dev, and give an estimation as to when you will change chandler/Makefile (try to give at least one day of advance warning)
- Do a new fresh full pull and build and make sure everything works
- ("Next day") Checkin chandler/Makefile
- Announce to dev
- Test that you can do a build in fresh, clean tree in /chandler