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

Exclude non-essential files from Composer package #25414

Closed
felixfbecker opened this issue Dec 10, 2017 · 5 comments
Closed

Exclude non-essential files from Composer package #25414

felixfbecker opened this issue Dec 10, 2017 · 5 comments

Comments

@felixfbecker
Copy link

I noticed all the Symfony components include the tests in the Composer package, which for all components amounts to multiple MB, which bloats distribution packages, container image sizes etc. It would be nice to exclude them in a .gitattributes file.

@javiereguiluz
Copy link
Member

javiereguiluz commented Dec 10, 2017

@felixfbecker this has been discussed before a lot of times: #13521, #16174, #20057, #6605, #6374, #17749, etc.

This proposal still causes a heated debate and there's no general consensus about what to do.

@linaori
Copy link
Contributor

linaori commented Dec 10, 2017

Could've prevented issues like #25358 if the files were excluded.

@nicolas-grekas
Copy link
Member

I'm still waiting a PR to mark classes in Tests as internal... :)

@sstok
Copy link
Contributor

sstok commented Dec 17, 2017

I'm still waiting a PR to mark classes in Tests as internal... :)

We should have a PHP-CS Fixer for this :) but not sure how to configure this properly - I guess any class in the Tests namespace can be automatically marked @internal 🤔 it's not the same as final so should be safe to do.

@nicolas-grekas
Copy link
Member

Closing as the current situation has been explained many times (see @javiereguiluz links)
Would be great if someone could take the time to mark tests classes internal though.

fabpot added a commit that referenced this issue Sep 16, 2019
…dist" (Nyholm)

This PR was merged into the 4.4 branch.

Discussion
----------

Adding .gitattributes to remove Tests directory from "dist"

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no?
| Tickets       |
| License       | MIT
| Doc PR        |

This is a controversial topic that have been mentioned before. We recently had some discussions on Slack about it and the community not in an agreement. This was asked back in 2014 already.

Im making this PR again, because I think this will help more people than it hurts to keep the tests in the "dist" version.

### Reasons for keeping the tests with the source

* You can look at the tests to understand how the code works
* It is convenient

In the past there were an argument of people might depend on Symfony's classes in Tests. That is no longer the case since we moved reusable classes from Tests to Test.

### Reasons for removing them (merging this PR)

* There should be difference between `composer update --prefer-source` and `composer update --prefer-dist`
* Smaller packages when deploying with Docker or on Serverless.
* Static analysis tools will not complain on PHP syntax errors in our tests ([example](https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/xml_with_wrong_ext.php))

## How to decide?

Merging this PR or not is tricky because no side has a solid technical argument. It is basically just personal preference. Please give this PR a 👍 or 👎 if you want to give your opinion.

## Other PRs and issues related to this:

Add .gitattributes file (#29277)
Added .gitattributes files to root and all components (#26472)
Exclude non-essential files from Composer package (#25414)
[HttpFoundation] optimize files for distribution (#24427)
Add .gitattributes files (#23926)
[Suggestion] Adding .gitattributes to ignore unnecessary folders and files for production env (#20057)
Add lightweight and root only .gitattributes (#18004)
Add .gitattributes to exclude tests from ZIPs (#17995)
[RFC] Move tests out of the source and source out of the tests (#17749)
Removal of development & testing files using .gitattributes (#16174)
Please add .gitattributes files and fix line endings (#13521)
making use of .gitattributes (#11810)

## Workarounds

There are workarounds for both sides. Example:

### Workaround if merged

* `composer update --prefer-source`

### Workaround if closed

* `find vendor/symfony -name "Tests" -type d -exec rm -r "{}" \;`
* editorconfig/editorconfig#228
* https://github.com/dg/composer-cleaner

Commits
-------

ac7dc24 Adding .gitattributes to remove Tests directory from "dist"
symfony-splitter pushed a commit to symfony/mailer that referenced this issue Sep 16, 2019
…dist" (Nyholm)

This PR was merged into the 4.4 branch.

Discussion
----------

Adding .gitattributes to remove Tests directory from "dist"

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no?
| Tickets       |
| License       | MIT
| Doc PR        |

This is a controversial topic that have been mentioned before. We recently had some discussions on Slack about it and the community not in an agreement. This was asked back in 2014 already.

Im making this PR again, because I think this will help more people than it hurts to keep the tests in the "dist" version.

### Reasons for keeping the tests with the source

* You can look at the tests to understand how the code works
* It is convenient

In the past there were an argument of people might depend on Symfony's classes in Tests. That is no longer the case since we moved reusable classes from Tests to Test.

### Reasons for removing them (merging this PR)

* There should be difference between `composer update --prefer-source` and `composer update --prefer-dist`
* Smaller packages when deploying with Docker or on Serverless.
* Static analysis tools will not complain on PHP syntax errors in our tests ([example](https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/xml_with_wrong_ext.php))

## How to decide?

Merging this PR or not is tricky because no side has a solid technical argument. It is basically just personal preference. Please give this PR a 👍 or 👎 if you want to give your opinion.

## Other PRs and issues related to this:

Add .gitattributes file (symfony/symfony#29277)
Added .gitattributes files to root and all components (symfony/symfony#26472)
Exclude non-essential files from Composer package (symfony/symfony#25414)
[HttpFoundation] optimize files for distribution (symfony/symfony#24427)
Add .gitattributes files (symfony/symfony#23926)
[Suggestion] Adding .gitattributes to ignore unnecessary folders and files for production env (symfony/symfony#20057)
Add lightweight and root only .gitattributes (symfony/symfony#18004)
Add .gitattributes to exclude tests from ZIPs (symfony/symfony#17995)
[RFC] Move tests out of the source and source out of the tests (symfony/symfony#17749)
Removal of development & testing files using .gitattributes (symfony/symfony#16174)
Please add .gitattributes files and fix line endings (symfony/symfony#13521)
making use of .gitattributes (symfony/symfony#11810)

## Workarounds

There are workarounds for both sides. Example:

### Workaround if merged

* `composer update --prefer-source`

### Workaround if closed

* `find vendor/symfony -name "Tests" -type d -exec rm -r "{}" \;`
* editorconfig/editorconfig#228
* https://github.com/dg/composer-cleaner

Commits
-------

ac7dc24bcb Adding .gitattributes to remove Tests directory from "dist"
symfony-splitter pushed a commit to symfony/web-profiler-bundle that referenced this issue Sep 16, 2019
…dist" (Nyholm)

This PR was merged into the 4.4 branch.

Discussion
----------

Adding .gitattributes to remove Tests directory from "dist"

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no?
| Tickets       |
| License       | MIT
| Doc PR        |

This is a controversial topic that have been mentioned before. We recently had some discussions on Slack about it and the community not in an agreement. This was asked back in 2014 already.

Im making this PR again, because I think this will help more people than it hurts to keep the tests in the "dist" version.

### Reasons for keeping the tests with the source

* You can look at the tests to understand how the code works
* It is convenient

In the past there were an argument of people might depend on Symfony's classes in Tests. That is no longer the case since we moved reusable classes from Tests to Test.

### Reasons for removing them (merging this PR)

* There should be difference between `composer update --prefer-source` and `composer update --prefer-dist`
* Smaller packages when deploying with Docker or on Serverless.
* Static analysis tools will not complain on PHP syntax errors in our tests ([example](https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/xml_with_wrong_ext.php))

## How to decide?

Merging this PR or not is tricky because no side has a solid technical argument. It is basically just personal preference. Please give this PR a 👍 or 👎 if you want to give your opinion.

## Other PRs and issues related to this:

Add .gitattributes file (symfony/symfony#29277)
Added .gitattributes files to root and all components (symfony/symfony#26472)
Exclude non-essential files from Composer package (symfony/symfony#25414)
[HttpFoundation] optimize files for distribution (symfony/symfony#24427)
Add .gitattributes files (symfony/symfony#23926)
[Suggestion] Adding .gitattributes to ignore unnecessary folders and files for production env (symfony/symfony#20057)
Add lightweight and root only .gitattributes (symfony/symfony#18004)
Add .gitattributes to exclude tests from ZIPs (symfony/symfony#17995)
[RFC] Move tests out of the source and source out of the tests (symfony/symfony#17749)
Removal of development & testing files using .gitattributes (symfony/symfony#16174)
Please add .gitattributes files and fix line endings (symfony/symfony#13521)
making use of .gitattributes (symfony/symfony#11810)

## Workarounds

There are workarounds for both sides. Example:

### Workaround if merged

* `composer update --prefer-source`

### Workaround if closed

* `find vendor/symfony -name "Tests" -type d -exec rm -r "{}" \;`
* editorconfig/editorconfig#228
* https://github.com/dg/composer-cleaner

Commits
-------

ac7dc24bcb Adding .gitattributes to remove Tests directory from "dist"
symfony-splitter pushed a commit to symfony/framework-bundle that referenced this issue Sep 16, 2019
…dist" (Nyholm)

This PR was merged into the 4.4 branch.

Discussion
----------

Adding .gitattributes to remove Tests directory from "dist"

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no?
| Tickets       |
| License       | MIT
| Doc PR        |

This is a controversial topic that have been mentioned before. We recently had some discussions on Slack about it and the community not in an agreement. This was asked back in 2014 already.

Im making this PR again, because I think this will help more people than it hurts to keep the tests in the "dist" version.

### Reasons for keeping the tests with the source

* You can look at the tests to understand how the code works
* It is convenient

In the past there were an argument of people might depend on Symfony's classes in Tests. That is no longer the case since we moved reusable classes from Tests to Test.

### Reasons for removing them (merging this PR)

* There should be difference between `composer update --prefer-source` and `composer update --prefer-dist`
* Smaller packages when deploying with Docker or on Serverless.
* Static analysis tools will not complain on PHP syntax errors in our tests ([example](https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/xml_with_wrong_ext.php))

## How to decide?

Merging this PR or not is tricky because no side has a solid technical argument. It is basically just personal preference. Please give this PR a 👍 or 👎 if you want to give your opinion.

## Other PRs and issues related to this:

Add .gitattributes file (symfony/symfony#29277)
Added .gitattributes files to root and all components (symfony/symfony#26472)
Exclude non-essential files from Composer package (symfony/symfony#25414)
[HttpFoundation] optimize files for distribution (symfony/symfony#24427)
Add .gitattributes files (symfony/symfony#23926)
[Suggestion] Adding .gitattributes to ignore unnecessary folders and files for production env (symfony/symfony#20057)
Add lightweight and root only .gitattributes (symfony/symfony#18004)
Add .gitattributes to exclude tests from ZIPs (symfony/symfony#17995)
[RFC] Move tests out of the source and source out of the tests (symfony/symfony#17749)
Removal of development & testing files using .gitattributes (symfony/symfony#16174)
Please add .gitattributes files and fix line endings (symfony/symfony#13521)
making use of .gitattributes (symfony/symfony#11810)

## Workarounds

There are workarounds for both sides. Example:

### Workaround if merged

* `composer update --prefer-source`

### Workaround if closed

* `find vendor/symfony -name "Tests" -type d -exec rm -r "{}" \;`
* editorconfig/editorconfig#228
* https://github.com/dg/composer-cleaner

Commits
-------

ac7dc24bcb Adding .gitattributes to remove Tests directory from "dist"
symfony-splitter pushed a commit to symfony/cache that referenced this issue Sep 16, 2019
…dist" (Nyholm)

This PR was merged into the 4.4 branch.

Discussion
----------

Adding .gitattributes to remove Tests directory from "dist"

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no?
| Tickets       |
| License       | MIT
| Doc PR        |

This is a controversial topic that have been mentioned before. We recently had some discussions on Slack about it and the community not in an agreement. This was asked back in 2014 already.

Im making this PR again, because I think this will help more people than it hurts to keep the tests in the "dist" version.

### Reasons for keeping the tests with the source

* You can look at the tests to understand how the code works
* It is convenient

In the past there were an argument of people might depend on Symfony's classes in Tests. That is no longer the case since we moved reusable classes from Tests to Test.

### Reasons for removing them (merging this PR)

* There should be difference between `composer update --prefer-source` and `composer update --prefer-dist`
* Smaller packages when deploying with Docker or on Serverless.
* Static analysis tools will not complain on PHP syntax errors in our tests ([example](https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/xml_with_wrong_ext.php))

## How to decide?

Merging this PR or not is tricky because no side has a solid technical argument. It is basically just personal preference. Please give this PR a 👍 or 👎 if you want to give your opinion.

## Other PRs and issues related to this:

Add .gitattributes file (symfony/symfony#29277)
Added .gitattributes files to root and all components (symfony/symfony#26472)
Exclude non-essential files from Composer package (symfony/symfony#25414)
[HttpFoundation] optimize files for distribution (symfony/symfony#24427)
Add .gitattributes files (symfony/symfony#23926)
[Suggestion] Adding .gitattributes to ignore unnecessary folders and files for production env (symfony/symfony#20057)
Add lightweight and root only .gitattributes (symfony/symfony#18004)
Add .gitattributes to exclude tests from ZIPs (symfony/symfony#17995)
[RFC] Move tests out of the source and source out of the tests (symfony/symfony#17749)
Removal of development & testing files using .gitattributes (symfony/symfony#16174)
Please add .gitattributes files and fix line endings (symfony/symfony#13521)
making use of .gitattributes (symfony/symfony#11810)

## Workarounds

There are workarounds for both sides. Example:

### Workaround if merged

* `composer update --prefer-source`

### Workaround if closed

* `find vendor/symfony -name "Tests" -type d -exec rm -r "{}" \;`
* editorconfig/editorconfig#228
* https://github.com/dg/composer-cleaner

Commits
-------

ac7dc24bcb Adding .gitattributes to remove Tests directory from "dist"
symfony-splitter pushed a commit to symfony/yaml that referenced this issue Sep 16, 2019
…dist" (Nyholm)

This PR was merged into the 4.4 branch.

Discussion
----------

Adding .gitattributes to remove Tests directory from "dist"

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no?
| Tickets       |
| License       | MIT
| Doc PR        |

This is a controversial topic that have been mentioned before. We recently had some discussions on Slack about it and the community not in an agreement. This was asked back in 2014 already.

Im making this PR again, because I think this will help more people than it hurts to keep the tests in the "dist" version.

### Reasons for keeping the tests with the source

* You can look at the tests to understand how the code works
* It is convenient

In the past there were an argument of people might depend on Symfony's classes in Tests. That is no longer the case since we moved reusable classes from Tests to Test.

### Reasons for removing them (merging this PR)

* There should be difference between `composer update --prefer-source` and `composer update --prefer-dist`
* Smaller packages when deploying with Docker or on Serverless.
* Static analysis tools will not complain on PHP syntax errors in our tests ([example](https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/xml_with_wrong_ext.php))

## How to decide?

Merging this PR or not is tricky because no side has a solid technical argument. It is basically just personal preference. Please give this PR a 👍 or 👎 if you want to give your opinion.

## Other PRs and issues related to this:

Add .gitattributes file (symfony/symfony#29277)
Added .gitattributes files to root and all components (symfony/symfony#26472)
Exclude non-essential files from Composer package (symfony/symfony#25414)
[HttpFoundation] optimize files for distribution (symfony/symfony#24427)
Add .gitattributes files (symfony/symfony#23926)
[Suggestion] Adding .gitattributes to ignore unnecessary folders and files for production env (symfony/symfony#20057)
Add lightweight and root only .gitattributes (symfony/symfony#18004)
Add .gitattributes to exclude tests from ZIPs (symfony/symfony#17995)
[RFC] Move tests out of the source and source out of the tests (symfony/symfony#17749)
Removal of development & testing files using .gitattributes (symfony/symfony#16174)
Please add .gitattributes files and fix line endings (symfony/symfony#13521)
making use of .gitattributes (symfony/symfony#11810)

## Workarounds

There are workarounds for both sides. Example:

### Workaround if merged

* `composer update --prefer-source`

### Workaround if closed

* `find vendor/symfony -name "Tests" -type d -exec rm -r "{}" \;`
* editorconfig/editorconfig#228
* https://github.com/dg/composer-cleaner

Commits
-------

ac7dc24bcb Adding .gitattributes to remove Tests directory from "dist"
symfony-splitter pushed a commit to symfony/mailer that referenced this issue Sep 28, 2021
…dist" (Nyholm)

This PR was merged into the 4.4 branch.

Discussion
----------

Adding .gitattributes to remove Tests directory from "dist"

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no?
| Tickets       |
| License       | MIT
| Doc PR        |

This is a controversial topic that have been mentioned before. We recently had some discussions on Slack about it and the community not in an agreement. This was asked back in 2014 already.

Im making this PR again, because I think this will help more people than it hurts to keep the tests in the "dist" version.

### Reasons for keeping the tests with the source

* You can look at the tests to understand how the code works
* It is convenient

In the past there were an argument of people might depend on Symfony's classes in Tests. That is no longer the case since we moved reusable classes from Tests to Test.

### Reasons for removing them (merging this PR)

* There should be difference between `composer update --prefer-source` and `composer update --prefer-dist`
* Smaller packages when deploying with Docker or on Serverless.
* Static analysis tools will not complain on PHP syntax errors in our tests ([example](https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/xml_with_wrong_ext.php))

## How to decide?

Merging this PR or not is tricky because no side has a solid technical argument. It is basically just personal preference. Please give this PR a 👍 or 👎 if you want to give your opinion.

## Other PRs and issues related to this:

Add .gitattributes file (symfony/symfony#29277)
Added .gitattributes files to root and all components (symfony/symfony#26472)
Exclude non-essential files from Composer package (symfony/symfony#25414)
[HttpFoundation] optimize files for distribution (symfony/symfony#24427)
Add .gitattributes files (symfony/symfony#23926)
[Suggestion] Adding .gitattributes to ignore unnecessary folders and files for production env (symfony/symfony#20057)
Add lightweight and root only .gitattributes (symfony/symfony#18004)
Add .gitattributes to exclude tests from ZIPs (symfony/symfony#17995)
[RFC] Move tests out of the source and source out of the tests (symfony/symfony#17749)
Removal of development & testing files using .gitattributes (symfony/symfony#16174)
Please add .gitattributes files and fix line endings (symfony/symfony#13521)
making use of .gitattributes (symfony/symfony#11810)

## Workarounds

There are workarounds for both sides. Example:

### Workaround if merged

* `composer update --prefer-source`

### Workaround if closed

* `find vendor/symfony -name "Tests" -type d -exec rm -r "{}" \;`
* editorconfig/editorconfig#228
* https://github.com/dg/composer-cleaner

Commits
-------

ac7dc24bcb Adding .gitattributes to remove Tests directory from "dist"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants