major improvements are:
- cleans this file from any re-introduced file
- adds deleted files to the top of the list
- takes extra care of full path names (i.e. "^$E$" and "^$F$") to avoid cluttering grep with e.g., .txt and .txt_bak files
- uses data/deleted.files.tmp as lock file to produce a single trailing line only after adding any deleted files (thus the "cp" in the first "awk") and removes it (the "mv" in second "awk")
A workflow should automatically suggest a new pull request with the
changes.
Initial fixes will not be applied from the auto generated PR but will be
added as piece by piece commits with rule updates to this branch.
This introduces a two-part release mechanism. A manually triggered
workflow asks for the important info like type of release (stable, rc)
and code name. It then creates a cleanly mergable pull request.
When that pull request is merged, a release is automatically tagged,
built and uploaded.
Another workflow is introduced to keep track of the deleted.files info.
This is one less chore to do on a release.
A new scheme for tags is also introduced, making all tags sortable,
regardless of their type. They follow the pattern
release-YYYY-MM-DD(<hotfixletter>|rc)
A script will be used to clean-up the existing tags.
The attempt in 7bbf38eeb4 to not run
checks twice for our own internal pull requests seem not to have worked,
because checks in external PRs were no longer executed.
This is another approach to achieve the same based on code found at
764f121f9a/.github/workflows/build-and-test.yml (L10-L12)
Travis has recently introduced built limits which makes using them very
slow sometimes and I never really liked the setup for appveyor for our
Windows testing.
This makes use of github actions instead. Some notes:
* since we only support PHP 7.2+ anymore, nothing below is tested
* MySQL and Postgres auth backends are only tested on Linux (as before)
* I am not actually sure the problem matchers are working as intended
* There is currently no good way to run tests that are allowed to fail
so no PHP 8 tests are run yet
* I haven't reestablished the no-gzip test runs again, I'm not sure they
are still relevant on modern PHP systems
* PHP 7.4 currently fails because of https://github.com/MarcusSchwarz/lesserphp/pull/18
* I'm currently using @v2 tags for the used action. We had a discussion
before if we should actually pin the action to a fixed commit. For
sake of easier maintainance, I would argue to trust the setup-php
action.
Splitting them out allows for plugins to use _test/phpcs.xml as the
basis for their own linting without having an overly permissive coding
standard.
Also, this makes it more obvious and painful that these are just
intended as temporary exceptions and should be actually fixed.
The rule `Generic.ControlStructures.InlineControlStructure.NotAllowed`
has its comment adjust to make it clear that this is an intended
deviation from the PSR-2/PSR-12 coding standard.
The rule `PSR1.Classes.ClassDeclaration.MissingNamespace` has to remain
in the DokuWiki coding standard as the plugin base classes can currently
not reasonably be in namespaces.
This excludes the currently failing checks with automatic fixes, as they
are out of scope of this commit. The current goal is automatically
reject pull requests that don't me the standards that the rest of our
code base already follows.