Skip to content

Latest commit

 

History

History
82 lines (59 loc) · 3.01 KB

MAINTAINING.md

File metadata and controls

82 lines (59 loc) · 3.01 KB

Notes for maintainers

Accepting pull requests

We require a CLA from all contributors. See CONTRIBUTING.md for the details. The most important one is that signing is fully electronic and can be done in seconds. The list of GitHub users who have already signed the CLA is at CONTRIBUTORS.txt.

We use bors to make sure master is always green. Common commands are

  • bors r+ to merge a PR,
  • bors r=username to merge a PR on behalf of the user without r+ permissions
  • bors delegate+ to grant the author of PR r+ right for this PR.

Don't forget to say "Thank you!" when merging pull requests! :)

Each non-stalled pull-request should be assigned to a reviewer, who should make sure that PR moves forward. However, anybody with r+ can accept any PR, if they are confident that the PR is in a good state.

Upgrades

Gradle

# Substitute 4.1 for latest version https://gradle.org/install/#install
# Repeat the command twice, as only the second iteration is idempotent =/ 
./gradlew wrapper --gradle-version 4.1 --distribution-type all
./gradlew wrapper --gradle-version 4.1 --distribution-type all

Note --distribution-type all.

New IDE version

While supporting new IDE version we should check all UI components manually because we don't have UI tests yet. Especially it's important if it's major IDE update because major platform updates can bring a lot of changes.

Common places

  • New rust project
  • Import rust project
  • Rust preferences (in Languages & Frameworks)
  • Cargo toolbar
  • Run configuration
  • Debugger settings (in Build, Execution, Deployment > Debugger > Data Views > Rust, CLion only)

Specific places

  • Notifications (see MissingToolchainNotificationProvider)
  • Run Cargo Command action
  • Implement Members refactoring
  • Introduce Variable refactoring
  • Extract Function refactoring
  • Auto Import quick fix & options
  • Unresolved Reference inspection options

Releases

Nightly is released automatically by TeamCity. Alpha is generally released on mondays.

Release notes live in intellij-rust.github.io. To write notes, run ./changelog.py to generate template in _posts. Go thorough bors merge commits since the latest release and write about them in appropriate section. Don't forget to mention every contributor using by [@username] syntax.

After finishing with release notes, execute ./gradlew makeRelease tasks. It'll do the following things:

  • add links to the release notes
  • commit and push release notes to intellij-rust.github.io
  • update changelog in plugin.xml and push "Changelog" commit to master branch of intellij-rust
  • checkout "nightly" branch, advance versions of EAP idea an nightly rust, and push this branch

Then: