Skip to content

Commit 67d5fbd

Browse files
authored
docs: consolidate, update and extend documentation (#967)
1 parent 8f1ebae commit 67d5fbd

28 files changed

+1075
-268
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on: # https://docs.github.com/en/actions/reference/workflows-and-actions/events
99
- '**'
1010
paths-ignore:
1111
- '**/*.md'
12+
- '**/*.png'
1213
- '.github/*.yml'
1314
- '.github/workflows/bump-version.yml'
1415
- '.github/workflows/codeql.yml'
@@ -22,6 +23,7 @@ on: # https://docs.github.com/en/actions/reference/workflows-and-actions/events
2223
pull_request:
2324
paths-ignore:
2425
- '**/*.md'
26+
- '**/*.png'
2527
- '.github/*.yml'
2628
- '.github/workflows/bump-version.yml'
2729
- '.github/workflows/codeql.yml'

.github/workflows/codeql.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on: # https://docs.github.com/en/actions/reference/workflows-and-actions/events
99
branches: [ "main" ]
1010
paths-ignore:
1111
- '**/*.md'
12+
- '**/*.png'
1213
- '**/.project'
1314
- '**/.settings/*.prefs'
1415
- '.gitignore'
@@ -18,6 +19,7 @@ on: # https://docs.github.com/en/actions/reference/workflows-and-actions/events
1819
branches: [ "main" ]
1920
paths-ignore:
2021
- '**/*.md'
22+
- '**/*.png'
2123
- '**/.project'
2224
- '**/.settings/*.prefs'
2325
- '.gitignore'
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax
2+
name: Markdown Lint
3+
4+
on: # https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows
5+
push:
6+
branches-ignore: # build all branches except:
7+
- 'dependabot/**' # prevent GHA triggered twice (once for commit to the branch and once for opening/syncing the PR)
8+
tags-ignore: # don't build tags
9+
- '**'
10+
paths:
11+
- '**/*.md'
12+
pull_request:
13+
paths:
14+
- '**/*.md'
15+
workflow_dispatch:
16+
# https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#workflow_dispatch
17+
18+
19+
defaults:
20+
run:
21+
shell: bash
22+
23+
24+
jobs:
25+
26+
###########################################################
27+
markdown_lint:
28+
###########################################################
29+
30+
runs-on: ubuntu-latest
31+
permissions:
32+
contents: read
33+
34+
steps:
35+
- name: "Show: GitHub context"
36+
env:
37+
GITHUB_CONTEXT: ${{ toJSON(github) }}
38+
run: echo $GITHUB_CONTEXT
39+
40+
41+
- name: "Show: environment variables"
42+
run: env | sort
43+
44+
45+
- name: Git Checkout
46+
uses: actions/checkout@v6 # https://github.com/actions/checkout
47+
48+
49+
- name: "Install: Node"
50+
uses: actions/setup-node@v6
51+
with:
52+
node-version: lts/*
53+
54+
55+
- name: Install markdownlint-cli
56+
run: npm install -g markdownlint-cli
57+
58+
59+
- name: Run markdownlint
60+
run: markdownlint "**/*.md"

.markdownlint.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# https://github.com/DavidAnson/markdownlint#optionsconfig
2+
MD004: false # ul-style
3+
MD012: false # no-multiple-blanks
4+
MD013: false # line-length
5+
MD031: false # blanks-around-fences
6+
MD032: false # blanks-around-lists
7+
MD033: false # no-inline-html
8+
MD034: false # no-bare-urls
9+
MD045: false # no-alt-text
10+
MD049: false # emphasis-style
11+
MD060: false # table-column-style

.markdownlintignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
_LOCAL
2+
org.eclipse.tm4e.language_pack/syntaxes/
3+
**/target/
4+
org.eclipse.tm4e.core.tests/src/main/resources/test-cases/

CONTRIBUTING.md

Lines changed: 16 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ For more information, please see the Eclipse Committer Handbook: https://www.ecl
2121

2222
## 💬 Get in touch with the community
2323

24-
Eclipse TM4E use mainly 2 channels for strategical and technical discussions
24+
Eclipse TM4E uses the following channels for strategical and technical discussions:
2525

26-
- 🐞 View and report issues through uses GitHub Issues at https://github.com/eclipse/m2e-tm4e/issues.
27-
- 📧 Join the tm4e-dev@eclipse.org mailing-list to get in touch with other contributors about project organization and planning,
28-
and browse archive at 📜 https://accounts.eclipse.org/mailing-list/tm4e-dev
26+
- 🐞 View and report issues through GitHub Issues at https://github.com/eclipse-tm4e/tm4e/issues.
27+
- 💬 Ask questions, propose ideas, and discuss features in GitHub Discussions at https://github.com/eclipse-tm4e/tm4e/discussions.
28+
- 📧 Join the tm4e-dev@eclipse.org mailing list to get in touch with other contributors about project organization and planning,
29+
and browse the archive at 📜 https://accounts.eclipse.org/mailing-list/tm4e-dev
2930

3031

3132
## 🆕 Trying latest builds
@@ -35,77 +36,22 @@ Latest builds, for testing, can be found at https://download.eclipse.org/tm4e/sn
3536

3637
## 🧑‍💻 Developer resources
3738

38-
### ⌨️ Setting up the Development Environment manually
39+
For regular contributors and maintainers, the main technical reference is the [TM4E Contributor Guide](docs/contributor-guide.md). It covers:
3940

40-
1. Download and install the **Eclipse IDE for Eclipse Committers** from https://www.eclipse.org/downloads/packages/ or another
41-
Eclipse installation with the [Plug-in Development Environment (PDE)](https://www.eclipse.org/pde/) installed.
42-
1. Clone this repository <a href="https://mickaelistria.github.io/redirctToEclipseIDECloneCommand/redirect.html"><img src="https://mickaelistria.github.io/redirctToEclipseIDECloneCommand/cloneToEclipseBadge.png" alt="Clone to Eclipse IDE"/></a>.
43-
1. _File > Import > Existing Maven Project_, select the path to the TM4E Git repository and import projects and all modules
44-
![](documentation/import_project.png)
45-
1. To solve the compiler errors, open the [target-platforms/oldest.target](target-platforms/oldest.target) file in Eclipse, wait until all dependencies are resolved, and click on _**Set as Active Target Platform**_
46-
![](documentation/configure_target_platform.png)
41+
- Repository and module structure.
42+
- Development environment setup and target platform configuration.
43+
- Build and test workflows (command line and within Eclipse).
44+
- Diagnostics and troubleshooting (traces, test generation, token hover).
45+
- Versioning and the TM4E release process.
4746

4847
### 🏗️ Build & Test
4948

50-
1. **On command line**
49+
If you just want to run the full build locally, the short version is:
5150

52-
On Windows execute `mvnw clean verify`\
53-
On Linux execute `./mvnw clean verify`
51+
- On Windows: `mvnw clean verify`
52+
- On Linux/macOS: `./mvnw clean verify`
5453

55-
2. **Within Eclipse**
56-
57-
- To run full Maven builds: Having [M2E](https://www.eclipse.org/m2e/) installed, right-click on the tm4e root folder > _Run As > Maven build_
58-
59-
- To run the non-UI tests of any imported module, right-click on the respective project and select > _RunAs > JUnit Test_
60-
61-
- To run the UI tests, right-click on the `org.eclipse.tm4e.ui.tests` project and select > _RunAs > JUnit Plug-in Test_
62-
63-
3. **Running the CI job locally:**
64-
65-
TM4E's [GitHub Actions wokflow](.github/workflows/build.yml) is compatible with [nektos/act](https://github.com/nektos/act) a
66-
command-line tool that allows you to run GitHub Actions workflows locally.
67-
68-
1. Install Docker
69-
1. Install [nektos/act](https://github.com/nektos/act)
70-
1. From the command line navigate into the tm4e project root
71-
1. Run the command `act`
72-
1. On subsequent re-runs you can use `act -r` to reuse previous container which avoids re-installation system packages and
73-
reduces build times.
74-
75-
In case of build failures the docker container will still be running and you can SSH into it for analysis
76-
using `docker exec -u root -it <CONTAINER_ID> /bin/bash`, e.g.:
77-
```bash
78-
container_id=$(docker container ps --filter status=running --filter name=act-Build-build --format {{.ID}})
79-
docker exec -u root -it $container_id /bin/bash
80-
```
81-
82-
### ⬆️ Version bump
83-
84-
The TM4E project adopts [Semantic Versioning](https://semver.org/) on release level, ensuring the proper exposure of API contracts
85-
and addressing potential breakages.
86-
87-
To alleviate confusion among end-users regarding the effectively installed TM4E release and to ease the development process and
88-
troubleshooting, starting with version **0.9.0**, individual TM4E features/plugins are no longer versioned independently
89-
(OSGi semantic versioning). Instead, they are aligned with the overall TM4E release version, following a practice that is common
90-
in other Eclipse Platform projects, such as EGit, Mylyn, or Xtext, as well as popular projects outside the Eclipse Platform
91-
universe, like the Spring Application Framework or Quarkus.
92-
93-
In this versioning approach, when any plugin introduces new features necessitating a minor version increment, the versions of
94-
**all** TM4E plugins/features are updated collectively, and the next release version will be adjusted accordingly.
95-
96-
To simplify version increments, utilize the `bump-versions.py` Python script located in the root project directory. This script
97-
facilitates the recursive update of the project version and plugin dependencies in all relevant files, including `pom.xml`,
98-
`feature.xml`, and `META-INF/MANIFEST.MF`.
99-
100-
The usage is as follows:
101-
```bash
102-
$ python bump-version.py (major|minor|micro)
103-
```
104-
105-
Where
106-
- `micro` (`+0.0.1`) is for a backward compatible bugfix, or an internal change that doesn't surface to APIs
107-
- `minor` (`+0.1.0`) is for a backward compatible API or feature addition
108-
- `major` (`+1.0.0`) is for an API breakage (needs to be discussed on the mailing-list first)
54+
For everything beyond that, including IDE setup and CI-style runs with `act`, please refer to `docs/contributor-guide.md`.
10955

11056
### ➕ Submit changes
11157

@@ -126,18 +72,4 @@ To send us a pull request, please:
12672
GitHub provides additional documentation on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
12773
[creating a pull request](https://help.github.com/articles/creating-a-pull-request/)
12874

129-
### Release
130-
131-
1. Decide of a version name, we'll call it `x.y.z` here. Ensure all plugins have this version set in their MANIFEST.MF.
132-
You can use the `bump-versions.py` Python script to set the version as needed.
133-
1. Get the main code locally, e.g.: `git fetch eclipse main && git checkout FETCH_HEAD`
134-
1. Tag it `git tag x.y.x`
135-
1. Push tag, e.g. `git push eclipse x.y.z`
136-
1. Re-run a build from https://ci.eclipse.org/tm4e/job/TM4E/job/main/ and ensure it passes
137-
1. Upon completion of the build, run https://ci.eclipse.org/tm4e/job/promote-snapshot-to-release/ with version `x.y.z`
138-
1. Create a new `x.y.z` release entry on GitHub, from the `x.y.z` tag.
139-
1. Create a new `x.y.z` release entry on https://projects.eclipse.org/projects/technology.tm4e
140-
1. Create a PR to update https://github.com/eclipse-simrel/simrel.build/blob/main/tm4e.aggrcon
141-
- For SimRel release dates see https://github.com/eclipse-simrel/.github/blob/main/wiki/Simultaneous_Release.md
142-
1. (Optionally) Announce on mailing-lists. social media...
143-
1. Run `python bump-version.py patch` and commit all changed pom.xml/feature.xml/MANIFEST.MF files to `main` branch
75+
For release engineering details (version bumping, CI promotion, SimRel updates), see the "Extension and API Evolution Guidelines" and "Release Process" sections in `docs/contributor-guide.md`.

0 commit comments

Comments
 (0)