about summary refs log tree commit diff
diff options
context:
space:
mode:
authorStarfall <us@starfall.systems>2021-07-07 12:25:51 -0500
committerStarfall <us@starfall.systems>2021-07-07 13:17:43 -0500
commit5b515b1adb96cbfe92d3c9a15387ca943d6af993 (patch)
tree402c404bbb9c93dd67480e66c9fdf3a4c6585393
parentd30025d28d813999bfe98ce9cee2cda3bebf6c22 (diff)
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
-rw-r--r--.github/CODEOWNERS32
-rw-r--r--.github/FUNDING.yml3
-rw-r--r--.github/ISSUE_TEMPLATE/1.bug_report.yml42
-rw-r--r--.github/ISSUE_TEMPLATE/2.feature_request.yml21
-rw-r--r--.github/ISSUE_TEMPLATE/3.support.md10
-rw-r--r--.github/ISSUE_TEMPLATE/config.yml5
-rw-r--r--.github/stale.yml10
-rw-r--r--.github/workflows/check-i18n.yml34
-rw-r--r--.gitignore3
-rw-r--r--README.md27
-rw-r--r--app/javascript/flavours/glitch/features/ui/components/link_footer.js7
-rw-r--r--app/javascript/flavours/glitch/features/ui/components/onboarding_modal.js14
-rwxr-xr-xapp/javascript/flavours/glitch/locales/en-cafe.js3
-rw-r--r--app/javascript/flavours/glitch/locales/en.js4
14 files changed, 26 insertions, 189 deletions
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.
-
-* &lt;ol&gt; 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 {
         <p>
           <FormattedMessage
             id='getting_started.open_source_notice'
-            defaultMessage='GlitchCafe is open source software, based on {Glitchsoc} which is a friendly fork of {Mastodon}. You can contribute or report issues on GitHub at {github}.'
+            defaultMessage='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 to the code by emailing {admin}.'
             values={{
-              github: <span><a href='https://github.com/pluralcafe/mastodon' rel='noopener noreferrer' target='_blank'>pluralcafe/mastodon</a> (v{version})</span>,
+              github: <span><a href='https://git.starfall.systems/pluralcafe/mastodon/' rel='noopener noreferrer' target='_blank'>our Git repository</a> (v{version})</span>,
               Glitchsoc: <a href='https://github.com/glitch-soc/mastodon' rel='noopener noreferrer' target='_blank'>glitch-soc/mastodon</a>,
-              Mastodon: <a href='https://github.com/tootsuite/mastodon' rel='noopener noreferrer' target='_blank'>Mastodon</a> }}
+              Mastodon: <a href='https://github.com/tootsuite/mastodon' rel='noopener noreferrer' target='_blank'>Mastodon</a>,
+			  admin: <a href='mailto://admin@plural.cafe' rel='noopener noreferrer'>admin@plural.cafe</a> }}
           />
         </p>
       </div>
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 }) => {
     <div className='onboarding-modal__page onboarding-modal__page-six'>
       <h1><FormattedMessage id='onboarding.page_six.almost_done' defaultMessage='Almost done...' /></h1>
       {adminSection}
-      <p><FormattedMessage id='onboarding.page_six.github' defaultMessage='{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.' values={{ domain, fork: <a href='https://en.wikipedia.org/wiki/Fork_(software_development)' target='_blank' rel='noopener'>fork</a>, Mastodon: <a href='https://github.com/tootsuite/mastodon' target='_blank' rel='noopener'>Mastodon</a>, github: <a href='https://github.com/glitch-soc/mastodon' target='_blank' rel='noopener'>GitHub</a> }} /></p>
+      <p>
+		  <FormattedMessage
+		    id='onboarding.page_six.github'
+		    defaultMessage='{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}.'
+		    values={{
+		      domain,
+		      fork: <a href='https://en.wikipedia.org/wiki/Fork_(software_development)' target='_blank' rel='noopener'>fork</a>,
+	          Mastodon: <a href='https://github.com/tootsuite/mastodon' target='_blank' rel='noopener'>Mastodon</a>,
+		      Glitchsoc: <a href='https://github.com/glitch-soc/mastodon' target='_blank' rel='noopener'>GlitchSoc</a>,
+              github: <a href='https://git.starfall.systems/pluralcafe/mastodon/' rel='noopener noreferrer' target='_blank'>our Git repository</a>,
+			  admin: <a href='mailto://admin@plural.cafe' rel='noopener noreferrer'>admin@plural.cafe</a> }}
+		  />
+	  </p>
       <p><FormattedMessage id='onboarding.page_six.apps_available' defaultMessage='There are {apps} available for iOS, Android and other platforms.' values={{ domain, apps: <a href='https://joinmastodon.org/apps' target='_blank' rel='noopener'><FormattedMessage id='onboarding.page_six.various_app' defaultMessage='mobile apps' /></a> }} /></p>
       <p><em><FormattedMessage id='onboarding.page_six.appetoot' defaultMessage='Bon Appetoot!' /></em></p>
     </div>
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',