From 5b515b1adb96cbfe92d3c9a15387ca943d6af993 Mon Sep 17 00:00:00 2001 From: Starfall Date: Wed, 7 Jul 2021 12:25:51 -0500 Subject: Transition away from GitHub repository * Change link footer and onboarding model to point to our personal Git repository and direct folks to email us for collaboration * Remove now-unnecessary .github folder and add it to .gitignore [I am not actually sure if this will prevent us from getting those files again in the future.] * Restore English locale to upstream version and move our changes into the en-cafe custom locale. * Remove most of the README for clarity. After GitHub's contract with ICE came to light, we moved our personal projects away from the site. With Copilot now effectively laundering code under free licenses through machine learning by claiming that training a model is "fair use" even when it directly quotes the input, it's clear now that making the effort to move our Mastodon fork off of GitHub is worth the effort. But even if the model *never* recited anyone's source, we consider it to be clearly unethical to use open source code in this way without a permissive license or written consent from the authors of any non-trivial contributions. Whether or not the law agrees, this is clearly a derivative work in the colloquial sense of the term. We needed to build our own CI/CD solution in the next week and a half anyway because Docker Hub is removing automatic builds from the free tier. We're under no illusions that moving to our personal Git host will actually stop anyone from doing whatever they want with what we post publicly on the Internet. But we're both sending a message and learning how to build our own infrastructure, which will hopefully be helpful to us in the future. You can read more about GitHub's ICE deals here: https://www.zdnet.com/article/microsoft-github-ceo-why-we-defend-ice-deal-in-the-face-of-employee-anger/ You can read about GitHub Copilot quoting source code, and the steps they've taken to reduce its frequency, here: https://docs.github.com/en/github/copilot/research-recitation --- .github/CODEOWNERS | 32 ----------------- .github/FUNDING.yml | 3 -- .github/ISSUE_TEMPLATE/1.bug_report.yml | 42 ---------------------- .github/ISSUE_TEMPLATE/2.feature_request.yml | 21 ----------- .github/ISSUE_TEMPLATE/3.support.md | 10 ------ .github/ISSUE_TEMPLATE/config.yml | 5 --- .github/stale.yml | 10 ------ .github/workflows/check-i18n.yml | 34 ------------------ .gitignore | 3 ++ README.md | 27 ++------------ .../glitch/features/ui/components/link_footer.js | 7 ++-- .../features/ui/components/onboarding_modal.js | 14 +++++++- app/javascript/flavours/glitch/locales/en-cafe.js | 3 +- app/javascript/flavours/glitch/locales/en.js | 4 +-- 14 files changed, 26 insertions(+), 189 deletions(-) delete mode 100644 .github/CODEOWNERS delete mode 100644 .github/FUNDING.yml delete mode 100644 .github/ISSUE_TEMPLATE/1.bug_report.yml delete mode 100644 .github/ISSUE_TEMPLATE/2.feature_request.yml delete mode 100644 .github/ISSUE_TEMPLATE/3.support.md delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/stale.yml delete mode 100644 .github/workflows/check-i18n.yml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index 32919bd50..000000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,32 +0,0 @@ -# CODEOWNERS for tootsuite/mastodon - -# Translators -# To add translator, copy these lines, replace `fr` with appropriate language code and replace `@żelipapą` with user's GitHub nickname preceded by `@` sign or e-mail address. -# /app/javascript/mastodon/locales/fr.json @żelipapą -# /app/views/user_mailer/*.fr.html.erb @żelipapą -# /app/views/user_mailer/*.fr.text.erb @żelipapą -# /config/locales/*.fr.yml @żelipapą -# /config/locales/fr.yml @żelipapą - -# Polish -/app/javascript/mastodon/locales/pl.json @m4sk1n -/app/views/user_mailer/*.pl.html.erb @m4sk1n -/app/views/user_mailer/*.pl.text.erb @m4sk1n -/config/locales/*.pl.yml @m4sk1n -/config/locales/pl.yml @m4sk1n - -# French -/app/javascript/mastodon/locales/fr.json @aldarone -/app/javascript/mastodon/locales/whitelist_fr.json @aldarone -/app/views/user_mailer/*.fr.html.erb @aldarone -/app/views/user_mailer/*.fr.text.erb @aldarone -/config/locales/*.fr.yml @aldarone -/config/locales/fr.yml @aldarone - -# Dutch -/app/javascript/mastodon/locales/nl.json @jeroenpraat -/app/javascript/mastodon/locales/whitelist_nl.json @jeroenpraat -/app/views/user_mailer/*.nl.html.erb @jeroenpraat -/app/views/user_mailer/*.nl.text.erb @jeroenpraat -/config/locales/*.nl.yml @jeroenpraat -/config/locales/nl.yml @jeroenpraat diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 9526e17db..000000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,3 +0,0 @@ -patreon: mastodon -open_collective: mastodon -github: [Gargron] diff --git a/.github/ISSUE_TEMPLATE/1.bug_report.yml b/.github/ISSUE_TEMPLATE/1.bug_report.yml deleted file mode 100644 index 4f420416b..000000000 --- a/.github/ISSUE_TEMPLATE/1.bug_report.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Bug Report -description: If something isn't working as expected -labels: bug -body: - - type: markdown - attributes: - value: | - Make sure that you are submitting a new bug that was not previously reported or already fixed. - - Please use a concise and distinct title for the issue. - - type: input - attributes: - label: Expected behaviour - description: What should have happened? - validations: - required: true - - type: input - attributes: - label: Actual behaviour - description: What happened? - validations: - required: true - - type: textarea - attributes: - label: Steps to reproduce the problem - description: What were you trying to do? - value: | - 1. - 2. - 3. - ... - validations: - required: true - - type: textarea - attributes: - label: Specifications - description: | - What version or commit hash of Mastodon did you find this bug in? - - If a front-end issue, what browser and operating systems were you using? - validations: - required: true diff --git a/.github/ISSUE_TEMPLATE/2.feature_request.yml b/.github/ISSUE_TEMPLATE/2.feature_request.yml deleted file mode 100644 index 00aad1341..000000000 --- a/.github/ISSUE_TEMPLATE/2.feature_request.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Feature Request -description: I have a suggestion -body: - - type: markdown - attributes: - value: | - Please use a concise and distinct title for the issue. - - Consider: Could it be implemented as a 3rd party app using the REST API instead? - - type: textarea - attributes: - label: Pitch - description: Describe your idea for a feature. Make sure it has not already been suggested/implemented/turned down before. - validations: - required: true - - type: textarea - attributes: - label: Motivation - description: Why do you think this feature is needed? Who would benefit from it? - validations: - required: true diff --git a/.github/ISSUE_TEMPLATE/3.support.md b/.github/ISSUE_TEMPLATE/3.support.md deleted file mode 100644 index e2217da8b..000000000 --- a/.github/ISSUE_TEMPLATE/3.support.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: Support -about: Ask for help with your deployment -title: DO NOT CREATE THIS ISSUE ---- - -We primarily use GitHub as a bug and feature tracker. For usage questions, troubleshooting of deployments and other individual technical assistance, please use one of the resources below: - -- https://discourse.joinmastodon.org -- #mastodon on irc.freenode.net diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 768868516..000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,5 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: Mastodon Meta Discussion Board - url: https://discourse.joinmastodon.org/ - about: Please ask and answer questions here. diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 6601ef8c0..000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,10 +0,0 @@ -daysUntilStale: 120 -daysUntilClose: 7 -exemptLabels: - - security -staleLabel: wontfix -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -only: pulls diff --git a/.github/workflows/check-i18n.yml b/.github/workflows/check-i18n.yml deleted file mode 100644 index 398e78b0f..000000000 --- a/.github/workflows/check-i18n.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Check i18n - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -env: - RAILS_ENV: test - -jobs: - check-i18n: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Install system dependencies - run: | - sudo apt-get update - sudo apt-get install -y libicu-dev libidn11-dev libprotobuf-dev protobuf-compiler - - name: Set up Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: '2.7' - bundler-cache: true - - name: Check locale file normalization - run: bundle exec i18n-tasks check-normalized - - name: Check for unused strings - run: bundle exec i18n-tasks unused -l en - - name: Check for wrong string interpolations - run: bundle exec i18n-tasks check-consistent-interpolations - - name: Check that all required locale files exist - run: bundle exec rake repo:check_locales_files diff --git a/.gitignore b/.gitignore index b4d2712ff..6c1c28c5d 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,6 @@ yarn-debug.log # Ignore Docker option files docker-compose.override.yml + +# Ignore github-specific files +.github/ diff --git a/README.md b/README.md index 502e0d8db..f0b4ba455 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,10 @@ ![Mastodon](https://i.imgur.com/NhZc40l.png) ======== -[![Build Status](https://img.shields.io/docker/cloud/build/pluralcafe/mastodon)](https://hub.docker.com/repository/docker/pluralcafe/mastodon) [![Site Status](https://img.shields.io/website?label=plural.cafe&logo=mastodon&url=https%3A%2F%2Fplural.cafe)](https://plural.cafe) +[![Site Status](https://img.shields.io/website?label=plural.cafe&logo=mastodon&url=https%3A%2F%2Fplural.cafe)](https://plural.cafe) Mastodon is a **free, open-source social network server** based on **open web protocols** like ActivityPub and OStatus. The social focus of the project is a viable decentralized alternative to commercial social media silos that returns the control of the content distribution channels to the people. The technical focus of the project is a good user interface, a clean REST API for 3rd party apps and robust anti-abuse tools. **Ruby on Rails** is used for the back-end, while **React.js** and Redux are used for the dynamic front-end. A static front-end for public resources (profiles and statuses) is also provided. -This repository specifically is for [Plural Café](https://plural.cafe) and has three branches: - -* **main** (**edge** on Docker Hub) for all development and staging work, -* **glitch** for all commits from upstream that will automatically be synched to this repository, and -* **production** (**latest** on Docker Hub) for what goes onto the main website. - -In addition, there are several repositories in this GitHub organization: - -* **pluralcafe/mastodon** is this repository and is the codebase for what Plural Café runs, -* [**pluralcafe/utils**](https://github.com/pluralcafe/utils) are an assortment of scripts and tutorials to help in Mastodon system administration or general helper files this instance uses, -* [**pluralcafe/barkeep**](https://github.com/pluralcafe/barkeep) is forked from [mbilokonsky/ambassador](https://github.com/mbilokonsky/ambassador) and serves as the Ambassador bot that is run on the instance. - -This instance is a fork of a fork: this has the [Mastodon Glitch Edition](https://github.com/glitch-soc/mastodon) commits. Documentation for Mastodon Glitch Edition [can be found here](https://glitch-soc.github.io/docs/). Anyone wishing to use Glitch Edition in a Docker image for their own site can use the `pluralcafe/mastodon:glitch` image. - ---- - -## Notable changes from upstream - -See output of `git log glitch..main --oneline | grep -v '[mM]erge' | less` for a (more) complete history. - -* <ol> margin issue fixed so numbered lists aren't cut off a few pixels shy of 1 number -* HTML summary/details tags are allowed in toots -* gemini protocol links are supported (not yet supported: automatically marking gemini:// text as links) -* authentication required for account api endpoints to block some naive scrapers +This repository specifically is for [Plural Café](https://plural.cafe) and is a fork of a fork based on [Mastodon Glitch Edition](https://github.com/glitch-soc/mastodon). Documentation for Mastodon Glitch Edition [can be found here](https://glitch-soc.github.io/docs/). diff --git a/app/javascript/flavours/glitch/features/ui/components/link_footer.js b/app/javascript/flavours/glitch/features/ui/components/link_footer.js index db0d2eda7..533d9e09b 100644 --- a/app/javascript/flavours/glitch/features/ui/components/link_footer.js +++ b/app/javascript/flavours/glitch/features/ui/components/link_footer.js @@ -58,11 +58,12 @@ class LinkFooter extends React.PureComponent {

pluralcafe/mastodon (v{version}), + github: our Git repository (v{version}), Glitchsoc: glitch-soc/mastodon, - Mastodon: Mastodon }} + Mastodon: Mastodon, + admin: admin@plural.cafe }} />

diff --git a/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.js b/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.js index 935c26be6..8f993520a 100644 --- a/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/onboarding_modal.js @@ -141,7 +141,19 @@ const PageSix = ({ admin, domain }) => {

{adminSection} -

fork, Mastodon: Mastodon, github: GitHub }} />

+

+ fork, + Mastodon: Mastodon, + Glitchsoc: GlitchSoc, + github: our Git repository, + admin: admin@plural.cafe }} + /> +

}} />

diff --git a/app/javascript/flavours/glitch/locales/en-cafe.js b/app/javascript/flavours/glitch/locales/en-cafe.js index 6886de5d3..48aa9edb6 100755 --- a/app/javascript/flavours/glitch/locales/en-cafe.js +++ b/app/javascript/flavours/glitch/locales/en-cafe.js @@ -2,7 +2,8 @@ import base_english from 'flavours/glitch/locales/en'; import inherited from 'mastodon/locales/en-cafe.json'; const messages = { - // No new translations for glitch-soc strings. + 'getting_started.open_source_notice': 'GlitchCafé is free open source software, based on {Glitchsoc} which is a friendly fork of {Mastodon}. You can see our source code on {github} and report bugs, request features, or contribute by emailing {admin}.' + 'onboarding.page_six.github': '{domain} runs on GlitchCafé, which is based on {Glitchsoc}, a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. GlitchCafé is free open-source software. You can view the source code on {github} and report bugs, request features, or contribute to the code by emailing {admin}.', }; export default Object.assign({}, base_english, inherited, messages); diff --git a/app/javascript/flavours/glitch/locales/en.js b/app/javascript/flavours/glitch/locales/en.js index 699affd70..90e924d4a 100644 --- a/app/javascript/flavours/glitch/locales/en.js +++ b/app/javascript/flavours/glitch/locales/en.js @@ -1,7 +1,7 @@ import inherited from 'mastodon/locales/en.json'; const messages = { - 'getting_started.open_source_notice': 'GlitchCafe is free open source software based on {Glitchsoc} and {Mastodon}. You can see our source code on GitHub at {github}.', + 'getting_started.open_source_notice': 'Glitchsoc is free open source software forked from {Mastodon}. You can contribute or report issues on GitHub at {github}.', 'layout.auto': 'Auto', 'layout.current_is': 'Your current layout is:', 'layout.desktop': 'Desktop', @@ -10,7 +10,7 @@ const messages = { 'getting_started.onboarding': 'Show me around', 'onboarding.page_one.federation': '{domain} is an \'instance\' of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.', 'onboarding.page_one.welcome': 'Welcome to {domain}!', - 'onboarding.page_six.github': '{domain} runs on GlitchCafe, which is based on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. GlitchCafe includes Plural Cafe-specific additions to Glitchsoc. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.', + 'onboarding.page_six.github': '{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.', 'settings.auto_collapse': 'Automatic collapsing', 'settings.auto_collapse_all': 'Everything', 'settings.auto_collapse_lengthy': 'Lengthy toots', -- cgit