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

Integrate AppVeyor build for NuGet / Umbraco Package #9

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

Weegy
Copy link

@Weegy Weegy commented Jun 3, 2018

  • NuGet Creation
  • Umbraco Package Creation

Kudos to @leekelleher (Boilerplate is from stacked-content)

@Weegy
Copy link
Author

Weegy commented Jun 3, 2018

It includes also a Dashboard transformation for the "settings section". Test NuGet can be found here https://www.myget.org/feed/byte5digital/package/nuget/Our.Umbraco.BackofficeThemes

@Weegy Weegy changed the title Develop Integrate AppVeyor build for NuGet / Umbraco Package Jun 3, 2018
<NuGetPackageName>Umbraco Backoffice Themes</NuGetPackageName>
<Copyright>Copyright &#169; 2018 Our Umbraco and other contributors</Copyright>
<Owners>Marcin Zajkowski</Owners>
<IconUrl>https://raw.githubusercontent.com/umco/umbraco-stacked-content/master/docs/img/logo.png</IconUrl>
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need a logo ;)

Copy link
Owner

@mzajkowski mzajkowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work! It'd be great to have another pair of eyes on it and if our amazing creator of the boilerplate (@leekelleher) can find a second to scan through it - it'll be great.

<areas>
<area>developer</area>
</areas>
<tab caption="Backend Theme">
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I like this transform. We just need to keep consistent names, so please rename it for now to "Backoffice Themes" to follow the package name. Also.. the good thing to discuss in this area is to where it should be placed, as it might be good to expose it for "normal" editors as well, not only those who has access to the Developer's section.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in latest Commit

<package id="semver" version="1.1.2" targetFramework="net461" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net461" />
<package id="System.Threading.Tasks.Dataflow" version="4.7.0" targetFramework="net461" />
<package id="UmbracoCms.Core" version="7.8.0" targetFramework="net461" />
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All those dependencies are coming from installation of UmbracoCms.Core?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cleand a bit up. But these packages ares used to build the solution (normale Umbraco.Core stuff)

Copy link
Contributor

@leekelleher leekelleher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mzajkowski I'm happy with the PR.

I've left various comments, my main concern around the AppVeyor config - auth tokens/keys, they'll need to be configured once the AppVeyor CI build is set-up.

# MyGet Deployment for builds & releases
- provider: NuGet
server: https://www.myget.org/F/byte5digital/api/v2/package
symbol_server: https://www.myget.org/F/byte5digital/symbols/api/v2/package
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We set-up an Umbraco community MyGet feed, (it's not just UMCO packages, Jeavon and others use it too)

server: https://www.myget.org/F/umbraco-packages/api/v2/package
symbol_server: https://www.myget.org/F/umbraco-packages/symbols/api/v2/package

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's really cool. IMHO we should use this feed :)

server: https://www.myget.org/F/byte5digital/api/v2/package
symbol_server: https://www.myget.org/F/byte5digital/symbols/api/v2/package
api_key:
secure: vsHr1qAsDwPTvZV7ljoZdx2LAAuk7Xq+0vPHPFhqlPQPXinsAObb8XPLMpQoWnYW
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The API key will need generating from MyGet, then encrypted on AppVeyor - depending who's AppVeyor account is used to manage the CI build. Of course this wont be known until it's all set-up/configured.

# GitHub Deployment for releases
- provider: GitHub
auth_token:
secure:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same for this, the auth token will need to be encrypted on AppVeyor - again, this is only doable after the AppVeyor CI build is set-up.

- provider: NuGet
server:
api_key:
secure:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Same as above)

<language></language>
<tags></tags>
<dependencies>
<dependency id="UmbracoCms" version="[7.8,7.11)" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd set this to be [7.8,8), so that it includes all v7.8 up to v8, rather than stopping at v7.10.x last patch release.

<Reference Include="Semver, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\semver.1.1.2\lib\net451\Semver.dll</HintPath>
</Reference>
<Reference Include="SQLCE4Umbraco, Version=1.0.6611.19720, Culture=neutral, processorArchitecture=MSIL">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One of my bugbears with the "UmbracoCms.Core" nuget package is that it adds references to assemblies that we aren't actively using in our projects. It's an unnecessary assembly dependency.

I end up manually removing all the obvious ones (SQLCE4Umbraco, MySql.Data, etc). But if we upgrade the nuget package, then they all get added back in. I'm happy to tidy this up post-merge. (It's a boring chore on all of our projects).

using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

[assembly: AssemblyVersion("0.1-alpha.*")]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure that this compiles? The AssemblyVersion attribute should require a valid version number - with major.minor.patch numerics.

AssemblyInformationalVersion is different... you can have any old string in there - it's purely for presentational purposes.

<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the other side effect of having extra assembly dependencies (which we aren't using) ... littering up the assemblyBindings - urgh. Not ones fault, just my bugbear of the tooling.

<package id="semver" version="1.1.2" targetFramework="net461" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net461" />
<package id="System.Threading.Tasks.Dataflow" version="4.7.0" targetFramework="net461" />
<package id="UmbracoCms.Core" version="7.8.0" targetFramework="net461" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mzajkowski Did you have any preference on Umbraco version? My PR #6 targets v7.7.0 ... but happy to increase if desired?

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops I merged it before reading this comment :) Basically, we can target lower version (ideally as lowest as possible) as not much has changed in terms of backoffice styling between them.

So maybe, as a part of this task/cleanup just dump a version here to 7.7 for now?

@Weegy
Copy link
Author

Weegy commented Jun 4, 2018

@leekelleher Thanks for your time, I'm glad I didn't mess it up :)

@mzajkowski
Copy link
Owner

@Weegy please pull the latest changes from the other PR before applying any fixes :) Can't wait to see them applied and merged. We're getting there!

I'm more than happy to use this Community feed to serve the package.

@leekelleher can you advise on versioning strategy? How you're dealing with releases of alphas/betas etc?

@Weegy
Copy link
Author

Weegy commented Jun 5, 2018

Merge Succesful, I will implement the other fixes ASAP

@leekelleher
Copy link
Contributor

@mzajkowski - re: Versioning. Depends how much maintenance and discipline you want to have for the project.

Most of the UMCO projects have a branching workflow. master is only for stable/released code, (this could also be for beta releases). We have a develop branch, which is configured as our default branch, so all forks/PRs will target that by default. This means that we can separate our future dev work from releases. Then we use (internal) PRs to merge develop into master when we're ready for a new release. I can't remember if this is called GitFlow or GitHubFlow - or something else?

With version numbers, we try to stick with SemVer... Bump major for breaking-changes, bump minor for new features and bump patch for bug fixes.

On a few of our projects, I stuck with using v0.x for a while (see Ditto, NC and DTGE), because there's a clause in SemVer that says as v0.x is a pre-release and you can make any many breaking-changes as you please. Suggesting that it should never be used in production, but I think I held on to that idea for too long ... so I wouldn't recommend doing v0.x anymore.

@mzajkowski
Copy link
Owner

Thanks @leekelleher for your feedback.

This is similar to what we're following in most of our projects too. I was always curious about -alpha and -beta releases, but it seems like it's just a visual name for a specific release rather than strategy or something like it.

I'll try to find some time to combine it all into a small and clear CONTRIBUTING.md file with all the details about desired strategy here - maybe it'll be useful for someone else trying to work on it for the next project.

In terms of 0.x.x - I'm with you. It's nothing good to see product which is pretty stable at the market still being in 0.1.29 or something :) Let's aim to release 1.0.0 here first.

Cheers and can't wait to see @Weegy's changes applied :) Thanks for your time and hard work so far.

@leekelleher
Copy link
Contributor

I forgot to add. With the develop branch and AppVeyor CI builds. All commits in develop are built and pushed to the MyGet feed, and all suffixed with -alpha. So we don't usually add "alpha" manually to our version numbers.

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

Successfully merging this pull request may close these issues.

3 participants