Skip to content

Commit fbdd3a1

Browse files
committed
Add back contribution guidelines
1 parent 122ed51 commit fbdd3a1

File tree

2 files changed

+76
-16
lines changed

2 files changed

+76
-16
lines changed

CONTRIBUTING.md

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
Sustainsys.Saml2 Contribution Guidelines
2+
===============
3+
4+
Sustainsys.Saml2 is maintained by and have mostly been developed by Sustainsys in Stockholm, Sweden.
5+
6+
Being a security library, it is important that all code in the library follows high quality standards
7+
and is easy to read and maintain. Automated tests are required for any features added.
8+
9+
When doing work on protocol features, it is recommended to consult
10+
[the official SAML specifications](<https://wiki.oasis-open.org/security/FrontPage#SAMLV2.0Standard>).
11+
12+
Issue tracking
13+
--------------
14+
Github issues are used to keep track of issues and releases. For requests of functionality or to
15+
report bugs, please open an issue in the github repo. It is advised to open an issue describing the plans
16+
before starting any coding work. Discussing before writing code significantly reduces the risk of
17+
getting a pull request denied.
18+
19+
Versioning
20+
----------
21+
Sustainsys uses semantic versioning as defined on http://semver.org/.
22+
Given a version number MAJOR.MINOR.PATCH, increment the:
23+
24+
* MAJOR version when you make incompatible API changes,
25+
* MINOR version when you add functionality in a backwards-compatible manner, and
26+
* PATCH version when you make backwards-compatible bug fixes.
27+
28+
Coding Conventions
29+
------------------
30+
The coding conventions follow the classic .NET style of coding, with the following styles:
31+
32+
* Always use ``{}`` for if statements, even when there is only one line.
33+
* Code analysis is enabled and all code should compile without compiler warnings or code analysis errors.
34+
Code analysis warnings that are not relevant are supressed in the source. Rules should only be disabled on a
35+
global level if it really is appropriate to disable the rule for the entire code base.
36+
* Private members in classes are named with camelCasing, no underscores.
37+
* Member variables are not prefixed with ``this``. unless required to resolve ambiguity (such as in a
38+
constructor having parameters with the same name as the members).
39+
* Any single method is short enough to fit on one screen (on a typical laptop monitor,
40+
not a 30-inch development monster-monitor).
41+
* The code is formatted to (mostly) fit in 80 columns.
42+
43+
Unit Tests
44+
----------
45+
The Sustainsys.Saml2 library has been developed using TDD (Test Driven Development). All functionality is covered
46+
by tests, and it will remain that way. Pull requests will only be merged if they contain tests covering the
47+
added functionality.
48+
49+
Branching
50+
---------
51+
To make a clean pull request, it is important to follow some git best practices. Nancy has an
52+
[excellent guide](https://github.com/NancyFx/Nancy/wiki/Git-Workflow) that outlines the steps required.
53+
54+
Licensing
55+
---------
56+
The library is licensed under MIT (for the `develop` branch) and by submitting code it is accepted that the
57+
submitted code will be released under the same license. Third party code may only be added to the
58+
library if the author of the pull request holds the copyright to the code, or the code is previously
59+
licensed under a license compatible with MIT.

README.md

+17-16
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,32 @@
11
[![.NET Core](https://github.com/Sustainsys/Saml2/workflows/.NET/badge.svg)](https://github.com/Sustainsys/Saml2/actions/workflows/dotnet.yml)
22
[![Join the chat at https://gitter.im/Susatinsys/Saml2](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Sustainsys/Saml2)
3+
34
Sustainsys.Saml2
45
=============
56

67
The Sustainsys.Saml2 library adds SAML2P support to ASP.NET web sites, allowing the web site
78
to act as a SAML2 Service Provider (SP). The library was previously named Kentor.AuthServices.
89

9-
Sustainsys.Saml2 is open sourced and contributions are welcome, please see
10-
[contributing guidelines](docs/contributiong.rst) for info on coding standards etc.
10+
## Documentation
11+
Usage documentation is available at [our documentation site](https://saml2.sustainsys.com).
12+
13+
## Commercial Options and Sustainable model for Open Source
14+
When I started the Sustainsys company, the idea was to try to find a sustainable model for open source work. Maintaining an open source library takes time. The issue and PR list and constantly requires work to keep it clean (I've not always succeeded, I know). Bug reports by e-mail of possible security vulnerabilities need to be evaluated and handled - even if they often turn out to be incorrect. Any pull request - especially for a security library - need to be carefully evaluated to make sure it works and doesn't break any existing behaviour. All of this takes time and my idea was to create commercial options that were attractive enough to fund actual working time on the library. It has partly succeeded, but not to the extent that I can spend the time I want on the library.
15+
If you are using the Sustainsys.Saml2 package in a larger organisation, please sign up for a commercial support package (mail to [email protected] for options). That will give your organisation support - and also support maintenance and development of the library.
1116

1217
## Branches
13-
There are three active branches in the repo
14-
* develop is development for a new version (will be released as v3 eventually) that only supports Asp.Net Core.
15-
* v1 is a supported version that uses the `System.IdentityModel` library for token handling and supports HttpModule, Mvc, Owin and AspNetCore2 (only on full. Net Framework). This branch will only receive security fixes or critical compatibility fixes for major browsers.
16-
* v2 is a currently supported version that uses the `Microsoft.IdentityModel` nuget packages for toking handling, multi-targets and supports HttpModule, Mvc, Owin and AspNetCore2. This branch will only receive security fixes or critical compatibility fixes for major browsers. Exceptions for new features can also be done for paying customers with support contracts.
17-
* master is deprecated and only kept around to ensure all old links pointing to it works.
18+
There are three active branches in the repo.
19+
* `develop` is development for a new version (will be released as v3 eventually) that only supports Asp.Net Core.
20+
* `v1` is a supported version that uses the `System.IdentityModel` library for token handling and supports HttpModule, Mvc, Owin and AspNetCore2 (only on full. Net Framework). This branch will only receive security fixes or critical compatibility fixes for major browsers.
21+
* `v2` is a currently supported version that uses the `Microsoft.IdentityModel` nuget packages for toking handling, multi-targets and supports HttpModule, Mvc, Owin and AspNetCore2. This branch will only receive security fixes or critical compatibility fixes for major browsers. Exceptions for new features can also be done for paying customers with support contracts.
22+
* `maste` is deprecated and only kept around to ensure all old links pointing to it works.
1823

19-
## Current Development Goals
24+
## Development
2025
The current development goals are to get a new, more flexible architecture.
21-
* The metadata handling has been broken out to a library that can be reused seprately. The metadata library contains tools to work with XML Documents and XML Signatures.
26+
* The metadata handling has been broken out to a library that can be reused seprately. The metadata library contains tools to work
27+
with XML Documents and XML Signatures.
2228
* Use the Asp.Net Core RemoteAuthenticationHandler as a base class.
2329
* Better support for the AspNet Core configuration system.
2430
* Federations will be an own Authentication handler type (`builder.AddSaml2` vs `builder.AddSaml2Federation`).
25-
26-
## Documentation
27-
Usage documentation is available at [our documentation site](https://saml2.sustainsys.com).
28-
29-
## Commercial Options and Sustainable model for Open Source
30-
When I started the Sustainsys company, the idea was to try to find a sustainable model for open source work. Maintaining an open source library takes time. The issue and PR list and constantly requires work to keep it clean (I've not always succeeded, I know). Bug reports by e-mail of possible security vulnerabilities need to be evaluated and handled - even if they often turn out to be incorrect. Any pull request - especially for a security library - need to be carefully evaluated to make sure it works and doesn't break any existing behaviour. All of this takes time and my idea was to create commercial options that were attractive enough to fund actual working time on the library. It has partly succeeded, but not to the extent that I can spend the time I want on the library.
31-
If you are using the Sustainsys.Saml2 package in a larger organisation, please sign up for a commercial support package (mail to [email protected] for options). That will give your organisation support - and also support maintenance and development of the library.
31+
Sustainsys.Saml2 is open sourced and contributions are welcome, please see [contribution guidelines](CONTRIBUTING.md)
32+
for info on coding standards etc.

0 commit comments

Comments
 (0)