- Notifications
You must be signed in to change notification settings - Fork 663
Add support for nuget special version limitations #184
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
Add support for nuget special version limitations #184
Conversation
NuGet Special Version must be less than, or equal to, 20 characters and may not contain a '/' character. https://nuget.codeplex.com/workitem/3426 https://github.com/Haacked/NuGet/blob/master/src/Core/Authoring/PackageBuilder.cs#L556-L559
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.
Not sure this should have the build metadata?
| Thanks for the pull request, the Personally I think you should just update the logic of the LegacySemVer to make sure it doesn't generate a pre-release tag longer than 20 characters. The SemanticVersion class should have no idea about branches etc. The logic which removes feature/hotfix/release from the tag should be moved to outside the SemanticVersion class |
| @JakeGinnivan I agree that e.g. Both of these branches produce the same |
Hotfix and release branches should have metadata appended.
| I think maybe the bug is that feature branches are not given the same love as pull request branches. Our workflow (including Particular as far as I understand) tends to be we build master, develop, release and pull requests. Feature branches are pretty much ignored. I think what we need is that the feature branch finder should not use -unstable, instead it should use the part of the branch name after the first - or /. I also suggest maybe splitting on _ and just using the first part. From what you have said:
Could you explain a bit more about your workflow and build server setup (in terms of what branches and ref's you monitor to build) Thoughts @andreasohlund |
| Also, the reason feature branches are ignored (in our workflows) is they are all created in forks, so the only way they are built are via pull requests |
| Correct, at least for all TeamCity users since there is no way to build That's why we choose to not build feature branches since we want devs to On Wed, Jun 4, 2014 at 3:06 PM, Jake Ginnivan notifications@github.com
|
This is mostly correct. We use github enterprise and contain our groups in teams within their own organizations. Everyone will typically work within the same repository and only use forks when going across organizations.
We do use pull requests. Our developers work from stories, which may be a part of an epic or theme, that encompass an entire vertical slice across our infrastructure. At times we may be limited to a single repository, but in the case of updating a library we may need to test a pre-release out prior to opening a pull request. As we sign everything, we can not actually build a library locally and promote the use of it outside of our build system (bamboo) due to the testing environment being a replica of production. As such, we have all of our repositories monitored for new branches and will have plan branches within bamboo created on the fly. Those plan branches will run through all tests and alert a developer if things are breaking continuously. What we can not do with this is test new features that are added into the library that will be exposed upstream (webapi, nservicebus, etc...). We will generally have a theme branch, and inside of that a feature branch that we will introduce the reference to the pre-release nuget package. Once initial testing is approved then we will move the library through regression testing, then promote to a release at which time we may open a pull request on the other feature branch into the parent feature branch (which is the theme/epic) for testing the entire theme/epic. We have multiple people working on different features within each of these libraries, so pull-request -> release candidate can get very messy while keeping the pre-releases tied specifically to a feature is fairly neat and easily automated. |
| @arledesma I have put up another pull request (#189) which adds better feature branch support and improves the legacy versions to trim to max of 20 characters. Could you have a look and see if it solves your problem? |
| @JakeGinnivan #189 looks excellent. Closing this. |
Nuget Special Version does not support strings longer than 20 characters. In order to optimize continuous delivery, based off of ticket numbers as feature branches (e.g.
feature-TKT-9999), we can label a nuget package with the version including the ticket number (e.g.1.2.3-TKT-9999) for end to end testing of new features that are maintained in a dependent nuget package.NugetPackageVersion