1,035
edits
No edit summary |
|||
(6 intermediate revisions by one other user not shown) | |||
Line 3: | Line 3: | ||
== Stages == | == Stages == | ||
=== History: Steps that were followed for | === Steps to be followed for '''merging glitch + upstream stable release + instance's stable custom features''' === | ||
* Sync the <code>[https://github.com/NeuromatchAcademy/mastodon/tree/glitch-clean-sync glitch-clean-sync]</code> branch to <code>glitch-soc/mastodon:main</code>: Open the branch page and click "'''sync fork'''" | |||
** The purpose of this branch is solely to serve as a replica of the parent <code>glitch-soc/mastodon:main</code> branch and so <code>[https://github.com/glitch-soc/mastodon/tree/glitch-clean-sync glitch-clean-sync]</code> is a locked read-only branch by design to protect it from force-pushes or merges from other branches. | |||
*Create a new branch called custom-glitch(insert version number) from the <code>[https://github.com/NeuromatchAcademy/mastodon/tree/glitch-clean-sync glitch-clean-sync]</code> branch. For example, if we are upgrading to v4.2, the branch will be <code>[https://github.com/NeuromatchAcademy/mastodon/tree/custom-glitch4.2 custom-glitch4.2]</code> | |||
<syntaxhighlight lang="bash">git checkout origin/glitch-clean-sync | |||
git checkout -b custom-glitch4.2 </syntaxhighlight> | |||
* Merge <code>[https://github.com/NeuromatchAcademy/mastodon/tree/dev-stable dev-stable]</code> to the custom glitch branch | |||
<syntaxhighlight lang="bash">git merge origin/dev-stable </syntaxhighlight> | |||
* All the stable features stay on the <code>[https://github.com/NeuromatchAcademy/mastodon/tree/dev-stable dev-stable]</code> branch. To ensure that this branch stays clean, branch protections have been enabled. | |||
* Any features that have passed all the tests, have no errors (including linting errors), received approval from at least 1 reviewer, and are ready to be merged should be merged from the feature branch to the dev-stable branch in a separate process. See [[Mastodon/Hacking]] for important guidelines for contributing custom features to dev-stable. | |||
** Briefly: dev-stable branch should ideally have no merge conflicts if all the steps to keep the branch clean and stable have been followed. | |||
*** If there are merge conflicts, try and identify which features caused merge conflicts. Then request the feature developer to : | |||
**** merge upstream (glitch-soc:main) to conflicting feature branches | |||
**** create a PR to merge conflicting feature branches with dev-stable | |||
**** ensure that all checks pass, there are no linting errors, and review the code to ensure that it does what the feature is intended to do before merging to dev-stable | |||
==== History: Steps that were followed for merging glitch + 4.2RC + our instance's features ==== | |||
all branches refer to those in [https://github.com/NeuromatchAcademy/mastodon NeuromatchAcademy/mastodon] unless specified otherwise. | all branches refer to those in [https://github.com/NeuromatchAcademy/mastodon NeuromatchAcademy/mastodon] unless specified otherwise. | ||
Line 67: | Line 85: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
RAILS_ENV=production bundle exec rails db:migrate | RAILS_ENV=production bundle exec rails db:migrate | ||
</syntaxhighlight> | |||
== Problems == | |||
(and solutions) | |||
=== Precompilation Failed === | |||
You might see something like this: | |||
<pre> | |||
mastodon@localhost:~/live$ RAILS_ENV=production bundle exec rails assets:precompile | |||
DEPRECATION WARNING: Support for `config.active_support.cache_format_version = 6.1` has been deprecated and will be removed in Rails 7.2. | |||
Check the Rails upgrade guide at https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#new-activesupport-cache-serialization-format | |||
for more information on how to upgrade. | |||
(called from <main> at /home/mastodon/live/config/environment.rb:7) | |||
Compiling... | |||
Compilation failed: | |||
`isModuleDeclaration` has been deprecated, please migrate to `isImportOrExportDeclaration` | |||
at isModuleDeclaration (/home/mastodon/live/node_modules/babel-plugin-lodash/node_modules/@babel/types/lib/validators/generated/index.js:2740:35) | |||
at PluginPass.Program (/home/mastodon/live/node_modules/babel-plugin-lodash/lib/index.js:102:44) | |||
</pre> | |||
and assume that the compilation fails because of the deprecation error that follows immediately after "compilation failed:" but it is not so. | |||
This is an OOM error, see: https://github.com/glitch-soc/mastodon/issues/2423 | |||
To remedy: | |||
1) Switch back to your user (from the <code>mastodon</code> user) that has root permissions and stop the [[ElasticSearch]] process. Return to the mastodon user. | |||
<syntaxhighlight lang="bash"> | |||
# previously... | |||
# sudo su mastodon | |||
exit # assuming you're the mastodon user | |||
sudo systemctl stop elasticsearch | |||
# return to mastodon user | |||
sudo su mastodon | |||
</syntaxhighlight> | |||
2) Since disrupting the asset precompilation may leave you in a state where webpack thinks it has successfully compiled, you need to clobber the previous assets | |||
<syntaxhighlight lang="bash"> | |||
cd ~/live | |||
RAILS_ENV=production bundle exec rails assets:clobber | |||
</syntaxhighlight> | |||
3) Proceed with precompilation... | |||
<syntaxhighlight lang="bash"> | |||
RAILS_ENV=production bundle exec rails assets:precompile | |||
</syntaxhighlight> | |||
4) Remember to restart elasticsearch afterwards! | |||
<syntaxhighlight lang="bash"> | |||
exit | |||
sudo systemctl start elasticsearch | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 94: | Line 173: | ||
|Date Sent=23-10-01 07:44:40 | |Date Sent=23-10-01 07:44:40 | ||
|Channel=techwg-ops | |Channel=techwg-ops | ||
|Text=[[Tech WG/Ops Diary#23-10-01]] I am ready to deploy v4.2 but I encountered a few issues while following the process mentioned in [[Upgrade_Mastodon]]. I' | |Text=[[Tech WG/Ops Diary#23-10-01]] I am ready to deploy v4.2 but I encountered a few issues while following the process mentioned in [[Upgrade_Mastodon]]. The glitch-soc-main branch had commits from merge-upstream even after syncing the the branch. So I created a new branch called glitch-clean-sync from glitch-soc's main branch and added protections to this branch. This let's us keep this branch clean and not merge any custom features to this branch. We'd only use the sync feature. I also tried to follow the rest of the process but it seemed a bit complicated/unclear. I've tried to simplify it in a separate section above for glitch+4.2+our instance's features. I've also created a clean and stable dev-stable branch for custom features that we add. I've added branch protections here as well and PRs will require reviews on this branch. | ||
|Link=https://discord.com/channels/1049136631065628772/1052452072806686751/1157946171432632383 | |Link=https://discord.com/channels/1049136631065628772/1052452072806686751/1157946171432632383 | ||
}} | }} |