18.x
1.19.x
$ git clone https://github.com/getstation/desktop-app.git
$ cd desktop-app
$ yarn
No additional requirements.
Install node-gyp
dependencies
$ npm --add-python-to-path install --global --production windows-build-tools
$ sudo apt install graphicsmagick icnsutils libxtst-dev libx11-dev libxrender-dev libxkbfile-dev libgconf-2-4
CentOS 9 is required.
$ sudo yum install clang dbus-devel gtk3-devel libnotify-devel xorg-x11-server-utils libcap-devel \
cups-devel libXtst-devel alsa-lib-devel libXrandr-devel nss-devel
See dotenv for further configuration.
yarn run dev
If for any reason you have some error with binding module you could run npm run rebuild-all-native
to check if you still have the problem
See electron-debug for more information.
In order to see redux transactions and state,
install Redux DevTools
(or the browser extension)
and click on Open Remote DevTools
. Make sure Use (custom) local server
on localhost:8000
is activated in the settings.
To inspect the main process, connect Chrome by visiting chrome://inspect
and selecting to inspect the launched Electron app.
STATION_NO_WEBVIEWS
if exists, webviews are not loadedSTATION_REDUX_LOGGER
if exists, will enable redux-logger in rendererSTATION_AUTOUPDATER_MOCK_SCENARIO
set the scenario for the mock of AutoUpdater
module:
available
(default), mock an update is available and downloadednot-available
mock an update is not availableOVERRIDE_USER_DATA_PATH
override userData
path (example: OVERRIDE_USER_DATA_PATH="Station Canary" yarn run dev
)STATION_CHECK_INACTIVE_TAB_EVERY_MS
override the interval period between each check for inactive tabsSTATION_WAIT_MS_BEFORE_KILL_TAB
override the time to wait before considering a tab is inactive and killing itSTATION_QUICK_TRANSITIONS
all transitions are quick (used to test changing colors)STATION_REACT_PERF
add the react-addons-perf for react perf debuggingSTATION_NO_CHECK_FOR_UPDATE
if exists, the app will not check for updateDEBUG=service:*
Will print debug info of Service framework on all processesSTATION_SHOW_REQUIRE_TIME
if exists, the app will display the execution time of requiring modules upon quit
require('@getstation/time-require').default()
STATION_DISABLE_ECX
if exists, electron-chrome-extension
will not be loadedDatabases migrations are using umzug and umzug-cli.
To test migrations manually:
// Apply migrations
$ yarn run database migrations up
// Revert last applied migration
$ yarn run database migrations down
Install TablePlus and create a new SQLite connection with the database file located at ~/Library/Application\ Support/Station\ Dev/db/station.db
To package apps for the local platform:
$ yarn run build
The application will be automatically signed by the CI on the release
branch
Here is a list of tools used during the development process. Consider adding the corresponding plugins to your IDE.
WebStorm and VSCode should be correctly configured by default.
This repository should be used as a proper monorepo. Packages that should be impacted:
release
branchrelease
branch, bump the version with yarn version
to the corresponding version numberNote: you can remove artifacts and push changes over the same draft