##// END OF EJS Templates
branching: merge stable into default
Raphaël Gomès -
r53175:51a350a2 merge default
parent child Browse files
Show More
@@ -0,0 +1,35
1 #!/bin/sh
2
3 # This is a convenience script to build all of the wheels outside of the CI
4 # system. It requires the cibuildwheel package to be installed, and the
5 # executable on PATH, as well as `msgfmt` from gettext, which can be installed
6 # with `brew` as follows:
7 #
8 # $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
9 # $ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
10 # <logout>
11 # $ brew install gettext
12 #
13 # A system-wide installation of the version of python corresponding to each
14 # wheel is required. They can be installed by this script by setting `CI=true`
15 # in the environment before running it, and providing the `sudo` password when
16 # prompted.
17
18 set -e
19
20 # Build translations; requires msgfmt on PATH.
21 export MERCURIAL_SETUP_FORCE_TRANSLATIONS=1
22
23 if ! which msgfmt 2>/dev/null 1>/dev/null; then
24 echo "msgfmt executable not found" >&2
25 exit 1
26 fi
27
28 # Prevent building pypy wheels, which is broken.
29 export CIBW_SKIP=pp*
30
31 export CIBW_ARCHS=universal2
32
33 # TODO: purge the repo?
34
35 cibuildwheel --output-dir dist/wheels
@@ -0,0 +1,37
1 @echo off
2
3 REM - This is a convenience script to build all of the wheels outside of the CI
4 REM - system. It requires the cibuildwheel package to be installed, and the
5 REM - executable on PATH, as well as `msgfmt.exe` from gettext and the x86,
6 REM - amd64, and arm64 compilers from VS BuildTools. These can be obtained by
7 REM - running `contrib/install-windows-dependencies.ps1`.
8
9 REM - None of the variable set here live past this script exiting.
10 setlocal
11
12 REM - Build translations; requires msgfmt.exe on PATH.
13 set MERCURIAL_SETUP_FORCE_TRANSLATIONS=1
14
15 REM - Prevent building pypy wheels, which is broken.
16 set CIBW_SKIP=pp*
17
18 REM - Disable warning about not being able to test without an arm64 runner.
19 set CIBW_TEST_SKIP=*-win_arm64
20
21
22 REM - arm64 support starts with py39, but the first arm64 installer wasn't
23 REM - available until py311, so skip arm64 on the older, EOL versions.
24 set CIBW_ARCHS=x86 AMD64
25 set CIBW_BUILD=cp38-* cp39-* cp310-*
26
27 cibuildwheel --output-dir dist/wheels
28
29 if %errorlevel% neq 0 exit /b %errorlevel%
30
31
32 set CIBW_ARCHS=x86 AMD64 ARM64
33 set CIBW_BUILD=cp311-* cp312-* cp313-*
34
35 cibuildwheel --output-dir dist/wheels
36
37 if %errorlevel% neq 0 exit /b %errorlevel%
@@ -268,3 +268,4 11a9e2fc0caf0800625612e374139e4d825349a6
268 eae3ec345e5e62e653de32a87a70f6fa7241afde 0 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
@@ -284,3 +284,4 11a9e2fc0caf0800625612e374139e4d825349a6
284 eae3ec345e5e62e653de32a87a70f6fa7241afde 6.8.2
284 eae3ec345e5e62e653de32a87a70f6fa7241afde 6.8.2
285 dc97e8670decc9925c2f570bdca636778184b199 6.9rc0
285 dc97e8670decc9925c2f570bdca636778184b199 6.9rc0
286 31d45a1cbc479ac73fc8b355abe99e090eb6c747 6.9rc1
286 31d45a1cbc479ac73fc8b355abe99e090eb6c747 6.9rc1
287 b267c5764cc6b804c619a42067405f27e8705beb 6.9
@@ -226,12 +226,14 packaging_targets := \
226 fedora \
226 fedora \
227 linux-wheels \
227 linux-wheels \
228 linux-wheels-x86_64 \
228 linux-wheels-x86_64 \
229 linux-wheels-x86_64-musl \
229 linux-wheels-i686 \
230 linux-wheels-i686 \
231 linux-wheels-i686-musl \
230 ppa
232 ppa
231
233
232 # Forward packaging targets for convenience.
234 # Forward packaging targets for convenience.
233 $(packaging_targets):
235 $(packaging_targets):
234 $(MAKE) -C contrib/packaging $@
236 $(MAKE) -C contrib/packaging $(MAKEFLAGS) $@
235
237
236 osx:
238 osx:
237 rm -rf build/mercurial
239 rm -rf build/mercurial
@@ -20,6 +20,7 workflow:
20 when: always
20 when: always
21
21
22 stages:
22 stages:
23 - nightly-trigger
23 - build
24 - build
24 - checks
25 - checks
25 - tests
26 - tests
@@ -31,6 +32,14 stages:
31 image: registry.heptapod.net/mercurial/ci-images/mercurial-core:$HG_CI_IMAGE_TAG
32 image: registry.heptapod.net/mercurial/ci-images/mercurial-core:$HG_CI_IMAGE_TAG
32
33
33 variables:
34 variables:
35 # to debug use:
36 #
37 # RE_BRANCH: '/^topic/.+/.+$/'
38 # RE_TOPIC: '/^xxx/'
39 #
40 # Instead of the two following lines:
41 RE_BRANCH: '/^branch/.+$/'
42 RE_TOPIC: '/^topic/.+/.+$/'
34 PYTHON: python
43 PYTHON: python
35 HG_CI_IMAGE_TAG: "v2.1"
44 HG_CI_IMAGE_TAG: "v2.1"
36 # a directory dedicated to creating files and temporary clone
45 # a directory dedicated to creating files and temporary clone
@@ -48,6 +57,17 variables:
48 # starting.
57 # starting.
49 needs: []
58 needs: []
50
59
60 # dummy job that serve dependencies purpose
61 .dummy:
62 # smallest I know of
63 image: busybox
64 variables:
65 GIT_STRATEGY: none
66 CI_CLEVER_CLOUD_FLAVOR: "XS"
67 script:
68 - echo 'nothing to see here'
69
70
51 # a dummy job that only serve to trigger others
71 # a dummy job that only serve to trigger others
52 #
72 #
53 # This is useful for two reasons:
73 # This is useful for two reasons:
@@ -55,15 +75,21 variables:
55 # - manual starting job cannot make the pipeline "fails" and block a merge,
75 # - manual starting job cannot make the pipeline "fails" and block a merge,
56 # while "on_success" job depending on manual trigger works fine in that regard.
76 # while "on_success" job depending on manual trigger works fine in that regard.
57 .trigger:
77 .trigger:
58 extends: .all
78 extends:
59 # smallest I know of
79 - .all
60 image: busybox
80 - .dummy
61 when: manual
81 when: manual
62 variables:
82
63 GIT_STRATEGY: none
83
64 CI_CLEVER_CLOUD_FLAVOR: "XS"
84 trigger-nightly-build:
65 script:
85 extends: .trigger
66 - echo 'nothing to see here'
86 stage: nightly-trigger
87 rules:
88 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
89 when: manual
90 allow_failure: true
91 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
92 when: never
67
93
68 .build-wheel:
94 .build-wheel:
69 extends: .all
95 extends: .all
@@ -86,6 +112,8 variables:
86 - wheels/
112 - wheels/
87 expire_in: 1 week
113 expire_in: 1 week
88
114
115
116 # build linux wheel for amd64
89 build-c-wheel:
117 build-c-wheel:
90 extends: .build-wheel
118 extends: .build-wheel
91 variables:
119 variables:
@@ -100,6 +128,115 build-c-wheel:
100 - cp312-cp312
128 - cp312-cp312
101 - cp313-cp313
129 - cp313-cp313
102
130
131 trigger-wheel-musl:
132 extends: .trigger
133 stage: build
134 rules:
135 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
136 when: never
137 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
138 when: manual
139 allow_failure: true
140
141 build-c-wheel-musl:
142 extends: build-c-wheel
143 image: "registry.heptapod.net/mercurial/ci-images/core-wheel-x86_64-musl-c:v3.0"
144 rules:
145 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
146 needs:
147 - trigger-nightly-build
148 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
149 needs:
150 - "trigger-wheel-musl"
151
152 trigger-wheel-i686:
153 extends: .trigger
154 stage: build
155 rules:
156 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
157 when: never
158 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
159 when: manual
160 allow_failure: true
161
162 build-c-wheel-i686:
163 extends: build-c-wheel
164 image: "registry.heptapod.net/mercurial/ci-images/core-wheel-i686-c:v3.0"
165 rules:
166 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
167 needs:
168 - trigger-nightly-build
169 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
170 needs:
171 - "trigger-wheel-i686"
172
173 trigger-wheel-i686-musl:
174 extends: .trigger
175 stage: build
176 rules:
177 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
178 when: never
179 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
180 when: manual
181 allow_failure: true
182
183 build-c-wheel-i686-musl:
184 extends: build-c-wheel
185 image: "registry.heptapod.net/mercurial/ci-images/core-wheel-i686-musl-c:v3.0"
186 rules:
187 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
188 needs:
189 - trigger-nightly-build
190 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
191 needs:
192 - "trigger-wheel-i686-musl"
193
194 trigger-wheel-arm64:
195 extends: .trigger
196 stage: build
197 rules:
198 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
199 when: never
200 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
201 when: manual
202 allow_failure: true
203
204 build-c-wheel-arm64:
205 extends: build-c-wheel
206 image: "registry.heptapod.net/mercurial/ci-images/core-wheel-arm64-c:v3.0"
207 tags:
208 - arm64
209 rules:
210 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
211 needs:
212 - trigger-nightly-build
213 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
214 needs:
215 - "trigger-wheel-arm64"
216
217 trigger-wheel-arm64-musl:
218 extends: .trigger
219 stage: build
220 rules:
221 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
222 when: never
223 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
224 when: manual
225 allow_failure: true
226
227 build-c-wheel-arm64-musl:
228 extends: build-c-wheel
229 image: "registry.heptapod.net/mercurial/ci-images/core-wheel-arm64-musl-c:v3.0"
230 tags:
231 - arm64
232 rules:
233 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
234 needs:
235 - trigger-nightly-build
236 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
237 needs:
238 - "trigger-wheel-arm64-musl"
239
103 .runtests:
240 .runtests:
104 extends: .all
241 extends: .all
105 stage: tests
242 stage: tests
@@ -225,12 +362,18 test-chg:
225 trigger-pycompat:
362 trigger-pycompat:
226 extends: .trigger
363 extends: .trigger
227 stage: py-version-compat
364 stage: py-version-compat
365 rules:
366 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
367 when: on_success
368 needs:
369 - trigger-nightly-build
370 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
371 when: manual
372 allow_failure: true
228
373
229 .test-c-pycompat:
374 .test-c-pycompat:
230 extends: .test-c
375 extends: .test-c
231 stage: py-version-compat
376 stage: py-version-compat
232 needs:
233 - trigger-pycompat
234 variables:
377 variables:
235 WHEEL_TYPE: "c"
378 WHEEL_TYPE: "c"
236
379
@@ -242,6 +385,7 test-3.8-c:
242 variables:
385 variables:
243 PYTHON: python3.8
386 PYTHON: python3.8
244 needs:
387 needs:
388 - job: trigger-pycompat
245 - job: build-c-wheel
389 - job: build-c-wheel
246 parallel:
390 parallel:
247 matrix:
391 matrix:
@@ -252,6 +396,7 test-3.12-c:
252 variables:
396 variables:
253 PYTHON: python3.12
397 PYTHON: python3.12
254 needs:
398 needs:
399 - job: trigger-pycompat
255 - job: build-c-wheel
400 - job: build-c-wheel
256 parallel:
401 parallel:
257 matrix:
402 matrix:
@@ -270,6 +415,7 test-3.13-c:
270 variables:
415 variables:
271 PYTHON: python3.13
416 PYTHON: python3.13
272 needs:
417 needs:
418 - job: trigger-pycompat
273 - job: build-c-wheel
419 - job: build-c-wheel
274 parallel:
420 parallel:
275 matrix:
421 matrix:
@@ -319,6 +465,12 check-pytype:
319 trigger-wheel-windows:
465 trigger-wheel-windows:
320 extends: .trigger
466 extends: .trigger
321 stage: build
467 stage: build
468 rules:
469 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
470 when: never
471 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
472 when: manual
473 allow_failure: true
322
474
323 build-c-wheel-windows:
475 build-c-wheel-windows:
324 extends: .windows
476 extends: .windows
@@ -326,7 +478,13 build-c-wheel-windows:
326 # wait for someone to click on "trigger-wheel-windows"
478 # wait for someone to click on "trigger-wheel-windows"
327 when: on_success
479 when: on_success
328 needs:
480 needs:
329 - "trigger-wheel-windows"
481 rules:
482 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
483 needs:
484 - trigger-nightly-build
485 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
486 needs:
487 - "trigger-wheel-windows"
330 variables:
488 variables:
331 MERCURIAL_SETUP_FORCE_TRANSLATIONS: "1"
489 MERCURIAL_SETUP_FORCE_TRANSLATIONS: "1"
332 script:
490 script:
@@ -444,7 +602,13 macos:
444 # The weird directory structure match the one we use for Linux to deal with the
602 # The weird directory structure match the one we use for Linux to deal with the
445 # multiple jobs. (all this might be unnecessary)
603 # multiple jobs. (all this might be unnecessary)
446 build-c-wheel-macos:
604 build-c-wheel-macos:
447 when: manual # avoid overloading the CI by default
605 rules:
606 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
607 needs:
608 - trigger-nightly-build
609 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
610 when: manual # avoid overloading the CI by default
611 allow_failure: true
448 stage: build
612 stage: build
449 tags:
613 tags:
450 - macos
614 - macos
@@ -464,6 +628,74 build-c-wheel-macos:
464 - wheels
628 - wheels
465 expire_in: 1 week
629 expire_in: 1 week
466
630
631
632 .nightly_build_step:
633 extends: .all
634 stage: upload
635 rules:
636 - if: '$CI_COMMIT_BRANCH =~ $RE_BRANCH'
637 # note that at the time of writing this, this job depends on multiple
638 # manual one. So it will not run by default, but will automatically run
639 # if the manual jobs are triggered.
640 #
641 # Also beware that "on_success" will ignore failure of manual test we
642 # directly depends on. This currently relevant for the "test-3.x-c"
643 # tests.
644 when: on_success
645 - if: '$CI_COMMIT_BRANCH =~ $RE_TOPIC'
646 when: never
647
648 # a dummy job that gather greatly parallel object into one.
649 #
650 # It exists because gitlab-ci has a "50 jobs" limit on "needs" entries.
651 # (yes, this is sad)
652 #
653 .sink:
654 extends:
655 - .nightly_build_step
656 - .dummy
657
658 test-result-linux:
659 extends: .sink
660 needs:
661 - test-c
662 - test-3.8-c
663 - test-3.12-c
664 - test-3.13-c
665
666 test-result-macos:
667 extends: .sink
668 needs:
669 - macos
670
671 test-result-windows:
672 extends: .sink
673 needs:
674 - windows
675
676 wheel-result-linux:
677 extends: .sink
678 needs:
679 - build-c-wheel
680 - build-c-wheel-musl
681 - build-c-wheel-i686
682 - build-c-wheel-i686-musl
683 - build-c-wheel-arm64
684 - build-c-wheel-arm64-musl
685 artifacts:
686 paths:
687 - wheels
688 expire_in: 1 week
689
690 wheel-result-windows:
691 extends: .sink
692 needs:
693 - build-c-wheel-windows
694 artifacts:
695 paths:
696 - wheels
697 expire_in: 1 week
698
467 # Upload nightly build wheel on the heptapod registry on test success
699 # Upload nightly build wheel on the heptapod registry on test success
468 #
700 #
469 # At the time this task is added, since the mac wheels are built on shell
701 # At the time this task is added, since the mac wheels are built on shell
@@ -474,38 +706,17 build-c-wheel-macos:
474 # have to prevent the CI token to upload to the registry and have dedicated
706 # have to prevent the CI token to upload to the registry and have dedicated
475 # credential accessible only from protected branches.
707 # credential accessible only from protected branches.
476 upload-wheel-nightly:
708 upload-wheel-nightly:
477 extends: .all
709 extends: .nightly_build_step
478 image: "registry.heptapod.net/mercurial/ci-images/twine:v3.0"
710 image: "registry.heptapod.net/mercurial/ci-images/twine:v3.0"
479 stage: upload
480 # because we don't want to upload only half of a wheel
711 # because we don't want to upload only half of a wheel
481 interruptible: false
712 interruptible: false
482 rules:
483 - if: $CI_COMMIT_BRANCH =~ /^branch\/.*/
484 # note that at the time of writing this, this job depends on multiple
485 # manual one. So it will not run by default, but will automatically run
486 # if the manual jobs are triggered.
487 #
488 # Also beware that "on_success" will ignore failure of manual test we
489 # directly depends on. This currently relevant for the "test-3.x-c"
490 # tests.
491 when: on_success
492 - if: $CI_COMMIT_BRANCH =~ /^topic\/.*/
493 when: never
494 # if you need to test this, make it
495 # when: manual
496 # allow_failure: true
497 needs:
713 needs:
498 - build-c-wheel
714 - wheel-result-linux
715 - wheel-result-windows
499 - build-c-wheel-macos
716 - build-c-wheel-macos
500 - build-c-wheel-windows
717 - test-result-linux
501 - test-c
718 - test-result-macos
502 - macos
719 - test-result-windows
503 # if we also requires windows to be happy, reach the "50 needed jobs" limit.
504 # So we need some intermediate job to reduce the number.
505 # - windows
506 - test-3.8-c
507 - test-3.12-c
508 - test-3.13-c
509 # It would be nice to be able to restrict that a bit to protected branch only
720 # It would be nice to be able to restrict that a bit to protected branch only
510 variables:
721 variables:
511 TWINE_USERNAME: gitlab-ci-token
722 TWINE_USERNAME: gitlab-ci-token
@@ -183,7 +183,7 function Install-Dependencies($prefix) {
183 Install-Python3 "Python 3.13 64-bit" ${prefix}\assets\python313-x64.exe ${prefix}\python313-x64 ${pip}
183 Install-Python3 "Python 3.13 64-bit" ${prefix}\assets\python313-x64.exe ${prefix}\python313-x64 ${pip}
184
184
185 Write-Output "installing Visual Studio 2017 Build Tools and SDKs"
185 Write-Output "installing Visual Studio 2017 Build Tools and SDKs"
186 Invoke-Process ${prefix}\assets\vs_buildtools.exe "--quiet --wait --norestart --nocache --channelUri https://aka.ms/vs/15/release/channel --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Component.Windows10SDK.17763 --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.Windows10SDK --add Microsoft.VisualStudio.Component.VC.140"
186 Invoke-Process ${prefix}\assets\vs_buildtools.exe "--quiet --wait --norestart --nocache --channelUri https://aka.ms/vs/15/release/channel --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Component.Windows10SDK.17763 --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.Windows10SDK --add Microsoft.VisualStudio.Component.VC.140 --add Microsoft.VisualStudio.Component.VC.Tools.ARM64"
187
187
188 Write-Output "installing PyOxidizer"
188 Write-Output "installing PyOxidizer"
189 Invoke-Process msiexec.exe "/i ${prefix}\assets\PyOxidizer.msi /l* ${prefix}\assets\PyOxidizer.log /quiet"
189 Invoke-Process msiexec.exe "/i ${prefix}\assets\PyOxidizer.msi /l* ${prefix}\assets\PyOxidizer.log /quiet"
@@ -45,8 +45,10 help:
45 @echo 'linux-wheels'
45 @echo 'linux-wheels'
46 @echo ' Build Linux manylinux wheels using Docker.'
46 @echo ' Build Linux manylinux wheels using Docker.'
47 @echo ''
47 @echo ''
48 @echo 'linux-wheels-{x86_64, i686}'
48 @echo 'linux-wheels-{x86_64, i686}{,-musl}'
49 @echo ' Build Linux manylinux wheels for a specific architecture using Docker'
49 @echo ' Build Linux manylinux wheels for a specific architecture using Docker'
50 @echo ' The -musl variants is suitable for system using "musl" instead of "glibc",
51 @echo ' for example: Alpine linux.'
50 @echo ''
52 @echo ''
51 @echo 'deb'
53 @echo 'deb'
52 @echo ' Build a Debian package locally targeting the current system'
54 @echo ' Build a Debian package locally targeting the current system'
@@ -125,12 +127,24 endef
125 $(foreach release,$(RHEL_RELEASES),$(eval $(call rhel_targets,$(release))))
127 $(foreach release,$(RHEL_RELEASES),$(eval $(call rhel_targets,$(release))))
126
128
127 .PHONY: linux-wheels
129 .PHONY: linux-wheels
128 linux-wheels: linux-wheels-x86_64 linux-wheels-i686
130 linux-wheels: linux-wheels-x86_64 linux-wheels-x86_64-musl linux-wheels-i686 linux-wheels-i686-musl
131
132 img_reg="registry.heptapod.net/mercurial/ci-images"
133 img_tag="v3.0"
134 whl_sh="/src/contrib/packaging/build-linux-wheels.sh"
129
135
130 .PHONY: linux-wheels-x86_64
136 .PHONY: linux-wheels-x86_64
131 linux-wheels-x86_64:
137 linux-wheels-x86_64:
132 docker run --rm -ti -v `pwd`/../..:/src registry.heptapod.net/mercurial/ci-images/core-wheel-x86_64-c:v3.0 /src/contrib/packaging/build-linux-wheels.sh
138 docker run --rm -ti -v `pwd`/../..:/src $(img_reg)/core-wheel-x86_64-c:$(img_tag) $(whl_sh)
139
140 .PHONY: linux-wheels-x86_64-musl
141 linux-wheels-x86_64-musl:
142 docker run --rm -ti -v `pwd`/../..:/src $(img_reg)/core-wheel-x86_64-musl-c:$(img_tag) $(whl_sh)
133
143
134 .PHONY: linux-wheels-i686
144 .PHONY: linux-wheels-i686
135 linux-wheels-i686:
145 linux-wheels-i686:
136 docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`/../..:/src quay.io/pypa/manylinux1_i686 linux32 /src/contrib/packaging/build-linux-wheels.sh
146 docker run --rm -ti -v `pwd`/../..:/src $(img_reg)/core-wheel-i686-c:$(img_tag) $(whl_sh)
147
148 .PHONY: linux-wheels-i686-musl
149 linux-wheels-i686-musl:
150 docker run --rm -ti -v `pwd`/../..:/src $(img_reg)/core-wheel-i686-musl-c:$(img_tag) $(whl_sh)
@@ -20,14 +20,17 export MERCURIAL_SETUP_FORCE_TRANSLATION
20 # therefor not compatible.
20 # therefor not compatible.
21 cp -r /src/ /tmp/src/
21 cp -r /src/ /tmp/src/
22 cd /tmp/src/
22 cd /tmp/src/
23 hg purge --all --no-confirm
23 # clear potentially cached artifact from the host
24 # (we could narrow this purge probably)
25 hg purge \
26 --ignored \
27 --no-confirm
24
28
25 export HGRCPATH=/tmp/build-config.rc
29
26 cat << EOF > $HGRCPATH
30 if [ ! -e /src/dist/ ]; then
27 [trusted]
31 mkdir -p /src/dist
28 users=*
32 chown `stat /src/ -c %u:%g` /src/dist/
29 groups=*
33 fi
30 EOF
31
34
32 for py in $PYTHON_TARGETS; do
35 for py in $PYTHON_TARGETS; do
33 echo 'build wheel for' $py
36 echo 'build wheel for' $py
@@ -39,6 +42,6 for py in $PYTHON_TARGETS; do
39 contrib/build-one-linux-wheel.sh $py $tmp_wd
42 contrib/build-one-linux-wheel.sh $py $tmp_wd
40 # fix the owner back to the repository owner
43 # fix the owner back to the repository owner
41 chown `stat /src/ -c %u:%g` $tmp_wd/*.whl
44 chown `stat /src/ -c %u:%g` $tmp_wd/*.whl
42 mv $tmp_wd/*.whl /src/dist
45 mv $tmp_wd/*.whl /src/dist/
43 done
46 done
44
47
@@ -1,6 +1,23
1 Mercurial can be augmented with Rust extensions for speeding up certain
1 Mercurial can be augmented with Rust extensions for speeding up certain
2 operations.
2 operations.
3
3
4 Word of Caution
5 ===============
6
7 Using the Rust extension might result in the use of various repository formats
8 that are not supported by non-Rust mercurial. When using a Mercurial
9 without Rust support on the same repositories, you might need to downgrade your
10 repository formats and/or activate cripplingly slow paths for compatibility.
11 For details, see:
12
13 - :hg:`help config.format.use-persistent-nodemap`
14 - :hg:`help config.format.use-dirstate-v2`
15
16 In addition, while the tests are run with the Rust code, there might be
17 subtle undetected divergences from the historical non-Rust code. So keep
18 your eyes open and report any oddity. Rust is not considered a first class
19 citizen to the project yet.
20
4 Compatibility
21 Compatibility
5 =============
22 =============
6
23
@@ -9,6 +26,9 MacOS, FreeBSD and other UNIX-likes have
9 mileage may vary, but by all means do give us feedback or signal your interest
26 mileage may vary, but by all means do give us feedback or signal your interest
10 for better support.
27 for better support.
11
28
29 For compatibility with non-Rust version of Mercurial check the previous "Word of
30 Caution" section.
31
12 No Rust extensions are available for Windows at this time.
32 No Rust extensions are available for Windows at this time.
13
33
14 Features
34 Features
@@ -49,13 +69,19 Using pip
49
69
50 Users of `pip` can install the Rust extensions with the following command::
70 Users of `pip` can install the Rust extensions with the following command::
51
71
52 $ pip install mercurial --global-option --rust --no-use-pep517
72 $ pip install mercurial \
73 --global-option \
74 --rust \
75 --no-use-pep517 \
76 --no-binary mercurial
53
77
54 `--no-use-pep517` is here to tell `pip` to preserve backwards compatibility with
78 `--no-use-pep517` is here to tell `pip` to preserve backwards compatibility with
55 the legacy `setup.py` system. Mercurial has not yet migrated its complex setup
79 the legacy `setup.py` system. Mercurial has not yet migrated its complex setup
56 to the new system, so we still need this to add compiled extensions.
80 to the new system, so we still need this to add compiled extensions.
57
81
58 This might take a couple of minutes because you're compiling everything.
82 `--no-binary` is there to tell pip to not use the pre-compiled wheels that are
83 missing rust support. This might take a couple of minutes because you're
84 compiling everything.
59
85
60 See the "Checking for Rust" section to see if the install succeeded.
86 See the "Checking for Rust" section to see if the install succeeded.
61
87
@@ -1,89 +1,21
1 = Mercurial 6.9rc1 =
1 = Mercurial 6.9 =
2
3 /!\ These are release notes for a release candidate version. Any and all points can be reverted before the final release.
4
2
5 * streamclone: disable the volatile file open handle optimization on Windows
3 == Backwards Compatibility Changes ==
6 * rust-update: make `update_from_null` respect `worker.numcpu` config option
7 * rust-update: handle SIGINT from long-running update threads
8 * rust-cpython: add a TODO about repo reuse
9 * pytype: add relative timestamp to the output if `ts` is available
10 * hgweb: skip logging ConnectionAbortedError
11
12 Below are many, many changes that have to do with building/testing wheels,
13 adding some sharding to the CI and MacOS + Windows compatibility work:
14
4
15 * run-tests: don't use shell call for subprocess
5 * This release drops support for Python 3.6 and 3.7.
16 * run-tests: add a --hg-wheel options to test a pre-built wheel
6 * Starting with this release and hopefully for the forseeable future,
17 * ci: unify the way `check-pytype` inherit the common setting
7 we are now building wheels for most architectures.
18 * ci: split the jobs on more stage
8 /!\ Note that for Rust users installing via `pip` or `pipx`, you will need
19 * ci: build a wheel and use it to run c tests
9 to specify `--no-binary` to continue using Rust since we do not yet package
20 * tests: stabilize `test-extdiff.t` on macOS
10 the Rust compilation in our wheels. We plan on fixing this for 7.0.
21 * tests: disable `test-git-interop.t` with a requirements directive
11 * Python 3.13 changed how it handles docstrings (namely removing uniform
22 * tests: disable a section of `test-hgrc.t` that may hit a zeroconf bug
12 leading whitespace for every line), which forced us to align the
23 * ci: add a runner for Windows 10
13 representation of our help text with this new behavior across all versions.
24 * tests: treat `select` as a built-in module on Windows
14 Due to this and a lack of time and expertise from contributors, a lot of
25 * tests: disable a section of `test-paths.t` that may hit a zeroconf bug
15 existing translations could be missing. The effort of i18n in general has
26 * tests: conditionalize missing output in test-racy-mutations.t on Windows
16 died down many years ago, but if this matters to you, feel free to send
27 * tests: add a "missing" tests for manifest content in test-racy-mutations.t
17 your contributions.
28 * tests: bump the wait timeouts in test-racy-mutations.t
29 * test-install: use the global hg for the install step
30 * test-install: glob instance of "python" in warning
31 * ci: pre-adjust some identation
32 * setup: add a way to force the setup to translate (or fail)
33 * ci: use smaller VM to build wheel
34 * ci: use a pre-setup many-linux image to build wheel
35 * ci: build (and use) wheel for all supported version
36 * ci: automatically compute the python tag we use to identify tag
37 * run-tests: install wheel using --prefix instead of --user
38 * pycompat: drop some now useless workaround for makedirs
39 * wheel: build mac os wheel through the CI
40 * ci: use the macos wheel to run tests
41 * ci: use extends instead of <<: *x
42 * ci: move some variables closer to their usage
43 * ci: rationalize variable usage
44 * ci: abstract the of absolute /tmp/ path
45 * ci: move the "tempory work dir" to "concurrency-safe" location
46 * ci: adjust the starting port range to runner concurrency
47 * ci: have the mac test run if you trigger building the mac wheel
48 * run-tests: implement crude sharding support
49 * ci: shard the test run on mac os X
50 * dev-version: change the scheme of non tagged version
51 * wheel: enforce that translation being build for macos wheel
52 * run-tests: focus on listing the selected test for the shard tests
53 * run-tests: cleanup the "output" directory after the related tests
54 * tests: drop PYTHONPATH manipulation in test-pushvars.t
55 * windows: work around argument size limitation in test-bookmarks-pushpull.t
56 * windows: adjust PYTHONPATH update in test-status-color.t
57 * ci: use a concurrency safe TMP dir on Windows
58 * ci: again common element into a `.windows` template
59 * ci: split the windows runtest invocation into more granular variables
60 * windows: skip test-clonebundles-autogen.t in the CI
61 * ci: adjust port range on windows too
62 * windows: simply rely on the PATH adjustment to find python.exe in tests
63 * wheel: assign CIBW_SKIP globally
64 * wheel: make --hg-wheel works on Windows
65 * wheel: build Windows wheels too
66 * wheel: explicitly list built architecture
67 * wheel: test the built wheel in the windows tests
68 * ci: shard the tests on windows too
69 * wheel: enforce that translation being build for windows wheel
70 * setup: remote a debug statement that slipped through
71 * setup: factor version computation in a function
72 * setup: use the same code to compute tag from archive
73 * wheel: add a platform level to the wheel directories
74 * wheel: add a job uploading nightly build
75 * wheels: factor the core of Linux wheel building into a script
76 * wheels: update the Linux wheels make target
77 * clone: properly exclude rev-branch-cache from post clone cache warming
78 * setup: make sure Rust build its extension for the right python
79 * setup: preserve version part after the "+" on Windows
80 * wheel: build windows wheel for ARM64 too
81 * ci: adds a trigger for all pycompat jobs
82 * ci: let the Windows runner decide how many job they want to run
83
18
84 = Mercurial 6.9rc0 =
85
86 /!\ These are release notes for a release candidate version. Any and all points can be reverted before the final release.
87
19
88 == New Features ==
20 == New Features ==
89
21
@@ -153,11 +85,9 adding some sharding to the CI and MacOS
153 * doc: generate separate commands/topics/extension pages
85 * doc: generate separate commands/topics/extension pages
154 * extdiff: don't run gui programs when in a cli-only environment
86 * extdiff: don't run gui programs when in a cli-only environment
155 * clonebundles: stop shell quoting `HGCB_BUNDLE_BASENAME` environment variable
87 * clonebundles: stop shell quoting `HGCB_BUNDLE_BASENAME` environment variable
156 * rev-branch-cache: disable mmapping by default on Windows
88 * streamclone: disable the volatile file open handle optimization on Windows
157
89 * pytype: add relative timestamp to the output if `ts` is available
158 == Backwards Compatibility Changes ==
90 * hgweb: skip logging ConnectionAbortedError
159
160 * This release drops support for Python 3.6 and 3.7.
161
91
162 == Internal API Changes ==
92 == Internal API Changes ==
163
93
@@ -175,3 +105,94 adding some sharding to the CI and MacOS
175 * A whole bunch of typing improvements, which in turn found many bugs
105 * A whole bunch of typing improvements, which in turn found many bugs
176 * Test suite improvements
106 * Test suite improvements
177 * Various packaging improvements
107 * Various packaging improvements
108
109 Below are many, many changes that have to do with building/testing wheels,
110 adding some sharding to the CI and MacOS + Windows compatibility work:
111
112 * ci: abstract the branch matching regexp
113 * ci: add "sink" for parallel tests
114 * ci: for branches, use a single trigger
115 * packaging: explain why we purge while building wheels
116 * wheels: rely on the image config to be able to access the repository
117 * packaging: remove the i686 wheel from the linux-wheels target
118 * packaging: propagate the make option to packaging target
119 * packaging: factor the linux-wheels-x86_64 a bit
120 * wheel: add a target for amdx86_64-musl wheels
121 * wheel: also build the musl wheel in the ci
122 * wheel: reintroduce the building of i686 wheel
123 * wheels: also build the i686 wheel in the CI
124 * contrib: install the arm64 compiler tools in the Windows dependency script
125 * contrib: add a bat file to build all of the wheels on Windows
126 * wheels: remove deprecated blacklist
127 * wheels: make sure we create the `dist/` directory in the make target
128 * contrib: add a script to build all of the wheels on macOS
129 * wheel: also build wheel for linux arm64 in the CI
130 * ci: add sink for wheels too
131 * run-tests: don't use shell call for subprocess
132 * run-tests: add a --hg-wheel options to test a pre-built wheel
133 * ci: unify the way `check-pytype` inherit the common setting
134 * ci: split the jobs on more stage
135 * ci: build a wheel and use it to run c tests
136 * tests: stabilize `test-extdiff.t` on macOS
137 * tests: disable `test-git-interop.t` with a requirements directive
138 * tests: disable a section of `test-hgrc.t` that may hit a zeroconf bug
139 * ci: add a runner for Windows 10
140 * tests: treat `select` as a built-in module on Windows
141 * tests: disable a section of `test-paths.t` that may hit a zeroconf bug
142 * tests: conditionalize missing output in test-racy-mutations.t on Windows
143 * tests: add a "missing" tests for manifest content in test-racy-mutations.t
144 * tests: bump the wait timeouts in test-racy-mutations.t
145 * test-install: use the global hg for the install step
146 * test-install: glob instance of "python" in warning
147 * ci: pre-adjust some identation
148 * setup: add a way to force the setup to translate (or fail)
149 * ci: use smaller VM to build wheel
150 * ci: use a pre-setup many-linux image to build wheel
151 * ci: build (and use) wheel for all supported version
152 * ci: automatically compute the python tag we use to identify tag
153 * run-tests: install wheel using --prefix instead of --user
154 * pycompat: drop some now useless workaround for makedirs
155 * wheel: build mac os wheel through the CI
156 * ci: use the macos wheel to run tests
157 * ci: use extends instead of <<: *x
158 * ci: move some variables closer to their usage
159 * ci: rationalize variable usage
160 * ci: abstract the of absolute /tmp/ path
161 * ci: move the "tempory work dir" to "concurrency-safe" location
162 * ci: adjust the starting port range to runner concurrency
163 * ci: have the mac test run if you trigger building the mac wheel
164 * run-tests: implement crude sharding support
165 * ci: shard the test run on mac os X
166 * dev-version: change the scheme of non tagged version
167 * wheel: enforce that translation being build for macos wheel
168 * run-tests: focus on listing the selected test for the shard tests
169 * run-tests: cleanup the "output" directory after the related tests
170 * tests: drop PYTHONPATH manipulation in test-pushvars.t
171 * windows: work around argument size limitation in test-bookmarks-pushpull.t
172 * windows: adjust PYTHONPATH update in test-status-color.t
173 * ci: use a concurrency safe TMP dir on Windows
174 * ci: again common element into a `.windows` template
175 * ci: split the windows runtest invocation into more granular variables
176 * windows: skip test-clonebundles-autogen.t in the CI
177 * ci: adjust port range on windows too
178 * windows: simply rely on the PATH adjustment to find python.exe in tests
179 * wheel: assign CIBW_SKIP globally
180 * wheel: make --hg-wheel works on Windows
181 * wheel: build Windows wheels too
182 * wheel: explicitly list built architecture
183 * wheel: test the built wheel in the windows tests
184 * ci: shard the tests on windows too
185 * wheel: enforce that translation being build for windows wheel
186 * setup: remote a debug statement that slipped through
187 * setup: factor version computation in a function
188 * setup: use the same code to compute tag from archive
189 * wheel: add a platform level to the wheel directories
190 * wheel: add a job uploading nightly build
191 * wheels: factor the core of Linux wheel building into a script
192 * wheels: update the Linux wheels make target
193 * clone: properly exclude rev-branch-cache from post clone cache warming
194 * setup: make sure Rust build its extension for the right python
195 * setup: preserve version part after the "+" on Windows
196 * wheel: build windows wheel for ARM64 too
197 * ci: adds a trigger for all pycompat jobs
198 * ci: let the Windows runner decide how many job they want to run
@@ -385,10 +385,10 pub fn run(invocation: &crate::CliInvoca
385 })?;
385 })?;
386 let working_directory_vfs = repo.working_directory_vfs();
386 let working_directory_vfs = repo.working_directory_vfs();
387 let store_vfs = repo.store_vfs();
387 let store_vfs = repo.store_vfs();
388 let revlog_open_options = default_revlog_options(
388 let filelog_open_options = default_revlog_options(
389 repo.config(),
389 repo.config(),
390 repo.requirements(),
390 repo.requirements(),
391 RevlogType::Manifestlog,
391 RevlogType::Filelog,
392 )?;
392 )?;
393 let res: Vec<_> = take(&mut ds_status.unsure)
393 let res: Vec<_> = take(&mut ds_status.unsure)
394 .into_par_iter()
394 .into_par_iter()
@@ -403,7 +403,7 pub fn run(invocation: &crate::CliInvoca
403 check_exec,
403 check_exec,
404 &manifest,
404 &manifest,
405 &to_check.path,
405 &to_check.path,
406 revlog_open_options,
406 filelog_open_options,
407 ) {
407 ) {
408 Err(HgError::IoError { .. }) => {
408 Err(HgError::IoError { .. }) => {
409 // IO errors most likely stem from the file being
409 // IO errors most likely stem from the file being
@@ -93,5 +93,6 Keep python3 tests sorted:
93 Keep Windows line endings in check
93 Keep Windows line endings in check
94
94
95 $ testrepohg files 'set:eol(dos)'
95 $ testrepohg files 'set:eol(dos)'
96 contrib/packaging/build-windows-wheels.bat
96 contrib/win32/hg.bat
97 contrib/win32/hg.bat
97 contrib/win32/mercurial.ini
98 contrib/win32/mercurial.ini
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now