Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork5.3k
Update 'How to Create and store a Symfony2 Project in Git'#3827
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Update 'How to Create and store a Symfony2 Project in Git'#3827
Uh oh!
There was an error while loading.Please reload this page.
Conversation
As confirmed by WouterJ on Stack Overflow [1], the example.gitignore file [2] is not up-to-date.This commit updates the documentation to reflect the current stateof the .gitignore file that is included in the Symfony StandardEdition distribution [3].[1]http://stackoverflow.com/q/23437768/1001110[2]http://symfony.com/doc/current/cookbook/workflow/new_project_git.html#initial-project-setup[3]https://github.com/symfony/symfony-standard/blob/master/.gitignore
wouterj commentedMay 3, 2014
👍 |
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.
if this is the case add the SymfonyRequirements class as sometimes is good to remove it or ignore it, same with config and check scripts 👶
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.
I don't see why you put that comment on this line. Besides that, I'm missing what you want to say. The files listed here are things that generally should be ignored, ignoring config/check scripts is something that doesn't belong in that list imo
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.
it is more for more slim approaches, these files change anyway depending on the OS are are files that can be cleaned up
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 PR only changes the documentation to reflect the actual.gitignore. If you'd want to propose a change to the file, you should probably do it in the Symfony Standard Edition repository, not here.
wouterj commentedMay 4, 2014
I've read some context now and I think the steps need a small rewrite. Can you do this in this PR please? (otherwise, I'll create a new one myself)
|
As proposed by WouterJ in#3827this commit rewrites the 'Initial Project Setup' paragraph.The documentation now describes the recommended way of creating anew Symfony2 project, using Composer to download the Standard Distribution+ vendors (instead of downloading the zipped version). As the StandardEdition already contains a .gitignore, the example is replaced by alink to the one stored at GitHub. The article also explains which filesare excluded by .gitignore.The last step (downloading vendor libraries using Composer) is removedas this is now covered by step 1.
nicwortel commentedMay 5, 2014
@wouterj done! What do you think? |
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.
I think we should make this bit a bit shorter, besides that the sentence about "parameters.yml" is wrong, you want to ignore this because this file is created from theparameters.yml.dist file.
I propose something like: "Your project folder will now contain all files of the Standard Edition, as well as all the third party code, automatically created files (e.g. logs, caches, dumped assets) and environment specific information (e.g. theparameters.yml file). You don't want to have this files included in your Git repository."
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 reason to ignore parameters.yml is right. The reason why we ignore it and provide a dist file for it is indeed because it contains sensitive info (your DB password)
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.
@wouterj that's correct, however, AFAIK the reason thatparameters.yml.dist exists in the first place is because of the sensitive information inparameters.yml that you don't want to store in git. (and also because it contains some other settings that should differ between installations of the application)
I agree that step 2 is getting a little long (in fact, it's not even a step, but merely side information). Perhaps it should be a tip (or another kind of side-content), too? Or should it be moved to another location? What do you think?
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.
I like the explanation ofparameters.yml now, and in general, I like this explanation. I don'tthink we cover the specific reasons for ignoring these different files anywhere else in the docs.
wouterj commentedMay 5, 2014
Except from some minor things, it looks great 👍 |
...so we don't have to renumber them every time we remove/add a newitem.
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.
What do you guys think about using"~2 here instead of2.4.4? I actually wish symfony.com/download did that too.
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.
~2 means * so -1 for that However, I'm +1 for using 2.* or ~2.3
symfony.com/download is automatically updated to the latest stable version, because they want to show the latest stable version number on the download page.
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.
no.~2 is equivalent to~2.0 or2.*. The semantic versionning operator never allows changing major version as this implies BC break.
I would use~2.3 or~2.4 in the doc. It makes sense to allow future versions, but it does not make sense to allow 2.0 while your code won't run with it
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.
I agree that using thenext significant release constraint makes more sense than a fixed version number. However,~2 being equivalent to~2.0 is not what I understand fromthe documentation at Composer.org:
Another way of looking at it is that using
~specifies a minimum version, but allows the last digit specified to go up.
This implies to me that~2 would also allow 3.x, 4.x, etc. which is obviously not desirable. Perhaps@weaverryan and@stof are right, in which case the documentation of Composer is incorrect / outdated.
If~2 is indeed equivalent to~2.0, would that be a correct version constraint? Or should I just use~2.3 or~2.4? In that case this should be updated every time a new minor version is released...
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.
@nicwortel I'm talking about the way~2 works, not about the way it is documented. The documentation of Composer should be improved on this point.
It would not make sense to allow bumping the major version for a next significant release operator. It would make it the same than>=2, allowing anything in the future with all BC breaks included. This is the opposite of the goal of the~ operator.
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.
@stable is the same than*@stable, and the same than* by default (as the default minimum stability isstable). It is an unbound constraint. If you use@stable or* as requirement, your project will start using Symfony 3.0 as soon as it is released and break (because bumping to 3.0 will mean that we are not BC)
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.
btw, try using it and validating your composer.json (with an uptodate composer). you will get a warning about being unbound (SensioLabs Insight also warns about it)
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.
Hmm, then my vote is still for~2. This is for a new project, so I'm not convinced that the fact that this technically includes 2.0 as a problem. I think it's the best user-experience.
I also what@javiereguiluz is planning on showing people on the new symfony.com download page he's working on.
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.
I don't. If you have a bundle doing a crap in its version constraint and the only installable version is the old version compatible with 2.0, this would automatically revert your project back to Symfony 2.0 because composer will think it is compatible, while your code is probably not.
And given the number of Symfony releases since 2.0 and the number of subpackages in it, reducing the range of versions matched at the root level makes a huge difference when running composer (both in term of speed and memory usage).
If you don't want to change it in each branch, at least use~2.3
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.
~2.3 it is, then! However, perhaps later on we'll have to re-evaluate if~2.3 still makes sense.
...as suggested by weaverryan.
...with a smarter one. Using Composer's tilde operator (~), also knownas the next significant release constraint, we instruct composer to useat least Symfony 2.3, but not 3.0 or higher.
Shorten the 2nd list item a bit, and move it into a 'Tip' seems to makemore 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.
extra- here onlog-
nicwortel commentedMay 21, 2014
This PR can be merged, as far as I'm concerned! |
weaverryan commentedMay 27, 2014
I agree - it's much much improved! Thanks for your hard work on this Nic! |
…(nicwortel)This PR was merged into the 2.3 branch.Discussion----------Update 'How to Create and store a Symfony2 Project in Git'This pull request updates the cookbook article [How to Create and store a Symfony2 Project in Git](http://symfony.com/doc/current/cookbook/workflow/new_project_git.html#initial-project-setup).It started with [this question (and its answer by Wouter J) on Stack Overflow](http://stackoverflow.com/q/23437768/1001110).| Q | A| ------------- | ---| Doc fix? | yes| New docs? | no| Applies to | all (or 2.3+)| Fixed tickets | n/aCommits-------3f3d886 Update the tip about the global .gitignore1baf7e0 Remove dash6fd5e52 Small improvementd9f72f9 Some refactoring of the article083c1f5 Replace static version constraint (2.4.4)32cee81 Small change in the wording311f14b Replace numbered list items with #6a19628 Indent the tip to be on the same level as the list item34d61eb Update the complete 'Initial Project Setup' paragraph011e0f0 Update .gitignore example
This pull request updates the cookbook articleHow to Create and store a Symfony2 Project in Git.
It started withthis question (and its answer by Wouter J) on Stack Overflow.