|
1 | | -# Contributing to this project |
| 1 | +# Contributing to EasySign Project |
2 | 2 |
|
3 | | -This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. |
4 | | -For more information see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct). |
| 3 | +Thank you for considering contributing to EasySign! We welcome contributions from the community and are excited to work with you. This guide will help you get started with contributing to the project. |
5 | 4 |
|
6 | | -## Prerequisites |
| 5 | +## Table of Contents |
7 | 6 |
|
8 | | -This project is actively developed using the following software. |
9 | | -It is highly recommended that anyone contributing to this library use the same |
10 | | -software. |
| 7 | +- [Code of Conduct](#code-of-conduct) |
| 8 | +- [How to Contribute](#how-to-contribute) |
| 9 | + - [Reporting Bugs](#reporting-bugs) |
| 10 | + - [Suggesting Features](#suggesting-features) |
| 11 | + - [Submitting Pull Requests](#submitting-pull-requests) |
| 12 | +- [Development Setup](#development-setup) |
| 13 | +- [Style Guide](#style-guide) |
| 14 | +- [License](#license) |
11 | 15 |
|
12 | | -1. [Visual Studio 2022][VS] |
| 16 | +## Code of Conduct |
13 | 17 |
|
14 | | -## Building |
| 18 | +Please read and follow our [Code of Conduct](CODE-OF-CONDUCT.md) to ensure a welcoming and inclusive environment for everyone. |
15 | 19 |
|
16 | | -To build this repository from the command line, you could run this command in the root of the repo: |
| 20 | +## How to Contribute |
17 | 21 |
|
18 | | - dotnet build |
| 22 | +### Reporting Bugs |
19 | 23 |
|
20 | | -## Testing |
| 24 | +If you find a bug in the project, please create an issue on GitHub with the following information: |
| 25 | +- A clear and descriptive title. |
| 26 | +- A detailed description of the problem. |
| 27 | +- Steps to reproduce the issue. |
| 28 | +- Any relevant logs, screenshots, or error messages. |
21 | 29 |
|
22 | | -The Visual Studio 2022 Test Explorer will list and execute all tests. |
| 30 | +If the bug is related to security, **DO NOT REPORT IT ON GITHUB ISSUES**, please read our [Security Guidelines](SECURITY.md). |
23 | 31 |
|
24 | | -## Pull requests |
| 32 | +### Suggesting Features |
25 | 33 |
|
26 | | -Pull requests are welcome! They may contain additional test cases (e.g. to demonstrate a failure), |
27 | | -and/or product changes (with bug fixes or features). All product changes should be accompanied by |
28 | | -additional tests to cover and justify the product change unless the product change is strictly an |
29 | | -efficiency improvement and no outwardly observable change is expected. |
| 34 | +We welcome feature suggestions! To suggest a new feature, please create an issue on GitHub with the following information: |
| 35 | +- A clear and descriptive title. |
| 36 | +- A detailed description of the proposed feature. |
| 37 | +- Any relevant use cases or examples. |
30 | 38 |
|
31 | | -In the master branch, all tests should always pass. Added tests that fail should be marked as Skip |
32 | | -via `[Fact(Skip = "Test does not pass yet")]` or similar message to keep our test pass rate at 100%. |
| 39 | +### Submitting Pull Requests |
33 | 40 |
|
34 | | - [VS]: https://www.visualstudio.com/downloads/ |
| 41 | +We appreciate your contributions! To submit a pull request, follow these steps: |
| 42 | +1. Fork the repository and clone your fork. |
| 43 | +2. Create a new branch for your changes. |
| 44 | +3. Make your changes, ensuring that your code adheres to the project's style guide. |
| 45 | +4. Commit your changes with a clear and descriptive commit message. |
| 46 | +5. Push your changes to your fork. |
| 47 | +6. Create a pull request on GitHub, providing a detailed description of your changes. |
| 48 | + |
| 49 | +## Development Setup |
| 50 | + |
| 51 | +To set up your development environment, follow these steps: |
| 52 | +1. Ensure you have [.NET SDK](https://dotnet.microsoft.com/download) installed. You must have .NET SDK 6, 8 and 9 installed. |
| 53 | +2. Clone the repository: |
| 54 | + |
| 55 | +``` |
| 56 | + git clone https://github.com/SAPTeamDEV/EasySign.git |
| 57 | + cd EasySign |
| 58 | + |
| 59 | +``` |
| 60 | + |
| 61 | +3. Restore the project dependencies: |
| 62 | + |
| 63 | +``` |
| 64 | + dotnet restore |
| 65 | + |
| 66 | +``` |
| 67 | + |
| 68 | +4. Build the project: |
| 69 | + |
| 70 | +``` |
| 71 | + dotnet build |
| 72 | + |
| 73 | +``` |
| 74 | + |
| 75 | +You could find output files in artifacts folder. |
| 76 | + |
| 77 | +## Native AOT Compilation |
| 78 | + |
| 79 | +After setting up the development environment, you can compile the EasySign CLI using Native AOT. This is useful for creating fast applications that do not require a separate .NET runtime installation. |
| 80 | + |
| 81 | +To compile the CLI using Native AOT, follow these steps: |
| 82 | +1. Ensure you have the AOT compilation [requirements](https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/#prerequisites) for your platform. |
| 83 | +2. Compile EasySign.Cli with the following command: |
| 84 | + |
| 85 | +Windows |
| 86 | +``` |
| 87 | +dotnet publish src\EasySign.Cli\EasySign.Cli.csproj /p:AotCompile=true -f net9.0 -o artifacts\AOT |
| 88 | +``` |
| 89 | + |
| 90 | +Linux/MacOS |
| 91 | +``` |
| 92 | +dotnet publish src/EasySign.Cli/EasySign.Cli.csproj /p:AotCompile=true -f net9.0 -o artifacts/AOT |
| 93 | +``` |
| 94 | + |
| 95 | +## Style Guide |
| 96 | + |
| 97 | +Please follow these guidelines to ensure consistency in the codebase: |
| 98 | +- Use [C# coding conventions](https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions). |
| 99 | +- Write clear and descriptive commit messages. |
| 100 | +- Ensure your code is well-documented with XML comments where appropriate. |
| 101 | +- Run tests before submitting your pull request to ensure your changes do not break existing functionality. |
| 102 | + |
| 103 | +## License |
| 104 | + |
| 105 | +By contributing to EasySign, you agree that your contributions will be licensed under the [MIT License](LICENSE.md). |
| 106 | + |
| 107 | +Thank you for your contributions! |
0 commit comments