Skip to content

bevyengine/bevy-donors

Repository files navigation

Bevy Donors

The source of truth for current Bevy Donor data. This syncs data from Stripe, combines it with manual configuration in donor_info.toml, and generates donor.toml for use in the bevy-website donation pages.

How This Works

This repo periodically runs the update_donors.yml GitHub workflow, which pulls current donor info from Stripe, merges it with donor_info.toml, and generates two files:

  1. donors.toml: a formatted list of all current and past donors and their relevant metadata (Stripe customer id, amount donated, name, link, logo, etc)
  2. metrics.toml: metrics computed from the data in donors.toml (total monthly donations in USD, donor count, sponsor count)

Entries in donor_info.toml that specify a Stripe customer_id field will be merged with the relevant Stripe data. If a field exists both in the Stripe data and the donor_info.toml, the donor_info.toml value will override the Stripe value. For example, you can manually override a link if the donor wants to change it to something else. Entries that do not specify a customer_id will be treated as "manual" entries. Manual entries are generally for donors that donate without Stripe via bank transfers.

Adding/Updating Donors

First: if you are a donor reading this, note that we are happy to do all of this for you. Feel free to open an issue here or reach out to bevyengine@gmail.com with whatever you want. You are also welcome to make your own changes via a pull request changing/adding your entry to donor_info.toml.

All metrics are automatically updated based on current Stripe donor information.

For non-logo tiers, if a donor entered their name or link in the Stripe form, the donor will automatically be added in the next workflow run (at the time of writing, this happens every 8 hours).

If a Stripe donor needs to add/change information (name, logo, link, etc), then an entry should be added to donor_info.toml with donor's Stripe customer_id. Any fields set in this entry will override whatever has been set via the Stripe data. For customers that already filled in some information on Stripe when they started their donation, the easiest way to find the customer_id is to download the latest donors.toml release (make sure one has happened since the donation happened) and search for that identifying information. The customer_id will be in that entry. If it cannot be found that way, create an issue here or reach out to bevyengine@gmail.com with your request. We can log into Stripe and use other transaction information to find your customer_id. Generally the name and tier are enough to correlate to the customer_id.

Logo tiers need to add their logo to the logos folder and add an entry to donor_info.toml with logo = "LOGO.EXTENSION" (ex: logo = "my_logo.png").

Logos are assumed to have a "width dominant" aspect ratio. If a logo is square / roughly square, use square_logo = true to give it a slight scale boost (in the interest of visibility fairness with non-square logos). On a case-by-case basis (in the interest of "visibility fairness"), the scale can be fully overridden using logo_scale = FLOAT_VALUE.

License

Except where noted (below and/or in individual files), all code in this repository is dual-licensed under either:

at your option. This means you can select the license you prefer!

All logos in the logos folder, the contents of donor_info.toml, generated donors.toml, and generated metrics.toml are not licensed for use outside of the Bevy project.

This dual-licensing approach is the de-facto standard in the Rust ecosystem and there are very good reasons to include both.