summaryrefslogtreecommitdiff
path: root/admin/notes
diff options
context:
space:
mode:
Diffstat (limited to 'admin/notes')
-rw-r--r--admin/notes/emba43
-rw-r--r--admin/notes/git-workflow8
-rw-r--r--admin/notes/unicode19
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/.