dotnet-foundation / dotnet-foundation/projects
New project application: QuestPDF
@clairernovotny is already working on this.
Since Jul 18, 2021.
- Dominant language
- No language data
- Stars
- 157
- Forks
- 37
- PR merge metrics
- No merged PRs in 30d
Description
1. General Information
Project Name: QuestPDF
License: MIT
Contributor: Marcin Ziąbek
Existing OSS Project?: Yes
Source Code URL: https://github.com/QuestPDF
Project Homepage URL: https://www.questpdf.com/
Project Documentation URL: https://www.questpdf.com/documentation/
Project Transfer Signatories: Marcin Ziąbek (marcin@ziabek.com)
2. Description
QuestPDF is an open-source C# library that helps with generating PDF documents in any .NET application. The document's content is described using the fluent API where each statement corresponds to one structural element. This way, by combining simple elements (e.g. image, text, alignment, list, table, grid), it is possible to create complex and pageable layouts. The main purpose behind the library is to describe the content using simple and predictable code, so to increase development productivity, as well as to use the full potential of the type system.
The fluent API is:
- friendly (all structural elements are simple, properly named and can be used to compose more complex layouts),
- predictable (the behaviour of every element is independent of other elements and always the same),
- discoverable (thanks to the type system and IntelliSense, the developer has always access to all possible elements within the current context).
QuestPDF is an open-source library that helps with generating PDF documents by offering friendly, discoverable and predictable C# fluent API.
3. Project Governance
Project Lead:
Name: Marcin Ziąbek
Email: marcin@ziabek.com
GitHub Profile URL: https://github.com/MarcinZiabek
Webpage: https://marcin.ziabek.com/
Committers:
So far, I am the only person that has full commit and write access to the repository. Contributions are not on behalf of an my employer.
Governance Model:
Any code changes can be proposed by creating a new pull request. The code review and discussion happen within the pull request on the GitHub platform. Up to now, there was no need to devise a more sophisticated process.
CLA
The project contains the Code of Conduct inside the repository structure: https://github.com/QuestPDF/library/blob/main/CODE_OF_CONDUCT.md
No more steps have been performed in this regard.
CLA Notification Alias
Provide an email address that will receive CLA related notifications from the .NET Foundation CLA automation
marcin@ziabek.com
Contribution Model. Under the .NET Foundation contribution model, a project retains ownership of the project, but grants the .NET Foundation a broad license to the project’s code and other intellectual property. The project also confirms that the project’s submissions to .NET Foundation are its own original work (there are also instructions for any third party materials that might be included).
4. Repository Layout
I consider the current repository structure as clear enough and easy to understand. In most cases, it follows concepts proposed by the GitHub platform. If the .NET Foundation team has any particular suggestions on how to improve the current structure, I am more than willing to discuss them.
5. Eligibility Criteria
Please complete the following for your project
- The project is built on the .NET platform and/or creates value within the .NET ecosystem.
- Yes
- No
- The project produces source code for distribution to the public at no charge.
- Yes
- No
- The project's code is easily discoverable and publicly accessible (preferably on GitHub).
- Yes https://github.com/QuestPDF
- No
- The project contains a build script that can produce deployable artifacts that are identical to the official deployable artifacts, with the exception of code signing (Exception may be granted for strong name keys, though strongly encouraged to be committed. Exception relies on OSS signing being in the build script for public builds).
- Yes (project automatically generates nuget package artifact based on the configuration inside the csproj file)
- No
- When applicable, project must use reproducible build settings in its toolchain.
- Yes
- No (not applicable)
- The project uses Source Link.
- Yes (defined in the csproj file: https://github.com/QuestPDF/library/blob/main/QuestPDF/QuestPDF.csproj)
- No
- The project uses either embedded PDBs or publish symbol packages to NuGet (if applicable).
- Yes
- No
- The project code signs their artifacts as appropriate.
- Yes
- No (I don't have access to any certificate that can be used for signing artifacts)
- The project organization has 2FA enabled. Requiring 2FA must be done as part of onboarding if not already enabled.
- Yes
- No
- Libraries that are mandatory dependencies of the project are offered under a standard, permissive open source license which has been approved by the .NET Foundation (exceptions include a dependency that is required by the target platform where no alternative open source dependency is available such as the .NET Framework or a hardware specific library).
- Yes (currently: SkiaSharp)
- No
- Committers are bound by a Contributor License Agreement (CLA) and/or are willing to embrace the .NET Foundation's CLA when the project becomes a Member.
- Yes
- No (only one external commit was performed, available Code of Conduct: https://github.com/QuestPDF/library/blob/main/CODE_OF_CONDUCT.md)
- The copyright ownership of everything that the project produces is clearly defined and documented.
- The project has a public issue tracker where the status of any defect can be easily obtained.
- The project has a published Security Policy.
- The project has a home page which provides high level information about its status and purpose.
- Yes https://www.questpdf.com/
- No
- The project has a public communication channel where community members can engage with maintainers.
- Yes (via issues / discussions)
- No
- The project has a publicly available location where members can review and contribute to documentation.
6. PR Plan
I am planning to update all appropriate places (repository/homepage/documentation) to include the information that the project is a part of the .NET Foundation platform. I am not sure what other steps may be needed. I hope for some help in this regard, especially in terms of making the library more recognizable in the C# community.
7. Infrastructure Requirements
The repository is created and maintained for free on the GitHub platform. The homepage and documentation are hosted for free on the DigitalOcean platform using the automated pipeline (a webpage automatically refreshes its content on every commit).
I am looking for help to get a certificate that can be used to sign the nuget package.
8. Additional Notes
There are already similar projects that can be used for generating PDF documents. The QuestPDF project goal is to provide a great development experience by offering easy to understand fluent API as well as native file generation (via SkiaSharp, it does not rely on HTML conversion). The point I am trying to achieve is to offer high-quality documentation with tutorials, examples and descriptions of patterns and practices.
The biggest issue, I am struggling with, is making the project popular within the .NET community. There is no reason to develop and maintain a library that is rarely used. I am looking forward to any help from the .NET Foundation in this regard. I would greatly appreciate any description of what I can expect.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.