r12 - 13 Jul 2007 - 15:27:13 - MimiYinYou are here: OSAF >  Projects Web  >  ChandlerHome > DeveloperDocumentation > HackingChandler > UpgradingExternalInternal

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.

  1. Make changes in /external or /internal locally
  2. Test that you can do a full build in clean tree
    • cd external; make world
  3. Test that you can run Chandler and everything still works as expected
  4. Get your changes reviewed
  5. Make new binaries tarballs:
    • In the Tinderbox-assisted way:
      1. Check in
      2. Once Tbox clients have finished the new builds (over 2 h) they upload the builds to a staging area
      3. Make changes to /chandler/Makefile locally (with temporary change to staging area URL)
      4. Test that you can do a build in clean tree in /chandler
        • cd chandler; make install
      5. Undo temporary staging URL change to chandler/Makefile
      6. Test that you can run Chandler and everything still works as expected
      7. 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.
  6. 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
  7. 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
  8. 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)
  9. 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)
  10. Do a new fresh full pull and build and make sure everything works
  11. ("Next day") Checkin chandler/Makefile
  12. Announce to dev
  13. Test that you can do a build in fresh, clean tree in /chandler
    • make install
PageInfo
PageType DevDocPage
MaintainedBy HeikkiToivonen
PageStatus Source of truth -- this page reflects current OSAF thinking? go.png
Trash.CommentsWelcome2 Feel free to contribute comments?, either by adding to the Comments Welcome section of this page, or by posting to the dev list, or by sending mail directly to the person listed as maintaining the page.
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r12 < r11 < r10 < r9 < r8 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.