-
-
Notifications
You must be signed in to change notification settings - Fork 898
Create a dashboard on the website #385
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
Comments
@KhudaDad414 That's a very lovely idea you've got there. IMHO I think this would make it really easy for new contributors to have a quick overview of what repo they can start contributing to, also based on the issue label. |
It is also very important to have information on the difficulty level. Last year I interviewed every single person that contributed to the project through Hacktoberfest and they said that the best stuff was our single list like this where they could not only see what language is involved but also difficulty level.
why do we need a subdomain, why not just asyncapi.com/community ?
yup, definitely, GH Actions workflow in every repo that reacts on label added event
I suggest we don't do it, dashboard will not be visited by 100s of people every day and doesn't have to be refreshed with current state "real-time". Netlify is free but not unlimited, we should always carefully care about the build minutes limits. Better have a cron-job that runs website rebuilt one a day or once a week. Definitely something to consider 🤔
I think it is all that you mentioned, we just need to agree on an algorithm. Like if the issue has more than 3 reactions added in a day or more than 3 comments added in a day - or something like that. Then, when you save such a "hot" issue/PR, you save information about amount of reactions and comments, and we use these to sort and pick the hotest. |
@AceTheCreator It was @fmvilas idea, but still, thank you. 😄 |
Yeah, I think we can have it on the website. No "need" for a separate domain.
That would be sufficient for now, yeah. Maybe once a day and we can increase it if we think we need it. @KhudaDad414 if we end up doing it with this approach, you would not need to store information anywhere. Just a few API calls during the deployment to grab all the |
this is a great idea. IMO we should introduce extra tags for good-first issues like Lukasz said. e.g. language that is involved and the difficulty level. |
I'm always less optimistic here. Highly recommend doing a test from https://docs.github.com/en/graphql/overview/explorer with rate limit check to check a cost of such a call. We are doing a lot of calls to API already on PRs, and different workflows, like checking stale issues or other stuff. I recommend this presentation from Rea where she shares a hidden costs of API calls on GraphQL. Just saying that eventually your initial idea to react on event and aggregate data is really the best one imho
just suggest labels names and colors. We definitely need prefixes for them. So maybe |
@derberg @fmvilas Good First Issuesto query all of the good first issues along with their labels it will cost 12 points which is not a lot so we can query them at deploy time. Hot IssuesSince we have to query all of the comments and reactions as well for all issues and PRs, it is simply not possible to query at deploy time. I don't have an exact amount since we have to go FIVE levels deep which would require pagination in multiple levels. but it is definitely in thousands. unless someone comes up with a clever approach, we should go with a data collection approach for this one. |
so I guess that to not overcomplicate, we should just do data collection for both really, right? |
Update:The data collection part is done (maybe). you can play around with it here and see the collected data Here and Here. An small issue with hot Issues/PRs:Something that I haven't anticipated is that we can't trigger GitHub Actions by reactions to comments and issues. we are considering each reaction as a point but recalculation of scores is relying on comments being added. ( we can add other actions to trigger the recalculation of scores like, ready for review, labelling etc.) API call costsevery action costs 2 but recalculation of scores for each issue/PR costs 3. |
I see this but no labels here that would indicate code or complexity. I guess I need to look somewhere else, right? or was it manually added? Nevertheless, it looks neat! For sure we need to clearly document what is the calculation algorithm behind Hot Issues and PRs
Actually, I think it better if the calculation would not react to the event but on a cron schedule. Like once a day, we do not need real-time data "refreshment" there I think |
I added them manually in this repo.
Well, IMO we can use the Hacker News algorithm (It's simple and sweet 🍬 ).
Since we have around 600 issues and PRs open right now, it would cost around 1800 points to refresh the scores at the same hour... which is a lot. I am experimenting with Github search API and I think I can come up with a custom solution to pull everything from Github with less than 200 points. If that was successful, then we can ditch all of the complications and pull everything once a day. |
I'm not sure we should take age into account, HackerNews has a different scope, age plays an important role there, but here, where things are always super slow in open source, I think age should probably be ignored. Maybe we need a label that we can set on issue or PR to ignore it for HOT calculation? not sure |
@derberg I see your point there. But if we take out the age factor then "hot" has no meaning here. maybe we can call them "All-time popular open Issues/PR" or something like that. The idea behind hot issues/PRs is that we should be able to see where the community is focused right now or what is "hot" in the whole community. Hacker News posts age every hour, issues can age every day, every week, or maybe every month. we can find a sweet spot. Why not have both though 🤔 ? |
you have a valid point mate. Maybe let us have a look at some examples, and the best is asyncapi/spec#618
|
This is a great idea @derberg, and forgive me if I missed it while reading through all your comments above, but is there a way for us to rate an issue within github? I'm actually wondering if we can label the issues with a prefix of some sort and then pull that in as a filter somehow. Unless there already is an option for this in GH and I am just not aware of it! |
In addition, @KhudaDad414 reached out to me to put together a design for this. I initially put together a low-fidelity wireframe so we can work out the functionality together without any aesthetic distractions. Here is a baseline wireframe, and if we see more opportunities to add options/filters I am open to suggestions! And depending if it is possible, would love to work in the "difficulty" attribute for the tasks: |
@mcturco Loved the design. ❤️ just a few things that I think needs addressing.
|
@KhudaDad414 thank you for the feedback! Read my responses below:
Okay! I am wondering if we can then use those tags and string replace the
I think the Good first issues can have its own set of filters, maybe as a fly out window instead of how I currently have it on top of all 3 columns. These filters would only have
I wonder if we should keep it simple and call it Now that I know there are issues and PRs that will be listed on this dashboard, I think I am going to use the issue and PR icons for each item to label them accordingly. I wonder if we can add a baseline filter to each column to filter between Issues and PRs, just a thought. Going to take this feedback and make another iteration of the wireframe!! :) |
Some more thoughts...
|
Agreed. since it is not real-time then the
Yes, only issues.
Yes, exactly. I think we can include the
Definitely, I am currently doing this on the draft.
I think both works.
Lukasz answered this question here. If I add to that I would say we need to choose words that imply the intent of complexity, not hardship. We can also take inspiration from https://codetribute.mozilla.org/ . I like the |
maybe we should just have |
@derberg that is a great idea! Do you think a scale of 1-5 is too complex (no pun intended) or should we go with 1-3? That way we can associate the numbers with |
@mcturco yup, I agree |
@KhudaDad414 @derberg Okay so taking into account the discussions we had about the dashboard and how we need it to function, I am proposing this layout/functionality that you can see in this low-fidelity prototype: https://www.figma.com/proto/WKOxyb4VQ9D1QcRd7y7OfU/Wireframes?page-id=1%3A17&node-id=43%3A165&viewport=241%2C48%2C0.4&scaling=min-zoom&starting-point-node-id=43%3A165&show-proto-sidebar=1 (Please note that this is not the design including UI, that step will come after we finalize the UX) Intro Section Hot Topics Good First Issues I think it might be cool to add some more "columns" with different sorting, such as "Stale Issues" or something where we can list out issues that have been sitting for a while and need attention. Curious to know what everyone thinks would be useful to them in this tool. |
Two things occurred to me after first looking at the prototype and then reading your description.
I really like the layout and presentation of the boxes. I know it's not possible, but I would love to see it stay in grayscale. heh |
Thank you for your feedback, @doc-jones !
I think I was trying to figure out how the "algorithm" for that column would be. I agree that it should be the most popular, but I guess I was trying to think of how we can make sure that issues don't go stale. Maybe it could be sorted by amount of actions (comments, mentions, etc)? Just wondering how that would actually look when in the application. Something that we can definitely discuss and resolve as a group!
So the idea of the |
@mcturco I'm not advocating for one approach or the other when considering what should be displayed under When I saw the list separated by tag, I thought, Hey! that's really useful. I would love to be able generate a list with other labels. If you say, it should only be for new people then okay, but I still like the idea of generating a list for each label as a non first time open source contributor. :-) |
@mcturco @doc-jones For |
could you share what would be the added value for you? risk to consider - we do not enforce "fixed" labels structure. We only add some that we consider useful for entire org, like |
@mcturco what do you think we move forward to the next step on this issue? After receiving the design I can open a PR then we can refine things there maybe? |
This issue has been automatically marked as stale because it has not had recent activity 😴 It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation. There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model. Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here. Thank you for your patience ❤️ |
Reason/Context
AsyncAPI Initiative has 55 repositories as of writing this issue. It is hard to have a clear picture of what is going on in the initiative and where. the Shape Up was a great attempt to create a clear picture of what is currently happening and what should happen which unfortunately only went on for three cycles. I think a dashboard on the website would be an amazing tool to have.
Why do we need a dashboard?
Well, A dashboard would help new contributors to select and start working on a
good-first-issue
and will help maintainers to have a clear picture of what is going on in the Initiative.What are the main features of the dashboard?
We can add more and more features in the future but now we can go with two.
Good First Issues
that can be filtered by the repo, type and language maybe?Description
what should be the location of the dashboard on the website?
It can be separate from the website somewhere like dashboard.asyncapi.com or similar.
How is it going to be implemented?
this feature can be implemented in three steps.
Scenario 1
a) add the issue to the projects (beta) list of the
Good First Issues
.b) trigger a deployment of the website with the latest updates.
Scenario 2
a) update the "hotness" of that issue on the projects (beta).
(I am not sure how we could calculate it though. maybe comments+reactions/unit-of-time?)
b) trigger a deployment that queries the top hot issues from projects (beta) and updates the website.
The text was updated successfully, but these errors were encountered: