Archive older migrations by year
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start by reviewing Submitty/migration/migrator/migrations/course and the related issues #2515 and #12446. Compare the proposed year-based organization, upgrade-gap restriction, and release-tag approach with the existing migration process. Done means the project has selected and documented a concrete approach with an agreed scope and validation plan.
Written by the indexing model from the issue text.
Description
What problem are you trying to solve with Submitty
We currently have ~550 migration files in
Submitty/migration/migrator/migrations/course
This is a bit overwhelming.
Also, if someone is update a system that is very-out-of-date, it is possible that the migrator will not successfully complete the running of a set of migrations over many months (or even years).
See: Chronological interleaving of system/master/course migrations
https://github.com/Submitty/Submitty/issues/2515
And see: Verify Migration File datestamp using a Github Action test
https://github.com/Submitty/Submitty/issues/12446
NOTE: It is handy to have samples of migration files for new developers to learn from. So we don't want to discard all the old files necessary.
Describe the way you'd like to solve this problem
Proposed Ideas for discussion:
-
Let's organize migrations for system/master/course migrations into an additional directory hierarchy level with subfolders by year.
-
Let's revise the migration system to force the sysadmin to take smaller steps when upgrading a system. If the oldest unapplied migration is more than 6 months old, the migrator should fail and instruct the sysadmin to first update the system to an intermediate release so that the gap in migrations is < 6 months. (Is "6 months" a good threshold? Could be something else.)
-
Alternatively / Additionally, we could compare the repo release tags and not allow a jump of more than 6 months. E.g., v25.09.00 -> v26.02.00 ALLOWED but v.25.03.00 -> v26.02.00 NOT ALLOWED. Note that the Submitty/Submitty repository does usually have at least one release per month, but the other helper repositories sometimes have periods > 6 months with no release. So maybe we need to check and see if there are other valid intermediate releases in between before failing.
- Dominant language
- PHP
- Stars
- 793
- Forks
- 1.1k
- Avg merge
- 2d 16h
- Merged PRs (30d)
- 78
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Submitty/Submitty
-
Awaiting Triage bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Awaiting Triage bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
bug good first issue grade inquiry (prev. regrade request) Notifications / Email
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug good first issue grade inquiry (prev. regrade request)
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug good first issue TA Grading / TA UI
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
All issues in Submitty/Submitty
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
getgrav/grav-plugin-api#45 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
RSS-Bridge/rss-bridge#5098 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
phingofficial/phing#2025 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
silverstripe/developer-docs#911 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100