Skip to content

How to use stable/tagged versions? #109

@mpdude

Description

@mpdude

Lieber Oskar,

we've been using this action for years now (including auto-committing and pushing the fixups) and it is making our lives so much easier. Thank you for your work and for maintaining it!

There is one issue I came across recently and I wonder whether you have any ideas how to deal with it.

Some time ago, I had the impression that PHP-CS-Fixer was a bit unstable regarding its defaults and the way how it fixed particular CS issues. In some cases, it might change the code style in one way, only to revert it in the next release (probably a bug?). Or, new defaults are included and change the code in a way you don't like, so you have to update the config to keep it "stable".

All this lead to a desire to run this action with a stable, traceable version of PHP-CS-Fixer and being able to update to another version explicitly, without getting PHP-CS-Fixer updates out of the blue. Thus, I've been specifying uses: docker://oskarstark/php-cs-fixer-ga:3.26.0, but realized that doesn't cut it either.

Clearly the issue is that you need some kind of tagging and release numbering scheme that covers changes you make to this repo here (i. e. actions definition, build process, the entrypoint.sh script and similar). But in addition to that, we also have to deal with the version numbers/releases that go into the Docker image. Mostly this is the actual version of PHP-CS-Fixer being included, but potentially other libraries might matter as well (probably we can neglect this). And, of course, on top of this all goes the requirement that for new upstream releases, new action versions will be shipped automatically, not through a manual process.

Do you have any ideas how this could be addressed? Do you know of any examples of how people solve this "version of the upstream tool plus versioning of the build process" issue through release numbering?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions