alibuild 1.17.7__tar.gz → 1.17.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {alibuild-1.17.7 → alibuild-1.17.8}/.github/workflows/documentation.yml +1 -1
- {alibuild-1.17.7 → alibuild-1.17.8}/PKG-INFO +1 -1
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild.egg-info/PKG-INFO +1 -1
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild.egg-info/SOURCES.txt +2 -2
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/_version.py +2 -2
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/args.py +4 -1
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/build.py +12 -6
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/build_template.sh +13 -3
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/sync.py +70 -0
- alibuild-1.17.8/docs/docs/alice_logo.png +0 -0
- alibuild-1.17.8/docs/docs/stylesheets/extra.css +7 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/docs/docs/troubleshooting.md +14 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/docs/mkdocs.yml +10 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/setup.py +1 -1
- alibuild-1.17.7/docs/docs/o2-tutorial.md +0 -5
- alibuild-1.17.7/docs/docs/tutorial.md +0 -5
- {alibuild-1.17.7 → alibuild-1.17.8}/.flake8 +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/.github/workflows/pr-check.yml +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/.github/workflows/release.yml +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/.gitignore +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/.pylintrc +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/ANALYTICS.md +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/DESIGN.md +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/Jenkinsfile +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/LICENSE.md +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/MANIFEST.in +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/PACKAGING.md +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/README.rst +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alfaBuild +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/aliBuild +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/aliDeps +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/aliDoctor +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild.egg-info/dependency_links.txt +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild.egg-info/requires.txt +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild.egg-info/top_level.txt +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/__init__.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/analytics.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/clean.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/cmd.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/deps.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/doctor.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/git.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/init.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/log.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/scm.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/sl.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/templating_plugin.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/utilities.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alibuild_helpers/workarea.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/alienv +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/codecov.yml +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/debian/changelog +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/debian/compat +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/debian/control +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/debian/copyright +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/debian/files +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/debian/rules +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/docs/README.md +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/docs/SUPPORT +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/docs/docs/deps.png +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/docs/docs/index.md +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/docs/docs/quick.md +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/docs/docs/reference.md +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/docs/docs/user.md +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/pb +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/pyproject.toml +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/requirements.txt +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/setup.cfg +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_analytics.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_args.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_build.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_clean.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_cmd.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_deps.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_doctor.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_git.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_hashing.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_init.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_log.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_packagelist.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_parseRecipe.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_sync.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_utilities.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/test_workarea.py +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/testdist/broken1.sh +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/testdist/broken2.sh +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/testdist/broken3.sh +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/testdist/broken4.sh +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/testdist/broken5.sh +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/testdist/broken6.sh +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/testdist/broken7.sh +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/testdist/clobber-initdotsh.sh +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/testdist/defaults-o2.sh +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tests/testdist/delete-etc.sh +0 -0
- {alibuild-1.17.7 → alibuild-1.17.8}/tox.ini +0 -0
|
@@ -55,14 +55,14 @@ debian/rules
|
|
|
55
55
|
docs/README.md
|
|
56
56
|
docs/SUPPORT
|
|
57
57
|
docs/mkdocs.yml
|
|
58
|
+
docs/docs/alice_logo.png
|
|
58
59
|
docs/docs/deps.png
|
|
59
60
|
docs/docs/index.md
|
|
60
|
-
docs/docs/o2-tutorial.md
|
|
61
61
|
docs/docs/quick.md
|
|
62
62
|
docs/docs/reference.md
|
|
63
63
|
docs/docs/troubleshooting.md
|
|
64
|
-
docs/docs/tutorial.md
|
|
65
64
|
docs/docs/user.md
|
|
65
|
+
docs/docs/stylesheets/extra.css
|
|
66
66
|
tests/test_analytics.py
|
|
67
67
|
tests/test_args.py
|
|
68
68
|
tests/test_build.py
|
|
@@ -380,6 +380,9 @@ On Linux, x86-64:
|
|
|
380
380
|
Fedora 33 compatible: fedora33_x86-64
|
|
381
381
|
Fedora 34 compatible: fedora34_x86-64
|
|
382
382
|
|
|
383
|
+
On Linux, ARM:
|
|
384
|
+
RHEL9 / ALMA9 compatible: slc9_aarch64
|
|
385
|
+
|
|
383
386
|
On Linux, POWER8 / PPC64 (little endian):
|
|
384
387
|
RHEL7 / CC7 compatible: slc7_ppc64
|
|
385
388
|
|
|
@@ -389,7 +392,7 @@ On Mac, 1-2 latest supported OSX versions:
|
|
|
389
392
|
"""
|
|
390
393
|
|
|
391
394
|
# When updating this variable, also update docs/user.markdown!
|
|
392
|
-
S3_SUPPORTED_ARCHS = "slc7_x86-64", "slc8_x86-64", "ubuntu2004_x86-64", "ubuntu2204_x86-64", "slc9_x86-64"
|
|
395
|
+
S3_SUPPORTED_ARCHS = "slc7_x86-64", "slc8_x86-64", "ubuntu2004_x86-64", "ubuntu2204_x86-64", "slc9_x86-64", "slc9_aarch64"
|
|
393
396
|
|
|
394
397
|
def finaliseArgs(args, parser):
|
|
395
398
|
|
|
@@ -899,12 +899,18 @@ def doBuild(args, parser):
|
|
|
899
899
|
|
|
900
900
|
# Now that we have all the information about the package we want to build, let's
|
|
901
901
|
# check if it wasn't built / unpacked already.
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
902
|
+
hashPath= "%s/%s/%s/%s-%s" % (workDir,
|
|
903
|
+
args.architecture,
|
|
904
|
+
spec["package"],
|
|
905
|
+
spec["version"],
|
|
906
|
+
spec["revision"])
|
|
907
|
+
hashFile = hashPath + "/.build-hash"
|
|
908
|
+
# If the folder is a symlink, we consider it to be to CVMFS and
|
|
909
|
+
# take the hash for good.
|
|
910
|
+
if os.path.islink(hashPath):
|
|
911
|
+
fileHash = spec["hash"]
|
|
912
|
+
else:
|
|
913
|
+
fileHash = readHashFile(hashFile)
|
|
908
914
|
# Development packages have their own rebuild-detection logic above.
|
|
909
915
|
# spec["hash"] is only useful here for regular packages.
|
|
910
916
|
if fileHash == spec["hash"] and not spec["is_devel_pkg"]:
|
|
@@ -139,7 +139,9 @@ else
|
|
|
139
139
|
rm -rf $INSTALLROOT
|
|
140
140
|
mv $WORK_DIR/TMP/$PKGHASH/$ARCHITECTURE/$PKGNAME/$PKGVERSION-* $INSTALLROOT
|
|
141
141
|
pushd $WORK_DIR/INSTALLROOT/$PKGHASH
|
|
142
|
-
|
|
142
|
+
if [ -w "$INSTALLROOT" ]; then
|
|
143
|
+
WORK_DIR=$WORK_DIR/INSTALLROOT/$PKGHASH bash -ex $INSTALLROOT/relocate-me.sh
|
|
144
|
+
fi
|
|
143
145
|
popd
|
|
144
146
|
find $INSTALLROOT -name "*.unrelocated" -delete
|
|
145
147
|
rm -rf $WORK_DIR/TMP/$PKGHASH
|
|
@@ -148,6 +150,9 @@ fi
|
|
|
148
150
|
# Regenerate init.sh, in case the package build clobbered it. This
|
|
149
151
|
# particularly happens in the AliEn-Runtime package, since it copies other
|
|
150
152
|
# packages into its installroot wholesale.
|
|
153
|
+
# Notice how we only do it if $INSTALLROOT is writeable. If it is
|
|
154
|
+
# not, we assume it points to a CVMFS store which should be left untouched.
|
|
155
|
+
if [ -w $INSTALLROOT ]; then
|
|
151
156
|
mkdir -p "$INSTALLROOT/etc/profile.d"
|
|
152
157
|
rm -f "$INSTALLROOT/etc/profile.d/init.sh"
|
|
153
158
|
cat <<\EOF > "$INSTALLROOT/etc/profile.d/init.sh"
|
|
@@ -251,6 +256,7 @@ fi
|
|
|
251
256
|
|
|
252
257
|
cat "$INSTALLROOT/relocate-me.sh"
|
|
253
258
|
cat "$INSTALLROOT/.original-unrelocated" | xargs -n1 -I{} cp '{}' '{}'.unrelocated
|
|
259
|
+
fi
|
|
254
260
|
cd "$WORK_DIR/INSTALLROOT/$PKGHASH"
|
|
255
261
|
|
|
256
262
|
# Archive creation
|
|
@@ -283,7 +289,9 @@ wait "$rsync_pid"
|
|
|
283
289
|
|
|
284
290
|
# We've copied files into their final place; now relocate.
|
|
285
291
|
cd "$WORK_DIR"
|
|
286
|
-
|
|
292
|
+
if [ -w "$WORK_DIR/$ARCHITECTURE/$PKGNAME/$PKGVERSION-$PKGREVISION" ]; then
|
|
293
|
+
bash -ex "$ARCHITECTURE/$PKGNAME/$PKGVERSION-$PKGREVISION/relocate-me.sh"
|
|
294
|
+
fi
|
|
287
295
|
# Last package built gets a "latest" mark.
|
|
288
296
|
ln -snf $PKGVERSION-$PKGREVISION $ARCHITECTURE/$PKGNAME/latest
|
|
289
297
|
|
|
@@ -294,7 +302,9 @@ fi
|
|
|
294
302
|
|
|
295
303
|
# When the package is definitely fully installed, install the file that marks
|
|
296
304
|
# the package as successful.
|
|
297
|
-
|
|
305
|
+
if [ -w "$WORK_DIR/$PKGPATH" ]; then
|
|
306
|
+
echo "$PKGHASH" > "$WORK_DIR/$PKGPATH/.build-hash"
|
|
307
|
+
fi
|
|
298
308
|
# Mark the build as successful with a placeholder. Allows running incremental
|
|
299
309
|
# recipe in case the package is in development mode.
|
|
300
310
|
echo "${DEVEL_HASH}${DEPS_HASH}" > "$BUILDDIR/.build_succeeded"
|
|
@@ -22,6 +22,8 @@ def remote_from_url(read_url, write_url, architecture, work_dir, insecure=False)
|
|
|
22
22
|
return S3RemoteSync(read_url, write_url, architecture, work_dir)
|
|
23
23
|
if read_url.startswith("b3://"):
|
|
24
24
|
return Boto3RemoteSync(read_url, write_url, architecture, work_dir)
|
|
25
|
+
if read_url.startswith("cvmfs://"):
|
|
26
|
+
return CVMFSRemoteSync(read_url, None, architecture, work_dir)
|
|
25
27
|
if read_url:
|
|
26
28
|
return RsyncRemoteSync(read_url, write_url, architecture, work_dir)
|
|
27
29
|
return NoRemoteSync()
|
|
@@ -304,6 +306,74 @@ class RsyncRemoteSync:
|
|
|
304
306
|
revision=spec["revision"],
|
|
305
307
|
)), "Unable to upload tarball.")
|
|
306
308
|
|
|
309
|
+
class CVMFSRemoteSync:
|
|
310
|
+
""" Sync packages build directory from CVMFS or similar
|
|
311
|
+
FS based deployment. The tarball will be created on the fly with a single
|
|
312
|
+
symlink to the remote store in it, so that unpacking really
|
|
313
|
+
means unpacking the symlink to the wanted package.
|
|
314
|
+
"""
|
|
315
|
+
|
|
316
|
+
def __init__(self, remoteStore, writeStore, architecture, workdir):
|
|
317
|
+
self.remoteStore = re.sub("^cvmfs://", "", remoteStore)
|
|
318
|
+
# We do not support uploading directly to CVMFS, for obvious
|
|
319
|
+
# reasons.
|
|
320
|
+
assert(writeStore == None)
|
|
321
|
+
self.writeStore = None
|
|
322
|
+
self.architecture = architecture
|
|
323
|
+
self.workdir = workdir
|
|
324
|
+
|
|
325
|
+
def fetch_tarball(self, spec):
|
|
326
|
+
info("Downloading tarball for %s@%s-%s, if available", spec["package"], spec["version"], spec["revision"])
|
|
327
|
+
# If we already have a tarball with any equivalent hash, don't check S3.
|
|
328
|
+
for pkg_hash in spec["remote_hashes"] + spec["local_hashes"]:
|
|
329
|
+
store_path = resolve_store_path(self.architecture, pkg_hash)
|
|
330
|
+
pattern = os.path.join(self.workdir, store_path, "%s-*.tar.gz" % spec["package"])
|
|
331
|
+
if glob.glob(pattern):
|
|
332
|
+
info("Reusing existing tarball for %s@%s", spec["package"], pkg_hash)
|
|
333
|
+
return
|
|
334
|
+
info("Could not find prebuilt tarball for %s@%s-%s, will be rebuilt",
|
|
335
|
+
spec["package"], spec["version"], spec["revision"])
|
|
336
|
+
|
|
337
|
+
def fetch_symlinks(self, spec):
|
|
338
|
+
# When using CVMFS, we create the symlinks grass by reading the .
|
|
339
|
+
info("Fetching available build hashes for %s, from %s", spec["package"], self.remoteStore)
|
|
340
|
+
links_path = resolve_links_path(self.architecture, spec["package"])
|
|
341
|
+
os.makedirs(os.path.join(self.workdir, links_path), exist_ok=True)
|
|
342
|
+
|
|
343
|
+
cvmfs_architecture = re.sub(r"slc(\d+)_x86-64", r"el\1-x86_64", self.architecture)
|
|
344
|
+
err = execute("""\
|
|
345
|
+
set -x
|
|
346
|
+
# Exit without error in case we do not have any package published
|
|
347
|
+
test -d "{remote_store}/{cvmfs_architecture}/Packages/{package}" || exit 0
|
|
348
|
+
mkdir -p "{workDir}/{links_path}"
|
|
349
|
+
for install_path in $(find "{remote_store}/{cvmfs_architecture}/Packages/{package}" -type d -mindepth 1 -maxdepth 1); do
|
|
350
|
+
full_version="${{install_path##*/}}"
|
|
351
|
+
tarball={package}-$full_version.{architecture}.tar.gz
|
|
352
|
+
pkg_hash=$(cat "${{install_path}}/.build-hash" || jq -r '.package.hash' <${{install_path}}/.meta.json)
|
|
353
|
+
if [ "X$pkg_hash" = X ]; then
|
|
354
|
+
continue
|
|
355
|
+
fi
|
|
356
|
+
ln -sf ../../{architecture}/store/${{pkg_hash:0:2}}/$pkg_hash/$tarball "{workDir}/{links_path}/$tarball"
|
|
357
|
+
# Create the dummy tarball, if it does not exists
|
|
358
|
+
test -f "{workDir}/{architecture}/store/${{pkg_hash:0:2}}/$pkg_hash/$tarball" && continue
|
|
359
|
+
mkdir -p "{workDir}/INSTALLROOT/$pkg_hash/{architecture}/{package}"
|
|
360
|
+
ln -sf "{remote_store}/{cvmfs_architecture}/Packages/{package}/$full_version" "{workDir}/INSTALLROOT/$pkg_hash/{architecture}/{package}"
|
|
361
|
+
mkdir -p "{workDir}/TARS/{architecture}/store/${{pkg_hash:0:2}}/$pkg_hash"
|
|
362
|
+
tar -C "{workDir}/INSTALLROOT/$pkg_hash" -czf "{workDir}/TARS/{architecture}/store/${{pkg_hash:0:2}}/$pkg_hash/$tarball" .
|
|
363
|
+
rm -rf "{workDir}/INSTALLROOT/$pkg_hash"
|
|
364
|
+
done
|
|
365
|
+
""".format(
|
|
366
|
+
workDir=self.workdir,
|
|
367
|
+
b=self.remoteStore,
|
|
368
|
+
architecture=self.architecture,
|
|
369
|
+
cvmfs_architecture=cvmfs_architecture,
|
|
370
|
+
package=spec["package"],
|
|
371
|
+
remote_store=self.remoteStore,
|
|
372
|
+
links_path=links_path,
|
|
373
|
+
))
|
|
374
|
+
|
|
375
|
+
def upload_symlinks_and_tarball(self, spec):
|
|
376
|
+
dieOnError(self.writeStore, "CVMFS backend does not support uploading directly")
|
|
307
377
|
|
|
308
378
|
class S3RemoteSync:
|
|
309
379
|
"""Sync package build directory from and to S3 using s3cmd.
|
|
Binary file
|
|
@@ -330,3 +330,17 @@ git config --global credential.helper 'cache --timeout 3600'
|
|
|
330
330
|
```
|
|
331
331
|
|
|
332
332
|
You can adjust the timeout (3600 seconds, above) to your liking, if you would prefer git to remember your passwords for longer.
|
|
333
|
+
|
|
334
|
+
#### I get an HTTP/2 related error
|
|
335
|
+
|
|
336
|
+
Some network provider do not support HTTP/2 apparently. If you get:
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
or similar message, try to disable HTTP/2 with something like:
|
|
343
|
+
|
|
344
|
+
```
|
|
345
|
+
git config --global http.version HTTP/1.1
|
|
346
|
+
```
|
|
@@ -4,6 +4,9 @@ repo_url: https://github.com/alisw/alibuild
|
|
|
4
4
|
|
|
5
5
|
theme:
|
|
6
6
|
name: material
|
|
7
|
+
logo: alice_logo.png
|
|
8
|
+
|
|
9
|
+
extra_css: [stylesheets/extra.css]
|
|
7
10
|
|
|
8
11
|
use_directory_urls: false
|
|
9
12
|
|
|
@@ -12,6 +15,7 @@ nav:
|
|
|
12
15
|
- Quickstart: quick.md
|
|
13
16
|
- User manual: user.md
|
|
14
17
|
- Reference: reference.md
|
|
18
|
+
- Troubleshooting: troubleshooting.md
|
|
15
19
|
- ALICE/O2 tutorial: "https://alice-doc.github.io/alice-analysis-tutorial/building/"
|
|
16
20
|
|
|
17
21
|
markdown_extensions:
|
|
@@ -24,3 +28,9 @@ markdown_extensions:
|
|
|
24
28
|
- pymdownx.superfences
|
|
25
29
|
- toc:
|
|
26
30
|
permalink: "#"
|
|
31
|
+
|
|
32
|
+
plugins:
|
|
33
|
+
- redirects:
|
|
34
|
+
redirect_maps:
|
|
35
|
+
'o2-tutorial.html': 'https://alice-doc.github.io/alice-analysis-tutorial/building/'
|
|
36
|
+
'tutorial.html': 'https://alice-doc.github.io/alice-analysis-tutorial/building/'
|
|
@@ -58,7 +58,7 @@ setup(
|
|
|
58
58
|
'Programming Language :: Python :: 3.10', # ubuntu2204
|
|
59
59
|
'Programming Language :: Python :: 3.11', # MacOS
|
|
60
60
|
'Programming Language :: Python :: 3.12', # MacOS
|
|
61
|
-
],
|
|
61
|
+
] + ['packaging<=23'] if sys.version_info <(3, 7) else [],
|
|
62
62
|
|
|
63
63
|
# What does your project relate to?
|
|
64
64
|
keywords='HEP ALICE',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|