Skip to content
This repository was archived by the owner on Mar 3, 2023. It is now read-only.
This repository was archived by the owner on Mar 3, 2023. It is now read-only.

Migrate core package 'link' into Atom repo #17848

@daviwil

Description

@daviwil

This issue tracks the steps necessary to migrate the link package into the core atom/atom repository under the packages path:

Migration Checklist

Phase 1 - Prepare repo for migration

  • Merge or close existing pull requests on the atom/link repository

Some guidelines for merging vs closing PRs:

  • Merge when the PR is small, useful, has no merge conflicts with master, and has passing tests
  • Close when the changes are non-trivial, the PR has conflicts with master, or there are failing tests in CI

If you close a PR, let the user know that we are currently moving the repository over to atom/atom so they should feel free to reopen the pull request there once the package code has been migrated.

Phase 2 - Migrate the package code

  • Create a fresh branch off master in your local clone of atom/atom with the name migrate-link-package
  • Delete Atom's node_modules folder if you've built there before and make sure Atom's package-lock.json file is unmodified
  • Clone the atom/link repo into the packages path of your local Atom repository and then delete its .git subfolder
  • Delete any unnecessary repo configuration files in the packages/link folder like appveyor.yml, .travis.yml, ISSUE_TEMPLATE.md, and PULL_REQUEST_TEMPLATE.md
  • Remove any information from the package's README.md which will be inaccurate after the migration is complete (e.g. CI status badges or contribution instructions)
  • Edit Atom's package.json file to change the following:
    • Update the link entry in packageDependencies to reflect the local path of the package:
      "link": "file:./packages/link",
      
    • Delete the link entry in the dependencies section since it may contain a hardcoded tarball link. This will help avoid issues in the next step
    • Change the repository field to point to the main repo URL https://github.com/atom/atom
  • Run a full Atom build using script/build and verify that there are no unexpected build errors
  • Launch the Atom binary in the ./out folder and manually verify that the migrated package is working without any obvious issues. For example, if you're migrating a color theme, turn on that theme to make sure that it changes the editor colors as expected.
  • Open the Chrome Developer Tools console (Ctrl+Shift+I or Cmd+Option+I) and ensure that there are no errors written there. If there are, add them to this issue and investigate.
  • Update the second column of the link row in packages/README.md to reflect the new local path for the package:
    [`./packages/link`](./link)
    
  • Commit the migrated package code and any changes to Atom's package-lock.json files to your branch using this commit message:
    :arrow_right: Migrate core package 'link' into ./packages
    

Phase 3 - Make sure the package works and send a PR

  • Run the full suite of Atom tests with script/test and verify that they pass locally
  • If any tests fail, investigate and fix them then commit the fixes to your branch
  • Create a PR against atom/atom to verify that CI passes
  • Once CI is clean and the PR is approved, merge it

Phase 4 - Archive the link repo

  • Move all existing issues from the link repo to atom/atom using github-issue-mover or a script
  • Add a label titled packages/link to the migrated issues so that they can be found easily
  • Edit the original package repo's README.md (don't commit directly) to point contributors to the code's new home in atom/atom. You can use the following text:
    ### This package is now a part of the [core Atom repository](https://github.com/atom/atom/tree/master/packages/link), please direct all issues and pull requests there in the future!
    
    ---
    
  • Send a PR to the link repository with the updated README.md so that watchers will be notified of the change. You do not need to wait for reviews, it can be merged immediately.
  • Archive the package repository by going to its Settings page, scroll down to the "Danger Zone" section and click "Archive this Repository"

Migration is now complete! 🎉

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions