Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
7180a61
Add repository-provider feature and update documentation
pbuncic Apr 7, 2026
a1dbdfa
Adding optional possibility to limit memory usage per core for big pa…
pbuncic Apr 7, 2026
c0f3875
Adding checksum handling for tar files and git repositories
pbuncic Apr 8, 2026
ae09635
Updatind docs
pbuncic Apr 8, 2026
6bdc7b0
Support for package families
pbuncic Apr 8, 2026
e8ac843
Adding support for shared packages
pbuncic Apr 9, 2026
ff8c275
README in .md format
pbuncic Apr 9, 2026
4bae161
adding qualify_arch option to defaults, allows to append defaults nam…
pbuncic Apr 9, 2026
a327ccf
Merge branch 'main' into repo_provider
pbuncic Apr 9, 2026
f2bd471
Adding back README.rst
pbuncic Apr 9, 2026
70e226e
Merge branch 'repo_provider' of github.com:bitsorg/bits into repo_pro…
pbuncic Apr 9, 2026
c62ee7c
Fixing yaml in rst file
pbuncic Apr 9, 2026
e973956
Trying to fix rst syntax
pbuncic Apr 9, 2026
93975f6
Allow . in package name, check for updates of recipe repositories
pbuncic Apr 9, 2026
b2dd208
Adding default repository for repository provider recipes
pbuncic Apr 9, 2026
5db5f0a
Fixing readme-check
pbuncic Apr 9, 2026
eea9aa6
Restoring README.rst to avoid test failures
pbuncic Apr 9, 2026
f011cdb
Add possibility to require repository provider packages in defaults
pbuncic Apr 9, 2026
1d4b02a
Preventing cyclic dependencies for repository provider packages
pbuncic Apr 9, 2026
154e564
Updating documentation
pbuncic Apr 10, 2026
f7bd1f5
Revise acknowledgement and update configuration paths
pbuncic Apr 10, 2026
b144ca0
Adding force_revision feature
pbuncic Apr 10, 2026
c388c39
Merge branch 'repo_provider' of github.com:bitsorg/bits into repo_pro…
pbuncic Apr 10, 2026
dbe0a3e
Trying to fix failing test
pbuncic Apr 10, 2026
d679f7f
Bug fixes
pbuncic Apr 10, 2026
1fbf08f
Support for caching non-github sources
pbuncic Apr 10, 2026
b638770
Fix failing test
pbuncic Apr 10, 2026
96c576d
Renaming PyPI project to build-bits
pbuncic Apr 10, 2026
acb1e69
Adding optional asynchronous source prefetching and tar/upload
pbuncic Apr 10, 2026
fb63fab
Revisiting bits init, allow to generate/modify bits.rc from command line
pbuncic Apr 10, 2026
4fd0f23
Code cleanup
pbuncic Apr 10, 2026
81c20f1
Fix failing test
pbuncic Apr 10, 2026
473c253
Sanitized bash scripts and fixed tests
pbuncic Apr 10, 2026
21189b8
Adding optional backend store integrity check
pbuncic Apr 11, 2026
ee94212
Creating build manifest to allow reproducible builds
pbuncic Apr 11, 2026
e02b857
Fix failing test
pbuncic Apr 11, 2026
a767d61
Bug fix, adding CVMFS publisher
pbuncic Apr 13, 2026
362321d
Bug fix
pbuncic Apr 13, 2026
3a0368d
Bug fix
pbuncic Apr 13, 2026
b3518c5
Bug fix
pbuncic Apr 13, 2026
f5da619
Bug fix for --makeflow
pbuncic Apr 13, 2026
08f534e
Bug fix
pbuncic Apr 13, 2026
bf5b62a
Removing excessive debug output
pbuncic Apr 13, 2026
7b4a4da
Fixing failing test
pbuncic Apr 13, 2026
0fe65e3
Another --makeflow bug
pbuncic Apr 13, 2026
2e49c34
Limit makeflow jobs to 4
pbuncic Apr 13, 2026
daa1460
Another --makeflow bug
pbuncic Apr 13, 2026
d0e6a33
Another --makeflow bug
pbuncic Apr 13, 2026
6e6f677
Integration with bits-console
pbuncic Apr 18, 2026
9101759
Fixing docs
pbuncic Apr 18, 2026
73d6d08
Fixing failing test
pbuncic Apr 18, 2026
2dc7def
Adding sandbox feature and ROADMAP document
pbuncic Apr 18, 2026
34e0c6b
Remove positioning and competitive context section
pbuncic Apr 18, 2026
2cf5625
Change section title in ROADMAP.md
pbuncic Apr 18, 2026
33ac68a
Change section header to 'Conclusion'
pbuncic Apr 18, 2026
9ad16a4
Adding sources: checksum to manifestfor full reproducibility
pbuncic Apr 18, 2026
9b0888d
Merge branch 'podman' of github.com:bitsorg/bits into podman
pbuncic Apr 18, 2026
9168783
Adding support for cross compilation using QEMU
pbuncic Apr 18, 2026
dd7fd51
Adding bits verify
pbuncic Apr 18, 2026
dcbbf20
Refactoring bits doctor
pbuncic Apr 18, 2026
1ea5c9a
Implementing git status
pbuncic Apr 18, 2026
3ce0116
Implementing bits doctor --check-store
pbuncic Apr 18, 2026
e6892ea
Sanitizing scripts for security issues
pbuncic Apr 19, 2026
4f387d4
Fix .bitsrc bug
pbuncic Apr 19, 2026
7636028
fix for reading defaults
pbuncic Apr 19, 2026
ab406f1
Adding option to pass number of cpu cores to docker
pbuncic Apr 23, 2026
0ac1b6e
Updated manifest format
pbuncic Apr 23, 2026
1fee7c7
Add local publish mode and unified install/uninstall script
pbuncic Apr 26, 2026
ba1e187
Merge branch 'main' into podman
pbuncic May 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 46 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ On RHEL/CentOS: `yum install environment-modules`
git clone https://github.com/bitsorg/alice.bits.git
cd alice.bits

# 2. Check that your system is ready
# 2. Check system requirements for ROOT
bits doctor ROOT

# 3. Build ROOT and all its dependencies
Expand Down Expand Up @@ -59,7 +59,9 @@ exit
| `bits q [regex]` | List available modules. |
| `bits clean` | Remove stale build artifacts from a temporary build area. |
| `bits cleanup` | Evict old or infrequently used packages from a persistent workDir. |
| `bits doctor <pkg>` | Verify system requirements. |
| `bits doctor <pkg> [<pkg>...]` | Check that the system satisfies all recipe requirements before building. |
| `bits doctor --runner` | Validate the full build-runner environment (compiler, git, Docker, podman, CVMFS, disk, store). |
| `bits verify --from-manifest FILE` | Confirm a live deployment matches the build manifest (SHA-256 and provider commits). |

[Full command reference](REFERENCE.md#16-command-line-reference)

Expand All @@ -71,15 +73,30 @@ Create a `bits.rc` file (INI format) to set defaults:

```ini
[bits]
organisation = ALICE
organisation = ALICE
remote_store = https://s3.cern.ch/swift/v1/alibuild-repo
prerequisites_url = https://alice-doc.github.io/alice-analysis-tutorial/building/
cvmfs_repos = /cvmfs/alice.cern.ch,/cvmfs/sft.cern.ch

[ALICE]
sw_dir = /path/to/sw # output directory
repo_dir = /path/to/recipes # recipe repository root
search_path = common,extra # additional recipe dirs (appended .bits)
```

Bits looks for `bits.rc` in: `--config FILE` → `./bits.rc` → `./.bitsrc` → `~/.bitsrc`.
Bits looks for `bits.rc` in: `--config FILE` → `./bits.rc` → `./.bitsrc` → `~/.bitsrc`.

Useful `[bits]` keys:

| Key | Description |
|-----|-------------|
| `remote_store` | Default binary store URL (same syntax as `--remote-store`). |
| `write_store` | Default upload store URL. |
| `prerequisites_url` | URL shown when `bits doctor` cannot find the C++ compiler or git. |
| `cvmfs_repos` | Comma-separated CVMFS mount paths checked by `bits doctor --runner`. |
| `provider_policy` | `name:prepend\|append` pairs controlling `BITS_PATH` insertion order. |
| `store_integrity` | `true` to enable SHA-256 verification of every recalled tarball. |

[Configuration details](REFERENCE.md#4-configuration)

---
Expand Down Expand Up @@ -127,13 +144,34 @@ bits cleanup -n # dry-run: show what would be removed
# Build inside a Docker container for a specific Linux version
bits build --docker --architecture ubuntu2004_x86-64 ROOT

# Cross-compile for ARM64 on an x86-64 host (requires QEMU binfmt handlers)
bits build --docker --architecture slc9_aarch64 MyAnalysis

# Use a remote binary store (S3, HTTP, rsync) to share pre-built artifacts
bits build --remote-store s3://mybucket/builds ROOT
```

The `--cvmfs-prefix` flag (which embeds the final CVMFS deployment path at compile time so no relocation is needed at publish time) and `bits publish --no-relocate` are used by the **bits-console-triggered CI pipeline** on the build runners — they are not normally typed by end users. See [WORKFLOWS.md Phase 5](WORKFLOWS.md#phase-5--ci-build-and-cvmfs-publication-via-bits-console) for the user-facing workflow and [REFERENCE.md §22](REFERENCE.md#22-docker-support) for the flag reference.

[Docker support](REFERENCE.md#22-docker-support) | [Remote stores](REFERENCE.md#21-remote-binary-store-backends)
[Docker support](REFERENCE.md#22-docker-support) | [Cross-compilation via QEMU](REFERENCE.md#22b-cross-compilation-via-qemu) | [Remote stores](REFERENCE.md#21-remote-binary-store-backends)

---

## Validating Builds and Deployments

```bash
# Check runner environment before first use (compiler, git, Docker, podman, disk…)
bits doctor --runner --cvmfs-repos /cvmfs/alice.cern.ch

# Machine-readable runner report for CI / bits-console health panel
bits doctor --runner --json

# Verify that a live CVMFS deployment matches a recorded build manifest
bits verify --from-manifest alice-o2-20260411.json \
--cvmfs-root /cvmfs/alice.cern.ch
```

[bits doctor reference](REFERENCE.md#bits-doctor) | [bits verify reference](REFERENCE.md#bits-verify) | [Deployment verification §22c](REFERENCE.md#22c-bits-verify--deployment-verification)

---

Expand Down Expand Up @@ -169,8 +207,11 @@ See **[WORKFLOWS.md](WORKFLOWS.md)** for the full phase-by-phase walkthrough and
- [Development-to-deployment workflow & diagram](WORKFLOWS.md)
- [Environment management (`bits enter`, `load`, `unload`)](REFERENCE.md#6-managing-environments)
- [Dependency graph visualisation](REFERENCE.md#bits-deps)
- [Runner environment validation (`bits doctor --runner`)](REFERENCE.md#bits-doctor)
- [Deployment verification (`bits verify`)](REFERENCE.md#22c-bits-verify--deployment-verification)
- [Repository provider feature (dynamic recipe repos)](REFERENCE.md#13-repository-provider-feature)
- [Defaults profiles](REFERENCE.md#18-defaults-profiles)
- [Cross-compilation via QEMU](REFERENCE.md#22b-cross-compilation-via-qemu)
- [Design principles & limitations](REFERENCE.md#24-design-principles--limitations)
- [CVMFS publishing pipeline & bits-console](REFERENCE.md#26-cvmfs-publishing-pipeline)

Expand Down
Loading
Loading