Commit Graph

40 Commits

Author SHA1 Message Date
Robert Adam
b3dd3d3f79 CHANGE(server): Remove gRPC implementation
The gRPC implementation never left the experimental state and never
reached a properly stable state to the point where we would feel good
about enabling it by default. In addition to that, there has been no
further attempts at finding and fixing the encountered issues in the
implementation (except #3947 but that was discontinued).

As such we had an essentially unmaintained piece of code in our server
implementation that was known to be buggy and that nobody wanted to fix.
In addition to that the implementation itself could not be considered
very clean or elegant and therefore only represented a few smelly
corners in our code base.

For this reason, we decided to remove the gRPC support entirely from
Mumble (for now).

What we hope to gain by that is:
- Prevent people from building unstable server versions and then coming
to us complaining that it crashed/misbehaved
- Removing (essentially) dead code
- Reduce the RPC implementation complexity

That last piece is crucial: By removing gRPC support we reduce the
amount of supported RPC frameworks to only one (ignoring DBus for now).
Our future plans include a refactoring of how RPC is being handled and
implemented and only having to worry about maintaining compatibility
with one RPC system is much easier than having to worry about two (with
(slightly) different APIs).
Once the RPC implementation has been rewritten, more RPC backends may be
reintroduced and in that process we might investigate adding a proper
gRPC implementation to the code (that then hopefully is more stable than
the current one).

Fixes #4567
Fixes #4197
Fixes #3496
Fixes #3429
Fixes #3265
2022-03-16 08:23:38 +01:00
Robert Adam
84d49d5c9b
Merge PR #5531: CHANGE(client): Use JSON file for storing settings
This PR streamlines the settings format on all OS and (hopefully) increases the readability
of the settings file A LOT (more or less self-explaining settings identifiers instead of some
weird terms or variable names only understood by the core devs themselves (if at all)).

In addition to and surrounding this feature, several changes, improvements and fixes on
the general topic of handling settings are included as well. See individual commit messages
for details.

Fixes #1940

As an aside: This change is an important step towards being able to provide portable Mumble
installations.
2022-02-11 18:47:11 +01:00
Robert Adam
c2b42aecb4 CI: Use --output-on-failure flag for ctest
This flag makes sure that the verbose output of running the test cases
is not shown, unless the test fails. In that case the full output is
displayed (for that test case).
2022-02-07 20:13:03 +01:00
Robert Adam
2480e1342e TEST(client): Settings JSON serialization 2022-02-07 20:10:23 +01:00
luz paz
b0016256af DOCS: Fix typos
Found via `codespell -q 3 -S *.ts,./3rdparty,./3rdPartyLicenses -L
aci,ba,crypted,datas,doubleclick,feld,hsi,ist,keypair,ro,unknwn`
Includes misc. fixes to .github/ and cmake files
2022-02-06 18:27:12 +01:00
Klemens Nanni
0ba01161bf MAINT(github): List OpenBSD as supported OS
Noticed while creating #5488.
2022-01-21 03:35:40 +03:00
Robert Adam
df89dc1030 CI: Update clang-format action 2022-01-17 08:16:44 +01:00
Davide Beatrici
25cb73731b
MAINT(github): Remove Bountysource funding link 2022-01-03 03:16:25 +01:00
Robert Adam
2f1b34d771 CI: Update clang-format action
The old version was using Ubuntu Groovy as a base, which went EOL in
July, 2020 and apparently now the package repositories (required to run
this action) have been shut down.

The newer release uses Ubuntu focal (20.04) which is an LTS and will
remain supported for a while.
2021-12-23 21:07:35 +01:00
Robert Adam
4de7e4be7d
MAINT: Fix feature request form
Previously multi-selection was allowed for the
"OS-specific?" field, which doesn't make sense.
2021-12-01 09:22:31 +01:00
Robert Adam
6dd5524978
MAINT: Convert bug report template to form 2021-12-01 09:19:35 +01:00
Robert Adam
cf767d6110
MAINT: Fix feature request form 2021-12-01 09:06:56 +01:00
Robert Adam
bd164a7234
MAINT: Convert feature request template to form 2021-12-01 09:06:18 +01:00
Robert Adam
728b572073
MAINT: Add issue config file 2021-12-01 08:58:32 +01:00
Robert Adam
298273d956
MAINT: Update support issue form 2021-12-01 08:53:20 +01:00
Robert Adam
94b41e7de7
MAINT: Add support issue form 2021-12-01 08:42:45 +01:00
Robert Adam
318e75a1ac CI: Add CodeQL analysis 2021-06-15 19:40:45 +02:00
Robert Adam
e9434420ba CI: Fix PR checks for backports
The commit style checker had a hard-coded assumption that the changes
were made against the master branch. For backports that is not the case
though and that's why the script fails for backports as soon as the
master and the backport branch have diverged.
2021-05-20 08:22:27 +02:00
Davide Beatrici
822185e997
MAINT(github): Add Liberapay funding link 2021-04-25 00:14:06 +02:00
Robert Adam
f8303557b7
MAINT: Removed outdated comment 2021-04-23 19:50:31 +02:00
Robert Adam
8ed36e8246 CI: Check code-formatting
This new check will fail if there is a c++ source code file that is not
formatted according to our project's formatting standards (specified via
.clang-format file).
2021-04-18 20:33:19 +02:00
Robert Adam
0f45328cd1 CI: Include submodules in checks CI 2021-04-18 20:32:51 +02:00
Robert Adam
a1bdff18a3 MAINT: Renamed CI job to "pr-checks" 2021-04-18 20:31:51 +02:00
Robert Adam
27dbee8e62 FEAT(client): Plugin framework
This commit introduces a new plugin framework into the codebase of the
Mumble client. Note that "plugin" here really refers to a (more or less)
general purpose plugin and is therefore not to be confused with the
previously available positional data plugins (only responsible for
fetching positional data from a running game and passing that to
Mumble).

The plugin interface is written in C, removing the compiler-dependence
the old "plugins" had. Instead plugins can now be written in an
arbitrary language as long as that language is capable of being compiled
into a shared library and also being capable of being C-compatible.

As already indicated a plugin is essentially a shared library that
provides certain functions that allow Mumble to interface with it.

Inside Mumble the so-called PluginManager is responsible for managing
the plugins and relaying events to the respective callbacks. Plugins
themselves can also interact with Mumble on their own initiative by
using the provided API functions.

Fixes #2455
Fixes #2148
Fixes #1594
Fixes #2051
Fixes #3742
Fixes #4575
Fixes #4751
2021-04-16 20:15:44 +02:00
Robert Adam
b48ca7caec CI: Added check to prevent CRLF endings 2021-03-28 20:17:38 +02:00
Robert Adam
d1f28fdabd CI: Use unity builds
On Linux (using shared library dependencies) this reduced the average
compilation time to about 50% of the originally needed time.
2021-03-06 18:57:22 +01:00
Robert Adam
f32c1eef38 CI: Omit online tests
Tests that require an active internet connection will now be omitted on
CI as they recently caused a bunch of CI jobs to fail just because some
external server was unreachable.
2021-03-03 17:14:29 +01:00
Robert Adam
9cb4a533a9 CI: Added commit-style check
This commit adds a CI check (on GitHub Actions) that checks every commit
in a PR for accordance to our commit guidelines.
2021-02-27 20:22:09 +01:00
Robert Adam
a2ecb07910 MAINT(github): Update PR template
It seems that nobody read the comment that was inserted into the PR.
Thus this was now changed to a checkbox that will be visible after
having created the PR.
2021-02-14 09:13:41 +01:00
Robert Adam
d083d2ce9d
Merge pull request #4597: MAINT: Fix PR template not working 2020-12-01 18:07:41 +01:00
Robert Adam
4b2d346515
MAINT: Fix indentation in GitHub Actions script 2020-12-01 10:02:22 +01:00
Robert Adam
2ba3c354c2 MAINT: Fix PR template not working 2020-11-30 07:51:18 +01:00
Robert Adam
c03521593c CI: Introduce GitHub Actions
Now that Travis CI decided to stop offering their services for free, we
had to look for an alternative solution. GitHub Actions seems to fit the
picture really well and has the benefit of being tightly integrated into
GitHub (obviously).

For now only shared builds for Ubuntu 18.04 and 20.04 are included. The
scripts and the framework for also including static builds is part of
this commit as well but as it stands the static build always failed and
therefore it was given up upon for now.

Adding support for other OS will require a few tweaks and a couple of
new scripts but in general the framework was built with this kind of
extension in mind.
2020-11-29 17:40:15 +01:00
Robert Adam
f4a1e0ed7e
MAINT: Update PR template
The previous version only contained a comment and would therefore effectively be empty.
2020-11-21 19:31:47 +01:00
Robert Adam
96173413c9 MAINT: Create PR template
The template includes a link to our commit guidelines as this seems to
be something a lot of people don't know about.
2020-11-21 08:44:41 +01:00
Robert Adam
79152903bf
.github/stale.yml: Configure stale-bot 2020-04-10 10:08:07 +02:00
Robert Adam
1f21debd2e
Fix markdown for feature request issue template 2020-03-13 07:29:13 +01:00
Robert Adam
f384cca9de
Create no-response.yml
This is the configuration file for the no-response-bot
2020-01-19 20:22:55 +01:00
Robert Adam
a176d67fb8 Created issue templates 2020-01-19 17:22:47 +01:00
Davide Beatrici
2fa33c4ac1
Create FUNDING.yml 2019-07-01 19:59:54 +02:00