shulkr


Nameshulkr JSON
Version 0.7.2 PyPI version JSON
download
home_pagehttps://github.com/clabe45/shulkr
SummaryDiff decompiled versions of Minecraft
upload_time2024-05-04 18:06:38
maintainerNone
docs_urlNone
authorCaleb Sacks
requires_pythonNone
licenseGPLv3
keywords minecraft git decompile game
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Shulkr

[![Discord](https://img.shields.io/discord/992622345334292542)](https://discord.gg/GDSft8kHWg)
![Check New Commits](https://github.com/clabe45/shulkr/actions/workflows/check.yml/badge.svg)
[![PyPI version](https://badge.fury.io/py/shulkr.svg)](https://badge.fury.io/py/shulkr)

Shulkr is a tool that decompiles multiple versions of Minecraft and commits each
version to Git

**Warning: You CANNOT publish any code generated by this tool. For more info,
see the [usage guidelines].**

## Requirements

- Git
- Python 3
- JDK (>= 17 for Minecraft 1.18 and above)

## Installation

```
pip install shulkr
```

## Usage

```sh
shulkr 1.16 1.17 1.18
```

This will generate a commit with the decompiled source code for Minecraft 1.16,
1.17 and 1.18 in the current working directory:

```
204b37c (HEAD -> main, tag: 1.18) version 1.18
86dc440 (tag: 1.17) version 1.17
5d13494 (tag: 1.16) version 1.16
```

Note: It's okay to skip versions. Shulkr generates the complete source code for
each version before committing to git, so you can include as many or as little
intermediate versions as you would like.

## Version Patterns

Ranges of versions can be specified with `..` and `...`:
- `A..B` expands to all versions between `A` and `B` (inclusive), *not*
  including snapshots
- `A...B` expands to all versions between `A` and `B` (inclusive), including
  snapshots

`A` and/or `B` can be omitted, defaulting to the version after the most recent
commit and the latest supported version, respectively.

A *negative pattern* removes all matching versions that came before it. To
negate a pattern, add `-`. The following pattern expands to all versions after
`A`, up to and including `B` (the order is important):
- `A...B -A`

Note that you need to include `--` before the versions when using negative
versions, so the argument parser knows that the negative version is not an
option:

```sh
shulkr -- ...1.19 -1.19
```

## Options

### `--repo` / `-p`

By default the source code is generated in the current working directory. To
specify a different location:

```sh
shulkr --repo minecraft-sources 1.17..
```

If the directory does not exist, a new git repo will be created there.

### `--mappings`

By default, Minecraft's bytecode is deobfuscated using [yarn's] mappings. You
can also use `--mappings mojang` to use Mojang's official mappings.

If left unspecified, the mappings used to generate the previous commit are
detected.

### `--message` / `-m`

This option lets you customize the commit message format:

```sh
shulkr -m "Minecraft {}" 1.18-rc4
```

### `--no-tags` / `-T`

By default, each commit is tagged with the name of its Minecraft version. This
can be disabled with `--no-tags`.

## Experimental Options

### `--undo-renamed-vars` / `-u`

When this option is enabled, local variables that were renamed in new versions
will be reverted to their original names.

## Changelog

See the [changelog].

## Contributing

See the [contributing guide].

## License

Licensed under the Apache License, Version 2.0.

[yarn's]: https://github.com/FabricMC/yarn
[Fork]: https://github.com/clabe45/shulkr/fork
[changelog]: ./docs/changelog.md
[usage guidelines]: ./docs/usage-guidelines.md
[contributing guide]: ./docs/contributing.md

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/clabe45/shulkr",
    "name": "shulkr",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "minecraft, git, decompile, game",
    "author": "Caleb Sacks",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/96/51/f9a6353ba5adb84c6e01f55c99dcc353b0b5ef4bdd25cf44eb2e2473341e/shulkr-0.7.2.tar.gz",
    "platform": null,
    "description": "# Shulkr\n\n[![Discord](https://img.shields.io/discord/992622345334292542)](https://discord.gg/GDSft8kHWg)\n![Check New Commits](https://github.com/clabe45/shulkr/actions/workflows/check.yml/badge.svg)\n[![PyPI version](https://badge.fury.io/py/shulkr.svg)](https://badge.fury.io/py/shulkr)\n\nShulkr is a tool that decompiles multiple versions of Minecraft and commits each\nversion to Git\n\n**Warning: You CANNOT publish any code generated by this tool. For more info,\nsee the [usage guidelines].**\n\n## Requirements\n\n- Git\n- Python 3\n- JDK (>= 17 for Minecraft 1.18 and above)\n\n## Installation\n\n```\npip install shulkr\n```\n\n## Usage\n\n```sh\nshulkr 1.16 1.17 1.18\n```\n\nThis will generate a commit with the decompiled source code for Minecraft 1.16,\n1.17 and 1.18 in the current working directory:\n\n```\n204b37c (HEAD -> main, tag: 1.18) version 1.18\n86dc440 (tag: 1.17) version 1.17\n5d13494 (tag: 1.16) version 1.16\n```\n\nNote: It's okay to skip versions. Shulkr generates the complete source code for\neach version before committing to git, so you can include as many or as little\nintermediate versions as you would like.\n\n## Version Patterns\n\nRanges of versions can be specified with `..` and `...`:\n- `A..B` expands to all versions between `A` and `B` (inclusive), *not*\n  including snapshots\n- `A...B` expands to all versions between `A` and `B` (inclusive), including\n  snapshots\n\n`A` and/or `B` can be omitted, defaulting to the version after the most recent\ncommit and the latest supported version, respectively.\n\nA *negative pattern* removes all matching versions that came before it. To\nnegate a pattern, add `-`. The following pattern expands to all versions after\n`A`, up to and including `B` (the order is important):\n- `A...B -A`\n\nNote that you need to include `--` before the versions when using negative\nversions, so the argument parser knows that the negative version is not an\noption:\n\n```sh\nshulkr -- ...1.19 -1.19\n```\n\n## Options\n\n### `--repo` / `-p`\n\nBy default the source code is generated in the current working directory. To\nspecify a different location:\n\n```sh\nshulkr --repo minecraft-sources 1.17..\n```\n\nIf the directory does not exist, a new git repo will be created there.\n\n### `--mappings`\n\nBy default, Minecraft's bytecode is deobfuscated using [yarn's] mappings. You\ncan also use `--mappings mojang` to use Mojang's official mappings.\n\nIf left unspecified, the mappings used to generate the previous commit are\ndetected.\n\n### `--message` / `-m`\n\nThis option lets you customize the commit message format:\n\n```sh\nshulkr -m \"Minecraft {}\" 1.18-rc4\n```\n\n### `--no-tags` / `-T`\n\nBy default, each commit is tagged with the name of its Minecraft version. This\ncan be disabled with `--no-tags`.\n\n## Experimental Options\n\n### `--undo-renamed-vars` / `-u`\n\nWhen this option is enabled, local variables that were renamed in new versions\nwill be reverted to their original names.\n\n## Changelog\n\nSee the [changelog].\n\n## Contributing\n\nSee the [contributing guide].\n\n## License\n\nLicensed under the Apache License, Version 2.0.\n\n[yarn's]: https://github.com/FabricMC/yarn\n[Fork]: https://github.com/clabe45/shulkr/fork\n[changelog]: ./docs/changelog.md\n[usage guidelines]: ./docs/usage-guidelines.md\n[contributing guide]: ./docs/contributing.md\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "Diff decompiled versions of Minecraft",
    "version": "0.7.2",
    "project_urls": {
        "Homepage": "https://github.com/clabe45/shulkr"
    },
    "split_keywords": [
        "minecraft",
        " git",
        " decompile",
        " game"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "833fddfee848cc825f214b037ca3bd53612d3d54f4132c73aa57fe1b7218bd05",
                "md5": "b9631f2e775f497304c9bb7549ec9b8c",
                "sha256": "89fc6db09eae39617cb900805c8bff191f635c30ee1650cb904b926d63436346"
            },
            "downloads": -1,
            "filename": "shulkr-0.7.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b9631f2e775f497304c9bb7549ec9b8c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 24648,
            "upload_time": "2024-05-04T18:06:36",
            "upload_time_iso_8601": "2024-05-04T18:06:36.826223Z",
            "url": "https://files.pythonhosted.org/packages/83/3f/ddfee848cc825f214b037ca3bd53612d3d54f4132c73aa57fe1b7218bd05/shulkr-0.7.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9651f9a6353ba5adb84c6e01f55c99dcc353b0b5ef4bdd25cf44eb2e2473341e",
                "md5": "42fc84305e79093e5b449cafeffce8f1",
                "sha256": "48935028378c45eee3ca829d3d70e4605c185ff43a69f5a91a37c234b0b3a7b8"
            },
            "downloads": -1,
            "filename": "shulkr-0.7.2.tar.gz",
            "has_sig": false,
            "md5_digest": "42fc84305e79093e5b449cafeffce8f1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 21525,
            "upload_time": "2024-05-04T18:06:38",
            "upload_time_iso_8601": "2024-05-04T18:06:38.534705Z",
            "url": "https://files.pythonhosted.org/packages/96/51/f9a6353ba5adb84c6e01f55c99dcc353b0b5ef4bdd25cf44eb2e2473341e/shulkr-0.7.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-04 18:06:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "clabe45",
    "github_project": "shulkr",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "shulkr"
}
        
Elapsed time: 0.92735s