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

Change build scripts to read version from source control #29

Open
jonorossi opened this issue Jun 6, 2018 · 10 comments
Open

Change build scripts to read version from source control #29

jonorossi opened this issue Jun 6, 2018 · 10 comments

Comments

@jonorossi
Copy link
Member

Both Castle Core and Windsor's build scripts read their version number from AppVeyor's environment variables, the version 0.0.0 is hardcoded in source control and when we tag a commit that built version gets the right version number set from the Git tag name.

It would be great if we could do the same here, it allows us to make new releases without worrying about constantly changing version numbers in files across the repo.

/cc @kristofdc @mario-d-s

@mario-d-s
Copy link

mario-d-s commented Jun 6, 2018

Do you mean this project should get a copy of the build system here: https://github.com/castleproject/Windsor/tree/master/buildscripts?

I notice it has common.props, I'm not an expert on build scripting but I believe such mechanism has been superseded by Directory.build.props as detailed here.

Perhaps it would be a better idea to setup a build system from scratch according to all the latest recommendations from MS.

Also, what's that Explicit.Nuget.Versions all about?

@jonorossi
Copy link
Member Author

Do you mean this project should get a copy of the build system here

Yep, a copy of the files.

I'm not an expert on build scripting but I believe such mechanism has been superseded by Directory.build.props

No idea, but it definitely still works.

Perhaps it would be a better idea to setup a build system from scratch according to all the latest recommendations from MS.

Sounds reasonable, our common.props has been around since right at the time the .NET CLI tooling moved from .project files to MSBuild so things have likely moved on, or the docs didn't exist back then. If the recommendations have changed your work could feed into updating Castle Core and Windsor. It would still be worth looking over these files to understand what things they make common across all project files, and how we tie AppVeyor into the build, test and publish process.

Also, what's that Explicit.Nuget.Versions all about?

It allows us to set explicit all package versions inside the project to ensure all packages that ship together are upgraded together. For example, if you use the Serilog logging adapter in Castle.Core it sets the dependency specification so you can only use 4.3.0 with 4.3.0 and not just mixed and match whatever you choose.

@mario-d-s
Copy link

It would still be worth looking over these files to understand what things they make common across all project files, and how we tie AppVeyor into the build, test and publish process.

I'd be happy to do that and see where we can extract value from things like Directory.build.props or other stuff from MSBuild 15.0.

I'll be leaving on holiday for 2 weeks this sunday though, so I'll probably only have time after that. If someone wants to look at it in the meantime, feel free.

@ghost
Copy link

ghost commented Jun 7, 2018

@mario-d-s I would like to see this formalised in Windsor first. That would give us the ability to parallelise, I could push up to core, we could do it here and perhaps help out on Castle.Transactions.

@mario-d-s
Copy link

@fir3pho3nixx sounds good! Would you like me to help out in Windsor?

BTW I've noticed you're more or less done with the ASP.NET stuff in Windsor now. I'm awaiting motion with the typed factory facility.

@ghost
Copy link

ghost commented Jun 7, 2018

Ha! Are we done! It is the never ending PR. I am going to keep going on it until it is merged. Until @jonorossi hits the merge button I am not free! ;)

@ghost
Copy link

ghost commented Jun 7, 2018

If you can beat me to it I would be mega grateful.

@jonorossi
Copy link
Member Author

What is the status of this issue? It has been quiet nearly 10 weeks.

@fir3pho3nixx could you elaborate what needs to be formalised in Windsor first.

It seems like we've got Castle Core and Windsor working the same; and Castle Transactions, this and NVelocity all with different build scripts.

@ghost
Copy link

ghost commented Aug 16, 2018

@jonorossi

Sure thing. I think I bloated the specificity of this issue to actually do builds properly ala Windsor/Core. Don’t forget we actually discussed implementing Mono/Core builds in Windsor using AppVeyor. In Core we should do the same if we can. This will inform and eventually result in PR’s here and NVelocity hopefully.

I am on a complete hiatus as far as our DevOps requirements are concerned until V5 is released for Windsor. My focus for now will be exactly that and that only. After that I plan to start sweeping through these projects to help out.

If you would like to move quicker on this, then we need to tackle the outstanding issues on Windsor but I think I need your help for that.

@ghost
Copy link

ghost commented Aug 16, 2018

I am busy setting up a kanban board for build work here: https://github.com/castleproject/Windsor/projects/3. Please let me know if there is anything you would like to add.

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

2 participants