Skip to content
This repository has been archived by the owner on May 17, 2021. It is now read-only.

COMPASS-542: Build installers for Ubuntu and Redhat #45

Merged
merged 29 commits into from
Dec 13, 2016

Conversation

imlucas
Copy link
Contributor

@imlucas imlucas commented Dec 11, 2016

note npm version major after merging.

Todo

  • Build .rpm's for RHEL
  • Build .deb's for Ubuntu
  • Build tar.gz
  • Get it all working on travis
  • Proper icon support
  • Add slug to Config class (_.dasherize('${name}-${channel suffix}') to pass to electron-installer-debian and electron-installer-redhat.
  • electron-installer-debian and electron-installer-redhat produce wacky filenames. Figure it out and add tests to make sure they're producing the right files.
  • Travis failing rpm build because of error: line 2: Illegal char '-' in: Version: 1.2.0-dev

Follow-up tickets to create

Short-term

App icons for Linux

User experience check for rpms (Sam)

As a redhat user, I want to feel like the .rpm's are native to my experience so that I can trust the app I'm installing.

User experience check for debs (Peter)

As an Ubuntu user, I want to feel like the .deb's are native to my experience so that I can trust the app I'm installing.

synopsis generated from description (as our description is also <80 characters, though generally in the same style as a git commit, i.e. read until the \r\n\r\n or 79 characters, whichever comes first) would be nice here: https://www.debian.org/doc/debian-policy/ch-binary.html#s-synopsis. Have not looked at any other options though, hopefully lintian helps there.

Codesign all linux artifacts

The notary-service already has support for .zip, .tar.gz, .deb and .rpm. Write a js api client so that the release command will produce codesigned artifacts as we do for all other platforms.

https://github.com/10gen/notary-service

https://github.com/10gen/notary-service/tree/master/client

Current state of signing:

  • macOS: The notary-service doesn't support signing .app's. We have a special evergreen distro that has personal key on it.
  • windows: Uses the notary-service. More details

Get it all working on evergreen

Already a ticket for ubuntu test failure, but some additional risk in missing packages, distro availability, etc.

Backlog

Other distribution formats we may want to/have requests for:

Notes

@imlucas imlucas requested a review from pzrq December 12, 2016 22:40
Copy link
Contributor

@pzrq pzrq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Haven't actually played with it yet, but definitely liking the overall direction 👍

language: node_js
node_js:
- 6
script: npm run-script ci
cache:
# TODO (imlucas) We can't use yarn just yet on travis until an upstream
# fix is landed for https://github.com/yarnpkg/yarn/pull/2164
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yarnpkg/yarn#2164 appears to have been merged ~11 hours ago.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes but 0.19.0 is far from being published.

## Auto Update

- `hadron-auto-update-manager`: https://github.com/hadron-auto-update-manager

### macOS
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This branch has grown large, would it be reasonable to extract the macOS / Windows / electron-prebuilt changes and get those merged independently?

type: 'boolean',
default: true
},
signtool_params: {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this only for electron-winstaller, or does it apply to electron-installer-codesign and/or electron-osx-sign?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

electron-winstaller only. This will be cleaned up as the refactoring to Targets instead of CONFIG makes progress.

@@ -53,6 +136,7 @@ const toTable = (CONFIG) => {
};

exports.handler = (argv) => {
console.log('config argv', argv);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does eslint catching these in hadron-build?

default: pkg.author || pkg.authors
}
};
_.assign(opts, {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we continue using _.assign over Object.assign? We tend to get warnings when installing packages, not sure if they are related:

screen shot 2016-12-13 at 10 42 05 pm

}
/**
* TODO (imlucas) Use pretty debian metadata and options.
* @see https://github.com/unindented/electron-installer-debian#options
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

synopsis generated from description (as our description is also <80 characters, though generally in the same style as a git commit, i.e. read until the \r\n\r\n or 79 characters, whichever comes first) would be nice here: https://www.debian.org/doc/debian-policy/ch-binary.html#s-synopsis

Have not looked at any other options though, hopefully lintian helps there.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 will include in follow-up tickets.

More config refactoring

e.g. `1.2.0-beta.1` ->
  rpm: version: 1.2.0, release: beta.1
  deb: version: 1.2.0~beta.1
@imlucas imlucas changed the title COMPASS-332: Linux support COMPASS-542: Initial spike to get ubuntu and redhat installers building on travis Dec 13, 2016
@imlucas imlucas changed the title COMPASS-542: Initial spike to get ubuntu and redhat installers building on travis COMPASS-542: Build installers for Ubuntu and Redhat Dec 13, 2016
@imlucas imlucas merged commit 6250a98 into master Dec 13, 2016
@imlucas imlucas deleted the COMPASS-332-linux branch December 13, 2016 16:54
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.

None yet

2 participants