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

Proposal for mentorship of potential maintainers of generator -> Becoming a Maintainer of AsyncAPI Generator #1145

Closed
derberg opened this issue Mar 19, 2024 · 22 comments
Labels
gsoc This label shoudl be used for issues or discussions related to ideas for Google Summer of Code

Comments

@derberg
Copy link
Member

derberg commented Mar 19, 2024

What is this

This is a mentorship offer published as part of Google Summer of Code.

As maintainer of this project I offer mentor support for 2 mentees maximum.

btw, if you are interested to become maintainer just outside GSoC. Like you work for some company that invests in Generator and you wanna share maintenance load - feel free to reach out.

Idea

This initiative aims to guide you on a journey from being a contributor to becoming a maintainer of the project. You'll gain insight into the responsibilities of a maintainer, involving tasks beyond mere coding.

Being a maintainer entails:

  • Defining potential enhancements as GitHub issues
  • Actively triaging incoming requests and bug fixes
  • Resolving bugs or providing guidance to others
  • Shifting focus from creating code to reviewing it at the pull request level
  • Occasionally writing documentation
  • And improvement refactors, writing tests? Still very important
  • And yes, sometimes coding new features

It's about taking responsibility for the project's future and continuous improvement. It's less about the brilliance of the code you produce.

All of the activities described above will be part of the mentorship journey.

Why it is interesting project?

Is this project beneficial for your future? Well, for landing a job, you'll naturally face technical interviews, but that's the easy part, and open-source contributions aren't necessary for that. There are numerous platforms available to learn fancy algorithms and such. To secure a job, you need experience. Completing a single project or contributing code for one feature isn't substantial experience. However, becoming a maintainer—now, that's something you can proudly showcase in an interview.

I can't guarantee that completing this mentorship will immediately qualify you to become a project maintainer. Your performance, attitude, and motivation will determine that. However, I can promise to support you throughout the journey and provide honest feedback on your strengths and areas needing improvement. Even if you're not yet ready to become a maintainer, I'll outline a plan for your next steps towards achieving that goal.

Requirements

Interested? Your proposal should demonstrate:

@derberg derberg added the gsoc This label shoudl be used for issues or discussions related to ideas for Google Summer of Code label Mar 19, 2024
@lmgyuan
Copy link
Collaborator

lmgyuan commented Mar 19, 2024

Hi @derberg! This is a wonderful project for me! I have done a full-stack project in javascript using React.js and Node.js, so I believe I have the required skills and knowledge. For the proposal tho, should we talk about summer project timeline and details so I can submit a thorough and great proposal through the GSoC application system? Or would the shared Google Docs suffice? Thanks in advance and I look forward to hearing from you!

@lmgyuan
Copy link
Collaborator

lmgyuan commented Mar 19, 2024

Also, although I have written an introduction in a different issue, if needed I could write one here again! Just let me know!

@lmgyuan
Copy link
Collaborator

lmgyuan commented Mar 19, 2024

I encountered these errors when I was testing the client:

(python-mqtt-client-template) yuanyuan@Yuans-MacBook-Pro-2 project % python test.py
Exception ignored in: <function Client.del at 0x10404a480>
Traceback (most recent call last):
File "/Users/yuanyuan/anaconda3/envs/python-mqtt-client-template/lib/python3.11/site-packages/paho/mqtt/client.py", line 874, in del
self._reset_sockets()
File "/Users/yuanyuan/anaconda3/envs/python-mqtt-client-template/lib/python3.11/site-packages/paho/mqtt/client.py", line 1133, in _reset_sockets
self._sock_close()
File "/Users/yuanyuan/anaconda3/envs/python-mqtt-client-template/lib/python3.11/site-packages/paho/mqtt/client.py", line 1119, in _sock_close
if not self._sock:
^^^^^^^^^^
AttributeError: 'Client' object has no attribute '_sock'
Traceback (most recent call last):
File "/Users/yuanyuan/workspace/python-mqtt-client-template/test/project/test.py", line 5, in
client = TemperatureServiceClient()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yuanyuan/workspace/python-mqtt-client-template/test/project/client.py", line 9, in init
self.client = mqtt.Client()
^^^^^^^^^^^^^
TypeError: Client.init() missing 1 required positional argument: 'callback_api_version'

May I ask what the 'callback_api_version' might be? I don't find it in the tutorial...

@derberg
Copy link
Member Author

derberg commented Mar 20, 2024

@lmgyuan

hey there, nice to see ya here

For the proposal tho, should we talk about summer project timeline and details so I can submit a thorough and great proposal through the GSoC application system? Or would the shared Google Docs suffice? Thanks in advance and I look forward to hearing from you!

I'm not sure on GSoC "logistics", better consult with people that run GSoC here at AsyncAPI, there will be some knowledge sharing sessions and I bet they can answer your question, just mentorship channel in our slack

May I ask what the 'callback_api_version' might be? I don't find it in the tutorial..

yeah, good question, I think in my tutorial I did not tackle topic of requirements.txt and did not specify Paho version and afaik they released some new versions - and maybe this is causing errors. I think Paho reached 2.0.0 but for tutorial I used 1.6.1 - please try to use this version and lemme know if that helps

@GavinZhengOI
Copy link
Contributor

GavinZhengOI commented Mar 21, 2024

Hi @derberg ! I'm also interested in doing this project for GSoC 2024!

I'm Gavin from New York University, majoring in Computer Science. I can code in multiple languages including JavaScript, and I'm also the team leader of our university's competitive programming team. Besides these, I'm also an active open source contributor. I'm the contributor/reviewer of OI-Wiki, an 18K stars project ( English version here ). This is the reason why I believe I'm fully capable for this opportunity.

@GavinZhengOI
Copy link
Contributor

GavinZhengOI commented Mar 21, 2024

@lmgyuan

hey there, nice to see ya here

For the proposal tho, should we talk about summer project timeline and details so I can submit a thorough and great proposal through the GSoC application system? Or would the shared Google Docs suffice? Thanks in advance and I look forward to hearing from you!

I'm not sure on GSoC "logistics", better consult with people that run GSoC here at AsyncAPI, there will be some knowledge sharing sessions and I bet they can answer your question, just mentorship channel in our slack

May I ask what the 'callback_api_version' might be? I don't find it in the tutorial..

yeah, good question, I think in my tutorial I did not tackle topic of requirements.txt and did not specify Paho version and afaik they released some new versions - and maybe this is causing errors. I think Paho reached 2.0.0 but for tutorial I used 1.6.1 - please try to use this version and lemme know if that helps

I also got the same error. And problem solved after I switched to Paho 1.6.1.

CleanShot 2024-03-21 at 00 41 20@2x

@GavinZhengOI
Copy link
Contributor

By the way, when going through the tutorial, I noticed one double quote is missing in the inline code block:
CleanShot 2024-03-21 at 01 27 16@2x

@derberg
Copy link
Member Author

derberg commented Mar 21, 2024

@GavinZhengOI welcome! please can you open a PR with fix of the quotes and suggestion to clarify what version of Paho has to be exactly installed by the reader?

@GavinZhengOI
Copy link
Contributor

@GavinZhengOI welcome! please can you open a PR with fix of the quotes and suggestion to clarify what version of Paho has to be exactly installed by the reader?

Hi @derberg , I submitted an PR solving thses issues. By the way, I finished my proposal and shared it with you in Google Docs. Could you please take a look and provide some suggestion? You advice is valuable for me! Thanks!

@assu-2000
Copy link

assu-2000 commented Mar 24, 2024

hi @derberg , @GavinZhengOI, @lmgyuan . sorry for the delay in joining . in the outcome, this project seems so beneficial . i am Assurance, from the University of Kinshasa, gdsc lead ans MLSA-alpha. but i am fresh man in open source projects. wanna contribute and learn from all of you . actually catching up on my proposal .
@GavinZhengOI with your experience, should now consider being a mentor 😁, maybe next year, right ?
Best !

@GavinZhengOI
Copy link
Contributor

hi @derberg , @GavinZhengOI, @lmgyuan . sorry for the delay in joining . in the outcome, this project seems so beneficial . i am Assurance, from the University of Kinshasa, gdsc lead ans MLSA-alpha. but i am fresh man in open source projects. wanna contribute and learn from all of you . actually catching up on my proposal . @GavinZhengOI with your experience, should now consider being a mentor 😁, maybe next year, right ? Best !

Haha my previous work is just a wiki project. The only things to do is to work with documents. That's far from actual software development.

@lmgyuan
Copy link
Collaborator

lmgyuan commented Mar 26, 2024

@GavinZhengOI Hey Gavin! may I ask if you have timeout issues when connecting to the test.mosquitto.org? Any info will help!

@GavinZhengOI
Copy link
Contributor

GavinZhengOI commented Mar 26, 2024

@GavinZhengOI Hey Gavin! may I ask if you have timeout issues when connecting to the test.mosquitto.org? Any info will help!

I can connect to the test server from U.S. without any issue. I'm not sure where you are located, but you can try to use proxy to deal with the protential firewall issue. Or you can just try to ping the server first. Let me know if that works.

@lmgyuan
Copy link
Collaborator

lmgyuan commented Mar 26, 2024

@GavinZhengOI Hey Gavin! may I ask if you have timeout issues when connecting to the test.mosquitto.org? Any info will help!

I can connect to the test server from U.S. without any issue. I'm not sure where you are located, but you can try to use proxy to deal with the protential firewall issue. Or you can just try to ping the server first. Let me know if that works.

Thanks! I am also in the U.S. but running the test.py gives me timeout error. May I ask if you could share your version of the client.py? Or of you could let me know whether you have the following as your codes for client.py in /test/project?

# 1
import paho.mqtt.client as mqtt
# 2
mqttBroker = "test.mosquitto.org"

class TemperatureServiceClient:
    def __init__(self):
      # 3 
        self.client = mqtt.Client()
      # 4
        self.client.connect(mqttBroker)


    def sendTemperatureChange(self, id):
      # 5
        topic = "temperature/changed"
      # 6 
        self.client.publish(topic, id)

and my test.py is:

from client import TemperatureServiceClient
from random import randrange
import time

client = TemperatureServiceClient()

id_length = 8
min_value = 10**(id_length-1)  # Minimum value with 8 digits (e.g., 10000000)
max_value = 10**id_length - 1  # Maximum value with 8 digits (e.g., 99999999)

while True:
    randomId = randrange(min_value, max_value + 1)
    client.sendTemperatureChange(randomId)
    print("New temperature detected " + str(randomId) + " sent to temperature/changed")
    time.sleep(1)

I fill the client.py with the codes in the tutorial. I suspect that the codes for client.py in the tutorial might have issues which cause the connection timeout. Thanks in advance if you could provide that info!

EDIT:
Fixed! @GavinZhengOI you are right! My school has a firewall that prevents me from connecting test.mosquitto.org lolll. Kinda hard to believe a US uni would do this.

@lmgyuan
Copy link
Collaborator

lmgyuan commented Mar 27, 2024

I have also just finished the template tutorial! here is a link to my repository: https://github.com/lmgyuan/python-mqtt-client-template/tree/main

@lmgyuan

hey there, nice to see ya here

For the proposal tho, should we talk about summer project timeline and details so I can submit a thorough and great proposal through the GSoC application system? Or would the shared Google Docs suffice? Thanks in advance and I look forward to hearing from you!

I'm not sure on GSoC "logistics", better consult with people that run GSoC here at AsyncAPI, there will be some knowledge sharing sessions and I bet they can answer your question, just mentorship channel in our slack

May I ask what the 'callback_api_version' might be? I don't find it in the tutorial..

yeah, good question, I think in my tutorial I did not tackle topic of requirements.txt and did not specify Paho version and afaik they released some new versions - and maybe this is causing errors. I think Paho reached 2.0.0 but for tutorial I used 1.6.1 - please try to use this version and lemme know if that helps

@derberg
Also, since you mentioned that you have not specified the package version for paho-mqtt in the tutorial, could I go ahead and change it to the right version so future users of the tutorial would not have the same issue? Thanks in advance for considering this!

@lmgyuan
Copy link
Collaborator

lmgyuan commented Mar 27, 2024

Hi @derberg, I just shared with you the required information and a proposal in a google doc! If you could take a look and share with me your thoughts, that would be highly appreciated! I look forward to your comments and speaking with you!

@derberg
Copy link
Member Author

derberg commented Mar 27, 2024

Also, since you mentioned that you have not specified the package version for paho-mqtt in the tutorial, could I go ahead and change it to the right version so future users of the tutorial would not have the same issue? Thanks in advance for considering this!

@lmgyuan this was already improved by @GavinZhengOI

@derberg
Copy link
Member Author

derberg commented Mar 27, 2024

Hey folks, kind reminder now as easter is approaching now and I take few days off.

Remember that proposals that count and are taken into account should end up being created by you under https://summerofcode.withgoogle.com/

If possible, please submit them both on AsyncAPI and Postman organizations (thanks to Postman, we have some slots through Postman organization, and yeah, we do not know which organization will get how many slots - so @AceTheCreator recommends that proposals are created under both).

@lmgyuan
Copy link
Collaborator

lmgyuan commented Mar 27, 2024

@derberg thanks for the reminder! I am really interested in this project so I will definitely submit my proposal through the GSoC. May I ask whether we should include the suggestions and links to repositories in the proposal through GSoC? Or just the proposal?

It would also be great if you could let us know when you will start taking days off :) so I can plan accordingly!

@assu-2000
Copy link

Hey folks, kind reminder now as easter is approaching now and I take few days off.

Remember that proposals that count and are taken into account should end up being created by you under https://summerofcode.withgoogle.com/

If possible, please submit them both on AsyncAPI and Postman organizations (thanks to Postman, we have some slots through Postman organization, and yeah, we do not know which organization will get how many slots - so @AceTheCreator recommends that proposals are created under both).

Got it, thank you for the reminder !

@lmgyuan
Copy link
Collaborator

lmgyuan commented Mar 28, 2024

@derberg I submitted a PR to improve the documentation's language for better understanding. Would it be possible for you to take a look? Also, I edited the proposal google doc shared with you, so if you have any further comments on that, it would be greatly appreciated as well!

@derberg
Copy link
Member Author

derberg commented May 8, 2024

Congrats to @lmgyuan and @utnim2 for being selected as mentees for this GSoC topic

I will close this issue and from my perspective it is completed as a proposal. Next work will be in other issues, PR or in discussions in Slack.

as maintainers I will be the mentor for that topic

fyi other maintainers: @jonaslagoni @magicmatatjahu @Florence-Njeri

@derberg derberg closed this as completed May 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gsoc This label shoudl be used for issues or discussions related to ideas for Google Summer of Code
Projects
None yet
Development

No branches or pull requests

4 participants