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 'one-light-syntax' into Atom repo #17855

@daviwil

Description

@daviwil

This issue tracks the steps necessary to migrate the one-light-syntax package into the core atom/atom repository under the packages path:

Migration Checklist

Phase 1 - Prepare repo for migration

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-one-light-syntax-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/one-light-syntax 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/one-light-syntax 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 one-light-syntax entry in packageDependencies to reflect the local path of the package:
    "one-light-syntax": "file:./packages/one-light-syntax",
    
  • Delete the one-light-syntax entry in package.json's dependencies section since it may contain a hardcoded tarball link. This will help avoid issues in the next step
  • 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 one-light-syntax row in packages/README.md to reflect the new local path for the package:
    [`./packages/one-light-syntax`](./one-light-syntax)
    
  • 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 'one-light-syntax' 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 one-light-syntax repo

  • Move all existing issues from the one-light-syntax repo to atom/atom using github-issue-mover or a script
  • Add a label titled packages/one-light-syntax 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/one-light-syntax), please direct all issues and pull requests there in the future!
    
    ---
    
  • Send a PR to the one-light-syntax 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. Update README to deprecate repository and redirect readers to atom/atom one-light-syntax#49
  • 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

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions