Skip to content

Issue: New .NET Foundation Project Application — GeneralUpdate #536

Description

@JusterZhu

Project Name

GeneralUpdate

License

Apache License 2.0

Contributor

GeneralLibrary (Organization)

Existing OSS Project?

Yes

Source Code URL

https://github.com/GeneralLibrary/GeneralUpdate

Project Homepage URL

https://www.justerzhu.cn/

Project Transfer Signatories

Juster Zhu zhuzhen723723@outlook.com

Description

A cross-platform .NET client auto-update framework supporting WPF, WinForms, Avalonia, MAUI, and Console applications.

What are you hoping from the foundation

We are seeking the .NET Foundation's support to help GeneralUpdate grow as an open-source project. We hope to learn from the Foundation's experience and connect with the global .NET community.

Name

Juster Zhu (朱震)

Email

zhuzhen723723@outlook.com

GitHub Profile URL

https://github.com/JusterZhu

Committers

Name GitHub ID Employer
Juster Zhu JusterZhu Independent

Note: Contributions are made in a personal capacity unless otherwise stated.

Discord Ids

justerzhu

Governance Model

GeneralUpdate follows a maintainer-led governance model. The project lead (Juster Zhu) serves as the primary maintainer and oversees the project direction.

Proposed changes are submitted via GitHub Pull Requests. Each PR is reviewed by at least one maintainer. The review criteria include: code quality, backward compatibility, test coverage, and alignment with the project roadmap.

Committers are appointed by the project lead from contributors who have demonstrated consistent, high-quality contributions (typically 10+ merged PRs and active participation in issue discussions).

Major architectural decisions are discussed in GitHub Issues with the community before implementation.

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?

N/A — will adopt Foundation's CLA bot in onboarding

CLA Notification Alias

zhuzhen723723@outlook.com

Select the Project Transfer Agreement model

Contribution

Repository Layout

Repository: https://github.com/GeneralLibrary/GeneralUpdate

├── src/c#/ - Core .NET libraries
│ ├── GeneralUpdate.Core/ - Core update engine
│ ├── GeneralUpdate.Differential/ - Binary differential update (BSDIFF)
│ ├── GeneralUpdate.Bowl/ - Crash daemon process monitor
│ ├── GeneralUpdate.Drivelution/ - Driver update component
│ ├── GeneralUpdate.Extension/ - Extension methods
│ └── GeneralUpdate.Firmware/ - Firmware update component
├── tests/ - Unit & integration tests
├── docs/ - Documentation
└── imgs/ - Images & assets

Planned changes as part of joining the .NET Foundation:

  1. Source Link and embedded PDBs in all NuGet packages — ✅ DONE (Directory.Build.props)
  2. CODE_OF_CONDUCT.md — ✅ DONE (Contributor Covenant v2.1)
  3. SECURITY.md — ✅ DONE
  4. CONTRIBUTING.md — ✅ DONE
  5. 2FA on the GeneralLibrary organization — ✅ DONE
  6. Branch protection on master — ✅ DONE

Eligibility Criteria

  • The project is built on the .NET platform and/or creates value within the .NET ecosystem.
  • The project produces source code for distribution to the public at no charge.
  • The project's code is easily discoverable and publicly accessible (preferably on GitHub).
  • 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).
  • When applicable, project must use reproducible build settings in its toolchain.
  • The project uses Source Link.
  • The project uses either embedded PDBs or publish symbol packages to NuGet (if applicable).
  • The project code signs their artifacts as appropriate.
  • The project organization has 2FA enabled. Requiring 2FA must be done as part of onboarding if not already enabled.
  • 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).
  • 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.
  • 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.
  • The project has a public communication channel where community members can engage with maintainers.
  • The project has a publicly available location where members can review and contribute to documentation.

Describe why you are applying for Project Membership.

GeneralUpdate is a cross-platform .NET client auto-update framework that supports WPF, WinForms, Avalonia, MAUI, and Console applications. The project has been actively developed for over 3 years and has a growing user base.

We believe joining the .NET Foundation would benefit the project by helping us adopt better open-source practices and connect with the broader .NET community. We look forward to learning from and contributing to the Foundation's ecosystem.

Infrastructure Requirements Summary

Currently we use GitHub Actions for CI/CD, which is sufficient for our needs. No additional infrastructure is required at this time.

Additional Notes

GeneralUpdate provides the following features: binary differential patching (BSDIFF), incremental updates, resume-download, forced updates, multi-branch updates, and SignalR-based real-time update notifications. It supports WPF, WinForms, Avalonia, MAUI, and Console applications.

We are fully committed to the onboarding process and look forward to working with the .NET Foundation.

Metadata

Metadata

Labels

project applicationproject supportUse this label to request support for an existing .NET Foundation project

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions