68 Commits

Author SHA1 Message Date
jack1142
94784f366f
Dev bump (3.4.1.dev1) (#4197) 2020-08-18 02:10:46 +02:00
Kowlin
bc04937a6a
Actually change the version before release! (#4195) 2020-08-18 01:13:01 +02:00
jack1142
05ef5fa3a6
Preparations for d.py 1.4 (includes breaking changes related to mass mentions) (#3845)
Co-authored-by: PredaaA <46051820+PredaaA@users.noreply.github.com>
2020-08-10 20:19:00 +01:00
jack1142
bb1a256295
Update __init__.py (#4153) 2020-08-03 14:07:04 +01:00
Kowlin
a59ff57c27
Dev bump for 3.3.11 (#4056) 2020-07-09 08:55:40 +02:00
Kowlin
0cd3bede0d
3.3.10 release bump. (#4054) 2020-07-09 08:45:17 +02:00
jack1142
e59d52bae4
Dev bump (#3960) 2020-06-12 01:50:37 +02:00
jack1142
fa00314b77
Bump to 3.3.9 (#3959) 2020-06-12 01:24:06 +02:00
Kowlin
3702e2e998
Bump to 3.3.9.dev1 (#3875)
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-05-29 01:27:40 +02:00
Kowlin
30c1adfe5b
Bump to 3.3.8 (#3874) 2020-05-29 01:11:02 +02:00
jack1142
f280eea788
Dev bump (#3804) 2020-04-28 03:15:06 +02:00
Kowlin
af7b0e4e1f
Update to 3.3.7 (#3803) 2020-04-28 02:07:39 +02:00
Kowlin
ca1f39a260
Update __init__.py (#3799) 2020-04-27 20:21:25 +02:00
Kowlin
b92d61e154
Update version to 3.3.6 (#3798) 2020-04-27 20:06:42 +02:00
jack1142
cf4fdbbab1
dev bump (#3736) 2020-04-09 00:39:48 +02:00
Kowlin
e06b3fceb5
Version bump (#3735) 2020-04-09 00:26:43 +02:00
Kowlin
3d9ee3f2b4
Dev version bump, for realzies (#3726)
* Damn tests that keep breaking if you forget a single damn number!

Who designed this shit?!

* Update __init__.py
2020-04-05 04:10:32 +02:00
Kowlin
b9331ffa55
Update __init__.py (#3725) 2020-04-05 04:05:53 +02:00
Kowlin
9d7047864e
Version bump (#3724) 2020-04-05 03:57:50 +02:00
jack1142
ff68538085
Bump version to 3.3.4.dev1 (#3705) 2020-03-29 00:02:01 +01:00
Kowlin
7c251b8017
Bump version to 3.3.3 (#3703)
* Bump version to 3.3.3

* Update manager.py
2020-03-28 23:51:09 +01:00
jack1142
a738736d6b
Update __init__.py (#3700) 2020-03-28 19:30:16 +01:00
jack1142
e0de25ed65
dev bump (#3624) 2020-02-28 22:23:59 +01:00
Kowlin
03a2c11225
Bump the version to 3.3.2 (#3622) 2020-02-28 22:15:07 +01:00
Stonedestroyer
ad4a75bdc1
Deprecation warning - alternative (#3615)
* Alternative solution

* BLACK

* Args

* Changes

* style

* Ordering

* Debug shows warnings

* style
2020-02-28 02:22:50 +01:00
DiscordLiz
42a4d10ea5
Update websockets & Show DeprecationWarnings from all modules (#3527)
related : #3526
2020-02-08 07:45:45 -05:00
Michael H
0adc960c60
dev bump (#3512) 2020-02-05 17:32:05 -05:00
Michael H
c426aefd1a
Version 3.3.1 (#3510)
* 331

* okay sphinx
2020-02-05 23:21:38 +01:00
Michael H
7420df9598
let's fix this for dev testers (#3458) 2020-01-27 03:35:16 -05:00
Michael H
00bcd480e7
dev bump (#3455) 2020-01-26 20:39:38 -05:00
Michael H
0d3c72f356
changelog and bump (#3454) 2020-01-26 20:18:25 -05:00
Michael H
826dae129e
dev bump (#3406) 2020-01-17 20:23:16 -05:00
Michael H
33ea3a1419
version bump w/changelog (#3403) 2020-01-17 19:47:22 -05:00
Redjumpman
d6d14617d2 Update __init__.py (#3381)
Removed redundant check.
2020-01-16 13:18:20 -05:00
Michael H
b0b76c5a00
*exasperated sighs* (#3326) 2020-01-10 06:46:18 -05:00
Michael H
deab24e916
3.2.2 (#3324)
* page sizing changes

* docs
2020-01-10 06:43:35 -05:00
Michael H
2bb9b87db9
dev bump (#3322) 2020-01-10 00:14:06 -05:00
Michael H
5bd044d646
3.2.1 Hotfix (#3321) 2020-01-10 00:10:59 -05:00
Michael H
7352f76b87
mark dev (#3315) 2020-01-09 22:36:45 -05:00
Michael H
ad505b2b2f Version 3.2.0 (#3314)
* Thanks Caleb!

* version bump
2020-01-09 18:24:04 -09:00
Michael H
25999cea10
Docs fix (2) (#3265)
* Fix docs building

* And 1
2020-01-03 21:48:28 -05:00
Michael H
a80e20067c
do better with loop cleanup (#3245)
* do better with loop cleanup

* changelog

* remove redundant line

* Do this a bit better than the initial pass

* Improve windows support

Make some other things coroutines to work with improved design

* Wish we'd have done this right from the start...

* Update deps surrounding this

 - see bpo-23057
 - neccessary for windows users
 - nice for consistent support channel info / feature availability

* dep issue

* Fix tests

* duplication plugin py version

* actually handle this

* Reconfigure some checks with codeclimate, disable pylint for now

* style

* Is my exasperation showing yet?

* handle some stupid stuff

* meh

* dep changelog
2020-01-01 19:26:32 -05:00
Michael H
ddfabb0c0e
Changes from 3.1.8 (#3139) 2019-11-18 23:45:32 -05:00
jack1142
e2c8b11008 [V3 Downloader] Revision tracking (#2571)
* feat(downloader): Install cog from specific commit in repo (initial commit)

- Repo and Installable have commit property now
- New class inheriting from Installable -
InstalledCog (old one from converters.py removed)
- New Repo.checkout() method, which is also async ctx manager
ref #2527

* fix(downloader): Keep information about repo's branch in config

- This is needed to make sure that repo can go back from detached state in some rare unexpected
cases
- current branch is determined by `git symbolic-ref` now as this command errors for detached
HEAD

* feat(downloader): Update repo without cogs, update single cog

The most important part of issue #2527 has been added here
- `[p]repo update` command added
- new conf format - nested dictionary repo_name->cog_name->cog_json
  installed libraries are now kept in conf too
  - `InstalledCog` renamed to `InstalledModule` - installed libraries use this class
  - `Downloader.installed_libraries()` and `Downloader.installed_modules()` added
  - `Downloader._add_to_installed()` and `Downloader._remove_from_installed()`
    now accept list of modules, of both cogs and libraries
- `[p]cog install` tells about fails of copying cog and installing shared libraries
- `[p]cog update` will truly update only chosen cogs (if provided) or cogs that need update
  - pinned cogs aren't checked
  - before update, repos are updated
  - to determine if update is needed `Repo.get_modified_modules()` is used
- `[p]cog pin` and `[p]cog unpin` commands for pinning/unpinning cogs added
- `Repo.checkout()` allows to choose ctx manager exit's checkout revision
- `Repo.install_cog()` returns `InstalledModule` now and raises CopyingError (maybe breaking?)
- `Repo.install_libraries()` returns 2-tuple of installed and failed libraries (maybe breaking?)
- `RepoManager.get_all_cogs()` added, which returns cogs from all repos
- `RepoManager.repos` property added, which contains tuple of `Repo`

* test(downloader): Repo.current_branch() throws an exception, when branch can't be determined

* style(downloader): rename _add_to_installed to _save_to_installed

This method is used for both adding and updating existing modules in Config

* refactor(downloader): add ctx.typing() for few commands

`[p]cog install` is nested hell, can't wait for moving install logic to separate method

* fix(downloader): refactor and fix `set` usage

* perf(downloader): update commits for ALL checked modules to omit diffs next time

This will also disable running git diff for cogs that have the same commit as the latest one

* style(downloader): few style improvements

- use of mutable object in method definition
- make Repo._get_full_sha1() public method
- too long
line
- don't use len to check if sequence is empty

* feat(downloader): add `[p]cog updateallfromrepos` and `[p]cog updatetoversion` commands

- moved cog update logic into `Downloader._cog_update_logic()` (lack of better name)
  - splitted
whole cog update process into smaller methods
  - might still need some improvements
- added new
methods to `Repo` class:
  - `is_on_branch()` to check if repo is currently checked out to branch

- `is_ancestor()` to check if one commit is ancestor of the other
- fix for
`Downloader._available_updates()` behaviour
broken by commit
5755ab08ba67556b3863e907c6f44d80f4f13d88

* feat(downloader): try to find last commit where module is still present

Enhancements:
- `Installable` now has `repo` attribute containing repo object or `None` if repo is
missing
- `Downloader._install_cogs()` and `Downloader._reinstall_libraries()` are able to install
modules from different commits of repo
- `Repo.checkout()` as ctx manager will now exit to commit
which was active before checking out
- unification of `rev` and `hash` terms:
All function
parameters are explicitly called `hash`, if it can only be commit's full sha1 hash or `rev` if it
can be anything that names a commit object, see
[link](https://git-scm.com/docs/git-rev-parse#_specifying_revisions)
- new
`Repo.get_last_module_occurence()` method, which gets module's Installable from last commit in which
it still occurs

* docs(downloader): Add basic description for `InstalledModule`

* fix(downloader): cog ignored during updates if its commit was missing

After config format update, commit string is empty until update and when such cog was checked and it
wasn't available in repo anymore, it was ignored

* refactor(downloader): Installing cogs from specific rev will pin them

* perf(downloader): Don't checkout when current commit equals target hash

- changes to `Repo.checkout()`:
  - `exit_to_rev` is now keyword only argument
  - added
`force_checkout` to force checkout even if `Repo.commit` value is the same as target hash

* refactor(downloader): Repo._run() stderr is redirected to debug log now

- added two keyword arguments:
  - `valid_exit_codes` which specifies valid exit codes, used to
determine if stderr should be sent as debug or error level in logging
  - `debug_only` which
specifies if stderr can be sent only as debug level in logging

* style(downloader): stop using `set` as arg name in `_load_repos()`

* feat(downloader): pass multiple cogs to `[p]cog (un)pin`

* refactor(downloader): accept module name instead of instance, fix spelling

* style(downloader): few small style changes

* fix(downloader): add type annotations + fixes based on them

- fix wrong type annotations and add a lot of new ones
- add checks for `Installable.repo` being `None`
- fix wrong return type in `Downloader._install_requirements`
- show repo names correctly when updating all repos
- fix error when some requirement fails to install

BREAKING CHANGE:
- type of `Repo.available_modules` is now consistent (always `tuple`)

* tests: use same event loop policy as in Red's code

* enhance(downloader): fully handle ambiguous revisions

* build(deps): add pytest-mock dependency to tests extra

* fix(downloader): minor fixes

* feat(downloader): add tool for editing Downloader's test repo

This script aims to help update the human-readable version of repo
used for git integration tests in ``redbot/tests/downloader_testrepo.export``
by exporting/importing it in/from provided directory.

Note
----
Editing `downloader_git_test_repo.export` file manually is strongly discouraged,
especially editing any part of commit directives as that causes a change in the commit's hash.
Another problem devs could encounter when trying to manually edit that file
are editors that will use CRLF instead of LF for new line character(s) and therefore break it.

I also used `.gitattributes` to prevent autocrlf from breaking testrepo.

Also, if Git ever changes currently used SHA-1 to SHA-256 we will have to
update old hashes with new ones. But it's a small drawback,
when we can have human-readable version of repo.

Known limitations
-----------------
``git fast-export`` exports commits without GPG signs so this script disables it in repo's config.
This also means devs shouldn't use ``--gpg-sign`` flag in ``git commit`` within the test repo.

* tests(downloader): add git tests and test repo for them

Also added Markdown file that is even more clear than export file
on what the test repo contains.
This is manually created but can be automated on later date.

* test(downloader): add more tests related to RepoManager

These tests use expected output that is already guaranteed by git tests.

* chore(CODEOWNERS): add jack1142 to Downloader's folders

I know this doesn't actually give any benefit to people that don't have
write permission to the repo but I saw other big fella devs doing this,
so I think this might be advisable.

* enhance(downloader): allow easy schema updates in future

* enhance(downloader): more typing fixes, add comments for clarity

* feat(downloader): add python and bot version check to update process

follow-up on #2605, this commit fully fixes #1866

* chore(changelog): add towncrier entries

* fix(downloader): use `*args` instead of `commands.Greedy`

* fix(downloader): hot-reload issue - `InstallableType` now inherits from `IntEnum`

There's desync of `InstallableType` class types due to hot-reload
and `IntEnum` allows for equality check between different types

* enhance(downloader): ensure there's no cog with same name installed

should fix #2927

* fix(downloader): last few changes before marking as ready for review
2019-11-07 20:36:16 -05:00
Michael H
b8cbaa2fa0
Merge 3.1.7 (#3098)
* uvloop + python3.8

* Lavalink bump to 3.2.1_846

* [Release] 3.1.7

- Handles a dependency issue for python3.8
- Updates the Lavalink jar used
  - This include's Nin's stat fix
  - Streaming from Soundcloud is working again, at least for now.

* 3.1.7
2019-11-05 08:13:32 -05:00
Michael H
3723b4b1ea
Merge 3.1.6 (#3069)
* Version Bump

 - d.py 1.2.3 -> 1.2.4
 - Red 3.1.5 -> 3.1.6

This fixes a critical issue with voice connections.

* Merge changelog
2019-10-18 17:54:27 -04:00
Toby Harradine
6c9c57c14d Bump version to 3.1.5
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
2019-07-31 09:23:18 +10:00
Toby Harradine
f0f274e1e1 Bump version to 3.1.4
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
2019-07-16 11:26:25 +10:00
Michael H
3b0567d261
bump (#2864) 2019-07-14 00:17:44 -04:00
Flame442
652d9fe950 Update version number to 3.1.2 🎉 (#2751) 2019-05-31 17:58:04 -04:00