Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include metafacture-fix #577

Open
10 of 37 tasks
dr0i opened this issue Nov 29, 2024 · 2 comments · May be fixed by #586
Open
10 of 37 tasks

Include metafacture-fix #577

dr0i opened this issue Nov 29, 2024 · 2 comments · May be fixed by #586
Assignees

Comments

@dr0i
Copy link
Member

dr0i commented Nov 29, 2024

Merge metafacture-fix repository to ease maintenance and support burden as well as simplify development and use. See metafacture/metafacture-fix#298 for previous discussion.

Preconditions:

Course of action:

  • Fetch old repository into temporary branch (without tags, --no-tags).
  • Merge temporary branch into integration branch (with history, --allow-unrelated-histories).
  • Combine common files (README.md, build.gradle, etc.), preserve current subprojects (metafix*) and namespace (org.metafacture.metafix).
  • Integrate into metafacture-runner.
  • Verify working state (esp. w.r.t. dependencies) for both old and new subprojects (unit tests, integration tests, distribution).
  • Open pull request to merge. Merge metafacture-fix. #586

Post-migration steps:

  • Verify working state in downstream projects (preview release).
  • Transfer open issues to new repository (can only be done individually).
  • Update README.md and description to point to new repository.
  • Update/migrate documentation and wiki content.
  • Archive old repository.
  • After next (combined) release: Update/remove dependencies in downstream projects and workflows.

Cleanup:

  • Remove metafix-runner (already done during merge).
  • Clean up .gitignore file (remove obsolete patterns, structure metafacture-fix patterns).
  • Update Checkstyle config:
    • Switch to newer tool version (toolVersion).
    • Enable checks for test files (checkstyleTest.enabled).
    • Disallow static, non-final variables (StaticVariableName).
    • Enforce Javadoc comments for methods (MissingJavadocMethod).
  • Find a way to run metafix integration tests only when necessary (would otherwise slow down all workflows, including pull request checks).
  • ...?
@blackwinter
Copy link
Member

Status update:

I've successfully performed the outlined steps towards a potential merge (as of metafacture/metafacture-fix@b254549). This was initially meant as a dry-run, but seeing as it wasn't always straightforward along the way1, I'd very much like to be able to use my current state for the actual merge (pull request). The only thing holding us back (AFAICS) is the pending release.

Can we agree on freezing all activity in the metafacture-fix repository right now? Meaning: No new commits and pull requests! Ideally, no new issues either. The release process itself doesn't matter since the version number and tags aren't carried over anyway.

Footnotes

  1. I have yet to document the modifications made during the merge, but as soon as that's done I can push the integration branch.

@blackwinter
Copy link
Member

Modifications made while importing metafacture/metafacture-fix@b254549 (see 1784fda):

Modified files:

  • .editorconfig
    • Added file extensions fix, md, mwe2, sh, vim, xtext and tmLanguage (from metafacture-fix).
  • .github/workflows/build.yml
    • Dropped build step Grant execute permission for gradlew (previously in metafacture-fix).
    • Added environment variable METAFIX_LOG_PASSED (from metafacture-fix).
    • Added build steps Install language server and Install fix extension (from metafacture-fix).
  • .github/workflows/publish.yml
    • Changed branch specification (from publish in metafacture-fix to *-rc*).
    • Changed publication task (from publish in metafacture-fix to publishAllPublicationsToGitHubPackagesRepository).
  • .gitignore
    • Changed directory patterns for gradle and build (previously less strict in metafacture-core).
    • Added file patterns (from metafacture-fix).
  • CONTRIBUTING.md
    • Updated links.
  • README.md
    • Added sections (from metafacture-fix).
  • build.gradle
    • Added plugin org.xtext.builder (from metafacture-fix).
    • Dropped plugin io.github.0ffz.github-packages (previously in metafacture-fix).
    • Increased guava dependency version (from 29.0-jre in metafacture-fix to 32.0.1-jre).
    • Increased slf4j dependency version (from 1.7.21 in metafacture-fix to 1.7.36).
    • Increased wiremock dependency version (from 2.33.2 in metafacture-fix to 2.35.0).
    • Decreased Checkstyle toolVersion (from 8.44 in metafacture-fix to 8.30).
    • Disabled Checkstyle for test files (previously in metafacture-fix).
    • Added task installServer (from metafacture-fix).
    • Added exclude generated files in plugin javadoc (from metafacture-fix).
    • Dropped repository LocalEmbedded (previously in metafacture-fix).
  • config/checkstyle/checkstyle.xml
    • Added SuppressionSingleFilter for xtext-gen and test files (from metafacture-fix).
    • Dropped MissingJavadocMethod check (not satisfied by metafacture-fix).
    • Changed StaticVariableName configuration (previously more strict in metafacture-fix).
  • metafacture-json/build.gradle
    • Changed version variable.
  • metafacture-runner/build.gradle
    • Added plugin application (from metafacture-fix).
    • Added project dependency metafix (from metafix-runner).
    • Added dependency constraint for antlr-runtime (from metafix-runner).
    • Dropped lib directory configuration in distribution (implied by application plugin).
    • Dropped start scripts (previously in metafacture-fix; superseded by bespoke main scripts).
    • Added pass system properties in JavaExec tasks (from metafix-runner).
  • metafix-ide/build.gradle
    • Added common metafacture-fix configuration (previously in top-level build file in metafacture-fix).
  • metafix-vsc/fix.tmLanguage
    • Updated links.
  • metafix-vsc/package.json
    • Updated links.
  • metafix-web/build.gradle
    • Changed metafacture-core dependencies (from external dependencies in metafacture-fix to project dependencies).
    • Added common metafacture-fix configuration (previously in top-level build file in metafacture-fix).
  • metafix/build.gradle
    • Changed metafacture-core dependencies (from external dependencies in metafacture-fix to project dependencies).
    • Added common metafacture-fix configuration (previously in top-level build file in metafacture-fix).
    • Dropped system property org.metafacture.metafix.logLevel (obsolete).
    • Dropped task install (now in top-level build file).
  • metafix/integrationTest.sh
    • Changed Gradle task (from :metafix-runner:run in metafacture-fix to :metafacture-runner:run).
  • settings.gradle
    • Added subprojects metafix, metafix-ide and metafix-web (from metafacture-fix).
    • Dropped feature preview STABLE_CONFIGURATION_CACHE (previously in metafacture-fix).

Deleted files and directories:

  • .settings/ (ignored)
  • MAINTAINING.md (obsolete)
  • metafix-ide/.checkstyle (ignored)
  • metafix-ide/.settings/ (ignored)
  • metafix-runner/build.gradle (integrated into metafacture-runner)
  • metafix-vsc/.vscode/ (ignored)
  • metafix-web/.checkstyle (ignored)
  • metafix-web/.settings/ (ignored)
  • metafix/.checkstyle (ignored)
  • metafix/.settings/ (ignored)
  • metafix/src/main/resources/log4j.xml (obsolete)

@blackwinter blackwinter linked a pull request Dec 13, 2024 that will close this issue
@blackwinter blackwinter moved this from Working to Review in Metafacture Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Review
Development

Successfully merging a pull request may close this issue.

5 participants