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

Version 4.2.1 #195

Merged
merged 30 commits into from
Feb 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
f4b2e3d
Added note about yggdrasil auth deprecation
mindstorm38 Jan 13, 2024
f410c80
Improved yggdrasil deprecation lang
mindstorm38 Jan 13, 2024
86b97c9
Working on microsoft auth without web browser (wip)
mindstorm38 Jan 13, 2024
abb42a6
Fixed number formatting to keep padding when no unit
mindstorm38 Jan 15, 2024
132f6b1
Improved forge alias resolution (#189)
mindstorm38 Jan 15, 2024
5d419dc
Deprecated url-related function in the auth API.
mindstorm38 Jan 23, 2024
4977f45
Drastically simplified the Microsoft authentication, now using a redi…
mindstorm38 Jan 23, 2024
bdcbbbb
Version 4.2.0, also added certifi as extra dependency
mindstorm38 Jan 26, 2024
37b8467
Fixed pipeline to install all extras from poetry
mindstorm38 Jan 26, 2024
ce45fd7
Working on argcomplete support (not one yet, also dropped support for…
mindstorm38 Jan 26, 2024
4895498
Dropped argcomplete and working on a standalone arg completion genera…
mindstorm38 Jan 28, 2024
6e9f543
Removed useless Path construction
mindstorm38 Jan 28, 2024
010b015
Working on bash completion script generation (95% finished, missing c…
mindstorm38 Jan 28, 2024
9e9c1e3
Finished bash completion script (#111).
mindstorm38 Jan 28, 2024
0fc0869
Default completion shell depends on SHELL env
mindstorm38 Jan 28, 2024
d0c1114
Added auto-loaded Zsh completion by default
mindstorm38 Jan 29, 2024
a6abb6e
Added precise documentation for completion command. I will also rewor…
mindstorm38 Jan 29, 2024
8c8a2fb
Improved links in README, using absolute URIs when file is not shippe…
mindstorm38 Jan 29, 2024
6b9c7de
Improved help/doc
mindstorm38 Jan 29, 2024
9b4383c
Shell argument is now required for show completion
mindstorm38 Feb 2, 2024
be9d66a
Made a zsh completion generic over autoload or eval context.
mindstorm38 Feb 2, 2024
0bb0a36
Removed old unused lang
mindstorm38 Feb 2, 2024
ff18255
Added check for successful gen_completion functions
mindstorm38 Feb 2, 2024
9f775e7
Updated API doc version
mindstorm38 Feb 2, 2024
943cd8f
Removed mention of GitHub for contributors in copyright owners.
mindstorm38 Feb 3, 2024
bc0e7d8
README mention of arch linux AUR package and show completion command.
mindstorm38 Feb 3, 2024
90b49ec
Note about certifi optional dependency.
mindstorm38 Feb 3, 2024
b7678fc
README update before release
mindstorm38 Feb 9, 2024
0b37171
Version 4.2.1 immediate bump because I'm dumb
mindstorm38 Feb 9, 2024
c11507c
Typo in doc
mindstorm38 Feb 9, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
fail-fast: true
matrix:
os: [Ubuntu, macOS, Windows]
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
include:
- os: Ubuntu
image: ubuntu-22.04
Expand All @@ -38,15 +38,15 @@ jobs:
run: |
env\Scripts\Activate.ps1
pip install poetry pytest-github-actions-annotate-failures
poetry install
poetry install --all-extras
coverage run -m pytest -v test/

- name: Test on UNIX
if: matrix.os != 'Windows'
run: |
source env/bin/activate
pip install poetry pytest-github-actions-annotate-failures
poetry install
poetry install --all-extras
coverage run -m pytest -v test/

- name: Coverage & codecov
Expand Down
55 changes: 42 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
# Portable Minecraft Launcher
A fast, reliable and cross-platform command-line Minecraft launcher and API for developers.
This launcher is compatible with the official Minecraft launcher's version specification.
It also includes fast installation of common mod loaders such as Fabric, Forge and Quilt.
Including fast and easy installation of common mod loaders such as Fabric, Forge, NeoForge and Quilt.
This launcher is compatible with the standard Minecraft directories.

![PyPI - Version](https://img.shields.io/pypi/v/portablemc?label=PyPI%20version&style=flat-square)  ![PyPI - Downloads](https://img.shields.io/pypi/dm/portablemc?label=PyPI%20downloads&style=flat-square)
[![PyPI - Version](https://img.shields.io/pypi/v/portablemc?label=PyPI%20version&style=flat-square)![PyPI - Downloads](https://img.shields.io/pypi/dm/portablemc?label=PyPI%20downloads&style=flat-square)](https://pypi.org/project/portablemc/)

![illustration](doc/illustration.png)
![illustration](https://github.com/mindstorm38/portablemc/blob/main/doc/illustration.png)

*This launcher is tested for Python 3.7, 3.8, 3.9, 3.10, 3.11.*
*This launcher is tested for Python 3.8, 3.9, 3.10, 3.11, 3.12.*

## Table of contents
- [Installation](#installation)
- [With pip](#with-pip)
- [With Arch Linux](#with-arch-linux)
- [Commands](#commands)
- [Start Minecraft](#start-minecraft)
- [Authentication](#authentication)
Expand All @@ -22,33 +24,48 @@ It also includes fast installation of common mod loaders such as Fabric, Forge a
- [Miscellaneous](#miscellaneous)
- [Search for versions](#search-for-versions)
- [Authentication sessions](#authentication-sessions)
- [Shell completion](#shell-completion)
- [Offline support](#offline-support)
- [Certifi support](#certifi-support)
- [Contribute](#contribute)
- [Setup environment](#setup-environment)
- [Contributors](#contributors)
- [Sponsors](#sponsors)
- [API Documentation (v4) ⇗](doc/API.md)
- [API Documentation (v4.2) ⇗](https://github.com/mindstorm38/portablemc/blob/main/doc/API.md)

## Installation

### With pip

This launcher can be installed using `pip`. On some linux distribution you might have to
use `pip3` instead of `pip` in order to run it on Python 3. You can also use
`python -m pip` if the `pip` command is not in the path and the python executable is.

```sh
pip install --user portablemc
pip install --user portablemc[certifi]
```

It's recommended to keep `--user` because this installs the launcher for your
current user only, it is implicit if you are not an administrator and if you are, it
allows not to modify other users' installations.

After that, you can try to show the launcher help message using `portablemc` in your
terminal. If it fails, you should check that the scripts directory is in your user path
environment variable. On Windows you have to search for a directory at
`%appdata%/Python/Python3X/Scripts` and add it to the user's environment variable `Path`.
On UNIX systems it's `~/.local/bin`.

You can opt-out from the `certifi` optional feature if you don't want to depend on it,
learn more in the [Certifi support](#certifi-support) section.

> [!TIP]
> It's recommended to keep `--user` because this installs the launcher for your current
> user only and does not pollute other's environments, it is implicit if you are not an
> administrator and if you are, it allows not to modify other users' installations.

### With Arch Linux

For Arch Linux users, the package is available as `portablemc` in the
[AUR](https://aur.archlinux.org/packages/portablemc).

*This is currently maintained by Maks Jopek, Thanks!*

## Commands
Arguments are split between multiple commands.
For example `portablemc [global-args] <cmd> [args]`.
Expand Down Expand Up @@ -219,8 +236,10 @@ these are discarded in the bin directory, for example
These arguments can be used together to fix various issues (e.g. wrong libc being linked
by the LWJGL-provided natives).

*Note that these arguments are compatible with, and executed after the `--lwjgl` argument.
You must however ensure that excluded lib and included binaries are compatible.*
> [!NOTE]
> Note that these arguments are compatible with, and executed after the `--lwjgl`
> argument. You must however ensure that excluded lib and included binaries are
> compatible.

#### Miscellaneous
With `--dry`, the start command does not start the game, but simply installs it.
Expand Down Expand Up @@ -257,6 +276,16 @@ you need to log into an old Mojang account (being phased out by Mojang).
**Your password is not saved!** Only tokens are saved *(the official launcher also does
that)* in the file `portablemc_auth.json` in the working directory.

### Shell completion
The launcher can generate shell completions scripts for Bash and Zsh shells through the
`portablemc show completion {bash,zsh}` command. If you need precise explanation on how
to install the completions, read this command's help message. **This command needs to be
re-run for every new version of the launcher**, you're not affected if you directly eval
the result.

*Note that Zsh completion scripts can be used both as an auto-load script and as
evaluated one.*

## Offline support
This launcher can be used without internet access under certain conditions. Launching
versions is possible if all required resources are locally installed, it is also possible
Expand Down
2 changes: 1 addition & 1 deletion doc/API.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ This page documents the public API of the launcher. This launcher
library provides high flexibility for launching Minecraft in many
environments.

Documented version: `4.0.0`.
Documented version: `4.2`.

## Table of contents
- [File structure](#file-structure)
Expand Down
Loading
Loading