-
Notifications
You must be signed in to change notification settings - Fork 19
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
[Issue 314] 30k deliverable reporting #685
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't reviewed the code at all, but the outputs look great! Definitely makes sense to merge these major changes and make other updates later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really excellent work. Nice and clean architecture, great tests. This will be an excellent foundation for a healthy future of vibrant metrics!
4. Set up the project: `make setup` -- This will install the required packages and prompt you to authenticate with GitHub | ||
5. Create a `.secrets.toml` with the following details: | ||
```toml | ||
reporting_channel_id = "<REPLACE_WITH_CHANNEL_ID>" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you want to add instructions on where to how to get these IDs and tokens?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was planning to do this in our GitBook instance -- but if you think it would be better in the repo, I can add them here instead.
) | ||
# calculate burndown | ||
burndown = SprintBurndown(sprint_data, sprint=sprint) | ||
# optionally display the burndown chart in the browser |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: can we make this into a single, reusable method, since it gets used below too? or does that add rather than reduce complexity?
if show_results:
burndown.show_chart()
# optionally post the results to slack
if post_results:
slackbot = slack.SlackBot(client=WebClient(token=settings.slack_bot_token))
burndown.post_results_to_slack(
slackbot=slackbot,
channel_id=settings.reporting_channel_id,
)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm good point, I might have to give this some more thought to see if it can be abstracted out.
I should be able to tackle this in #741 since that might involve some refactoring and setting up dependency injection to simplify mocking.
We no longer want to track these files in git history
Removes export_github_data and changes how the functions to export project and issue data are called from cli.py
Adds transformation step that extracts the parent issue number from the milestone description when it is preceded by the phrase `deliverable:`
The SprintBoard._load_data() method used to be called during __init__() This commit changes it to a class method so that dataset can be loaded through other methods like from_dict() or from_csv()
- Adds a new dataset class: DeliverableTasks - Updates BaseMetric to accept **kwargs - Creates test for DeliverablePercentComplete
- Moves functions to generate test data into conftest.py - Moves function to load data from json file to utils.py
Updates calculate() method to reutrn 0% for deliverables without any story points instead of returning NaN
This SDK will be used to build the slack integration
This is used to load the token and channel details for the slackbot
By returning the plotly chart we can use it in other methods as well
This integration allows us to upload files to Slack
Enables all ruff rules and fixes or ignores each violation
Moving slack functions into a class allows us to inject that class as a dependency in an export function
Adds the following methods: - export_results() - export_chart() - show_chart() - post_results_to_slack() - renames visualize() to plot_results()
- Corrected file names - Improved post message - Fixed some type issues flagged by mypy
- Rounds percentages to whole numbers and adds '%' symbol - Sorts by total points/tickets instead of complete
- Adds lint - Adds test - Adds check-prereqs - Updates setup and install
Enables users to calculate sprint burndown for the current sprint by passing `@current` to the `sprint` argument
892946f
to
633bd03
Compare
Merging this code now to prevent future merge conflicts, but I'll be addressing a few of @lucasmbrown-usds other comments in these follow-up tickets: |
Summary
Creates the infrastructure to report on the percentage of tickets or story points completed per 30k deliverable.
Fixes #314
Time to review: 25 mins
Changes proposed
DeliverableTasks
dataset to join sprint data to 30k deliverablesDeliverablePercentComplete
which reports the percentage of points or tasks complete by 30k deliverableContext for reviewers
git checkout main && git fetch origin && git checkout issue-314-30k-deliverable-reporting
Outstanding tasks
There were a few tasks that I still want to do, but I'll tackle them in follow-up tickets:
@current
or date-based sprint reporting #740Additional information