You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+16-84Lines changed: 16 additions & 84 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,11 +21,12 @@ For more information, please see the Eclipse Committer Handbook: https://www.ecl
21
21
22
22
## 💬 Get in touch with the community
23
23
24
-
Eclipse TM4E use mainly 2 channels for strategical and technical discussions
24
+
Eclipse TM4E uses the following channels for strategical and technical discussions:
25
25
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
29
30
30
31
31
32
## 🆕 Trying latest builds
@@ -35,77 +36,22 @@ Latest builds, for testing, can be found at https://download.eclipse.org/tm4e/sn
35
36
36
37
## 🧑💻 Developer resources
37
38
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:
39
40
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 <ahref="https://mickaelistria.github.io/redirctToEclipseIDECloneCommand/redirect.html"><imgsrc="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
-

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
-

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.
47
46
48
47
### 🏗️ Build & Test
49
48
50
-
1.**On command line**
49
+
If you just want to run the full build locally, the short version is:
51
50
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`
54
53
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.
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`.
109
55
110
56
### ➕ Submit changes
111
57
@@ -126,18 +72,4 @@ To send us a pull request, please:
126
72
GitHub provides additional documentation on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
127
73
[creating a pull request](https://help.github.com/articles/creating-a-pull-request/)
128
74
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