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

Conversation

aminya
Copy link
Contributor

@aminya aminya commented Oct 31, 2020

Things remaining

Any help or idea regarding these is appreciated. I decided to open this PR to get some fresh ideas to solve these issues after months of trying different things:

  • Spying @babel/core in the compile-cache test does not seem to work. We might need to use Sinon or something similar for that. (the test related to CompileCache-> addPathToCache(filePath, atomHome))

  • In the CI, the packages (like language-*) are not transformed (macOS package tests). This does not happen offline.

Description of the Change

This upgrades babel to babel 7.

This PR is the result of several months of effort and trying.
I had to fix electron-link so:

I developed two plugins specifically for Atom to support its special situation:

  • babel-preset-atomic this is the plugin that includes all the other babel plugins. It has babel-preset (configured for Electron 6), babel-flow, babel-react, and many of the proposal plugins that are equivalents of the similar plugins included in the deprecated stage-0 package (e.g., class properties, private properties, decorators, private methods, etc.). It adds some of the new proposal plugins, such as optional chaining. It also allows us to do compile-time calculations using codegen and prevel.

See the full list of plugins that babel-preset-atomic has in this package.json.

  • babel-plugin-transform-not-strict: this removes 'use strict' whenever 'use babel' (or similar triggers) are used. This is because Babel 6/7 now assumes all the ES modules (those who use import/export) are strict by default. However, this breaks some of the Atom packages because they do non-strict things in ES modules. So, I developed this plugin to remove 'use strict' when the triggers are used. I have baked a feature in this plugin that allows removing 'use strict' selectively by adding 'not strict' directive. Ultimately, we should add this 'not strict' to any file that uses JS loosely in ES modules. An example of this is spec/update-process-env-spec.js

There are two move plugins included for backward compatibility:

  • babel-add-module-exports: this plugin circumvents the fact that ES modules export default by "default" keyword. This means we need to call require().default to consume them. This plugin works in combination with transform-not-strict to add module.exports= to the packages that export default things that should have been named exports. For the packages' root, I already made another PR that adds support for both cases, but we cannot patch require for the packages' internal requires as we only have access to the root.

  • @babel/plugin-transform-reserved-words that allows the uses of the old banned keywords such as package or debugger.

Benefits

This PR has several benefits:

  • Allows building Atom with Node 12.16 or above (see this issue). This will be crucial for upgrading Electron.
  • This allows using the new babel plugins (e.g., optional chaining) just by including "use babel".
  • This also enhances the performance of babel compiling.

Previous attempts

atom-community#67
#20965

Release Notes

  • Updates babel to babel 7 🎉

@aminya aminya force-pushed the babel7-4upstream-take2 branch 3 times, most recently from 946ce3c to 28e05d9 Compare October 31, 2020 14:26
@aminya
Copy link
Contributor Author

aminya commented Oct 31, 2020

The build passes on our fork: atom-community#67. Not sure why it has failed here.

@UziTech
Copy link
Contributor

UziTech commented Oct 31, 2020

We need to do extensive testing to make sure this doesn't break any packages or this should be a major version bump for Atom.

@UziTech
Copy link
Contributor

UziTech commented Oct 31, 2020

We should use the atom-package-downloader to check for ones that use babel and compile them against this configuration for babel to check for how many will fail.

@aminya
Copy link
Contributor Author

aminya commented Oct 31, 2020

We need to do extensive testing to make sure this doesn't break any packages or this should be a major version bump for Atom.

This is not ready yet, but I have done my best to prevent any breakage. There may be rare cases that I am not still aware of. I have tested the core packages and all of those that I have installed. I encourage everyone to do the same. Get the binaries by clicking on the CI of this PR: atom-community#67 and navigating to
image

For future babel changes (not this PR), we should make the directive version-specific. For example, 'use babel 7'.

@UziTech
Copy link
Contributor

UziTech commented Oct 31, 2020

I feel like using something like @atom/babel7-transpiler is a better idea so packages can use their own babel config.

@aminya
Copy link
Contributor Author

aminya commented Oct 31, 2020

I feel like using something like @atom/babel7-transpiler is a better idea so packages can use their own babel config.

This is used rarely by the current packages, and so that is not an option for those that are already using 'use babel'.
https://github.com/atom/atom-babel7-transpiler/network/dependents?dependents_before=MTM2NjY2NDY4MDg

@UziTech
Copy link
Contributor

UziTech commented Oct 31, 2020

It would be nice to make 'use babel' look at a configuration file so we don't need to update Atom once babel releases v8 and v9, etc.

@UziTech
Copy link
Contributor

UziTech commented Oct 31, 2020

This is used rarely by the current packages

probably because atomTranspilers is not mentioned anywhere in the docs. I would bet that most package developers don't even know it is an option.

@aminya
Copy link
Contributor Author

aminya commented Oct 31, 2020

It would be nice to make 'use babel' look at a configuration file so we don't need to update Atom once babel releases v8 and v9, etc.

In addition to this, we should provide a version based default configuration. For example, having a babel 8 config for those who 'use babel 8' and a default configuration for those who ' use babel 7', etc. This removes the need for having babel.config.js in each package.

After we successfully merge this PR, we can do these types of changes. These should be gradual (by giving deprecation warnings).

@UziTech
Copy link
Contributor

UziTech commented Oct 31, 2020

This removes the need for having babel.config.js in each package.

but we should at least allow it. Some packages might want something different than the default configuration.

That is the beauty of atomTranspilers it gives the package creator the flexibility to use their own language and configuration.

@aminya
Copy link
Contributor Author

aminya commented Oct 31, 2020

This removes the need for having babel.config.js in each package.

but we should at least allow it. Some packages might want something different than the default configuration.

Yeah sure. We can make 'use babel config' to use the provided babel config.

@UziTech
Copy link
Contributor

UziTech commented Oct 31, 2020

I would say default to babel v5 so there are no breaking packages that don't change and add 'use babel 7/8' for any packages that want to use newer versions.

Win win!

@aminya
Copy link
Contributor Author

aminya commented Oct 31, 2020

I would say default to babel v5 so there are no breaking packages that don't change and add 'use babel 7/8' for any packages that want to use newer versions.

Win win!

Well, the story is not that easy. The problem is that we "must" upgrade babel if we want to bump Node and Electron. The last Babel 5 released was released in 2016 (developed using Node 6)! Node 6 to Node 12 has many changes. We can't run Babel 5 forever. That's why I made two special plugins that circumvent these issues.

Check the changelog:
https://nodejs.org/en/download/releases/

We should accept this fact that breakage is inevitable with Node version changes, and we "must" have a procedure for transferring unmaintained packages to other people, so they can keep up with the changes.

See this issue for an example: #21091

With these being said, the current issue of this PR is not the plugins (I have fixed those to a great extent). The remaining issue is that the transformation is not triggered in the MacOS package tests in the CI.

@aminya aminya force-pushed the babel7-4upstream-take2 branch 2 times, most recently from ab5611d to bcba860 Compare January 27, 2021 21:45
@icecream17 icecream17 mentioned this pull request Mar 31, 2021
aminya added 5 commits March 31, 2021 11:52
- The old transfor meant transformSync
- The logger has been removed
This plugin is exactly made for Atom. It has these plugins to ensure
backwards compatibility + supporting all the new syntax

    "@babel/preset-env", -> uses Electron 6 target

    "@babel/preset-flow",
    "@babel/preset-react",
    "babel-plugin-add-module-exports",
    "babel-plugin-transform-not-strict",
    "@babel/plugin-transform-reserved-words"
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-proposal-private-methods",
    "@babel/plugin-proposal-decorators",
    "@babel/plugin-proposal-do-expressions",
    "@babel/plugin-proposal-export-default-from",
    "@babel/plugin-proposal-export-namespace-from",
    "@babel/plugin-proposal-function-bind",
    "@babel/plugin-proposal-function-sent",
    "@babel/plugin-proposal-json-strings",
    "@babel/plugin-proposal-logical-assignment-operators",
    "@babel/plugin-proposal-nullish-coalescing-operator",
    "@babel/plugin-proposal-numeric-separator",
    "@babel/plugin-proposal-optional-chaining",
    "@babel/plugin-proposal-pipeline-operator",
    "@babel/plugin-proposal-throw-expressions",
    "@babel/plugin-syntax-dynamic-import",
    "@babel/plugin-syntax-import-meta",

it also has some plugins to allow compile time calculations (enabled
only on certain syntaxes)
    "babel-plugin-codegen",
    "babel-plugin-preval",

https://github.com/atom-ide-community/babel-preset-atomic
@aminya aminya force-pushed the babel7-4upstream-take2 branch 2 times, most recently from 616a56b to 8e2e1e5 Compare March 31, 2021 17:39
@aminya aminya force-pushed the babel7-4upstream-take2 branch from 8e2e1e5 to 6d82ecb Compare March 31, 2021 17:39
@aminya
Copy link
Contributor Author

aminya commented Mar 31, 2021

The new build error for Electron 9 branch is strange. It is not something I have seen before.

Generating snapshot script at "D:\a\1\s\out\startup.js" (2064)
Error: ENOENT: no such file or directory, open 'supports-color'
  at Object.openSync (fs.js:458:3)
  at Object.readFileSync (fs.js:360:35)
  at module.exports (D:\a\1\s\script\node_modules\electron-link\lib\generate-snapshot-script.js:25:25)
  at module.exports (D:\a\1\s\script\node_modules\electron-link\lib\index.js:10:18)

I put a console.log before electron-link\lib\generate-snapshot-script.js:25:25 and here is the result:

{
  requiredModulePaths: [
    'supports-color',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\spell-check\\node_modules\\debug\\src\\common.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-select-list\\src\\select-list-view.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\spelling-manager\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\node_modules\\etch\\lib\\dom.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\node_modules\\etch\\lib\\render.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\node_modules\\etch\\lib\\component-helpers.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\node_modules\\etch\\lib\\scheduler-assignment.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-select-list\\src\\select-list-view.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\dedent\\dist\\dedent.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\lib\\code-block.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-select-list\\src\\select-list-view.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\fs-plus\\lib\\fs-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\fuzzaldrin\\lib\\fuzzaldrin.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\fs-plus\\lib\\fs-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\ctags\\lib\\ctags.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\symbols-view\\node_modules\\async\\lib\\async.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\symbols-view\\lib\\get-tags-file.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\underscore-plus\\lib\\underscore-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\fs-plus\\lib\\fs-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\fs-plus\\lib\\fs-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tabs\\lib\\get-icon-services.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tabs\\lib\\layout.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tabs\\lib\\get-icon-services.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\dom.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\render.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\component-helpers.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\scheduler-assignment.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\default-file-icons.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\helpers.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\underscore-plus\\lib\\underscore-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\helpers.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\fs-plus\\lib\\fs-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\add-dialog.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\move-dialog.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\copy-dialog.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\add-projects-view.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\directory.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\directory-view.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\root-drag-and-drop.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\ignored-names.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\welcome\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\welcome\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\welcome\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\amdefine\\amdefine.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\base64-vlq.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\util.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\array-set.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\amdefine\\amdefine.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\util.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\binary-search.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\array-set.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\base64-vlq.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\amdefine\\amdefine.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\source-map-generator.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\util.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\color-string\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\color-convert\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\node_modules\\event-kit\\lib\\emitter.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\node_modules\\event-kit\\lib\\disposable.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\node_modules\\event-kit\\lib\\composite-disposable.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\lib\\helpers.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\clear-cut\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\keyboard-layout\\lib\\keyboard-layout.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\lib\\us-keymap.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\lib\\slovak-cmd-keymap.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\lib\\slovak-qwerty-cmd-keymap.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss-selector-parser\\dist\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\colorette\\index.cjs',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\terminal-highlight.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\node.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\map-generator.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\symbols.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\stringify.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\warn-once.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\result.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\parse.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\root.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\declaration.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\symbols.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\comment.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\node.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\lazy-result.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\root.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\stringifier.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\node.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\container.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\warning.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\nanoid\\non-secure\\index.cjs',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\line-column\\lib\\line-column.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\terminal-highlight.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\css-syntax-error.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\previous-map.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\container.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\parser.js',
    ... 481 more items
  ],
  relativeFilePath: '../node_modules/spell-check/node_modules/debug/src/common.js',
  moduleASTs_relativeFilePath: true,
  filePath: 'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\spell-check\\node_modules\\debug\\src\\common.js',
  baseDirPath: 'C:\\Users\\aminy\\atom\\out\\app\\static'
}
{
  requiredModulePaths: [
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\spell-check\\node_modules\\debug\\src\\common.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-select-list\\src\\select-list-view.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\spelling-manager\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\node_modules\\etch\\lib\\dom.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\node_modules\\etch\\lib\\render.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\node_modules\\etch\\lib\\component-helpers.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\node_modules\\etch\\lib\\scheduler-assignment.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-select-list\\src\\select-list-view.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\dedent\\dist\\dedent.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\styleguide\\lib\\code-block.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-select-list\\src\\select-list-view.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\fs-plus\\lib\\fs-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\fuzzaldrin\\lib\\fuzzaldrin.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\fs-plus\\lib\\fs-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\ctags\\lib\\ctags.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\symbols-view\\node_modules\\async\\lib\\async.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\symbols-view\\lib\\get-tags-file.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\underscore-plus\\lib\\underscore-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\fs-plus\\lib\\fs-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\fs-plus\\lib\\fs-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tabs\\lib\\get-icon-services.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tabs\\lib\\layout.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tabs\\lib\\get-icon-services.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\dom.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\render.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\component-helpers.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\scheduler-assignment.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\timecop\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\default-file-icons.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\helpers.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\underscore-plus\\lib\\underscore-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\helpers.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\fs-plus\\lib\\fs-plus.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\add-dialog.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\move-dialog.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\copy-dialog.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\add-projects-view.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\directory.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\directory-view.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\root-drag-and-drop.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\tree-view\\lib\\ignored-names.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\welcome\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\welcome\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\welcome\\node_modules\\etch\\lib\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\amdefine\\amdefine.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\base64-vlq.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\util.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\array-set.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\amdefine\\amdefine.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\util.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\binary-search.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\array-set.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\base64-vlq.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\amdefine\\amdefine.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\source-map-generator.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\source-map\\lib\\source-map\\util.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\color-string\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\color-convert\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\node_modules\\event-kit\\lib\\emitter.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\node_modules\\event-kit\\lib\\disposable.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\node_modules\\event-kit\\lib\\composite-disposable.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\lib\\helpers.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\clear-cut\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\keyboard-layout\\lib\\keyboard-layout.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\lib\\us-keymap.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\lib\\slovak-cmd-keymap.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\atom-keymap\\lib\\slovak-qwerty-cmd-keymap.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss-selector-parser\\dist\\index.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\colorette\\index.cjs',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\terminal-highlight.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\node.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\map-generator.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\symbols.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\stringify.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\warn-once.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\result.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\parse.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\root.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\declaration.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\symbols.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\comment.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\node.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\lazy-result.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\root.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\stringifier.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\node.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\container.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\warning.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\nanoid\\non-secure\\index.cjs',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\line-column\\lib\\line-column.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\terminal-highlight.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\css-syntax-error.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\previous-map.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\container.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\parser.js',
    'C:\\Users\\aminy\\atom\\out\\app\\node_modules\\postcss\\lib\\input.js',
    ... 481 more items
  ],
  relativeFilePath: '../../../supports-color',
  moduleASTs_relativeFilePath: true,
  filePath: 'supports-color',
  baseDirPath: 'C:\\Users\\aminy\\atom\\out\\app\\static'
}
Error: ENOENT: no such file or directory, open 'supports-color'

@sadick254
Copy link
Contributor

@aminya there are conflicts on this PR. Do you mind resolving them? I would like to review this PR but it's still on draft state. Do you plan on adding more commits?

@sadick254
Copy link
Contributor

sadick254 commented Sep 1, 2021

Thank you for your PR!

We haven't gotten a response to our comment above. I'm going to close this but don't hesitate to reach out if you plan to add more commits, we'll be happy to reopen the issue.

@sadick254 sadick254 closed this Sep 1, 2021
@aminya
Copy link
Contributor Author

aminya commented Sep 2, 2021

I sent several emails to @atom and @github and opened several pull requests and issues, and many of them did not get any response. I even messaged the CEO directly (@nat) but still got no response. Considering all of this, do you expect me to continue supporting this organization?

https://twitter.com/AminYa74/status/1425025879294500864

@icecream17 icecream17 mentioned this pull request Feb 24, 2022
4 tasks
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants