alibuild 1.17.7__tar.gz → 1.17.10__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.
Files changed (95) hide show
  1. {alibuild-1.17.7 → alibuild-1.17.10}/.github/workflows/documentation.yml +1 -1
  2. {alibuild-1.17.7 → alibuild-1.17.10}/PKG-INFO +1 -1
  3. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild.egg-info/PKG-INFO +1 -1
  4. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild.egg-info/SOURCES.txt +2 -2
  5. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/_version.py +2 -2
  6. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/args.py +4 -1
  7. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/build.py +12 -6
  8. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/build_template.sh +13 -3
  9. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/sync.py +70 -0
  10. alibuild-1.17.10/docs/docs/alice_logo.png +0 -0
  11. alibuild-1.17.10/docs/docs/stylesheets/extra.css +7 -0
  12. {alibuild-1.17.7 → alibuild-1.17.10}/docs/docs/troubleshooting.md +14 -0
  13. {alibuild-1.17.7 → alibuild-1.17.10}/docs/mkdocs.yml +10 -0
  14. {alibuild-1.17.7 → alibuild-1.17.10}/setup.py +1 -1
  15. alibuild-1.17.7/docs/docs/o2-tutorial.md +0 -5
  16. alibuild-1.17.7/docs/docs/tutorial.md +0 -5
  17. {alibuild-1.17.7 → alibuild-1.17.10}/.flake8 +0 -0
  18. {alibuild-1.17.7 → alibuild-1.17.10}/.github/workflows/pr-check.yml +0 -0
  19. {alibuild-1.17.7 → alibuild-1.17.10}/.github/workflows/release.yml +0 -0
  20. {alibuild-1.17.7 → alibuild-1.17.10}/.gitignore +0 -0
  21. {alibuild-1.17.7 → alibuild-1.17.10}/.pylintrc +0 -0
  22. {alibuild-1.17.7 → alibuild-1.17.10}/ANALYTICS.md +0 -0
  23. {alibuild-1.17.7 → alibuild-1.17.10}/DESIGN.md +0 -0
  24. {alibuild-1.17.7 → alibuild-1.17.10}/Jenkinsfile +0 -0
  25. {alibuild-1.17.7 → alibuild-1.17.10}/LICENSE.md +0 -0
  26. {alibuild-1.17.7 → alibuild-1.17.10}/MANIFEST.in +0 -0
  27. {alibuild-1.17.7 → alibuild-1.17.10}/PACKAGING.md +0 -0
  28. {alibuild-1.17.7 → alibuild-1.17.10}/README.rst +0 -0
  29. {alibuild-1.17.7 → alibuild-1.17.10}/alfaBuild +0 -0
  30. {alibuild-1.17.7 → alibuild-1.17.10}/aliBuild +0 -0
  31. {alibuild-1.17.7 → alibuild-1.17.10}/aliDeps +0 -0
  32. {alibuild-1.17.7 → alibuild-1.17.10}/aliDoctor +0 -0
  33. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild.egg-info/dependency_links.txt +0 -0
  34. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild.egg-info/requires.txt +0 -0
  35. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild.egg-info/top_level.txt +0 -0
  36. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/__init__.py +0 -0
  37. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/analytics.py +0 -0
  38. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/clean.py +0 -0
  39. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/cmd.py +0 -0
  40. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/deps.py +0 -0
  41. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/doctor.py +0 -0
  42. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/git.py +0 -0
  43. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/init.py +0 -0
  44. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/log.py +0 -0
  45. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/scm.py +0 -0
  46. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/sl.py +0 -0
  47. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/templating_plugin.py +0 -0
  48. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/utilities.py +0 -0
  49. {alibuild-1.17.7 → alibuild-1.17.10}/alibuild_helpers/workarea.py +0 -0
  50. {alibuild-1.17.7 → alibuild-1.17.10}/alienv +0 -0
  51. {alibuild-1.17.7 → alibuild-1.17.10}/codecov.yml +0 -0
  52. {alibuild-1.17.7 → alibuild-1.17.10}/debian/changelog +0 -0
  53. {alibuild-1.17.7 → alibuild-1.17.10}/debian/compat +0 -0
  54. {alibuild-1.17.7 → alibuild-1.17.10}/debian/control +0 -0
  55. {alibuild-1.17.7 → alibuild-1.17.10}/debian/copyright +0 -0
  56. {alibuild-1.17.7 → alibuild-1.17.10}/debian/files +0 -0
  57. {alibuild-1.17.7 → alibuild-1.17.10}/debian/rules +0 -0
  58. {alibuild-1.17.7 → alibuild-1.17.10}/docs/README.md +0 -0
  59. {alibuild-1.17.7 → alibuild-1.17.10}/docs/SUPPORT +0 -0
  60. {alibuild-1.17.7 → alibuild-1.17.10}/docs/docs/deps.png +0 -0
  61. {alibuild-1.17.7 → alibuild-1.17.10}/docs/docs/index.md +0 -0
  62. {alibuild-1.17.7 → alibuild-1.17.10}/docs/docs/quick.md +0 -0
  63. {alibuild-1.17.7 → alibuild-1.17.10}/docs/docs/reference.md +0 -0
  64. {alibuild-1.17.7 → alibuild-1.17.10}/docs/docs/user.md +0 -0
  65. {alibuild-1.17.7 → alibuild-1.17.10}/pb +0 -0
  66. {alibuild-1.17.7 → alibuild-1.17.10}/pyproject.toml +0 -0
  67. {alibuild-1.17.7 → alibuild-1.17.10}/requirements.txt +0 -0
  68. {alibuild-1.17.7 → alibuild-1.17.10}/setup.cfg +0 -0
  69. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_analytics.py +0 -0
  70. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_args.py +0 -0
  71. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_build.py +0 -0
  72. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_clean.py +0 -0
  73. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_cmd.py +0 -0
  74. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_deps.py +0 -0
  75. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_doctor.py +0 -0
  76. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_git.py +0 -0
  77. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_hashing.py +0 -0
  78. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_init.py +0 -0
  79. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_log.py +0 -0
  80. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_packagelist.py +0 -0
  81. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_parseRecipe.py +0 -0
  82. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_sync.py +0 -0
  83. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_utilities.py +0 -0
  84. {alibuild-1.17.7 → alibuild-1.17.10}/tests/test_workarea.py +0 -0
  85. {alibuild-1.17.7 → alibuild-1.17.10}/tests/testdist/broken1.sh +0 -0
  86. {alibuild-1.17.7 → alibuild-1.17.10}/tests/testdist/broken2.sh +0 -0
  87. {alibuild-1.17.7 → alibuild-1.17.10}/tests/testdist/broken3.sh +0 -0
  88. {alibuild-1.17.7 → alibuild-1.17.10}/tests/testdist/broken4.sh +0 -0
  89. {alibuild-1.17.7 → alibuild-1.17.10}/tests/testdist/broken5.sh +0 -0
  90. {alibuild-1.17.7 → alibuild-1.17.10}/tests/testdist/broken6.sh +0 -0
  91. {alibuild-1.17.7 → alibuild-1.17.10}/tests/testdist/broken7.sh +0 -0
  92. {alibuild-1.17.7 → alibuild-1.17.10}/tests/testdist/clobber-initdotsh.sh +0 -0
  93. {alibuild-1.17.7 → alibuild-1.17.10}/tests/testdist/defaults-o2.sh +0 -0
  94. {alibuild-1.17.7 → alibuild-1.17.10}/tests/testdist/delete-etc.sh +0 -0
  95. {alibuild-1.17.7 → alibuild-1.17.10}/tox.ini +0 -0
@@ -25,6 +25,6 @@ jobs:
25
25
  restore-keys: |
26
26
  mkdocs-material-
27
27
  - run: |
28
- pip install mkdocs-material
28
+ pip install mkdocs-material mkdocs-redirects
29
29
  cd docs
30
30
  mkdocs gh-deploy --force # Always keep in sync with master branch
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: alibuild
3
- Version: 1.17.7
3
+ Version: 1.17.10
4
4
  Summary: ALICE Build Tool
5
5
  Home-page: https://alisw.github.io/alibuild
6
6
  Author: Giulio Eulisse
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: alibuild
3
- Version: 1.17.7
3
+ Version: 1.17.10
4
4
  Summary: ALICE Build Tool
5
5
  Home-page: https://alisw.github.io/alibuild
6
6
  Author: Giulio Eulisse
@@ -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
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.17.7'
16
- __version_tuple__ = version_tuple = (1, 17, 7)
15
+ __version__ = version = '1.17.10'
16
+ __version_tuple__ = version_tuple = (1, 17, 10)
@@ -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
- hashFile = "%s/%s/%s/%s-%s/.build-hash" % (workDir,
903
- args.architecture,
904
- spec["package"],
905
- spec["version"],
906
- spec["revision"])
907
- fileHash = readHashFile(hashFile)
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
- WORK_DIR=$WORK_DIR/INSTALLROOT/$PKGHASH bash -ex $INSTALLROOT/relocate-me.sh
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
- bash -ex "$ARCHITECTURE/$PKGNAME/$PKGVERSION-$PKGREVISION/relocate-me.sh"
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
- echo "$PKGHASH" > "$WORK_DIR/$PKGPATH/.build-hash"
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.
@@ -0,0 +1,7 @@
1
+ .md-header__button.md-logo img, .md-header__button.md-logo svg {
2
+ height: 1.5rem;
3
+ }
4
+
5
+ .md-header {
6
+ background-color: #111;
7
+ }
@@ -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/'
@@ -81,7 +81,7 @@ setup(
81
81
  # The 7.* series removed support for Python 3.6.
82
82
  'setuptools_scm<7.0.0' if sys.version_info < (3, 7) else
83
83
  'setuptools_scm'
84
- ],
84
+ ] + (['packaging<=23'] if sys.version_info <(3, 7) else []),
85
85
 
86
86
  # List run-time dependencies here. These will be installed by pip when
87
87
  # your project is installed. For an analysis of "install_requires" vs pip's
@@ -1,5 +0,0 @@
1
- ---
2
- subtitle: O2 build tutorial
3
- dest_url: https://alice-doc.github.io/alice-analysis-tutorial/building/
4
- layout: redirect
5
- ---
@@ -1,5 +0,0 @@
1
- ---
2
- subtitle: Basic tutorial
3
- dest_url: https://alice-doc.github.io/alice-analysis-tutorial/building/
4
- layout: redirect
5
- ---
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