Skip to content

Latest commit

 

History

History
116 lines (76 loc) · 3.6 KB

File metadata and controls

116 lines (76 loc) · 3.6 KB

Antidot Deployment Guide

This document describes how to build, test, and release flexmark-java to the internal Antidot Maven repository hosted on GitLab.

Target repository

Artifacts are published to the internal Antidot GitLab Maven registry:

https://scm.mrs.antidot.net/api/v4/projects/672/packages/maven

This is configured in the root pom.xml under <distributionManagement>.

Opening the project in IntelliJ IDEA

Install Maven if needed:

brew install maven

Then in IntelliJ IDEA, right-click the root pom.xml and select Add as Maven Project. IDEA will import all 58 modules automatically.

Managing multiple GitHub accounts

Having both a personal and a professional GitHub account on the same machine can cause issues: SSH will use the first key available in the agent, which may not match the expected account.

A simple solution is to explicitly specify which SSH key to use via the GIT_SSH_COMMAND variable:

GIT_SSH_COMMAND='ssh -i ~/.ssh/id_ed25519_gitlab -o IdentitiesOnly=yes' git push

This can be prepended to any git command (push, pull, fetch, etc.) without affecting the global configuration.

Continuous Integration

A GitHub Actions workflow runs on every push and on pull requests targeting master. It builds the project and runs the test suite on Java 21.

See: .github/workflows/ci.yml

The CI does not deploy automatically — releases are triggered manually.

Releasing a new version

1. Prerequisites: GitLab credentials

Maven must be able to authenticate against the Antidot GitLab Maven registry. Add a server entry to your local ~/.m2/settings.xml using a GitLab Personal Access Token with api scope:

<settings>
  <servers>
    <server>
      <id>gitlab-maven</id>
      <configuration>
        <httpHeaders>
          <property>
            <name>Private-Token</name>
            <value>YOUR_GITLAB_PERSONAL_ACCESS_TOKEN</value>
          </property>
        </httpHeaders>
      </configuration>
    </server>
  </servers>
</settings>

The <id> must match exactly: gitlab-maven.

2. Bump the version

The current version is defined at the top of the root pom.xml. Use the versions-maven-plugin to update all modules at once:

mvn versions:set -DnewVersion=antidot-0.64.11

Review the diff, then commit:

git add pom.xml '**/pom.xml'
git commit -m "Bump version to antidot-0.64.11"

3. Run the full test suite

mvn clean verify

Make sure all tests pass before deploying. The CI also runs mvn verify on every push to GitHub.

4. Deploy to the Antidot GitLab registry

mvn clean deploy -DskipTests

Do not use -Pdeploy — that profile is the original upstream Sonatype/OSS profile (GPG signing, Nexus staging) and is not intended for the Antidot internal registry.

This publishes all 58 modules to https://scm.mrs.antidot.net/api/v4/projects/672/packages/maven.

5. Tag the release on GitHub

git tag antidot-0.64.11
git push origin antidot-0.64.11

Known test limitations

Two tests are intentionally disabled:

  • Pegdown profile tests — skipped on Java 9+. Pegdown's underlying parser (Parboiled) relies on reflective access to JVM internals that have been restricted since Java 9, causing a runtime error. These tests only work on Java 8.
  • Abbreviation/typographic quotes interaction test — marked as ignored. The test is locale-sensitive: abbreviation matching for accented characters (e.g. É.U.) behaves inconsistently across systems due to how Java handles regex word boundaries with non-ASCII characters.