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

v0.0.3 Release #51

Merged
merged 61 commits into from
Oct 19, 2023
Merged

v0.0.3 Release #51

merged 61 commits into from
Oct 19, 2023

Conversation

OpenBagTwo
Copy link
Owner

@OpenBagTwo OpenBagTwo commented Oct 11, 2023

Summary

Release staging for v0.0.3

List of Changes

Tech Debt and Other Concerns

To Do

Optional

Validation Performed

  • I have been using the GSB v0.0.3 release candidate on my systems for at least a week without issue
  • I have fully reviewed a recent pylint report and am comfortable with its findings

PR Type

  • This PR introduces a breaking change (will
    require a bump in the minor version)
  • The changes in this PR are high urgency and necessitate a hotfix or patch
    release (will require rebasing off of release)
  • This is a release (staging) PR (maintainer use only)

Checklist:

  • I have read the contributor's guide
  • I have run mkdocs serve locally and ensured that all API docs and
    changes I have made to the static pages are rendering correctly, with all links
    working
  • All tech debt concerns have been resolved, documented as issues, or otherwise
    accepted
  • I agree to license my contribution to this project under
    the GNU Public License v3

- refactoring the "repo with history" fixture for shared use
- fixing some implementation mistakes with the fastforward stump
Only issue is handling pre-GSB backups.
If the branch doesn't exist, then why would you be trying to check it out?
Also: change test module name to align with CLI
... which important-logs the full history (which I don't want) and doesn't even let me use full commit hashes
also a fixture refactor so that ALL tests are using the cloned repo
Out of scope, but why not?
I just realized that with the numbering it's a lot more complicated, and since
it's outside the scope of this PR, I need to tackle it separately.

This reverts commit 417c5b4.
It's what the fixture is for
Implements #35
I think it would actually be possible to do this directly using `repo.create_commit` but this more closely simulates what I'd actually be doing using the git CLI
Hella verbose ones, but at least they won't conflict
Implements #37

I did debate adding a test_test that would call test from inside test, but I couldn't quite stomach the meme
1. We only have one method with an example docstring
2. That one docstring generates a file we don't want
3. If we actually used example docstrings, they would require an active git repo
4. And they, too, would probably do things we didn't want
Plus, proofing and some gsb -> GSB (#44) replacements
@OpenBagTwo
Copy link
Owner Author

In proofing the HTML docs, I discovered that the mambaforge link was busted. Turns out, mamba ships with miniforge now! Consequently, I've added #53 to the scope of this release.

@OpenBagTwo
Copy link
Owner Author

I'm (mostly) satisfied with the pylint report
************* Module gsb.cli
gsb/cli.py:44:9: W0511: TODO: when we add log files, set this to minimum log level across all handlers (fixme)
gsb/cli.py:105:12: W0632: Possible unbalanced tuple unpacking with sequence defined at line 94 of gsb.history: left side has 2 labels, right side has 0 values (unbalanced-tuple-unpacking)
gsb/cli.py:209:0: R0913: Too many arguments (6/5) (too-many-arguments)
gsb/cli.py:469:4: C0415: Import outside toplevel (pytest) (import-outside-toplevel)
************* Module gsb.history
gsb/history.py:40:0: R0913: Too many arguments (7/5) (too-many-arguments)
gsb/history.py:40:0: R0914: Too many local variables (16/15) (too-many-locals)
************* Module gsb._git
gsb/_git.py:219:40: E1101: Module 'pygit2' has no 'Object' member (no-member)
gsb/_git.py:553:67: E1101: Module 'pygit2' has no 'Object' member (no-member)
************* Module gsb.fastforward
gsb/fastforward.py:185:11: E1120: No value for argument 'starting_point' in function call (no-value-for-parameter)
************* Module gsb.manifest
gsb/manifest.py:36:4: C0103: Method name "of" doesn't conform to snake_case naming style (invalid-name)
************* Module gsb._make_zip_archive
gsb/_make_zip_archive.py:8:0: E0611: No name 'GIT_FILEMODE_LINK' in module 'pygit2' (no-name-in-module)
gsb/_make_zip_archive.py:8:0: E0611: No name 'Commit' in module 'pygit2' (no-name-in-module)
gsb/_make_zip_archive.py:8:0: E0611: No name 'Oid' in module 'pygit2' (no-name-in-module)
gsb/_make_zip_archive.py:8:0: E0611: No name 'Tree' in module 'pygit2' (no-name-in-module)
gsb/_make_zip_archive.py:65:15: W0718: Catching too general exception Exception (broad-exception-caught)

I would love to address the issues with _make_zip_archive, but it's a balancing act of trying to keep that code relatively close in style to the source so that I can contribute it upstream.

@OpenBagTwo
Copy link
Owner Author

OpenBagTwo commented Oct 18, 2023

Observations after a week of daily driving:

  • The interface works with my intuition (which you'd hope would be the case!), explicitly around:
    • using gsb history -gavn<N> and then copying the commits to delete into gsb delete
    • gsb backup -cc --tag "<Message>" producing the desired gsb history and git log
      • gsb backup -cc --tag "<Message>" combines beautifully with my scripted backup workflow which just does runs gsb backup (no-tag) nightly
  • For a reasonably sized savegame (MBs in size), operations are near instantaneous, but for my Minecraft backups (8GB of saves, 47GB of Git history), operations are painfully slow, from simple backups, which take minutes, to delete operations, which take more like 10.
    • Option to use Git command-line tool #52 should hopefully alleviate that, and while, objectively, that should be low priority (as my usecase is niche), the pain of dailying might put it in line for the MVP release.

@OpenBagTwo OpenBagTwo merged commit 51b2214 into release Oct 19, 2023
4 checks passed
@OpenBagTwo OpenBagTwo deleted the staging-0.0.3 branch October 19, 2023 14:18
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.

1 participant