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

Update NHibernate and net framework #386

Merged
merged 5 commits into from
Feb 5, 2018
Merged

Update NHibernate and net framework #386

merged 5 commits into from
Feb 5, 2018

Conversation

jrgcubano
Copy link
Member

@jrgcubano jrgcubano commented Jan 9, 2018

Implements #385
References #383 #365 #381

First of all,

Thank you all the contributors for maintaining this project for so many years. It has been amaizing to be able to use it. 👍

I needed too urgently to use the project with the the lastest NHibernate, so I have updated the project to the lastest version of NHibernate and projects to the new world of .net.

I think I speak for many when saying that the project should not die. I am open to sharing the project administration and help with its updates from now on if necessary. You can give me access to the repo and I can configure the required steps to integrate this PR.

I have tried everything with an "Unofficial" fork version of the whole process (Cake, AppVeyor, Nuget, etc) in my account. jrgcubano fluent-nhibernate github

General updates:

Projects:

  • Updated to SDK csproj style
  • TargetFramework: net461.

NHibernate:

  • Update to lastest version (5.0.3)

Tests and Specs

  • Nunit 3+: new runners and update all tests.
  • MachineSpecifications 0.12+: new runners and update all specs.

Build system:

  • Cake build: Moved to Cake system because ripple is not longer maintained. We can implement any needed task easily in the feature.
  • Nuget package and publish.
  • Github Release Manager: It allows us to automate the creation of releases and publication on github.
  • AppVeyor as CI/CD. We can use teamcity also if necessary. Just need VS2017 image or netcore2.0 and set the powershell step.

** Note: When NHibernate upgrade the project to NetStandard and NetCore, it will be a matter of small changes to update the projects and the build pipeline.

In case the PR be well received and can be taken into account to accept it. We need some steps to follow and enviroment vars to be defined on appveyor by the repo owner and minor badges changes.

AppVeyor steps:

  • Appveyor.yml: definition already created.
  • Add the repo to appveyor
  • Required enviroment vars:
    • GITHUB_USERNAME: jagregory or other with repo access
    • GITHUB_TOKEN: We need a token with almost full access (read, write, create releases, create release notes, etc).
    • NUGET_API_URL: https://www.nuget.org/api/v2/package
    • NUGET_API_KEY:
  • Accept PR on master, increase git version with a tag (maybe v2.1.0)
  • Define github known labels and attach this ones to issues, so we can group notes on automatic relases (feature, bug, improvement, breaking change, documentation, technical debt).

Pending:

  • Coverage and publish to coveralls with Cake task.
  • Generate docs with Cake task.
  • Update build wiki documentation
  • Implement NHibernate new features on other PR.

@jagregory @chester89 Please, let me know what you think about all these changes.

Thanks.

<tags>ORM DAL NHibernate DataBase ADO.Net Mappings Conventions</tags>
<copyright>Copyright (c) James Gregory and contributors (Paul Batum, Hudson Akridge, Gleb Chermennov, Jorge Rodríguez Galán).</copyright>
<dependencies>
<dependency id="NHibernate" version="5.0.3" />

Choose a reason for hiding this comment

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

Might be better to use this this syntax [5.0.3, 6.0)

Copy link
Member Author

@jrgcubano jrgcubano Jan 10, 2018

Choose a reason for hiding this comment

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

I tend to think that it is better to use the idea of resilient builds. We should always know what version we are using. What do you think?

Choose a reason for hiding this comment

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

I don't think that would affect builds since the specific version of NHibernate will be specified in the projects packages.config anyway. I think it will only affect the version that is initially installed into a project the first time someone adds FluentNHibernate.

I am not sure if specifying the upper limit on the NHibernate version is a good idea or not as we don't know if version 6.0 will break any functionality with fluent.

[assembly: AssemblyVersion("1.1.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
[assembly: AssemblyInformationalVersion("1.1.0")]
[assembly: AssemblyCopyright("Copyright 2008-2017 James Gregory and contributors (Paul Batum, Hudson Akridge, Gleb Chermennov, Jorge Rodríguez Galán). All rights reserved.")]

Choose a reason for hiding this comment

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

Change to 2008-2018

Copy link
Member Author

@jrgcubano jrgcubano Jan 10, 2018

Choose a reason for hiding this comment

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

Nice! I'll wait a bit for someone else to pronounce with code reviews and then I'll fix what's necessary. Thank you

</ProjectReference>

<ItemGroup>
<PackageReference Include="EntityFramework" Version="6.2.0" />

Choose a reason for hiding this comment

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

Do we need a reference to EntityFramework?

Copy link
Member Author

@jrgcubano jrgcubano Jan 10, 2018

Choose a reason for hiding this comment

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

Not at the beginning. So I think we can safely remove the dependency from tests and example projects. 👍

@@ -15,7 +15,7 @@ public class when_there_is_any_unpaired_collection_property_alphabetically_befor
CollectionMapping collectionWithoutBackrefAndAlphabeticallyFirst;
CollectionMapping collectionWithoutBackrefAndAlphabeticallyLast;
CollectionMapping collectionWithCorrespondingBackref;
ManyToOneMapping referenceFromChildSecondTypeToParent;
// ManyToOneMapping referenceFromChildSecondTypeToParent;

Choose a reason for hiding this comment

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

Remove?

Copy link
Member Author

Choose a reason for hiding this comment

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

Sounds good to me

@chester89
Copy link
Collaborator

chester89 commented Jan 18, 2018 via email

@gudmundurm
Copy link

I'm on the same boat as you @jrgcubano, it would be ashame to let this project die. I've been using Fluent nhibernate for about 10 years now and i'm really looking forward to seeing this update being released. Please push on :-)

If you need more hands on deck @chester89 i'm ready to help in every way i can.

With support for .net core 2.0 coming in nhibernate 5.1 (if all works about), these will become very interesting times ! Especially if we get fluent flowing with it ....

@jrgcubano jrgcubano merged commit ea0ee81 into nhibernate:master Feb 5, 2018
@jrgcubano jrgcubano mentioned this pull request Feb 5, 2018
@jrgcubano
Copy link
Member Author

We are having some problems with continuous integration. We are working on it.

@jrgcubano
Copy link
Member Author

jrgcubano commented Feb 18, 2018

FluentNHibernate is back

Finally we shipped the new version. We moved the repo to a github organization (FluentNHibernate). We are planing new changes to be in sync with the next version of NHibernate and NetCore.

https://www.nuget.org/packages/FluentNHibernate

Sorry for the delay!

@jrgcubano jrgcubano deleted the upgrade-nhibernate branch February 18, 2018 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants