From 95115ea98cec1f2c1b38965993d494b4532b1010 Mon Sep 17 00:00:00 2001 From: Vlad-Stefan Harbuz Date: Tue, 19 May 2026 13:37:05 +0100 Subject: [PATCH 1/2] clean up CONTRIBUTING.md --- CONTRIBUTING.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8090ee4..ac74e0c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,19 +11,26 @@ Substantiative changes, or changes to **descriptions** of specific FOSS Foundati - a specific fix or improvement: please open a GitHub Pull Request with the change. - a larger change to propose or new idea, add new data fields, or the like: please open a GitHub Issue to **start** a discussion before doing more work. +## How to Run the Website + +For development: + +``` +bundle exec jekyll serve +``` + ## How To Update Existing Data - Ensure you are adding/updating accurate data. Metadata should all be traceable back to an organization's official web presence, even if it's not a specific URL for each item. -- Markdown at tne end of each foundation.md file should only include factual and general descriptions, not marketing materials. +- Markdown at the end of each `foundation.md` file should only include factual and general descriptions, not marketing materials. - Ensure any "last update" fields are filled in (this is an open design question: how do we annotate when various metadata fields were last updated/verified?) -- Submit a GitHub PR for the foundation.md file. -- +- Submit a GitHub PR for the `foundation.md` file. ## How To Add A New Foundation All the foundation data is stored in _foundations, so adding a new foundation is as simple as creating a file in that folder that matches the correct formatting. -- Copy [_data/foundation-template.md](https://raw.githubusercontent.com/Punderthings/fossfoundation/main/_data/foundation-template.md) to `_foundations/` as the base your new file. +- Copy [`_data/foundation-template.md`](https://raw.githubusercontent.com/Punderthings/fossfoundation/main/_data/foundation-template.md) to `_foundations/` as the base your new file. - `cp _data/foundation-template.md _foundations/` - Decide on the shortest and most common name used for the foundation that would still be unique in the current open source space. - Lowercase the name and remove any non-letter characters to make *shortname*. From 84a0efbdcd2618abae49a52cb43739c1a8edac73 Mon Sep 17 00:00:00 2001 From: Vlad-Stefan Harbuz Date: Tue, 19 May 2026 13:37:47 +0100 Subject: [PATCH 2/2] clean up miscellaneous files --- _pages/fdnmodel.md | 2 +- _pages/roadmap.md | 2 +- _pages/sponsorships.md | 2 +- _pages/taxes.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/_pages/fdnmodel.md b/_pages/fdnmodel.md index 08443f5..3ff8514 100644 --- a/_pages/fdnmodel.md +++ b/_pages/fdnmodel.md @@ -11,7 +11,7 @@ This foundation directory curates metadata that is rigorously organized enough f ## Foundations Model Overview -Organizational data is stored per foundation entity as a single `asf.md` file in the `_foundations` directory. Each file is a standard Jekyll document with a [leading YAML frontmatter](https://jekyllrb.com/docs/front-matter/) document with structured organizational metadata, followed by a `---` YAML document separator, followed by semi-structured Markdown content. +Organizational data is stored per foundation entity as a single `foundation.md` (eg `asf.md`) file in the `_foundations` directory. Each file is a standard Jekyll document with a [leading YAML frontmatter](https://jekyllrb.com/docs/front-matter/) document with structured organizational metadata, followed by a `---` YAML document separator, followed by semi-structured Markdown content. - **Keep Updates Simple** Each foundation is a separate text-based document, making updates simple to make and review via GitHub PRs to ensure data accuracy. - **Enough Structured Data** Metadata follows a [simple schema](https://github.com/Punderthings/fossfoundation/blob/main/_data/foundations-schema.json), with a goal to be "good enough" for common research cases. Researchers needing more structured data are welcome to collaborate and add new fields or features. [OpenAPI support is planned](openapi)! diff --git a/_pages/roadmap.md b/_pages/roadmap.md index ff646dd..318e12c 100644 --- a/_pages/roadmap.md +++ b/_pages/roadmap.md @@ -25,7 +25,7 @@ Feedback so far shows there's a lot of value in this work, both to researchers a - The structured data we provide is non-technical, and may not be familiar to many FOSS folk - we need to explain why this work is [important for overall sustainability](research). - Budget financial data may be drawn from *approximate* figures (on annual reports, for example), so we need to be very clear which monetary figures are specific or not. Data stored for [US foundations in 990 forms](taxes) is exact, although limited to what the tax code defines. -## Tasks and IDeas +## Tasks and Ideas - [ ] Category lists of foundations - [ ] Metadata search page diff --git a/_pages/sponsorships.md b/_pages/sponsorships.md index a2730f0..5abc3f1 100644 --- a/_pages/sponsorships.md +++ b/_pages/sponsorships.md @@ -11,7 +11,7 @@ To provide context for financial sustainability around FOSS organizations, we've ## Model Overview -Data is stored per entity (a foundation or a project) as a single `asf.md` file in `_sponsorships`, see a [listing below](#listing). Each file is a set of factual references to the entity's published sponsorship policies and levels, and provides metadata to scrape web pages of actual sponsor listings at the current date. Some entries will provide a dated static map of manually compiled list of current sponsors listed. +Data is stored per entity (a foundation or a project) as a single `foundation.md` (eg `asf.md`) file in `_sponsorships`, see a [listing below](#listing). Each file is a set of factual references to the entity's published sponsorship policies and levels, and provides metadata to scrape web pages of actual sponsor listings at the current date. Some entries will provide a dated static map of manually compiled list of current sponsors listed. ## Inclusion Criteria diff --git a/_pages/taxes.md b/_pages/taxes.md index 0d01edb..597311e 100644 --- a/_pages/taxes.md +++ b/_pages/taxes.md @@ -11,7 +11,7 @@ US based nonprofits must file IRS 990 tax forms, even though they may not pay ta ## Model Overview: US 990 Forms -Data is stored per US recognized 501C* nonprofit as a single `ein.json` file in `_data/p990`. We store this data for convenience, and in case ProPublica's datastore ends. These 990 JSON data files are generated by ProPublica based on official IRS data dumps of actual processed tax filings. Data includes IRS-defined metadata about a nonprofit in the `organization` object, and then a list of actual 990 tax filings. Full details are in [ProPublica's API reference](https://projects.propublica.org/nonprofits/api). +Data is stored per US recognized 501(c)(*) nonprofit as a single `ein.json` file in `_data/p990`. We store this data for convenience, and in case ProPublica's datastore ends. These 990 JSON data files are generated by ProPublica based on official IRS data dumps of actual processed tax filings. Data includes IRS-defined metadata about a nonprofit in the `organization` object, and then a list of actual 990 tax filings. Full details are in [ProPublica's API reference](https://projects.propublica.org/nonprofits/api). 990 filings provide a consistent way to see total revenue, expenses, and assets for any US nonprofit. They also provide some level of detail within those numbers, in terms of amount of contributions (voluntary donations) versus program expenses or other types of income.