Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ccf12e988 | ||
|
|
74121fce78 | ||
|
|
0a7491d747 | ||
|
|
68bf3e7ff7 | ||
|
|
93dd8f535d | ||
|
|
0b993525f5 | ||
|
|
5dfdb68c75 | ||
|
|
443d1dc42b | ||
|
|
34f6c9514a | ||
|
|
2f2619403a | ||
|
|
d25cc847f3 | ||
|
|
769ad859e6 | ||
|
|
7ba0e5b42c | ||
|
|
201339345d | ||
|
|
6ee4205f1e |
192
.gitlab-ci.yml
192
.gitlab-ci.yml
@@ -1,84 +1,107 @@
|
|||||||
include:
|
include:
|
||||||
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/6f86b8bcb0cd5168c32779c4fea9a893c4a0c046/templates/ci-fairy.yml"
|
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/bbe5232986c9b98eb1efe62484e07216f7d1a4df/templates/fedora.yml'
|
||||||
|
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/6f86b8bcb0cd5168c32779c4fea9a893c4a0c046/templates/ci-fairy.yml"
|
||||||
|
|
||||||
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/34:2021-08-12.0
|
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/34:2021-08-12.0
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- pre_review
|
- pre_review
|
||||||
- review
|
- prepare
|
||||||
- build
|
- review
|
||||||
|
- build
|
||||||
|
- deploy
|
||||||
|
|
||||||
default:
|
default:
|
||||||
# Cancel jobs if newer commits are pushed to the branch
|
# Cancel jobs if newer commits are pushed to the branch
|
||||||
interruptible: true
|
interruptible: true
|
||||||
# Auto-retry jobs in case of infra failures
|
# Auto-retry jobs in case of infra failures
|
||||||
retry:
|
retry:
|
||||||
max: 1
|
max: 1
|
||||||
when:
|
when:
|
||||||
- 'runner_system_failure'
|
- 'runner_system_failure'
|
||||||
- 'stuck_or_timeout_failure'
|
- 'stuck_or_timeout_failure'
|
||||||
- 'scheduler_failure'
|
- 'scheduler_failure'
|
||||||
- 'api_failure'
|
- 'api_failure'
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions
|
FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions
|
||||||
LINT_LOG: "eslint-report.xml"
|
LINT_LOG: "eslint-report.xml"
|
||||||
JS_LOG: "js-report.txt"
|
JS_LOG: "js-report.txt"
|
||||||
|
|
||||||
workflow:
|
workflow:
|
||||||
rules:
|
rules:
|
||||||
- if: '$CI_MERGE_REQUEST_IID'
|
- if: '$CI_MERGE_REQUEST_IID'
|
||||||
- if: '$CI_COMMIT_TAG'
|
- if: '$CI_COMMIT_TAG'
|
||||||
- if: '$CI_COMMIT_BRANCH'
|
- if: '$CI_COMMIT_BRANCH'
|
||||||
|
|
||||||
.pipeline_guard: &pipeline_guard
|
.pipeline_guard: &pipeline_guard
|
||||||
rules:
|
rules:
|
||||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||||
- if: '$CI_COMMIT_TAG'
|
- if: '$CI_COMMIT_TAG'
|
||||||
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||||
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/'
|
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/'
|
||||||
- when: 'manual'
|
- when: 'manual'
|
||||||
|
|
||||||
|
.gnome-shell-extensions.fedora:34:
|
||||||
|
variables:
|
||||||
|
FDO_DISTRIBUTION_VERSION: 34
|
||||||
|
FDO_DISTRIBUTION_TAG: '2021-08-31.0'
|
||||||
|
FDO_DISTRIBUTION_PACKAGES: >
|
||||||
|
meson git gettext sassc
|
||||||
|
|
||||||
|
.prereview_req: &prereview_req
|
||||||
|
needs:
|
||||||
|
- check_commit_log
|
||||||
|
- check-merge-request
|
||||||
|
|
||||||
check_commit_log:
|
check_commit_log:
|
||||||
extends:
|
extends:
|
||||||
- .fdo.ci-fairy
|
- .fdo.ci-fairy
|
||||||
stage: pre_review
|
stage: pre_review
|
||||||
script:
|
script:
|
||||||
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
|
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
|
||||||
then
|
then
|
||||||
ci-fairy check-commits --junit-xml=commit-message-junit-report.xml ;
|
ci-fairy check-commits --junit-xml=commit-message-junit-report.xml ;
|
||||||
else
|
else
|
||||||
echo "Not a merge request" ;
|
echo "Not a merge request" ;
|
||||||
fi
|
fi
|
||||||
<<: *pipeline_guard
|
<<: *pipeline_guard
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: 1 week
|
expire_in: 1 week
|
||||||
paths:
|
paths:
|
||||||
- commit-message-junit-report.xml
|
- commit-message-junit-report.xml
|
||||||
reports:
|
reports:
|
||||||
junit: commit-message-junit-report.xml
|
junit: commit-message-junit-report.xml
|
||||||
|
|
||||||
check-merge-request:
|
check-merge-request:
|
||||||
extends:
|
extends:
|
||||||
- .fdo.ci-fairy
|
- .fdo.ci-fairy
|
||||||
stage: pre_review
|
stage: pre_review
|
||||||
script:
|
script:
|
||||||
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
|
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
|
||||||
then
|
then
|
||||||
ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request-report.xml ;
|
ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request-report.xml ;
|
||||||
else
|
else
|
||||||
echo "Not a merge request" ;
|
echo "Not a merge request" ;
|
||||||
fi
|
fi
|
||||||
<<: *pipeline_guard
|
<<: *pipeline_guard
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: 1 week
|
expire_in: 1 week
|
||||||
paths:
|
paths:
|
||||||
- check-merge-request-report.xml
|
- check-merge-request-report.xml
|
||||||
reports:
|
reports:
|
||||||
junit: check-merge-request-report.xml
|
junit: check-merge-request-report.xml
|
||||||
|
|
||||||
|
build-fedora-container:
|
||||||
|
extends:
|
||||||
|
- .fdo.container-build@fedora@x86_64
|
||||||
|
- .gnome-shell-extensions.fedora:34
|
||||||
|
stage: prepare
|
||||||
|
<<: *prereview_req
|
||||||
|
|
||||||
js_check:
|
js_check:
|
||||||
stage: review
|
stage: review
|
||||||
|
<<: *prereview_req
|
||||||
script:
|
script:
|
||||||
- find extensions -name '*.js' -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG
|
- find extensions -name '*.js' -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG
|
||||||
- (! grep -q . $JS_LOG)
|
- (! grep -q . $JS_LOG)
|
||||||
@@ -89,6 +112,7 @@ js_check:
|
|||||||
|
|
||||||
eslint:
|
eslint:
|
||||||
stage: review
|
stage: review
|
||||||
|
<<: *prereview_req
|
||||||
script:
|
script:
|
||||||
- eslint -o $LINT_LOG -f junit --resolve-plugins-relative-to $(npm root -g) extensions
|
- eslint -o $LINT_LOG -f junit --resolve-plugins-relative-to $(npm root -g) extensions
|
||||||
artifacts:
|
artifacts:
|
||||||
@@ -99,7 +123,7 @@ eslint:
|
|||||||
|
|
||||||
build-bundles:
|
build-bundles:
|
||||||
stage: build
|
stage: build
|
||||||
needs: ["check_commit_log"]
|
<<: *prereview_req
|
||||||
script:
|
script:
|
||||||
- ./export-zips.sh
|
- ./export-zips.sh
|
||||||
artifacts:
|
artifacts:
|
||||||
@@ -107,3 +131,47 @@ build-bundles:
|
|||||||
expose_as: 'Get Extension bundles here'
|
expose_as: 'Get Extension bundles here'
|
||||||
paths:
|
paths:
|
||||||
- zip-files/
|
- zip-files/
|
||||||
|
|
||||||
|
fedora-build:
|
||||||
|
extends:
|
||||||
|
- .fdo.distribution-image@fedora
|
||||||
|
- .gnome-shell-extensions.fedora:34
|
||||||
|
stage: build
|
||||||
|
needs:
|
||||||
|
- build-fedora-container
|
||||||
|
before_script:
|
||||||
|
- git submodule update --init
|
||||||
|
script:
|
||||||
|
- meson setup build --werror -Dextension_set=all -Dclassic_mode=true
|
||||||
|
- meson compile -C build
|
||||||
|
- meson test -C build
|
||||||
|
- meson install -C build
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- build
|
||||||
|
|
||||||
|
fedora-dist:
|
||||||
|
extends:
|
||||||
|
- .fdo.distribution-image@fedora
|
||||||
|
- .gnome-shell-extensions.fedora:34
|
||||||
|
stage: deploy
|
||||||
|
needs:
|
||||||
|
- fedora-build
|
||||||
|
before_script:
|
||||||
|
- git submodule update --init
|
||||||
|
script:
|
||||||
|
- meson dist -C build
|
||||||
|
rules:
|
||||||
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||||
|
changes:
|
||||||
|
- "**/meson.build"
|
||||||
|
- meson/*
|
||||||
|
|
||||||
|
fedora-dist-tarball:
|
||||||
|
extends: fedora-dist
|
||||||
|
artifacts:
|
||||||
|
expose_as: 'Get tarball here'
|
||||||
|
paths:
|
||||||
|
- build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_TAG'
|
||||||
|
|||||||
20
NEWS
20
NEWS
@@ -1,3 +1,23 @@
|
|||||||
|
41.0
|
||||||
|
====
|
||||||
|
* Bump version
|
||||||
|
|
||||||
|
41.rc.1
|
||||||
|
=======
|
||||||
|
* Fix pre-generating stylesheets in tarball [Florian; !190]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Florian Müllner
|
||||||
|
|
||||||
|
41.rc
|
||||||
|
=====
|
||||||
|
* window-list: Adapt to overview-on-startup [Florian; !185]
|
||||||
|
* apps-menu: Use a custom 'toggle-menu' shortcut [Florian; !173]
|
||||||
|
* Misc. bug fixes and cleanups [Florian; !186]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Florian Müllner
|
||||||
|
|
||||||
41.beta
|
41.beta
|
||||||
=======
|
=======
|
||||||
* window-list: Extend reactive area of minimap to screen edges [Adam; !171]
|
* window-list: Extend reactive area of minimap to screen edges [Adam; !171]
|
||||||
|
|||||||
@@ -378,9 +378,12 @@ class ApplicationsButton extends PanelMenu.Button {
|
|||||||
this._hidingId = Main.overview.connect('hiding', () => {
|
this._hidingId = Main.overview.connect('hiding', () => {
|
||||||
this.remove_accessible_state(Atk.StateType.CHECKED);
|
this.remove_accessible_state(Atk.StateType.CHECKED);
|
||||||
});
|
});
|
||||||
Main.layoutManager.connect('startup-complete',
|
Main.wm.addKeybinding(
|
||||||
this._setKeybinding.bind(this));
|
'apps-menu-toggle-menu',
|
||||||
this._setKeybinding();
|
ExtensionUtils.getSettings(),
|
||||||
|
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
|
||||||
|
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
|
||||||
|
() => this.menu.toggle());
|
||||||
|
|
||||||
this._desktopTarget = new DesktopTarget();
|
this._desktopTarget = new DesktopTarget();
|
||||||
this._desktopTarget.connect('app-dropped', () => {
|
this._desktopTarget.connect('app-dropped', () => {
|
||||||
@@ -431,11 +434,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
|||||||
this._tree.disconnect(this._treeChangedId);
|
this._tree.disconnect(this._treeChangedId);
|
||||||
this._tree = null;
|
this._tree = null;
|
||||||
|
|
||||||
Main.wm.setCustomKeybindingHandler('panel-main-menu',
|
Main.wm.removeKeybinding('apps-menu-toggle-menu');
|
||||||
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
|
|
||||||
Main.sessionMode.hasOverview
|
|
||||||
? Main.overview.toggle.bind(Main.overview)
|
|
||||||
: null);
|
|
||||||
|
|
||||||
this._desktopTarget.destroy();
|
this._desktopTarget.destroy();
|
||||||
}
|
}
|
||||||
@@ -477,12 +476,6 @@ class ApplicationsButton extends PanelMenu.Button {
|
|||||||
super._onOpenStateChanged(menu, open);
|
super._onOpenStateChanged(menu, open);
|
||||||
}
|
}
|
||||||
|
|
||||||
_setKeybinding() {
|
|
||||||
Main.wm.setCustomKeybindingHandler('panel-main-menu',
|
|
||||||
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
|
|
||||||
() => this.menu.toggle());
|
|
||||||
}
|
|
||||||
|
|
||||||
_redisplay() {
|
_redisplay() {
|
||||||
this.applicationsBox.destroy_all_children();
|
this.applicationsBox.destroy_all_children();
|
||||||
this.categoriesBox.destroy_all_children();
|
this.categoriesBox.destroy_all_children();
|
||||||
|
|||||||
@@ -3,3 +3,4 @@ extension_data += configure_file(
|
|||||||
output: metadata_name,
|
output: metadata_name,
|
||||||
configuration: metadata_conf
|
configuration: metadata_conf
|
||||||
)
|
)
|
||||||
|
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"extension-id": "@extension_id@",
|
"extension-id": "@extension_id@",
|
||||||
"uuid": "@uuid@",
|
"uuid": "@uuid@",
|
||||||
|
"settings-schema": "@gschemaname@",
|
||||||
"gettext-domain": "@gettext_domain@",
|
"gettext-domain": "@gettext_domain@",
|
||||||
"name": "Applications Menu",
|
"name": "Applications Menu",
|
||||||
"description": "Add a category-based menu for applications.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.",
|
"description": "Add a category-based menu for applications.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.",
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<schemalist gettext-domain="gnome-shell-extensions">
|
||||||
|
<schema id="org.gnome.shell.extensions.apps-menu"
|
||||||
|
path="/org/gnome/shell/extensions/apps-menu/">
|
||||||
|
<key name="apps-menu-toggle-menu" type="as">
|
||||||
|
<default>["<Alt>F1"]</default>
|
||||||
|
<summary>Keybinding to open the applications menu</summary>
|
||||||
|
<description>
|
||||||
|
Keybinding to open the applications menu.
|
||||||
|
</description>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
</schemalist>
|
||||||
@@ -778,13 +778,16 @@ class WindowList extends St.Widget {
|
|||||||
this._updateKeyboardAnchor();
|
this._updateKeyboardAnchor();
|
||||||
});
|
});
|
||||||
|
|
||||||
this._overviewHidingId = Main.overview.connect('hiding', () => {
|
this._overviewHidingId = Main.overview.connect('hidden', () => {
|
||||||
this.visible = !Main.layoutManager.primaryMonitor.inFullscreen;
|
this.visible = !Main.layoutManager.primaryMonitor.inFullscreen;
|
||||||
this._updateKeyboardAnchor();
|
this._updateKeyboardAnchor();
|
||||||
});
|
});
|
||||||
|
|
||||||
this._fullscreenChangedId =
|
this._fullscreenChangedId =
|
||||||
global.display.connect('in-fullscreen-changed', () => {
|
global.display.connect('in-fullscreen-changed', () => {
|
||||||
|
// Work-around for initial change from unknown to !fullscreen
|
||||||
|
if (Main.overview.visible)
|
||||||
|
this.hide();
|
||||||
this._updateKeyboardAnchor();
|
this._updateKeyboardAnchor();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
project('gnome-shell-extensions',
|
project('gnome-shell-extensions',
|
||||||
version: '41.beta',
|
version: '41.0',
|
||||||
meson_version: '>= 0.44.0',
|
meson_version: '>= 0.53.0',
|
||||||
license: 'GPL2+'
|
license: 'GPL2+'
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -89,3 +89,6 @@ subdir('extensions')
|
|||||||
subdir('po')
|
subdir('po')
|
||||||
|
|
||||||
meson.add_dist_script('meson/generate-stylesheets.py')
|
meson.add_dist_script('meson/generate-stylesheets.py')
|
||||||
|
meson.add_dist_script('meson/check-version.py',
|
||||||
|
meson.project_version(),
|
||||||
|
'NEWS')
|
||||||
|
|||||||
32
meson/check-version.py
Executable file
32
meson/check-version.py
Executable file
@@ -0,0 +1,32 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import os, sys
|
||||||
|
from pathlib import Path
|
||||||
|
import argparse, subprocess
|
||||||
|
|
||||||
|
def check_version(version, file, type='news'):
|
||||||
|
if type == 'news':
|
||||||
|
line = file.open().readline()
|
||||||
|
ok = line.startswith(version)
|
||||||
|
print("{}: {}".format(file, "OK" if ok else "FAILED"))
|
||||||
|
if not ok:
|
||||||
|
raise Exception("{} does not start with {}".format(file, version))
|
||||||
|
elif type == 'metainfo':
|
||||||
|
subprocess.run(['appstream-util', 'validate-version', file, version],
|
||||||
|
check=True)
|
||||||
|
else:
|
||||||
|
raise Exception('Not implemented')
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description='Check release version information.')
|
||||||
|
parser.add_argument('--type', choices=['metainfo','news'], default='news')
|
||||||
|
parser.add_argument('version', help='the version to check for')
|
||||||
|
parser.add_argument('files', nargs='+', help='files to check')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
distroot = os.environ.get('MESON_DIST_ROOT', './')
|
||||||
|
|
||||||
|
try:
|
||||||
|
for file in args.files:
|
||||||
|
check_version(args.version, Path(distroot, file), args.type)
|
||||||
|
except:
|
||||||
|
sys.exit(1)
|
||||||
@@ -10,4 +10,4 @@ distroot = os.environ.get('MESON_DIST_ROOT')
|
|||||||
stylesheet_path = PurePath('data/gnome-classic.css')
|
stylesheet_path = PurePath('data/gnome-classic.css')
|
||||||
src = PurePath(sourceroot, stylesheet_path.with_suffix('.scss'))
|
src = PurePath(sourceroot, stylesheet_path.with_suffix('.scss'))
|
||||||
dst = PurePath(distroot, stylesheet_path)
|
dst = PurePath(distroot, stylesheet_path)
|
||||||
subprocess.call(['sassc', '-a', src, dst])
|
subprocess.run(['sassc', '-a', src, dst], check=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user