asyncapi / generator

Use your AsyncAPI definition to generate literally anything. Markdown documentation, Node.js code, HTML documentation, anything!
https://asyncapi.com/docs/tools/generator
Apache License 2.0
759 stars 211 forks source link

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

Closed derberg closed 4 months ago

derberg commented 6 months ago

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:

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:

lmgyuan commented 6 months ago

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 commented 6 months ago

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

lmgyuan commented 6 months ago

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 commented 6 months ago

@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 commented 5 months ago

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 commented 5 months ago

@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 commented 5 months ago

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 commented 5 months ago

@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 commented 5 months ago

@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 commented 5 months ago

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 commented 5 months ago

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 commented 5 months ago

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

GavinZhengOI commented 5 months ago

@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 commented 5 months ago

@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 commented 5 months ago

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 commented 5 months ago

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 commented 5 months ago

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 commented 5 months ago

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 commented 5 months ago

@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 commented 5 months ago

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 commented 5 months ago

@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 commented 4 months ago

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