Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add contribute.json #9

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

toastal
Copy link
Contributor

@toastal toastal commented Jun 24, 2021

https://www.contributejson.org/

This spec is used in a lot of open source projects to signal to users
how to contribute to a given project. It originated at Mozilla but I
have seen it in the wild on a number of open-source projects. Since it is
defined as a schema, this file could in the future serve as a source of
truth for the /contributing and /support pages as well as others, but I
think just having it exist could be useful to some.

The original source for this file however was in Dhall (because of
course it was):

let Contribute = https://git.sr.ht/~toastal/dhall-contribute-json/blob/trunk/Contribute.dhall

in  Contribute::{
    , name = "Soupault"
    , description =
        "Soupault is a tool that helps you create and manage static websites."
    , repository = Contribute.Repository::{
      , type = Some "git"
      , url = "https://github.com/dmbaturin/soupault"
      , license = "MIT"
      , clone = Some "[email protected]:dmbaturin/soupault.git"
      }
    , bugs = Some Contribute.Bugs::{
      , list = Some "https://github.com/dmbaturin/soupault/issues"
      , report = Some "https://github.com/dmbaturin/soupault/issues/new"
      }
    , participate = Some Contribute.Participate::{
      , home = Some "https://soupault.app/support/"
      , docs = "https://soupault.app/reference-manual/"
      , mailing-list = Some "https://lists.sr.ht/~dmbaturin/soupault"
      , irc = Some "https://libera.chat/#soupault"
      }
    , keywords = Some
      [ "static-site-generator", "web", "lua", "ocaml", "html-processor" ]
    }

@dmbaturin
Copy link
Collaborator

Interesting. Are there non-Mozilla projects using it, or directories/search tools for locating projects based on those files?

@toastal
Copy link
Contributor Author

toastal commented Jun 24, 2021

I believe there were some old add-ons that did it. If hosted in the root of git as well as the server, it would be even more obvious to people that stumble towards the source code first. I'm now quite motivated to make my own extension to expose this.

I've seen Matrix/Element, Nunjuks, HTMLhouse, and others. That said, it does fall into the cracks like a humans.txt situation. There are almost 7000 filename results on GitHub specifically, but some of these seems many of these projects it lives in the root of their Git repository to help direct people to the correct channels, but I couldn't find it on their site (not that I put a lot of effort into that endeavor).

Since I recently did my Dhall project of it, I'll likely be using it as a source of truth by importing into places in my documentations. Given how Soupault works, a JSON file could be read via jq as an example and injected into the markup in a similar fashion.

@toastal
Copy link
Contributor Author

toastal commented Jun 24, 2021

This file would make more sense in the project root, but I don't know the best way to reference it to be 'built' (copied) by soupault.

@toastal
Copy link
Contributor Author

toastal commented Jun 24, 2021

Where do I put this?

A file named contribute.json at the root of the repository. If it's a website and you want web-based tools to also find it then serve it up as /contribute.json as well.

Ope. Well then, let me squeeze a force push in here.

@toastal
Copy link
Contributor Author

toastal commented Jun 24, 2021

Actually 🤔 if this were a merge request you would consider, it would probably make more sense in the main project with a link in ./build/. That is if you found a contribute.json file good/useful for your project.

@dmbaturin
Copy link
Collaborator

Oh, I think conceptually it's useful, and it's not a high-maintenance thing so I'm happy to merge it. I may also contribute to tools that make discovery of those files easier.

@dmbaturin
Copy link
Collaborator

Also, https://libera.chat/#soupault isn't an actual working link. Before webchats, a common format was like #soupault@Libera

https://www.contributejson.org/

This spec is used in a lot of open source projects to signal to users
how to contribute to a given project. It originated at Mozilla but I
have seen it in the wild on a number of open-source projects. Since it is
defined as a schema, this file could in the future serve as a source of
truth for the `/contributing` and `/support` pages as well as others, but I
think just having it exist could be useful to some.

The original source for this file however was in Dhall (because of
course it was):

```dhall
let Contribute = https://git.sr.ht/~toastal/dhall-contribute-json/blob/trunk/Contribute.dhall

in  Contribute::{
    , name = "Soupault"
    , description =
        "Soupault is a tool that helps you create and manage static websites."
    , repository = Contribute.Repository::{
      , type = Some "git"
      , url = "https://github.com/dmbaturin/soupault"
      , license = "MIT"
      , clone = Some "[email protected]:dmbaturin/soupault.git"
      }
    , bugs = Some Contribute.Bugs::{
      , list = Some "https://github.com/dmbaturin/soupault/issues"
      , report = Some "https://github.com/dmbaturin/soupault/issues/new"
      }
    , participate = Some Contribute.Participate::{
      , home = Some "https://soupault.app/support/"
      , docs = "https://soupault.app/reference-manual/"
      , mailing-list = Some "https://lists.sr.ht/~dmbaturin/soupault"
      , irc = Some "https://libera.chat/#soupault"
      }
    , keywords = Some
      [ "static-site-generator", "web", "lua", "ocaml", "html-processor" ]
    }
```
@toastal
Copy link
Contributor Author

toastal commented Jun 25, 2021

ircs://irc.libera.chat:6697/soupault seems like the new URI scheme seen elsewhere, but I don't yet have an IRC client set up on my new machine.

@toastal
Copy link
Contributor Author

toastal commented Jun 30, 2021

I'm skeptical that GitHub should be the "main" repo for this. After this Copilot fiasco, I want to distance myself from GitHub as much as possible. I know your documentation says codeberg is equally a source of truth and there's a SourceHut copy somewhere out there ... well these aren't compatible with contribute.json which allows just one source of truth. :|

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants