Skip to content

Maintenance and release housekeeping#71

Merged
lippserd merged 11 commits intomainfrom
docs-and-repo-housekeeping
Mar 24, 2026
Merged

Maintenance and release housekeeping#71
lippserd merged 11 commits intomainfrom
docs-and-repo-housekeeping

Conversation

@lippserd
Copy link
Member

@lippserd lippserd commented Mar 23, 2026

This PR consolidates several maintenance tasks to bring the repository in
line with shared conventions across our projects.

CI

  • Extend push builds to support/* and trigger validation for all pull
    requests regardless of the target branch.
  • Enable workflow_dispatch for ad‑hoc verification.

Repository

  • Add .gitattributes to exclude CI, Git configuration, and
    test‑related files from git archive outputs.
  • Enable Composer’s sort‑packages setting and normalize
    composer.json.
  • Convert the license file to LICENSE.md to align with the repository’s
    Markdown‑based documentation and establish a consistent convention
    across all repositories.

Documentation

  • Add CHANGELOG.md to summarize notable changes per release.
  • Expand README.md with a package overview, installation requirements,
    and focused examples for the filter system, Events trait, and utility functions.
  • Normalize and complete PHPDoc across all source files.
  • Clean up inline comments and tighten wording.

closes #67

@cla-bot cla-bot bot added the cla/signed label Mar 23, 2026
@lippserd lippserd requested a review from jrauh01 March 23, 2026 10:40
@lippserd lippserd force-pushed the docs-and-repo-housekeeping branch from eeea8a3 to fa4befc Compare March 23, 2026 11:49
@lippserd lippserd requested a review from jrauh01 March 23, 2026 12:42
Copy link
Contributor

@jrauh01 jrauh01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I marked a few things, I think would match the concern of this PR.

Additionally please correctly align the PHPDocs of the ignoresCase() method in:

  • ipl\Stdlib\Filter\Equal
  • ipl\Stdlib\Filter\Like
  • ipl\Stdlib\Filter\Unqual
  • ipl\Stdlib\Filter\Unlike

@lippserd lippserd requested a review from jrauh01 March 23, 2026 21:24
Copy link
Contributor

@jrauh01 jrauh01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just noticed that most of the class-level PHPDocs are single-lines like:

/** ... */

But some are still multi-line although they only contain a single line like:

/**
 * ...
 */

The multi-line classes/interfaces are:

  • ipl\Stdlib\Contract\Translator
  • ipl\Stdlib\Loader\AutoloadingPluginLoader
  • ipl\Stdlib\Str

src/Plugins.php Outdated
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This inline type doc can be removed. The type can already be inferred from the new array<string, PluginLoader[]> property type doc.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

@lippserd lippserd requested a review from jrauh01 March 24, 2026 12:47
jrauh01
jrauh01 previously approved these changes Mar 24, 2026
Copy link
Contributor

@jrauh01 jrauh01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@jrauh01
Copy link
Contributor

jrauh01 commented Mar 24, 2026

As the base branch modernize-code had recent changes, don't forget to rebase.

Base automatically changed from modernize-code to main March 24, 2026 16:30
@lippserd lippserd dismissed jrauh01’s stale review March 24, 2026 16:30

The base branch was changed.

Potential bugfix releases for maintained older versions should receive
the same PHP checks as the default branch. Extend push builds to also
cover `support/*` and drop the pull request target filter so validation
still runs for pull requests merged through other pull requests.

Enable `workflow_dispatch` for ad-hoc verification.
Enable Composer's `sort-packages` setting and run `composer normalize`
to establish a consistent structure for `composer.json`.

This keeps future dependency changes deterministic and reduces
unnecessary diff noise.
@lippserd lippserd force-pushed the docs-and-repo-housekeeping branch 2 times, most recently from b80e101 to 22a1083 Compare March 24, 2026 16:34
lippserd and others added 9 commits March 24, 2026 17:36
Add a minimal `.gitattributes` file so `git archive` excludes CI and
Git configuration files as well as test-related files.

This keeps release archives focused on the package contents.
Remove the broad hidden file exclusion and its `.git*` whitelist in
favor of a global `~/.gitignore`. Editor and OS artifacts such as
`.DS_Store`, `.idea/`, or `.vscode/` are environment-specific and not
the project's responsibility to exclude.

Each developer should maintain a global ignore file for such artifacts:

    git config --global core.excludesFile ~/.gitignore

Keep only Composer installation artifacts with a comment clarifying
why `composer.lock` is excluded for library projects.
Rename the license file to `LICENSE.md`, switch to a Markdown heading,
and normalize the Icinga URL.

This aligns the license file with the repository's Markdown-based
documentation and establishes `LICENSE.md` as a consistent convention
across all Icinga repositories.
Introduced changelog covers all releases and unreleased changes,
derived from tags, release notes, commits, and related pull requests.
Add a package overview, installation requirements, and focused examples
for the filter system, Events trait, and utility functions.

This gives users practical guidance without turning the README into a
component-by-component reference.
Inline comments should read as complete sentences and be easy to scan. Ending
each comment with a full stop signals that the thought is complete and keeps
the style consistent across the codebase. Where comments were verbose or
imprecise, take the opportunity to tighten the wording without changing
meaning.
All three methods accept zero rules, but the existing PHPDoc left callers
to infer what the resulting rule would do. An empty `All` or `None` always
matches; an empty `Any` never does.

Co-authored-by: Dennis <47061464+dennisorlando@users.noreply.github.com>
@lippserd lippserd force-pushed the docs-and-repo-housekeeping branch from 22a1083 to 75355bf Compare March 24, 2026 16:36
@lippserd lippserd merged commit 82d8a63 into main Mar 24, 2026
13 checks passed
@lippserd lippserd deleted the docs-and-repo-housekeeping branch March 24, 2026 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants