-
Notifications
You must be signed in to change notification settings - Fork 288
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
use invoiceninja.tar.gz #717
base: master
Are you sure you want to change the base?
Conversation
|
||
# Extract Invoice Ninja | ||
RUN mkdir -p /var/www/app \ | ||
&& tar -xvf /tmp/ninja.tar -C /var/www/app/ \ | ||
&& tar -xvf /tmp/ninja.tar.gz --strip-components=1 -C /var/www/app/ \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why are we introducing the strip-components=1 here? this will change the directory levels?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- ninja.tar directly contains the gzipped files.
- ninja.tar.gz contains an additional folder with the gzipped files. This is aligned with standard conventions. So if someone extracts it careless ly, it will not by default extract into the current directory, which may contain already files, but in a folder in the current directory. So tar.gz with strip-components is identical to tar without strip-components
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This impacts the selfupdater which is expecting there to be no nested directory. PharData ->extractTo() cannot handle this particular scenario and would require extracting to a temp dir and then copying file back.
Also, changing the directory structure will impact other third parties that use our release files for their own builds.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The release artifact invoiceninja.tar is at the moment still available and the selfupdater is not used in docker.
Proposal:
We should get rid of invoiceninja.tar:
- Unexpected/non-standard behaviour of extracting by default into the current directory
- wrong extension, as it is a gzip archive
So removing https://github.com/invoiceninja/invoiceninja/blob/99d2652f89b64c49be3aefe420500e652e50bbaf/.github/workflows/react_release.yml#L66 needs than be postponed, until consumers of invoiceninja.tar had some time switch to the new artifact.
But if it is not possible to handle this for the selfupdater, it makes no sense.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@benbrummer there are two issues here:
- Dealing with the additional folder in selfupdate controller - there is no graceful way to handle this.
- Third parties that have build assuming no additional directory is present
My preference here is to maintain the current directory structure so that it is not a breaking change for many users.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just need clarification on this item
Afterwards we can remove https://github.com/invoiceninja/invoiceninja/blob/99d2652f89b64c49be3aefe420500e652e50bbaf/.github/workflows/react_release.yml#L66