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

Fundamental issue with how to use FIRE #54

Open
dalin- opened this issue Sep 16, 2024 · 1 comment
Open

Fundamental issue with how to use FIRE #54

dalin- opened this issue Sep 16, 2024 · 1 comment
Labels
bug Something isn't working critical Prevents using fire. Must revert to the commands in the underlying tools to circumvent the bug.

Comments

@dalin-
Copy link
Contributor

dalin- commented Sep 16, 2024

A well-maintained project will specify the proper version of PHP in composer.json:

"require": {
  "php": "~8.3"
}

There's many reasons for this, including: If you run composer install with different PHP versions

  • you'll get different packages (some versions of packages require a minimum version of PHP due to using new language concepts).
  • you can get completely different .lock, autoload, etc. files. Which increases the number of "works for me" issues that you'll run into.

If you run composer install on a project and you're running the wrong version of PHP, you'll get a cryptic error. Something about how your php version does not satisfy requirements.

e.g.

  Problem 1
    - ezyang/htmlpurifier is locked to version v4.16.0 and an update of this package was not requested.
    - ezyang/htmlpurifier v4.16.0 requires php ~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 -> your php version (8.3.7) does not satisfy that requirement.
  Problem 2
    - laminas/laminas-text is locked to version 2.10.0 and an update of this package was not requested.
    - laminas/laminas-text 2.10.0 requires php ~8.0.0 || ~8.1.0 || ~8.2.0 -> your php version (8.3.7) does not satisfy that requirement.
  Problem 3
    - lcobucci/clock is locked to version 3.0.0 and an update of this package was not requested.
    - lcobucci/clock 3.0.0 requires php ~8.1.0 || ~8.2.0 -> your php version (8.3.7) does not satisfy that requirement.
  Problem 4
    - mathieuviossat/arraytotexttable is locked to version v1.0.10 and an update of this package was not requested.
    - mathieuviossat/arraytotexttable v1.0.10 requires php ~8.0.0 || ~8.1.0 || ~8.2.0 -> your php version (8.3.7) does not satisfy that requirement.
  Problem 5
    - ezyang/htmlpurifier v4.16.0 requires php ~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 -> your php version (8.3.7) does not satisfy that requirement.
    - caxy/php-htmldiff v0.1.14 requires ezyang/htmlpurifier ^4.7 -> satisfiable by ezyang/htmlpurifier[v4.16.0].
    - caxy/php-htmldiff is locked to version v0.1.14 and an update of this package was not requested.

Meaning that our current install instructions won't work if you don't already have the correct version of PHP.

Instead you need to do something like

git clone <something>
cd <directory>
lando start # Replace with the equivalent ddev command if that's what you prefer.
lando composer install # Same.
fire setup

I'm not sure what the workaround for this is. Should FIRE Launcher be able to run fire setup on its own???

@dalin- dalin- added bug Something isn't working critical Prevents using fire. Must revert to the commands in the underlying tools to circumvent the bug. labels Sep 16, 2024
@dalin-
Copy link
Contributor Author

dalin- commented Oct 18, 2024

An idea:

  • make FIRE Launcher be a requirement rather than optional
  • add some more code to FIRE Launcher so that it can run these commands on its own
    • lando start (or ddev equiv)
    • lando composer install (or ddev equiv)
    • then return to the included version of FIRE for the rest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working critical Prevents using fire. Must revert to the commands in the underlying tools to circumvent the bug.
Projects
None yet
Development

No branches or pull requests

1 participant