pdsinterop / php-solid-server

Standalone Solid Server written in PHP by PDS Interop
https://pdsinterop.org/php-solid-server/
MIT License
46 stars 7 forks source link

No lockfile is committed #43

Closed Vinnl closed 2 years ago

Vinnl commented 3 years ago

I tried to run php-solid-server on Heroku to give it a look-over, but my deployment is immediately rejected:

ERROR: No 'composer.lock' found!

A 'composer.lock' file was not found in your project, but there is a 'composer.json' file with dependencies inside 'require'.

The lock file is required in order to guarantee reliable and reproducible installation of dependencies across platforms and deploys. You must follow the Composer best practice of having your lock file under version control in order to deploy. The lock file must not be in your '.gitignore'.

Please perform the following steps locally on your computer to resolve this issue before attempting another deploy: 1) remove 'composer.lock' from file '.gitignore', if present 2) if no 'composer.lock' exists, run 'composer update' 3) stage the lock file changes using 'git add composer.lock' 4) if you edited '.gitignore', also run 'git add .gitignore' 5) commit the change using 'git commit'

Please remember to always keep your 'composer.lock' updated in lockstep with 'composer.json' to avoid common problems related to dependencies during collaboration and deployment.

Please refer to the Composer documentation for further details: https://getcomposer.org/doc/ https://getcomposer.org/doc/01-basic-usage.md

Aside from Heroku deployments, although I'm not too familiar with the PHP ecosystem, I assume it would be a good idea to commit a lockfile to prevent "works on my machine" issues as well.

(On a tangential note: there's no hosted instance of the server available somewhere that I can run automated tests against, is there?)

Potherca commented 3 years ago

Hi! Thank you for bringing this to our attention!

It is considered good practice to commit the lock file to a repository.

The reason we haven't done this yet is becasue are simultaneously developing this standalone version, a Nextcloud version, and the packages that power both.

Some parts are still under heavy development and everything is still somewhat in flux. That is also the reason no hosted instance is live yet.

We are currently in the process of rounding up loose ends, so this is good time for us to start thinking about releasing a deployable version (including a lock file).

We'll keep you posted of any developments on that front here! :+1:

Vinnl commented 3 years ago

Great, looking forward to that!