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

Core: apworld metadata and versioning #3809

Draft
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

Silvris
Copy link
Collaborator

@Silvris Silvris commented Aug 18, 2024

What is this fixing or adding?

Adds the ability to include an optional metadata file that defines specific information about a given apworld. These include

  • world version
  • minimum generator version
  • maximum generator version
  • architecture/os/python version

Additionally, exposes the ability to require a certain world version from within a player yaml.

It should be noted that the ExportWorld.py is used (with permission) from @zig-for 's apworld manager with minor changes.

How was this tested?

Manually, via attempting to reach every codepath with customized metadata/yaml. No automated testing was added.

Opening as draft for additional testing and other missed locations (such as docs updates).

Some points of discussion:

  • Should more be included on the world metadata immediately, such as authors/maintainers?
  • Should ExportWorld be used within setup.py, and should it be moved to being a base-level script? (Notably, this fixes LADX compatibility)
  • Defaults for min_generator_version and max_generator_version

If this makes graphical changes, please attach screenshots.

Example metadata:

{
    "game": "Mega Man 2",
    "world_version": "0.3.1",
    "min_generator_version": "0.5.0",
    "description": "In the year 200X, following his prior defeat by Mega Man, the evil Dr. Wily has returned to take over the world with\n    his own group of Robot Masters. Mega Man once again sets out to defeat the eight Robot Masters and stop Dr. Wily.",
    "game_id": "mm2",
    "frozen": false,
    "arch": "any",
    "os": "any",
    "pyversion": "any"
}

@github-actions github-actions bot added the affects: core Issues/PRs that touch core and may need additional validation. label Aug 18, 2024
Comment on lines 20 to 25
METADATA_KEYS = [
"game",
# license
# description
# maintainers
]

This comment was marked as resolved.

worlds/ExportWorld.py Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects: core Issues/PRs that touch core and may need additional validation.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants