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

use invoiceninja.tar.gz #717

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

benbrummer
Copy link
Collaborator

@github-actions github-actions bot added the Stale label Feb 2, 2025
@github-actions github-actions bot closed this Feb 4, 2025
@turbo124 turbo124 reopened this Feb 4, 2025
@turbo124 turbo124 added enhancement and removed Stale labels Feb 4, 2025
@github-actions github-actions bot added the Stale label Feb 9, 2025
@github-actions github-actions bot closed this Feb 11, 2025
@benbrummer benbrummer reopened this Mar 5, 2025

# 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/ \
Copy link
Member

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?

Copy link
Collaborator Author

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

Copy link
Member

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.

Copy link
Collaborator Author

@benbrummer benbrummer Mar 5, 2025

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.

Copy link
Member

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:

  1. Dealing with the additional folder in selfupdate controller - there is no graceful way to handle this.
  2. 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.

Copy link
Member

@turbo124 turbo124 left a 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

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