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
767 stars 230 forks source link

Add tutorial that explains step by step how to create a simple Generator Template #943

Closed derberg closed 1 year ago

derberg commented 1 year ago

Reason/Context

So we already have https://www.asyncapi.com/docs/tools/generator/template-development that nicely explains all basic requirements for a template and possible features.

What we are missing is a tutorial that someone follows to:

This could be a foundation for further development of more tutorials that would basically add more features to this test template

Description

I'm happy to help with knowledge sharing session and initial development of the template that will serve as an example here

pratik9315 commented 1 year ago

Makes senseπŸ‘ It's about time we add a separate tutorial that a reader can follow to create and run an example template

thulieblack commented 1 year ago

This issue is part of the AsyncAPI Bounty Program, interested contributors need to follow the guidelines below to ensure fairness and timely completion of assigned tasks:

Task Assignment

The assignment of tasks will be prioritized in the following order:

We encouraged everyone to apply as long as the task is for you (falls under your skill set). We will not be using the first comment - get assigned method for assignments. Instead, we will provide 3 days to consider all individuals interested before assigning any bounty task.

Deadline

To maintain accountability and ensure the timely completion of the deadline for this task will be 6 - 8 weeks from the date of assignment. If a contributor requires an extension on their task, it should be communicated and approved by the maintainer.

Issue Tracking and Updates

Contributors must provide weekly updates on the task they are working on to help maintainers stay informed of progress. If a contributor fails to provide an update, they will be reminded via a ping. If a contributor fails to provide an update after three pings over three weeks, we will assume they have silently dropped the issue, and it will be reassigned to someone else.

Issue Drop-outs

Any contributor who drops an assigned issue will be penalized and will not be eligible to participate in the bounty program for 6 months. We understand that unforeseen circumstances can arise, and dropping an assigned issue may be unavoidable in some cases. However, we believe that enforcing this penalty is necessary to ensure the effectiveness of the bounty program, respect maintainer time, and honor the efforts of other contributors who could have solved the issue but were unable to do so due to the drop-out.

We encourage all contributors to follow these guidelines to ensure a fair and timely completion of tasks assigned through our bounty program.

Florence-Njeri commented 1 year ago

@derberg @thulieblack I'm interested in authoring the tutorial.

octonawish-akcodes commented 1 year ago

@derberg I am interested too in this

derberg commented 1 year ago

@Florence-Njeri has a priority to work on this issue as docs maintainer for generator. @octonawish-akcodes have a look on other bounty issues πŸ™

@Florence-Njeri so πŸ˜ƒ when do we start πŸ˜ƒ

octonawish-akcodes commented 1 year ago

@derberg Oops there arent any other bounty issues available

derberg commented 1 year ago

@octonawish-akcodes There are some -> https://github.com/issues?q=is%3Aopen+org%3Aasyncapi+label%3A%22bounty%22 or did you look for docs task only?

Florence-Njeri commented 1 year ago

@derberg 8th May will work well for me since I'm going on holiday next week.

derberg commented 1 year ago

@Florence-Njeri perfect, we have lots of holidays next week in Poland anyway πŸ˜ƒ Let's sync on slack for an onboarding call

derberg commented 1 year ago

just had an onboarding call with @Florence-Njeri to explain the scope and align how we work on it, especially that some technical input is needed first.

for now makes sense to keep tutorial under Tools -> Generator bucket and follow the same template as https://www.asyncapi.com/docs/tutorials/generate-code

but if during template development, we will figure it do not makes sense, we will change approach

thulieblack commented 1 year ago

Hey, @Florence-Njeri how's the task going?

derberg commented 1 year ago

for now Florence is blocked by my tech input that I work on "as we speak" πŸ˜ƒ

derberg commented 1 year ago

@Florence-Njeri ok, so when I started working on technical input, I kinda started feeling the blues, you know and while making notes, I figured I can turn it into article.

I just opened PR to my blog https://github.com/derberg/derberg.github.io/pull/62 and you can preview it here https://derberg-github-io-git-articlecodegenpython-derberg.vercel.app/blog/asyncapi-codegen-python

it is work in progress, there are some technical issues

this doesn't mean the tutorial is not needed. On the contrary, it is super needed. Article is written from a personal note, as a story, so it can only be reused by you as technical input. Of course you do not have to explain parser, generator and other stuff like I did as your tutorial is part of the docs where these things are explained and you can link.

anyway, you can already start working on tutorial. The best way to write it is when you will replicate tutorial steps on your own.

ah, and one more note, article is in progress, I did not read it as a whole, there is a bunch of grammar mistakes so please don't laugh πŸ˜„

thulieblack commented 1 year ago

This blog, ehn, took the words right out of my mouth.

image

Florence-Njeri commented 1 year ago

@thulieblack @derberg I've started working on the tutorial, hoping to put up a PR before end of the week

derberg commented 1 year ago

ok, so article is now live: https://www.brainfart.dev/blog/asyncapi-codegen-python

sample template that I developed while writing the article is here: https://github.com/derberg/python-mqtt-client-template

enjoy πŸ˜„

Florence-Njeri commented 1 year ago

Hey guys @derberg @thulieblack, I've finished writing the first draft for the tutorial. I need to do an editorial check then I'll put up a PR for this issue.

asyncapi-bot commented 1 year ago

:tada: This issue has been resolved in version 1.10.11 :tada:

The release is available on:

Your semantic-release bot :package::rocket: