Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@


## Checklist
<!--- We appreciate your help and want to give you credit. Please take a moment to put an `x` in the boxes below as you complete them. -->
<!--- We appreciate your help and want to give you credit. Place an `x` in the boxes below as you complete them. -->
- [ ] I've added this contribution to the `changelog.md`.
- [ ] I've added my name to the `AUTHORS` file (or it's already there).
63 changes: 6 additions & 57 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,34 +19,27 @@ You'll always get credit for your work.
$ git remote add upstream git@github.com:dbcli/mycli.git
```

4. Set up a [virtual environment](http://docs.python-guide.org/en/latest/dev/virtualenvs)
4. Set up [uv](https://docs.astral.sh/uv/getting-started/installation/)
for development:

```bash
$ cd mycli
$ pip install virtualenv
$ virtualenv mycli_dev
$ uv venv
```

We've just created a virtual environment that we'll use to install all the dependencies
and tools we need to work on mycli. Whenever you want to work on mycli, you
need to activate the virtual environment:

```bash
$ source mycli_dev/bin/activate
```

When you're done working, you can deactivate the virtual environment:

```bash
$ deactivate
$ source .venv/bin/activate
```

5. Install the dependencies and development tools:

```bash
$ pip install -r requirements-dev.txt
$ pip install --editable .
$ uv pip install -r requirements-dev.txt
$ uv pip install --editable .
```

6. Create a branch for your bugfix or feature based off the `main` branch:
Expand Down Expand Up @@ -76,18 +69,10 @@ You'll always get credit for your work.
While you work on mycli, it's important to run the tests to make sure your code
hasn't broken any existing functionality. To run the tests, just type in:

```bash
$ ./setup.py test
```

Mycli supports Python 2.7 and 3.4+. You can test against multiple versions of
Python by running tox:

```bash
$ tox
```


### Test Database Credentials

The tests require a database connection to work. You can tell the tests which
Expand Down Expand Up @@ -126,42 +111,6 @@ $ readlink -f $(which ex)
```


## Coding Style

Mycli requires code submissions to adhere to
[PEP 8](https://www.python.org/dev/peps/pep-0008/).
It's easy to check the style of your code, just run:

```bash
$ ./setup.py lint
```

If you see any PEP 8 style issues, you can automatically fix them by running:

```bash
$ ./setup.py lint --fix
```

Be sure to commit and push any PEP 8 fixes.

## Releasing a new version of mycli

You have been made the maintainer of `mycli`? Congratulations! We have a release script to help you:

```sh
> python release.py --help
Usage: release.py [options]

Options:
-h, --help show this help message and exit
-c, --confirm-steps Confirm every step. If the step is not confirmed, it
will be skipped.
-d, --dry-run Print out, but not actually run any steps.
```

To release a new version of the package:

* Create and merge a PR to bump the version in the changelog ([example PR](https://github.com/dbcli/mycli/pull/1043)).
* Pull `main` and bump the version number inside `mycli/__init__.py`. Do not check in - the release script will do that.
* Make sure you have the dev requirements installed: `pip install -r requirements-dev.txt -U --upgrade-strategy only-if-needed`.
* Finally, run the release script: `python release.py`.
Create a new [release](https://github.com/dbcli/mycli/releases) in Github. This will trigger a Github action which will run all the tests, build the wheel and upload it to PyPI.
9 changes: 3 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,13 +147,10 @@ get this running in a development setup.

https://github.com/dbcli/mycli/blob/main/CONTRIBUTING.md

Please feel free to reach out to me if you need help.

My email: amjith.r@gmail.com
## Additional Install Instructions:

Twitter: [@amjithr](http://twitter.com/amjithr)

## Detailed Install Instructions:
These are some alternative ways to install mycli that are not managed by our team but provided by OS package maintainers. These packages could be slightly out of date and take time to release the latest version.

### Arch, Manjaro

Expand Down Expand Up @@ -202,7 +199,7 @@ Thanks to [PyMysql](https://github.com/PyMySQL/PyMySQL) for a pure python adapte

### Compatibility

Mycli is tested on macOS and Linux, and requires Python 3.7 or better.
Mycli is tested on macOS and Linux, and requires Python 3.9 or better.

**Mycli is not tested on Windows**, but the libraries used in this app are Windows-compatible.
This means it should work without any modifications. If you're unable to run it
Expand Down
1 change: 1 addition & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Features
Internal
--------

* New Project Lead: [Roland Walker](https://github.com/rolandwalker)
* Update sqlparse to <=0.6.0
* Typing/lint fixes.

Expand Down
5 changes: 5 additions & 0 deletions mycli/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
Project Lead:
-------------

* Roland Walker
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the most relevant bit. 🎉


Core Developers:
----------------

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "mycli"
dynamic = ["version"]
description = "CLI for MySQL Database. With auto-completion and syntax highlighting."
readme = "README.md"
requires-python = ">=3.7"
requires-python = ">=3.9"
license = { text = "BSD" }
authors = [{ name = "Mycli Core Team", email = "mycli-dev@googlegroups.com" }]
urls = { homepage = "http://mycli.net" }
Expand Down