Skip to content

ASP.NET Core Development Sprints

Brennan edited this page Apr 23, 2021 · 4 revisions

aspnetcore-sprints 001


Introduction

What's a sprint?

A sprint is an in-person or virtual event where community members can contribute to the ASP.NET Core project, with the help of ASP.NET Core maintainers.

Who can participate in the sprint?

Participation is open to anyone with experience developing C# and familiarity with ASP.NET Core.

What should I do to prepare?

Read through this document which outlines:

  • how to set up your development environment
  • the criteria for a pull request submission
  • issues available to work on

It's recommended that you read through the first three sections before the day of the event to get familiar with the process and expectations. You can review the first section to identify issues to work on.

Where should I go for help?

In addition to asking questions on the GitHub issue or pull request you are working on, you can ask questions on the ASP.NET Core discord in the #aspnet channel under FRAMEWORKS.

What happens after my PR is merged?

Once your pull request has been successfully implemented, reviewed, and merged, it'll ship in an upcoming release of .NET. To figure out what release your PR will ship in, you can check the "Milestone" attribute on the PR to determine the version it will be released under. You'll receive a shout-out on the release blog post for that version.

Sometimes, your pull request might contain a new feature or major change that cannot be shipped in an upcoming release, such as an RC. In that case, your pull request may be closed. Don't worry though, it'll be re-opened and your commits will be reused in the event that we decide to take up the feature for a later release.

What kind of help will mentors provide during the sprint?

Mentors are available to help you set up your development environment, guide you if you are stuck debugging, help out with the design process, and more. During the sprint, mentors will be focusing on helping participants who are working on pull requests. If you need help with a general ASP.NET Core issue or have an unrelated bug to discuss, please open an issue in this repo.

Setting up your development environment

You can find complete setup instructions for this repo in the build documentation.

How to submit a PR and expectations

Finding an issue to work on:

Before starting work, it's worth making sure that your change is likely to be accepted. We recommend:

  • In most cases, it's best to find an existing issue to work on. Try looking at the lists of good first issues and help wanted. When you find one you'd like to work on, post a message to the issue saying you're getting started to be sure you're not duplicating effort with others.
  • If you want to work on something that has no existing issue, or the existing issue isn't labeled help wanted, then please contact someone on the ASP.NET Core team to check whether it's an area we're ready to accept changes in.

Before starting to write code:

If you're going to do a meaningful amount of work on an issue, or if your contribution will involve any changes to ASP.NET Core's public APIs, you should first post a description of your planned approach on the issue and speak with a ASP.NET Core team member about it.

All merged contributions will end up in many thousands of projects and will run on millions of end-user machines. Any APIs you add will have to be supported by Microsoft for many years. We have to be sure that it's secure, will perform well, will make sense to other developers, and fits in with longer-term plans for how the framework should evolve. That's why we're very careful about what gets added! Since you're also invested in the long-term success of ASP.NET Core, we hope you agree with these goals.

Example of an ideal contribution:

  • You find an existing issue with the "help-wanted" label or discuss with the ASP.NET Core team to agree on adding a new issue with that label
  • You post a high-level description of how it will be implemented, and receive a positive acknowledgement from the team before getting too committed to the approach or investing too much effort implementing it
  • You add test coverage following existing patterns within the codebase
  • Your code matches the existing syntax conventions within the codebase
  • Your PR is small, focused, and avoids making unrelated changes

Examples of problematic contributions that are unlikely to be accepted:

  • Changes that break backward compatibility
  • Changes that are only wanted by one person/company. Changes need to benefit a large enough proportion of all ASP.NET Core developers.
  • Changes that add entirely new feature areas without prior agreement
  • Changes that are mostly about refactoring existing code or code style
  • Very large PRs that would take hours to review (remember, we're trying to help lots of people at once). For larger work areas, please discuss with us to find ways of breaking it down into smaller, incremental pieces that can go into separate PRs.

Some tips to help your changes get merged easier:

Available issues to work on

To get started, you'll need to find an issue you're interested in working on. Issues that are available for community contribution are labeled with the "help wanted" tag on GitHub. This GitHub query lists all the issues that are available to work on.

To get started with contributing:

  1. Set up your development environment based on the instructions above.
  2. Find an issue in the query above that you are interested in working in.
  3. Post a GitHub comment on the issue saying you're interested in working on it.
  4. If you have some ideas on how a particular issue should be resolved, post these ideas in the comment.
  5. If you have some questions about the issue, add these as well.
  6. If your issue doesn't require any design work, this is where the coding starts.
  7. If your issue does require some design work, you should find a mentor on the Discord channel to flesh out elements of the design before coding.
  8. Code up your PR keeping the guidelines above in mind.
  9. Submit the PR for review and mention a mentor or someone on the team in the open PR.