JasperFx / marten

.NET Transactional Document DB and Event Store on PostgreSQL
https://martendb.io
MIT License
2.86k stars 454 forks source link

Join .Net Foundation #1392

Closed oskardudycz closed 4 years ago

oskardudycz commented 4 years ago

@jeremydmiller @mysticmind @jokokko I plan to send submission to .NET Foundation as follows, Please verify if that works for you. Especially part Project Transfer Type and Assignment vs Contribution is important. Currently, I placed Contribution.

1. General Information

Project Name: Marten

License: MIT

Contributor (Company, Organization or individual name(s)): Jeremy D. Miller, Babu Annamalai, Oskar Dudycz, Joona-Pekka Kokko

Existing OSS Project? (Yes/No): Yes

Source Code URL: https://github.com/JasperFx/marten

Project Homepage URL (if different): https://martendb.io

Project Transfer Signatories: Full legal name and email address required of the individual(s) with the authority to transfer or contribute the project to the .NET Foundation. Note that if you'd prefer not to include this in the public application, it can be submitted via e-mail to contact@dotnetfoundation.org (referencing this issue number).

Jeremy D. Miller jeremydmiller@yahoo.com Babu Annamalai babu.annamalai@gmail.com Oskar Dudycz oskar.dudycz@gmail.com Joona-Pekka Kokko jokokko@gmail.com

2. Description

Please provide a brief statement about your project in terms that are understandable to the target consumer of the library or project, i.e. an elevator pitch for the project:

Marten gives developers a multi-paradigm framework for modelling, storing and querying data on PostgreSQL. Making use of the battle hardened database engine, Marten transparently exposes the JSON(B) capabilities of PostgreSQL for managing objects and events alike, requiring no ceremony to enable friction-less development. Marten is your object (document) and event store, with bells and whistles attached, be it CRUD, Event Sourcing or anything between.

Please provide a 1 sentence (<140 character) summary of your to help users when searching the .NET Foundation projects Polyglot Persistence providing object (document) and event store Powered by .NET and PostgreSQL

3. Project Governance

Please complete this section about who will be maintaining the open source project and how it will run. Project Lead: (Who is the primary contact point for the community and the .NET Foundation when discussing governance of the project.)

Name: Jeremy D. Miller Email: jeremydmiller@yahoo.com
GitHub Profile URL: https://github.com/jeremydmiller

Committers:

Which individuals have commit / write access to the repository, what is their GitHub ID and who is their employer (if contributions are on behalf of an employer)

Jeremy D. Miller https://github.com/jeremydmiller

Babu Annamalai https://github.com/mysticmind

Oskar Dudycz https://github.com/oskardudycz

Joona-Pekka Kokko https://github.com/jokokko

Governance Model:

Please describe how new code changes are proposed to the project, how those changes are reviewed and how a decision is made to accept proposed changes. Also describe the process for identifying and appointing new committers.

Changes are proposed via GH issues. All issues are reviewed and labelled with the proper type and scope. Issues that have the estimated timeline are assigned to a proper milestone. Milestones reflect the package version based on the semantic versioning. Plans for the new releases are discussed publicly in the issues (see eg. https://github.com/JasperFx/marten/issues/1307 or https://github.com/JasperFx/marten/issues/1391). Quick surveys, questions, clarifications and in general contact with community is done in dedicated Gitter channel https://gitter.im/JasperFx/marten. Normally 2 approves from maintainers are needed to merge the Pull Request. New committers were appointed once by Jeremy based on the number and quality of commits, activity and helping the community. See more: https://jeremydmiller.com/2018/09/27/marten-3-0-is-released-and-introducing-the-new-core-team/

CLA

If already an OSS project, was a Contribution License Agreement in place for contributions accepted? How does the project check who has signed one?

No.

CLA Notification Alias Provide an email address that will receive CLA related notifications from the .NET Foundation CLA automation

Project Transfer Type

Projects may join the .NET Foundation in one of two ways and you should chat with your .NET Foundation contact to discuss the best mechanism for your project. You can either a) assign the copyright of the project's source code to the .NET Foundation or b) contribute the project source code to the .NET Foundation under an open source license. Assignment is the preferred approach, but licensing a project to the Foundation may be more appropriate for longer running open source projects that have not previously had a contribution license agreement and have accepted contributions from many different sources. a) Assignment b) Contribution

Contribution.

4. Repository Layout

_The .NET Foundation host guidance for new projects and details on recommended structure here: https://github.com/dotnet/home/tree/master/guidance

Note that the open source repository should be the master where changes are made by the core development team using the same PR process that is used for non-committer contributions.

Please define below any changes you would want to make to your repositories as part of the process of joining the .NET Foundation_

I don’t think any repository changes are required as part of this process.

5. PR Plan

Please summarize the public relations plan for the announcement when joining the foundation (and releasing as open source if appropriate). What is the main story we wish to promote, through what channels, what issues should we be aware of? For significant news events then please also work with your .NET Foundation contact to ensure a full PR plan is developed.

Currently we'll promote that through blog post, twitter announcement using twitter handle @marten_lib & updated website https://martendb.io. We also want to provide the newsletter and maybe more video tutorials. Contributors also speak about the Event Sourcing with .NET Core and Marten on the local meetups. We also plan to get some sponsorship plan (not clear as yet - https://github.com/JasperFx/marten/issues/1393).

6. Infrastructure Requirements

Please describe any infrastructure requirements for the project. For example, how will build servers be operated? Any web hosting or service hosting requirements? Do we need to set up SSL certificates or provide Authenticode Code Signing arrangement for releases?

Currently, we're using the Azure Pipelines and AppVeyor OSS plans and we're happy with that process. We are building our documentation using Storyteller (https://storyteller.github.io/documentation/docs/) hosted on GitHub pages and Netlify so we also don't need to change it as for now. We might need in the future SSL certificates or Authentication Code Signing.

7. Additional Notes

Please provide any additional information required or use this area for notes during the on boarding process. If this open source project has similarities with any other projects in this space then please detail them and why this project is different. If there are any potential issues that you feel the project might need help with early on then also state them here and discuss with your .NET Foundation Contact.

Marten is sometimes compared to Entity Framework. But Marten is not an ORM, it should be treated as the .NET Document and Event Store that's just backed with PostgreSQL. Our approach to using the PostgreSQL and its sophisticated JSON(B) features is unique in .NET space. It should be more compared to RavenDB rather than Entity Framework. We're working on the sustainability of our model (so getting sponsorship) to be able to work on the dedicated time and get more reliability in bigger Enterprise companies. Such help would be more than welcome from .NET Foundation.

mysticmind commented 4 years ago

@oskardudycz with regards to the project transfer type i.e. assignment or contribution, I don't fully understand the requirement to join the .NET Foundation. Do you have any details which you have discussed or gathered on this requirement?

Edit: When I read through the section "project transfer type", I infer that when we choose "contribution" or "assignment", the ownership of source code is being transferred to .NET Foundation. We have to discuss and understand this better before we move forward on this.

oskardudycz commented 4 years ago

@mysticmind that's also the reason why I highlighted that point. I think that it'd be safer to start with contribution and then see how it goes. That'd be less invasive to our current approach. We can always do an assignment later if that's the better option for us.

Selecting "assignment" have (at least in theory) the benefit of having a better guarantee for our users, as it would mean that if we were hit by "bus factor" then .NET Foundation would take the responsibility of finding new maintainers and keeping the project alive.

From the .NET Foundation guidance: https://github.com/dotnet/foundation/blob/master/guidance/new-projects.md

When projects join the foundation, there are two ways that they can come in.

  • License - The first is for the maintainers of the project to sign a contribution agreement licensing the code to the .NET Foundation under the terms of the open source license and confirming that they have the rights to do that. This type of agreement is most common when projects have had a long history of being open source, with lots of contribution from many different individuals and the project community now wish to now be supported by the .NET Foundation.

  • Assignment - The other is to assign the copyright of the project to the .NET Foundation and confirm that they have the rights to do this. This type of agreement is usually used when releasing something as open source for the first time or by a project that has had a high degree of control over contributions to the existing project in the past.

When you contact the .NET Foundation, they will help you decide which type of agreement is most likely to suit you based on your needs.

Also by having project joining .NET Foundation maintainers should also eventually become .NET Foundation member (I already did).

jeremydmiller commented 4 years ago

@oskardudycz I read through this this morning and everything looks thorough and complete. Thumbs up from me.

oskardudycz commented 4 years ago

@jeremydmiller thank you, I'm happy to read that 😃 👍 @jokokko also said on Gitter that he's fine.

I'll wait then for the final @mysticmind approval so we're all on the same page and send it to .NET Foundation 😃

mysticmind commented 4 years ago

I made few edits as below:

With regards to project transfer type, I was only trying to understand the implications since it relates to project ownership. Since everyone else is okay, let us go ahead with selecting "contribution".

Let us move forward on this 🚀

oskardudycz commented 4 years ago

@mysticmind thank you for careful reading and fixes 👍

I'm sending the issue 🚀 🚀 🚀

oskardudycz commented 4 years ago

:fire: :fire: :fire: It's submitted: https://github.com/JasperFx/marten/issues/1392 😄

oskardudycz commented 4 years ago

This is ongoing. We were accepted. See more in:

oskardudycz commented 4 years ago

Onboarding completed! https://github.com/dotnet-foundation/projects/issues/47#issuecomment-601756776