DEV Community

MrNaif2018
MrNaif2018

Posted on

Hacktoberfest 2021 - Completed as Contributor and Maintainer!

I have participated in hacktoberfest for the third time now. This time I was officially participating as a contributor and a maintainer.
Great thing is, each year I can see more contribution activity in my repositories and some PRs surprise me a lot!

As a contributor

As a contributor I opened 4 pull requests in those repos:

Opsdroid

This has already become my tradition to contribute to opsdroid each year, this is an amazing framework for creating bots for any platform.

This time I helped them migrate to aioredis 2.0 (and then used the experience I've got to do the same in my own project), and to set up proper docker images builds:
https://github.com/opsdroid/opsdroid/pull/1835
https://github.com/opsdroid/opsdroid/pull/1836

Fastkml

Fastkml is a library to read, write and manipulate KML files

Here I helped to drop python 2 support as it is EOL now, as well as to help them migrate to pygeoif 1.0 and many intermediate fixes. I learned how the python 2 -> python 3 migrations were actually done (lib2to3+pyupgrade --py36-plus+manual fixes)

https://github.com/cleder/fastkml/pull/135
https://github.com/cleder/fastkml/pull/136

There were a few more PRs, some were to my own repos, so that doesn't count.

As a maintainer

This time the contribution activity has increased. Some PRs were just of amazing quality!

Our bitcart-store repository has received the most of PRs.

MaximeKoitsalu has helped us to migrate all styles from stylus to sass (to make it themeable later):
https://github.com/bitcartcc/bitcart-store/pull/321
leovoon has helped us to reach 100% accessibility score in lighthouse, which is very important to every solid web project:
https://github.com/bitcartcc/bitcart-store/pull/326
shubham-singh-748 has added Hindi translation to bitcart-site:
https://github.com/bitcartcc/bitcart-site/pull/87
The PR of the month, Xaconi has added a nice well-animated, responsive cart sidebar to the store:
https://github.com/bitcartcc/bitcart-store/pull/325

For now I've got only 4 pull requests from contributors, but that's already amazing!

If you want to contribute, feel free to do so, any repositories in bitcartcc github organization are open:

GitHub logo bitcartcc / bitcart

https://bitcartcc.com

BitcartCC

Github All Contributors CircleCI Codecov Python versions

BitcartCC is a platform for merchants, users and developers which offers easy setup and use.

Linked repositories

Our ecosystem consists of a few packages, this is our central repository.

It is recommended to propose feature requests to BitcartCC ecosystem as a whole on that repository.

Full list of our repositories:

https://github.com/bitcartcc/bitcart - BitcartCC Core Daemons and Merchants API

https://github.com/bitcartcc/bitcart-admin - The admin panel of BitcartCC

https://github.com/bitcartcc/bitcart-store - BitcartCC ready store

https://github.com/bitcartcc/bitcart-docker - Docker packaging, base for all deployment methods

https://github.com/bitcartcc/bitcart-sdk - Python library for coins connection

https://github.com/bitcartcc/bitccl - The BitCCL scripting language for checkout flow automation

https://github.com/bitcartcc/bitcart-docs - BitcartCC documentation

https://github.com/bitcartcc/bitcart-site - BitcartCC official site

Docs

Docs are available at https://docs.bitcartcc.com or in our docs repository

Contributing

See our contributing guidelines for details.

Contributors

Thanks goes to these wonderful people (emoji key):


By the way we need your help in refactoring our code to make our tests fully independent and upgrade to fastapi 0.70.0!

Refactor the code to initialize event loop only from async functions #247

The time has come. Python 3.10 is released which means that our old ways won't work, and new event loop would be created always. Recently our tests got broken because of fastapi 0.69.0 release, which uses anyio. We had many issues with too many concurrent operations in progress because of event loop mismatch, and are using some workarounds in pytest-asyncio to make everything use same event loop: https://github.com/bitcartcc/bitcart/blob/ac129fae929d0853137d327762ef7750537627b6/tests/conftest.py#L32-L34 https://github.com/bitcartcc/bitcart/blob/ac129fae929d0853137d327762ef7750537627b6/tests/conftest.py#L38 https://github.com/bitcartcc/bitcart/blob/ac129fae929d0853137d327762ef7750537627b6/tests/conftest.py#L44

SDK might need to be refactored as well. settings.py should be refactored to a class, most initialization might be moved to other files, possibly Worker class could be introduced to initialize worker.py. Adding new scheduled tasks system could be refactored as well. redis pool and other connections need to be created on startup from async functions, not on import. Test suite workarounds should be removed and it should just work If everything works then we can probably remove asyncio.get_event_loop().run_until_complete in favour of asyncio.run

Conclusion

Hacktoberfest is not done yet, and I plan to continue doing my contributions to my own and other projects as always.
This time it was better than before because pull requests were counted only if they were accepted or merged and not just if they were opened, which reduced spam greatly.
Have a happy Hacktoberfest!

Top comments (0)