Use of Custom Packages and GitHub


#1

Hi,

I’m am developing my own package for Atom. Are there any hints or tutorials folks may want to recommend?

Can someone help me understand how to deploy your own custom package? How does the package manager in Atom know where to look?

Take Care
Jason


#2

The Atom manual has you covered on the publishing process


#3

Thanks,

I read the section on Publishing.

  1. Is Atom only able to publish to the public GitHub site?
  2. How does a person manually install a package if it’s not on GitHub.com?

Thanks
Jason


#4

Yes, it can only be published on GitHub


#5

It’s certainly possible to install a package without it being in a public repo, just not through the package manager in the app. Are you trying to use a private github repo? Or something else?


#6

Hi,

Thank you for the response. I would like to publish my package to my company github site as it has no relevance in the public domain.

I suppose one could always copy the file structure to .atom/packages right? It would be easier if the package manager could also search a user provided github site.

Jason


#7

It doesn’t need to. APM, like NPM, can install a package directly from any git repository that it can read if you give it the URL. Type apm help install in your command line to see all of the options.

$ apm help install

Usage: apm install [<package_name>...]
       apm install <package_name>@<package_version>
       apm install <git_remote>
       apm install <github_username>/<github_project>
       apm install --packages-file my-packages.txt
       apm i (with any of the previous argument usage)

Install the given Atom package to ~/.atom/packages/<package_name>.

If no package name is given then all the dependencies in the package.json
file are installed to the node_modules folder in the current working
directory.

A packages file can be specified that is a newline separated list of
package names to install with optional versions using the
`package-name@version` syntax.

Options:
  --check           Check that native build tools are installed                            [boolean]
  --verbose         Show verbose debug information                        [boolean] [default: false]
  --packages-file   A text file containing the packages to install                          [string]
  --production      Do not install dev dependencies                                        [boolean]
  -c, --compatible  Only install packages/themes compatible with this Atom version          [string]
  -h, --help        Print this usage message
  -s, --silent      Set the npm log level to silent                                        [boolean]
  -q, --quiet       Set the npm log level to warn                                          [boolean]

  Prefix an option with `no-` to set it to false such as --no-color to disable
  colored output.

I’m not sure if APM requires anything special to be able to access a private repo, but I don’t expect it to, since your private repo credentials will be stored with your global git settings.

If that doesn’t work, just open the local repo and run apm link and apm install, then tell everyone else to clone it and run those same commands. That will work 100% of the time. You do not want to put your own code in .atom/packages/ as a matter of hygiene. The apm link command creates a symbolic link, a fake folder in packages/ that looks like a real one and acts as a shortcut to the real folder. The important part is to have everything in packages/ be able to be deleted without losing anything that you can’t just download again.