empicano / aiomqtt

The idiomatic asyncio MQTT client
https://aiomqtt.bo3hm.com
BSD 3-Clause "New" or "Revised" License
422 stars 74 forks source link

Add CI to format, lint, test, coverage and publish #143

Closed JonathanPlasse closed 1 year ago

JonathanPlasse commented 1 year ago

This would add more reliability to the project.

frederikaalund commented 1 year ago

I agree to all of the proposed tools. 👍

Do you have a specific CI pipeline in mind? Being open source, we usually get compute hours for free.

JonathanPlasse commented 1 year ago
frederikaalund commented 1 year ago

Good choices. 👍

pre-commit.ci to format and lint

That's a new one for me. Let's try it. :)

empicano commented 1 year ago

Great idea! For code coverage, I once used CodeClimate for another project. That analyzes code quality as well. Just throwing that out there, I have no preference.

JonathanPlasse commented 1 year ago

For the tests, I was thinking of using AnyIO. It makes for cleaner tests. If we transition to using AnyIO internally, the tests would not have to be rewritten.

frederikaalund commented 1 year ago

I think that it's a good idea to use anyio. :)

By coincidence, I'm currently writing some anyio-based pytests right now for another project. 😄

frederikaalund commented 1 year ago

For your information, I'll be AFK the rest of the day.

I like the progress so far! 👍

JonathanPlasse commented 1 year ago

Reference to publish a release How to Publish a Python Package from GitHub Actions

frederikaalund commented 1 year ago

Reference to publish a release How to Publish a Python Package from GitHub Actions

Would be sweet to set this up! It's a bit cumbersome for me to do it manually via twine right now. 😄

If you guys (@JonathanPlasse and @empicano ) have a PyPI account then I can add you as maintainers there as well. That way, you can publish releases too. 👍

JonathanPlasse commented 1 year ago

My PyPI username is JonathanPlasse

empicano commented 1 year ago

Mine is empicano 😊

frederikaalund commented 1 year ago

Thanks, I added you both. :+1:

I'll try to get some time to go over the PRs later.

JonathanPlasse commented 1 year ago

@frederikaalund, can you add the PYPI_API_TOKEN in the repository secrets (c.f. link)

frederikaalund commented 1 year ago

@frederikaalund, can you add the PYPI_API_TOKEN in the repository secrets (c.f. link)

Done. :+1:

JonathanPlasse commented 1 year ago

@frederikaalund, can you remove the tag v0.14.0? The publishing did not work as my email address was not considered valid.

frederikaalund commented 1 year ago

@frederikaalund, can you remove the tag v0.14.0? The publishing did not work as my email address was not considered valid.

Done. :)

JonathanPlasse commented 1 year ago

The CI to publish is failing over some incorrect metadata. I do not have time to go over it. I would gladly hand it over to whoever wants to fix it.

frederikaalund commented 1 year ago

I'll try to get it to work this weekend. :)

frederikaalund commented 1 year ago

I just ran the "Publish" job again (without any changes on my part) and it worked flawlessly. 😄 Version 0.14.0 appeared immediately on PyPI. I guess it was just a fluke before. Maybe it took some time for you guys' PyPI credentials/API keys/secrets/etc. to work their way through the systems.

Good job @JonathanPlasse with these CI-related features. 👍 It really helps with the maintenance burden.

Off topic: We just hit 200 GitHub stars! ⭐

empicano commented 1 year ago

Off topic: We just hit 200 GitHub stars! ⭐