You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The `aliroot` command will be run with the correct environment in both cases.
402
-
403
-
{% callout "Migrating from ROOT 5 to ROOT 6" %}
404
-
While you are at it, if you want to migrate your existing code to ROOT 6 (and make sure it works
405
-
there) check out our [migration guide](../analysis/ROOT5-to-6.md).
406
-
{% endcallout %}
407
-
408
-
409
-
### Build specific releases (tags) of the software
410
-
411
-
It might come useful to build a certain tag of AliRoot and AliPhysics instead of simply pulling the
412
-
master.
413
-
414
-
> Note that **we only guarantee that the current AliPhysics master works against the latest AliRoot
415
-
> tag!** It is therefore possible (though a rare occurrence) that the current AliRoot master breaks
416
-
> the current AliPhysics master.
417
-
418
-
If you have your source code in "development mode" (_i.e._ downloaded locally by means of `aliBuild
419
-
init`), since your AliRoot/AliPhysics/O2 directories [are mere Git
420
-
repositories](#software-and-recipes-must-be-updated-manually), you simply need to `cd` into them and
421
-
checkout the Git version you want.
422
-
423
-
For instance, if you want to build AliPhysics against AliRoot v5-09-33, you would need to first
424
-
move to the AliRoot directory and check the version out:
425
-
426
-
```bash
427
-
cd~/alice/AliRoot
428
-
git fetch upstream --tags
429
-
git checkout v5-09-33
430
-
```
431
-
432
-
Then update your AliPhysics master:
433
-
434
-
```bash
435
-
cd~/alice/AliPhysics
436
-
git checkout master
437
-
git pull --rebase upstream master
438
-
```
439
-
440
-
and then build normally using the `aliBuild` command. You might want to build using different `-z`
441
-
options [as explained here](#build-the-same-source-multiple-times-with-different-options) in order
442
-
to have different builds usable in parallel without duplicating your source code.
443
-
444
-
## 🧹 Delete obsolete builds
445
-
446
-
With frequent rebuilding of packages, obsolete builds can pile up and occupy a lot of precious
447
-
disk space.
448
-
449
-
### Basic cleanup
450
-
451
-
The simplest way to get rid of obsolete builds is to let aliBuild do its best by running:
452
-
```bash
453
-
aliBuild clean
454
-
```
455
-
which can take the optional argument `--aggressive-cleanup` that deletes also source code of built
456
-
dependency packages and downloaded `.tar.gz` archives.
457
-
458
-
In general, it's good practice to run `aliBuild clean` always after `aliBuild build`.
459
-
460
-
This might not be enough, as aliBuild will not delete any build directory pointed to by a symlink
461
-
that has "latest" in its name, even when that build is not needed by any other package anymore.
462
-
Manual intervention is therefore sometimes needed.
463
-
464
-
### Deep cleanup
465
-
466
-
If you want to keep only the latest builds of your development packages (and their dependencies),
467
-
you can make aliBuild delete the rest with a little trick.
468
-
469
-
1. Delete symlinks to all builds:
470
-
```bash
471
-
find $ALIBUILD_WORK_DIR/$(aliBuild architecture)/ -mindepth 2 -maxdepth 2 -type l -delete
472
-
find $ALIBUILD_WORK_DIR/BUILD/ -mindepth 1 -maxdepth 1 -type l -delete
473
-
```
474
-
In case you specified the architecture manually (using the `-a` option with `aliBuild build`), you should replace `$(aliBuild architecture)` with your manually specified architecture.
475
-
1. Recreate symlinks to the latest builds of development packages (and their dependencies)
476
-
by running `aliBuild build` for each development package.
477
-
1. Let aliBuild delete all the other builds by running `aliBuild clean`.
292
+
- Building multiple branches in the same area
293
+
- Remove obsolete / unneeded packages
294
+
- Limit resource usage
295
+
- Cross platforms builds using docker / Apple Container
0 commit comments