diff options
Diffstat (limited to 'admin/notes')
-rw-r--r-- | admin/notes/emba | 43 | ||||
-rw-r--r-- | admin/notes/git-workflow | 8 | ||||
-rw-r--r-- | admin/notes/unicode | 19 |
3 files changed, 53 insertions, 17 deletions
diff --git a/admin/notes/emba b/admin/notes/emba index 52e356e3dcc..4c8c27dfeaa 100644 --- a/admin/notes/emba +++ b/admin/notes/emba @@ -8,7 +8,8 @@ NOTES FOR EMACS CONTINUOUS BUILD ON EMBA A continuous build for Emacs can be found at <https://emba.gnu.org/emacs/emacs>, a Gitlab instance. It watches the Emacs git repository and starts a pipeline (jobset) if there are new -changes. This happens for all Emacs branches. +changes. This happens for all Emacs branches which belong to the +defined workflow (see below). * Mail notifications @@ -28,29 +29,49 @@ The messages contain a URL to the log file of the failed job, like * Emacs jobset The Emacs jobset is defined in the Emacs source tree, file -'.gitlab-ci.yml'. It could be adapted for every Emacs branch, see +'.gitlab-ci.yml'. All related files are located in directory +'test/infra'. They could be adapted for every Emacs branch, see <https://emba.gnu.org/help/ci/yaml/README.md>. +Only branches whose name starts with 'master', 'emacs', 'feature', or +'fix' are considered. This is declared in the workflow rules of file +'test/infra/gitlab-ci.yml'. + +A jobset on Gitlab is called a pipeline. Emacs pipelines run through +the stages 'build-images', 'platform-images' and 'native-comp-images' +(create an Emacs instance by 'make bootstrap' with different +configuration parameters) as well as 'normal', 'platforms' and +'native-comp' (run respective test jobs based on the produced images). + +The jobs for stage 'normal' are contained in the file +'test/infra/test-jobs.yml'. This file is generated by calling 'make +-C test generate-test-jobs' in the Emacs source tree, and the +resulting file should be pushed to the Emacs git repository afterwards. + Every job runs in a Debian docker container. It uses the local clone of the Emacs git repository to perform a bootstrap and test of Emacs. -This could happen for several jobs with changed configuration, compile +This could happen for several jobs with changed configuration, compile, and test parameters. -There are different types of jobs: 'prep-image-base' is responsible to -prepare the environment for the following jobs. 'build-image-*' jobs -are responsible to compile Emacs in different configuration. The -corresponding 'test-*' jobs run the ert tests. +The 'build-image-*' jobs of the different '*-images' stages run only +if there are severe changes in the Emacs sources, like in Makefiles +etc. Otherwise they are skipped, and the corresponding 'test-*' jobs +run just 'make -C test ...' in the respective Docker image from a +previous build run. -A special job is 'test-all-inotify', which runs 'make check-expensive'. -While most of the jobs run as soon as a respective file has been -committed into the Emacs git repository, this test job runs scheduled, -every 8 hours. +Jobs in the 'build-images' and 'normal' stages are triggered by +changes of respective files in the Emacs git repository. All other +jobs run scheduled in a pipeline every 8 hours. The log files for every test job are kept on the server for a week. They can be downloaded from the server, visiting the URL <https://emba.gnu.org/emacs/emacs/-/pipelines>, and selecting the job in question. +Every pipeline generates a JUnit test report for the respective test +jobs, which can be inspected on the pipeline web page. This test +report counts completed ERT tests, aborted tests are not counted. + * Emba configuration The emba configuration files are hosted on diff --git a/admin/notes/git-workflow b/admin/notes/git-workflow index d109cdaa354..265a106bad5 100644 --- a/admin/notes/git-workflow +++ b/admin/notes/git-workflow @@ -16,14 +16,14 @@ Initial setup Then we want to clone the repository. We normally want to have both the current master and (if there is one) the active release branch -(eg emacs-27). +(eg emacs-28). mkdir ~/emacs cd ~/emacs git clone <membername>@git.sv.gnu.org:/srv/git/emacs.git master cd master git config push.default current -git worktree add ../emacs-27 emacs-27 +git worktree add ../emacs-28 emacs-28 You now have both branches conveniently accessible, and you can do "git pull" in them once in a while to keep updated. @@ -67,7 +67,7 @@ which will look like commit 958b768a6534ae6e77a8547a56fc31b46b63710b -cd ~/emacs/emacs-27 +cd ~/emacs/emacs-28 git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b and add "Backport:" to the commit string. Then @@ -109,7 +109,7 @@ up-to-date by doing a pull. Then start Emacs with emacs -l admin/gitmerge.el -f gitmerge You'll be asked for the branch to merge, which will default to -(eg) 'origin/emacs-27', which you should accept. Merging a local tracking +(eg) 'origin/emacs-28', which you should accept. Merging a local tracking branch is discouraged, since it might not be up-to-date, or worse, contain commits from you which are not yet pushed upstream. diff --git a/admin/notes/unicode b/admin/notes/unicode index 7b86a36a14b..f699f4fb1c0 100644 --- a/admin/notes/unicode +++ b/admin/notes/unicode @@ -15,18 +15,33 @@ Emacs uses the following files from the Unicode Character Database . BidiMirroring.txt . IVD_Sequences.txt . NormalizationTest.txt + . PropertyValueAliases.txt + . ScriptExtensions.txt + . Scripts.txt . SpecialCasing.txt + . confusables.txt . emoji-data.txt . emoji-zwj-sequences.txt . emoji-sequences.txt . BidiCharacterTest.txt -First, the first 10 files need to be copied into admin/unidata/, and -the file https://www.unicode.org/copyright.html should be copied over +Emacs also uses the file emoji-test.txt which should be imported from +the Unicode's Public/emoji/ directory, and IdnaMappingTable.txt from +the Public/idna/ directory. + +First, the first 14 files, emoji-test.txt and IdnaMappingTable.txt +need to be copied into admin/unidata/, and the file +https://www.unicode.org/copyright.html should be copied over copyright.html in admin/unidata (some of them might need trailing whitespace removed before they can be committed to the Emacs repository). +Next, review the assignment of default values of the Bidi Class +property to blocks in the file extracted/DerivedBidiClass.txt from the +UCD (search for "unassigned" in that file). Any changes should be +reflected in the unidata-gen.el file, where it sets up the default +values around line 210. + Then Emacs should be rebuilt for them to take effect. Rebuilding Emacs updates several derived files elsewhere in the Emacs source tree, mainly in lisp/international/. |