Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apply changes for 3.3.2 release #937

Merged
merged 84 commits into from
Oct 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
b19260d
update documentation and README for Linux support
shiftkey Nov 20, 2018
dbbe695
improvements to electron-builder config
shiftkey Nov 1, 2018
ad261af
redirect in-app menu for reporting an issue to the fork (#141)
shiftkey Apr 19, 2019
88329de
workaround for Linux users of the app to use it on very low resolutio…
shiftkey May 30, 2019
d3d37fb
add CLI support to Debian package, add Elementary OS shell and editor…
jfgordon2 Mar 29, 2020
5648e47
polish About modal for Linux build (#241)
jfgordon2 Mar 30, 2020
32aa57e
Detach CLI process from terminal (#239)
jfgordon2 Mar 30, 2020
8c04fc5
Added test for symlinks
jfgordon2 Apr 14, 2020
5a22c64
set filemode for chrome-sandbox to reflect the permissions it needs (…
shiftkey Apr 16, 2020
9c17261
move debian packaging out to dedicated step (#263)
shiftkey Apr 23, 2020
bee1a61
move redhat packaging out to own step (#273)
shiftkey May 17, 2020
e6f65f8
readme: add language property to code blocks (#287)
serkonda7 May 30, 2020
d4c9dbf
wire up sponsorship details for the repository
shiftkey May 31, 2020
53aab8e
drop unnecessary libappindicator dependency for RPM package (#300)
shiftkey Jun 24, 2020
4eb0151
run codeql on linux branch (#302)
shiftkey Jun 24, 2020
bd82a7e
add in libcurl4 as optional dependency for RPM (#315)
shiftkey Jul 27, 2020
a26a9de
allow tilde character when specifying a local repository (#316)
Daniel-McCarthy Aug 4, 2020
b02bf4b
remove deprecated apt-key from installation setup (#354)
KrisAphalon Oct 24, 2020
61b4ad5
add optional x11 dependency for SUSE-based distributions (#369)
shiftkey Nov 6, 2020
0fc5609
align CI with the upstream settings for Actions (#393)
shiftkey Dec 17, 2020
3c514af
Add smaller icons (#395)
kevinhikaruevans Dec 27, 2020
9712edf
update tooling dependencies (#424)
shiftkey Jan 25, 2021
dbd8959
run packaging step on Linux builds if all other CI steps pass (#435)
shiftkey Feb 15, 2021
7be4911
enable dependabot monitoring for specific dependencies in project (#440)
shiftkey Feb 15, 2021
2ca9d15
bump electron-installer-redhat to latest version (#438)
shiftkey Feb 15, 2021
63bd896
add missing MIME type to AppImage package (#496)
Mrlinkwii May 8, 2021
8a34fed
add section about known issues and add to Linux section (#537)
shiftkey Jun 22, 2021
efa2662
drop prerelease: true from release step in workflow (#551)
shiftkey Jul 6, 2021
2b585f4
refresh smaller icons to use new theme (#530)
shiftkey Jul 6, 2021
eef9997
[docs] add new section for org repos (#552)
shiftkey Jul 6, 2021
22c93ef
introduce abstractions to make Flatpak integration easier (#555)
shiftkey Jul 14, 2021
5bbff00
escape paths with regex over quotes in flatpaks (#558)
Lunarequest Jul 19, 2021
d0cdb85
point window icon to new version (#561)
shiftkey Jul 19, 2021
bd6feab
detect and support running post-install script with offline yarn (#567)
shiftkey Jul 22, 2021
3ada2af
assorted lint fixes not caught by CI
shiftkey Aug 13, 2021
0e0d3c1
submodules should be updated if OFFLINE=1 is not set (#587)
shiftkey Aug 30, 2021
0929f33
Add instructions for opensuse dist in README.md (#592)
gaganyadav80 Sep 5, 2021
843d7e7
Flatpak: locate and launch flatpaked code editors (#602)
Lunarequest Sep 30, 2021
2488d4b
fixed a typo in the README (#605)
foxler2010 Sep 30, 2021
792f02b
move icons to correct location, update usages in tooling (#606)
shiftkey Oct 3, 2021
352c30e
enable release job to access contents
shiftkey Oct 22, 2021
421a18b
Changed apt-get to apt in the debian installation section of the read…
reyespinosa1996 Feb 13, 2022
5b8c9c4
Add mirror to README (#667)
mwt Mar 12, 2022
8a60e08
reformat helper file related to spawning flatpak
shiftkey Apr 3, 2022
82e26d5
Add additional validation to find the app-specific argument we requir…
shiftkey Apr 3, 2022
3925070
update Actions CI status in README
shiftkey Apr 3, 2022
850921e
move electron-winstaller to optional dependency to not block arm32 usage
shiftkey Apr 15, 2022
393eab7
Add support for GNOME console and newer GNOME editors (#700)
Etaash-mathamsetty Apr 21, 2022
8cfc1a3
Adds LXTerminal to terminals and Geany and Mousepad to supported edit…
theofficialgman May 7, 2022
826ec09
add armv7l support to scripts (#712)
theofficialgman May 7, 2022
55c53b8
Add support for detecting PhpStorm editor (#717)
PadowYT2 May 20, 2022
5d3ca70
Linux build does not have the equivalent of beta channel
shiftkey Jul 7, 2022
5c92d12
allow for packaging parameters to be derived from process.arch (#774)
shiftkey Oct 15, 2022
5ac89ae
Fix args processing on first launch on linux (#793)
sarim Feb 17, 2023
c3a6bcf
refresh docs to move away from PackageCloud (#836)
shiftkey Feb 20, 2023
2dab122
Update readme to use new mirror origin (#838)
mwt Feb 20, 2023
8d6e27d
doc: rename GPG public key file to use .gpg extension (#839)
phanect Feb 22, 2023
cf01542
patch `electron-installer-redhat` to disable `.build-id` links in dir…
shiftkey Feb 26, 2023
bc00f38
Delete FUNDING.yml
shiftkey Feb 26, 2023
9268963
change keyring path to more predictable directory (#843)
shiftkey Mar 1, 2023
2fb2107
upgrade to supported Ubuntu runner (#863)
shiftkey Apr 7, 2023
561e8b2
Bump electron-installer-redhat from 3.3.0 to 3.4.0 (#848)
dependabot[bot] Apr 7, 2023
e4374ac
moved OpenSUSE instructions to separate steps (#864)
shiftkey Apr 7, 2023
7ad4c58
reformat changed files
shiftkey Jul 3, 2023
2ba811b
Add support for Flatpak installs of several editors (#887)
FloridaMan7588 Jul 3, 2023
5a64895
remove geany as supported editor because it doesn't work as expected …
shiftkey Jul 3, 2023
b25690f
bump dugite to v2.5.1 to get support for older glibc versions
shiftkey Jul 8, 2023
a877117
restore missing electron-builder package
shiftkey Jul 8, 2023
6149d52
switch Linux build over to use configured docker image (#898)
shiftkey Jul 9, 2023
facf4e1
enable workflow for ARM32/ARM64 on Ubuntu (#897)
theofficialgman Jul 9, 2023
ecdc02c
introduce separate publish step which runs after build (#899)
shiftkey Jul 10, 2023
10d76d7
add support for generating release notes from upstream release (#900)
shiftkey Jul 10, 2023
6ff67ff
allow for -test1 versioning with release tag
shiftkey Jul 11, 2023
594e865
tweak release notes output so that checksum is before file name
shiftkey Jul 11, 2023
7d25aa5
backport some release fixes after initial testing (#905)
shiftkey Jul 13, 2023
9617954
Bump actions/download-artifact from 2 to 3 (#907)
dependabot[bot] Jul 17, 2023
a060d91
Docs: add GNOME Terminal immutability to known issues. (#910)
khawkins98 Jul 29, 2023
e15fbee
Bump electron-builder from 24.4.0 to 24.6.3 (#914)
dependabot[bot] Jul 31, 2023
1934be6
backport patches from previous release (#915)
shiftkey Aug 6, 2023
ddd2bd9
Bump electron-packager from 17.1.1 to 17.1.2 (#916)
dependabot[bot] Aug 21, 2023
c2ee2c8
Bump electron-installer-debian from 3.1.0 to 3.2.0 (#917)
dependabot[bot] Aug 26, 2023
16446a4
Bump electron-builder from 24.6.3 to 24.6.4 (#926)
dependabot[bot] Sep 4, 2023
33fff27
Add an option to use the Windows title bar (#912)
mon-jai Oct 8, 2023
c22cf3f
add support for vscodium insiders (#928)
Ujhhgtg Oct 8, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/ISSUE_TEMPLATE/installation-issue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
name: "\U0001F4BB Installation issue"
about: Report a problem when installing the application
title: ''
labels: ''
assignees: ''

---

### Operating System/Distribution

Which distribution of Linux are you using?

### Installer

Which version of the app?
Which installer type?

### What happened?

Provide as much detail as possible. Error messages or output are extremely useful.
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,13 @@ updates:
directory: /
schedule:
interval: weekly

- package-ecosystem: 'npm'
directory: '/'
open-pull-requests-limit: 5
schedule:
interval: 'weekly'
allow:
- dependency-name: 'electron-builder'
- dependency-name: 'electron-packager'
- dependency-name: 'electron-installer-*'
260 changes: 195 additions & 65 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,15 @@ on:
push:
branches:
- development
- linux
- 'linux-release-*'
tags:
- 'release-*.*.*-linux*'
- 'release-*.*.*-test*'
pull_request:
workflow_call:
inputs:
repository:
default: desktop/desktop
required: false
type: string
ref:
required: true
type: string
upload-artifacts:
default: false
required: false
type: boolean
environment:
type: string
required: true
secrets:
DESKTOP_OAUTH_CLIENT_ID:
DESKTOP_OAUTH_CLIENT_SECRET:
APPLE_ID:
APPLE_ID_PASSWORD:
APPLE_APPLICATION_CERT:
APPLE_APPLICATION_CERT_PASSWORD:
WINDOWS_CERT_PFX:
WINDOWS_CERT_PASSWORD:
branches:
- linux
- 'linux-release-*'

jobs:
lint:
Expand All @@ -54,57 +37,154 @@ jobs:
build:
name: ${{ matrix.friendlyName }} ${{ matrix.arch }}
runs-on: ${{ matrix.os }}
container: ${{ matrix.image }}
permissions:
contents: read
contents: write
strategy:
fail-fast: false
matrix:
node: [18.14.0]
os: [macos-13-xl-arm64, windows-2019]
node: [18.16.1]
os: [macos-13, windows-2019, ubuntu-20.04]
arch: [x64, arm64]
include:
- os: macos-13-xl-arm64
- os: macos-13
friendlyName: macOS
- os: windows-2019
friendlyName: Windows
- os: ubuntu-20.04
friendlyName: Ubuntu
image: ubuntu:18.04
arch: x64
environment:
AS: as
STRIP: strip
AR: ar
CC: gcc
CPP: cpp
CXX: g++
LD: ld
FC: gfortran
PKG_CONFIG_PATH: /usr/lib/x86_64-linux-gnu/pkgconfig
- os: ubuntu-20.04
friendlyName: Ubuntu
image: ubuntu:18.04
arch: arm64
environment:
AS: aarch64-linux-gnu-as
STRIP: aarch64-linux-gnu-strip
AR: aarch64-linux-gnu-ar
CC: aarch64-linux-gnu-gcc
CPP: aarch64-linux-gnu-cpp
CXX: aarch64-linux-gnu-g++
LD: aarch64-linux-gnu-ld
FC: aarch64-linux-gnu-gfortran
PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig
- os: ubuntu-20.04
friendlyName: Ubuntu
image: ubuntu:18.04
arch: arm
node: 18.16.1
environment:
AS: arm-linux-gnueabihf-as
STRIP: arm-linux-gnueabihf-strip
AR: arm-linux-gnueabihf-ar
CC: arm-linux-gnueabihf-gcc
CPP: arm-linux-gnueabihf-cpp
CXX: arm-linux-gnueabihf-g++
LD: arm-linux-gnueabihf-ld
FC: arm-linux-gnueabihf-gfortran
PKG_CONFIG_PATH: /usr/lib/arm-linux-gnueabihf/pkgconfig

timeout-minutes: 60
env:
RELEASE_CHANNEL: ${{ inputs.environment }}
AS: ${{ matrix.environment.AS }}
STRIP: ${{ matrix.environment.STRIP }}
AR: ${{ matrix.environment.AR }}
CC: ${{ matrix.environment.CC }}
CPP: ${{ matrix.environment.CPP }}
CXX: ${{ matrix.environment.CXX }}
LD: ${{ matrix.environment.LD }}
FC: ${{ matrix.environment.FC }}
PKG_CONFIG_PATH: ${{ matrix.environment.PKG_CONFIG_PATH }}
npm_config_arch: ${{ matrix.arch }}
steps:
- name: Install dependencies into dockerfile on Ubuntu
if: matrix.friendlyName == 'Ubuntu'
run: |
# ubuntu dockerfile is very minimal (only 122 packages are installed)
# add dependencies expected by scripts
apt update
apt install -y software-properties-common lsb-release \
sudo wget curl build-essential jq autoconf automake \
pkg-config ca-certificates rpm
# install new enough git to run actions/checkout
sudo add-apt-repository ppa:git-core/ppa -y
sudo apt update
sudo apt install -y git
# avoid "fatal: detected dubious ownership in repository at '/__w/shiftkey/desktop'" error
git config --global --add safe.directory '*'
- name: Add additional dependencies for Ubuntu x64
if: ${{ matrix.friendlyName == 'Ubuntu' && matrix.arch == 'x64' }}
run: |
# add electron unit test dependencies
sudo apt install -y libasound2 libatk-bridge2.0-0 libatk1.0-0 \
libatspi2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libdrm2 \
libexpat1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 \
libnss3 libpango-1.0-0 libx11-6 libxcb1 libxcomposite1 \
libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 \
libsecret-1-0
- name: Add additional dependencies for Ubuntu arm64
if: ${{ matrix.friendlyName == 'Ubuntu' && matrix.arch == 'arm64' }}
run: |
sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu binutils-aarch64-linux-gnu
- name: Add additional dependencies for Ubuntu arm
if: ${{ matrix.friendlyName == 'Ubuntu' && matrix.arch == 'arm' }}
run: |
sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf binutils-arm-linux-gnueabihf pkg-config-arm-linux-gnueabihf
sudo sed -i "s/^deb/deb [arch=amd64,i386]/g" /etc/apt/sources.list
echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ $(lsb_release -s -c) main universe multiverse restricted" | sudo tee -a /etc/apt/sources.list
echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ $(lsb_release -s -c)-updates main universe multiverse restricted" | sudo tee -a /etc/apt/sources.list
sudo dpkg --add-architecture armhf
sudo apt-get update
sudo apt-get install -y libx11-dev:armhf libx11-xcb-dev:armhf libxkbfile-dev:armhf libsecret-1-dev:armhf
- uses: actions/checkout@v3
with:
repository: ${{ inputs.repository || github.repository }}
ref: ${{ inputs.ref }}
submodules: recursive
- name: Use Node.js ${{ matrix.node }}
if: matrix.friendlyName != 'Ubuntu'
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: yarn

- name: Install unofficial-builds Node.js ${{ matrix.node }} on Ubuntu
if: matrix.friendlyName == 'Ubuntu'
run: |
# This version supports older GLIBC (official builds required a minimum of GLIBC 2.28)
# this might break if you bump the `matrix.node` version - ensure you are on the latest version
# of which ever major/minor release which should have this variant available
#
# See https://github.com/nodejs/unofficial-builds/ for more information on these versions.
#
curl -sL 'https://unofficial-builds.nodejs.org/download/release/v${{ matrix.node }}/node-v${{ matrix.node }}-linux-x64-glibc-217.tar.xz' | xzcat | sudo tar -vx --strip-components=1 -C /usr/local/
sudo npm install --global yarn
# This step can be removed as soon as official Windows arm64 builds are published:
# https://github.com/nodejs/build/issues/2450#issuecomment-705853342
#
# This version is pinned to 18.16.0 as the later version does not have the required
# `win-arm64/node.lib` output that we can consume in this CI build.
- name: Get NodeJS node-gyp lib for Windows arm64
if: ${{ matrix.os == 'windows-2019' && matrix.arch == 'arm64' }}
run: .\script\download-nodejs-win-arm64.ps1 ${{ matrix.node }}

run: .\script\download-nodejs-win-arm64.ps1 18.16.0
- name: Get app version
id: version
run: echo version=$(jq -r ".version" app/package.json) >> $GITHUB_OUTPUT
- name: Install and build dependencies
run: yarn
env:
npm_config_arch: ${{ matrix.arch }}
TARGET_ARCH: ${{ matrix.arch }}
- name: Build production app
run: yarn build:prod
env:
DESKTOP_OAUTH_CLIENT_ID: ${{ secrets.DESKTOP_OAUTH_CLIENT_ID }}
DESKTOP_OAUTH_CLIENT_SECRET:
${{ secrets.DESKTOP_OAUTH_CLIENT_SECRET }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
APPLE_APPLICATION_CERT: ${{ secrets.APPLE_APPLICATION_CERT }}
KEY_PASSWORD: ${{ secrets.APPLE_APPLICATION_CERT_PASSWORD }}
npm_config_arch: ${{ matrix.arch }}
TARGET_ARCH: ${{ matrix.arch }}
- name: Prepare testing environment
if: matrix.arch == 'x64'
run: yarn test:setup
Expand All @@ -116,26 +196,76 @@ jobs:
- name: Run script tests
if: matrix.arch == 'x64'
run: yarn test:script
- name: Install Windows code signing certificate
if: ${{ runner.os == 'Windows' }}
shell: bash
env:
CERT_CONTENTS: ${{ secrets.WINDOWS_CERT_PFX }}
run: base64 -d <<<"$CERT_CONTENTS" > ./script/windows-certificate.pfx
- name: Package production app
run: yarn package
env:
npm_config_arch: ${{ matrix.arch }}
WINDOWS_CERT_PASSWORD: ${{ secrets.WINDOWS_CERT_PASSWORD }}
- name: Upload artifacts
- name: Package application
run: yarn run package
if: ${{ matrix.friendlyName == 'Ubuntu' }}
- name: Upload output artifacts
uses: actions/upload-artifact@v3
if: ${{ inputs.upload-artifacts }}
if: matrix.friendlyName == 'Ubuntu'
with:
name: ${{matrix.friendlyName}}-${{matrix.arch}}
name: ${{ matrix.friendlyName }}-${{ matrix.arch }}-artifacts
path: |
dist/GitHub Desktop-${{matrix.arch}}.zip
dist/GitHubDesktop-*.nupkg
dist/GitHubDesktopSetup-${{matrix.arch}}.exe
dist/GitHubDesktopSetup-${{matrix.arch}}.msi
dist/bundle-size.json
if-no-files-found: error
dist/*.AppImage
dist/*.deb
dist/*.rpm
dist/*.sha256
retention-days: 5

publish:
name: Create GitHub release
needs: [build, lint]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
permissions:
contents: write
steps:
- uses: actions/checkout@v3

- name: Download all artifacts
uses: actions/download-artifact@v3
with:
path: './artifacts'

- name: Display structure of downloaded files
run: ls -R
working-directory: './artifacts'

- name: Get tag name without prefix
run: |
RELEASE_TAG=${GITHUB_REF/refs\/tags\//}
echo "RELEASE_TAG=${RELEASE_TAG}" >> $GITHUB_ENV
tagNameWithoutPrefix="${RELEASE_TAG:8}"
echo "RELEASE_TAG_WITHOUT_PREFIX=${tagNameWithoutPrefix}" >> $GITHUB_ENV

# TODO: generate release notes
# - pull in default if version matches X.Y.Z-linux1
# - otherwise stub template

- name: Generate release notes
run: |
yarn
node -r ts-node/register script/generate-release-notes.ts "${{ github.workspace }}/artifacts" "${{ env.RELEASE_TAG_WITHOUT_PREFIX }}"
RELEASE_NOTES_FILE=script/release_notes.txt
if [[ ! -f "$RELEASE_NOTES_FILE" ]]; then
echo "$RELEASE_NOTES_FILE does not exist. Something might have gone wrong while generating the release notes."
exit 1
fi
echo "Release notes:"
echo "---"
cat ${RELEASE_NOTES_FILE}
echo "---"

- name: Create Release
uses: softprops/action-gh-release@v1
with:
name: GitHub Desktop for Linux ${{ env.RELEASE_TAG_WITHOUT_PREFIX }}
body_path: script/release_notes.txt
files: |
artifacts/**/*.AppImage
artifacts/**/*.deb
artifacts/**/*.rpm
artifacts/**/*.sha256
draft: true
fail_on_unmatched_files: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: 'Code scanning - action'

on:
push:
branches: ['development']
branches: ['development', 'linux']
pull_request:
branches: ['development']
schedule:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ app/node_modules/
junit*.xml
*.swp
tslint-rules/
script/release_notes.txt
Loading