From 579935e09572b00e888abcd6ddef8a34a49a2808 Mon Sep 17 00:00:00 2001 From: Sebastian Zarnekow Date: Wed, 19 Apr 2023 12:06:47 +0200 Subject: [PATCH] Updated README and remove obsolete files (#2155) Updated README and remove obsolete files Signed-off-by: Christian Dietrich Co-authored-by: Sebastian Zarnekow --- NOTICE.md | 10 +- README.md | 23 ++- adjustPipelines.sh | 103 ----------- allDirectories | 10 -- dev-doc/MaintenanceTasks.md | 92 ++++++++++ dev-doc/RegenerateLanguages.md | 30 ++++ dev-doc/Xtext-Maintenance-Manual.mm | 255 ++++++++++++++++++++++++++++ fixVersions.sh | 27 +-- gitAll | 16 -- 9 files changed, 402 insertions(+), 164 deletions(-) delete mode 100755 adjustPipelines.sh delete mode 100755 allDirectories create mode 100644 dev-doc/MaintenanceTasks.md create mode 100644 dev-doc/RegenerateLanguages.md create mode 100644 dev-doc/Xtext-Maintenance-Manual.mm delete mode 100755 gitAll diff --git a/NOTICE.md b/NOTICE.md index d9771890ee3..8348d8d26a4 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -27,15 +27,7 @@ SPDX-License-Identifier: EPL-2.0 The project maintains the following source code repositories: * https://github.com/eclipse/xtext -* https://github.com/eclipse/xtext-core -* https://github.com/eclipse/xtext-lib -* https://github.com/eclipse/xtext-extras -* https://github.com/eclipse/xtext-eclipse -* https://github.com/eclipse/xtext-web -* https://github.com/eclipse/xtext-maven -* https://github.com/eclipse/xtext-gradle -* https://github.com/eclipse/xtext-xtend -* https://github.com/eclipse/xtext-umbrella +* https://github.com/eclipse/xtext-website ## Third-party Content diff --git a/README.md b/README.md index ec2b82e5fa8..9b941189b43 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,22 @@ -# Eclipse Xtext +[![Gitter](https://badges.gitter.im/eclipse/xtext.svg)](https://gitter.im/eclipse/xtext?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) -Mono repository. \ No newline at end of file +# Eclipse Xtext™ + +Eclipse Xtext is a framework for the development of programming languages and [domain-specific languages](https://en.wikipedia.org/wiki/Domain-specific_language). It covers all aspects of a complete language infrastructure, from parser, over linker, compiler, or interpreter to fully-blown top-notch IDE integration for Eclipse and Web-based IDEs. Further, languages developed with Xtext can be integrated into editors supporting the [Language Server Protocol](https://github.com/Microsoft/language-server-protocol) (e.g. [VS Code](https://code.visualstudio.com/), [Eclipse Che](https://www.eclipse.org/che/)). Xtext comes with great defaults for all the necessary services. At the same time these can be easily tailored to your individual needs. + +More information can be found on [xtext.org](http://xtext.org). + +## Quick Access + +- [All Open Pull Requests](https://github.com/search?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-website+&type=pullrequests) +- [All Open Issues](https://github.com/search?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-website&type=issues&ref=searchresultsopen+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-website) +- [Good First Issues](https://github.com/search?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-website+label%3A%22good+first+issue%22&type=issues) +- [All Open Issues of Milestone Release_2.31](https://github.com/search?utf8=%E2%9C%93&q=is%3Aissue+milestone%3ARelease_2.31+is%3Aopen+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-website&type=issues) +- [All Open Issues of Milestone Release_2.32](https://github.com/search?utf8=%E2%9C%93&q=is%3Aissue+milestone%3ARelease_2.32+is%3Aopen+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-website&type=issues) + + +## Developer Resources + +- [Contributing](CONTRIBUTING.md): report bugs, setup your workspace, submit your changes, etc. +- [Quality Guidelines](QUALITY_GUIDELINES.md): how to craft high-quality code changes, commits and pull-requests. +- [Builds](Builds.md): details about the build infrastructure and release process. \ No newline at end of file diff --git a/adjustPipelines.sh b/adjustPipelines.sh deleted file mode 100755 index d926221f8c5..00000000000 --- a/adjustPipelines.sh +++ /dev/null @@ -1,103 +0,0 @@ -#!/bin/bash - -toDir() { - echo $1 | tr -d '\r' -} - -name() { - git --git-dir "$(echo "$1" | tr -d '\r' | tr -d '\n')/.git" config --get remote.origin.url | sed 's/^.*\/\(xtext-[^\./]*\).*$/\1/' -} - -branchname=${1:-master} - -escaped() { - echo $branchname | sed 's/\//%252F/g' -} - -escapedBranch=$(escaped) - -isBranch() { - git show-branch "$branchname" &> /dev/null -} - -isMaster() { - test $branchname = master -} - -changeDir() { - pushd $1 > /dev/null -} - -dropDir() { - popd > /dev/null -} - -sed_inplace() { - if [[ "$OSTYPE" == "darwin"* ]]; then - sed -i '' "$@" - else - sed -i "$@" - fi -} - -if [[ -z "${JENKINS_URL}" ]]; then - JENKINS_URL="https://ci.eclipse.org/xtext" -fi -echo "JENKINS_URL=$JENKINS_URL" - -./allDirectories | while read -r line -do - directory=$(toDir $line) - targets=$(echo $directory/releng/*.target) - if [[ -d $targets ]] - then - changeDir $directory - if isBranch - then - echo "Redirecting target platforms in $targets to $branchname" - dropDir - ./allDirectories | while read -r repo - do - repository=$(toDir $repo) - if [[ $directory != $repository ]] - then - logicalname=$(name $repo) - if changeDir $repository - then - sed_inplace "s?.*?$escapedBranch?" $pom - dropDir - fi - fi - done - done - else - dropDir - fi - fi -done diff --git a/allDirectories b/allDirectories deleted file mode 100755 index 1690b159f99..00000000000 --- a/allDirectories +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -function subLastXtext { - xtext=$(echo "xtext-" | rev) - replace="[^/]*"$xtext - by=$(echo $1 | rev)$xtext - cat locations.properties | head -n 1 | rev | sed "s/${replace}/${by}/" | rev -} - -cat <(subLastXtext "umbrella") <(subLastXtext "eclipse") <(subLastXtext "maven") <(cat locations.properties) | cut -d "=" -f2 - | grep "\/" diff --git a/dev-doc/MaintenanceTasks.md b/dev-doc/MaintenanceTasks.md new file mode 100644 index 00000000000..7e38d75a86b --- /dev/null +++ b/dev-doc/MaintenanceTasks.md @@ -0,0 +1,92 @@ +# Maintenance Tasks + +This document describes things that need to be done during a simrel. + +## Bump versions + +With a final release the Xtext version has to be incremented. This is triggered automatically by the [sign-and-deploy job](https://ci.eclipse.org/xtext/job/releng/job/sign-and-deploy/) when a GA release is deployed. This triggers the [bot-updates job](https://ci.eclipse.org/xtext/job/releng/job/bot-updates/) with `UPDATE_TYPE=XTEXT-VERSION` and `UPDATE_VALUE=`. + +Wait for the builds of the branches, review and merge PRs. + +For version updates in the micro or major version the [bot-updates job](https://ci.eclipse.org/xtext/job/releng/job/bot-updates/) has to be run manually. Please take care that the `SOURCE_BRANCH` parameter may be different than '`master`'. + +## Xtend/Xtext Bootstrapping + +Run [https://ci.eclipse.org/xtext/job/releng/job/bot-updates/build](https://ci.eclipse.org/xtext/job/releng/job/bot-updates/build) with parameters: + +* `UPDATE_TYPE=XTEXT_BOOTSTRAP_VERSION` +* `UPDATE_VALUE=` +* `GIT_USER_NAME=` +* `GIT_USER_EMAIL=` + +Wait for the builds of the branches, review and merge PRs. + +## Prepare final simrel target platform + +We offer for our `xtext-eclipse` and `xtext-xtend` the possibility to build against any target platform between the minimal and `latest`. Once a new simrel is out we need to add it to the list of the platforms. Here are the steps. + +* In [xtext-eclipse](https://github.com/eclipse/xtext-eclipse) + * Adapt `Jenkinsfile` + * Add the new release to the `target_platform` choice. + * Add the new release to the snippet that adapts the `displayName`. + * Declare new profile in `releng/org.eclipse.xtext.tycho.parent/pom.xml`, `org.eclipse.xtext.ui.codemining/pom.xml` and `org.eclipse.xtext.ui.testing/pom.xml`. + * Create new target file at `releng/org.eclipse.xtext.target/` and register it in the `releng/org.eclipse.xtext.target/pom.xml`. +* In [xtext-xtend](https://github.com/eclipse/xtext-xtend) + * Adapt `Jenkinsfile` + * Add the new release to the `target_platform` choice. + * Add the new release to the snippet that adapts the `displayName`. + * Declare new profile in `releng/org.eclipse.xtend.tycho.parent/pom.xml`. + * Create new target file at `releng/org.eclipse.xtend.target/` and register it in the `releng/org.eclipse.xtend.target/pom.xml`. + +## Update latest target platform + +We build `xtext-eclipse` and `xtext-xtend` against the latest i-builds of platform and the latest milestone of the rest of the simrel. Thus with every version we have to adapt the target platforms. + +* In [xtext-eclipse](https://github.com/eclipse/xtext-eclipse) + * In `releng/org.eclipse.xtext.target/org.eclipse.xtext.target-latest.target` use the latest i-build `https://download.eclipse.org/eclipse/updates/-I-builds` and simrel `https://download.eclipse.org/releases/` +* In [xtext-xtend](https://github.com/eclipse/xtext-xtend) + * In `releng/org.eclipse.xtend.target/org.eclipse.xtend.target-latest.target` use the latest i-build `https://download.eclipse.org/eclipse/updates/-I-builds` and simrel `https://download.eclipse.org/releases/` +* The simrel `https://download.eclipse.org/releases/` needs also to be used in `./xtext-eclipse/org.eclipse.xtext.xtext.ui.examples/projects/domainmodel/org.eclipse.xtext.example.domainmodel.releng/tp/domainmodel.target` and `xtext-core` in `TargetPlatformProject` + tests adapted (`CliWizardIntegrationTest`) + +## Update Orbit + +Once Eclipse Orbit provides us with a new simrel orbit alias update site (e.g. `https://download.eclipse.org/tools/orbit/downloads/2019-12`) then we need to adapt our target platforms and the wizard to use it. + +Run [https://ci.eclipse.org/xtext/job/releng/job/bot-updates/build](https://ci.eclipse.org/xtext/job/releng/job/bot-updates/build) with parameters: + +* `UPDATE_TYPE=ORBIT_URL` +* `UPDATE_VALUE=` +* `GIT_USER_NAME=` +* `GIT_USER_EMAIL=` + +Wait for the builds of the branches, review and merge PRs. + +## Update Oomph Setup for new SimRel + +* Open `xtext-eclipse/releng/org.eclipse.xtext.contributor/Xtext.setup` +* Modify variable `p2.orbit` with the new Orbit URL for the release to `https://download.eclipse.org/tools/orbit/downloads/YYYY-MM` +* Modify variable `eclipse.target.platform` + * Add Choice entry for the new release (`value=YYYY-MM, label='Eclipse YYYY-MM - 4.NN'`) + * Set default value to new `YYYY-MM` value +* Open _Eclipse Support / Modular Target / Xtext Target Platform_ +* Copy the _Repository List_ entry of the latest release and paste it. Rename it to the new SimRel name. +* From the previously copied _Repository List_ remove the `I-builds` repository entry +* In the new _Repository List_ update the `I-builds` repository entry to the next Eclipse Platform version + +## Adapt API-Diff jobs + +* Adapt the jobs [Jenkinsfile](https://github.com/xtext/xtext-apidiff/blob/master/Jenkinsfile) and change the choices for old and new version. +* Adapt the jobs [script](https://github.com/xtext/xtext-apidiff/blob/master/create-api-diff.sh) + * Introduce a new section for the current release. + * Adapt the nightly section to the current in-development release. + * Adapt the "Downloading Eclipse" section to pick the current release. + +## Update Xtext Reference Projects + +The repository [xtext-reference-projects](https://github.com/itemis/xtext-reference-projects) contains a set of projects that are created by the project wizard, and the Domainmodel example. These projects are built by TravisCI. + +After each release a new set of projects should be added. Follow the instructions in the repository's [README](https://github.com/itemis/xtext-reference-projects/blob/master/README.md). + +## Marketplace + +With each release the Marketplace composite site descriptors have to be adjusted. The update steps are described in https://github.com/eclipse/xtext/blob/master/Builds.md#preparing-milestones-and-releases. diff --git a/dev-doc/RegenerateLanguages.md b/dev-doc/RegenerateLanguages.md new file mode 100644 index 00000000000..f63aec4ba57 --- /dev/null +++ b/dev-doc/RegenerateLanguages.md @@ -0,0 +1,30 @@ +# Regenerate Languages + +This document describes the necessary steps to regenerate the test- and production Xtext languages. + +1. Execute the following `MWE2` workflows and Java Main-classes from Eclipse + ``` + org.eclipse.xtext.tests/src/org/eclipse/xtext/GenerateAllTestLanguages.mwe2 + org.eclipse.xtext.testlanguages/src/org/eclipse/xtext/testlanguages/GenerateTestLanguages.mwe2 + org.eclipse.xtext.ide.tests/testlang-src/org/eclipse/xtext/ide/tests/testlanguage/GenerateTestLanguage.mwe2 + org.eclipse.xtext.xtext.bootstrap/src/org/eclipse/xtext/xtext/bootstrap/GenerateXtext.mwe2 + org.eclipse.xtext.xbase/generator/org/eclipse/xtext/xbase/GenerateXbase.java + org.eclipse.xtext.purexbase/src/org/eclipse/xtext/purexbase/GeneratePureXbase.mwe2 + org.eclipse.xtext.builder.standalone.tests/src/org/eclipse/xtext/builder/tests/GenerateBuilderTestLanguages.mwe2 + org.eclipse.xtext.common.types.tests/src/org/eclipse/xtext/common/types/xtext/ui/GenerateTypesTestLanguages.mwe2 + org.eclipse.xtext.extras.tests/src/org/eclipse/xtext/GenerateAllTestLanguages.mwe2 + org.eclipse.xtext.xbase.testlanguages/src/org/eclipse/xtext/xbase/testlanguages/GenerateXbaseTestLanguages.mwe2 + org.eclipse.xtext.builder.tests\src\org\eclipse\xtext\builder\tests\GenerateBuilderTestLanguages.mwe2 + org.eclipse.xtext.common.types.eclipse.tests\src\org\eclipse\xtext\common\types\xtext\ui\GenerateTypesTestLanguages.mwe2 + org.eclipse.xtext.ui.codetemplates\src\org\eclipse\xtext\ui\codetemplates\GenerateCodetemplateLanguages.mwe2 + org.eclipse.xtext.ui.tests\src\org\eclipse\xtext\ui\tests\GenerateTestLanguages.mwe2 + org.eclipse.xtext.xtext.ui.examples\projects\arithmetics\org.eclipse.xtext.example.arithmetics\src\org\eclipse\xtext\example\arithmetics\GenerateArithmetics.mwe2 + org.eclipse.xtext.xtext.ui.examples\projects\domainmodel\org.eclipse.xtext.example.domainmodel\src\org\eclipse\xtext\example\domainmodel\GenerateDomainmodel.mwe2 + org.eclipse.xtext.xtext.ui.examples\projects\fowlerdsl\org.eclipse.xtext.example.fowlerdsl\src\org\eclipse\xtext\example\fowlerdsl\GenerateStatemachine.mwe2 + org.eclipse.xtext.xtext.ui.examples\projects\homeautomation\org.eclipse.xtext.example.homeautomation\src\org\eclipse\xtext\example\homeautomation\GenerateRuleEngine.mwe2 + org.eclipse.xtext.xtext.ui.tests\generator\org\eclipse\xtext\xtext\ui\ecore2xtext\GenerateEcore2XtextTestGrammar.mwe2 + org.eclipse.xtext.xtext.ui.tests\src\org\eclipse\xtext\xtext\ui\GenerateTestLanguages.mwe2 + org.eclipse.xtext.web.example.entities/src/org/eclipse/xtext/web/example/entities/GenerateEntities.mwe2 + org.eclipse.xtext.web.example.statemachine/src/org/eclipse/xtext/web/example/statemachine/GenerateStatemachine.mwe2 + org.eclipse.xtend.core/src/org/eclipse/xtend/core/GenerateXtend.mwe2 + ``` diff --git a/dev-doc/Xtext-Maintenance-Manual.mm b/dev-doc/Xtext-Maintenance-Manual.mm new file mode 100644 index 00000000000..89459cd7bda --- /dev/null +++ b/dev-doc/Xtext-Maintenance-Manual.mm @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fixVersions.sh b/fixVersions.sh index b9724979796..77354ba60b1 100755 --- a/fixVersions.sh +++ b/fixVersions.sh @@ -64,7 +64,6 @@ SnapshotToSnapshot() { find . -type f -name "pom.xml" | xargs_sed_inplace -e "s/${from}-SNAPSHOT/${to}-SNAPSHOT/g" find . -type f -name "maven-pom.xml" | xargs_sed_inplace -e "s/${from}-SNAPSHOT/${to}-SNAPSHOT/g" find . -type f -name "tycho-pom.xml" | xargs_sed_inplace -e "s/${from}-SNAPSHOT/${to}-SNAPSHOT/g" - find . -type f -name "versions.gradle" | xargs_sed_inplace -e "s/version = '${from}-SNAPSHOT'/version = '${to}-SNAPSHOT'/g" find . -type f -name "feature.xml" | xargs_sed_inplace -e "s/version=\"${from}.qualifier\"/version=\"${to}.qualifier\"/g" find . -type f -name "feature.xml" | xargs_sed_inplace -e "s/version=\"${from}\" match=\"equivalent\"/version=\"${to}\" match=\"equivalent\"/g" find . -type f -name "category.xml" | xargs_sed_inplace -e "s/version=\"${from}.qualifier\"/version=\"${to}.qualifier\"/g" @@ -132,32 +131,12 @@ checkVersionFormat "$to" if [ "$bump" == "StoS" ]; then echo "# bumping version from Snapshot to Snapshot" - directories=$(./allDirectories) - for directory in $directories - do - directory=$(echo $directory | tr -d '\r') - echo "Processing $directory" - # remember current dir and change to repository directory - pushd $(pwd) > /dev/null - cd $directory - SnapshotToSnapshot - popd &> /dev/null - echo - done + + SnapshotToSnapshot fi if [ "$bump" == "BST" ]; then echo "# bootstrapping version from $from to $to" - directories=$(./allDirectories) - for directory in $directories - do - directory=$(echo $directory | tr -d '\r') - # remember current dir and change to repository directory - pushd $(pwd) > /dev/null - cd $directory - VersionBootstrap - popd &> /dev/null - echo - done + VersionBootstrap fi diff --git a/gitAll b/gitAll deleted file mode 100755 index 62b8984097c..00000000000 --- a/gitAll +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -if [[ $# -eq 0 ]]; then - echo "usage: "$0" " - exit 1 -fi - -directories=$(./allDirectories) -for directory in $directories -do - directory=$(echo $directory | tr -d '\r') - echo "Processing $directory" - pushd $directory &> /dev/null && git "$@" - popd &> /dev/null - echo -done