Commit Graph

175 Commits

Author SHA1 Message Date
Isse
7e18384e1c Disable mimalloc for non msvc builds 2022-07-06 19:08:19 +02:00
IsseW
57d6b4a55f Switch to mimalloc on windows 2022-07-04 09:15:18 +02:00
Ben Wallis
99a992d985 Added iproute2 and net-tools to docker image to facilitate diagnosing network issues 2022-05-30 21:15:21 +01:00
Imbris
a366fc4512 Update tracy 2022-05-26 00:04:03 -04:00
Marcel Märtens
64b9602760 update further dependencies, including strum and get rid of old strum_macro 2022-04-04 16:06:47 +02:00
Marcel Märtens
affdf3131f update a bunch of dependencies, including clap3 2022-04-04 11:43:29 +02:00
Imbris
d7d8d8d2da Small cleanup in server-cli/src/main.rs 2022-02-19 19:22:13 -05:00
Marcel Märtens
802b9e7914 Change the version number to 0.12 2022-02-18 22:36:53 +01:00
Marcel Märtens
7ba45fa7e5 adjust tracing and remove unused coding 2022-02-05 13:04:16 +01:00
protheory8
7148737252 Remove quic_files server setting
(cherry picked from commit 38339d90ceb87008bbb0ce31ad4e28350213a401)
2022-02-05 13:04:16 +01:00
protheory8
89580eba8c Remove gameserver_address setting and add protocols_and_addresses setting
(cherry picked from commit a5e4575ad349aacb1f41a7e93e3d5ff9eeafc6ae)
2022-02-05 13:04:16 +01:00
juliancoffee
fba89517de Move Veloren to 2021 edition 2022-01-26 16:46:40 +02:00
Imbris
027f2f5719 Setup client binary that connects to the server with a group of clients positioned and moving in a few different patterns for profiling the server under network load. 2021-12-25 18:14:39 -05:00
João Capucho
8b89903d57
Bump tracing-subscriber to 0.3.2
We were pulling two versions of it. Causing some compilation errors
2021-11-26 17:41:51 +00:00
Marcel Märtens
aa93b4b53c update other binaries 2021-11-20 20:19:48 +01:00
Marcel Märtens
e29ede7c97 updating dependencies,
cannot update the following dependencies:
 - vek: Sharps SIMD isnt upstream
 - tracing-subscriber: MakeWriter was adjusted and i was to lazy to fiddle with lifetimes,
 - refinery, rustsql: we have a custom refinery version which is incompatible with newer rustsql
 - equi + egui_winit + egui_wgpu_backend: i tried it in this commit but it turned out that they dependo n wgpu which we cant update
 - wgpu: cant update due new version doesnt support DX11

Got quinn updated which now require some dependencies to be explicit.
2021-11-20 20:17:49 +01:00
Marcel Märtens
88685cc016 update crates 2021-09-20 14:39:01 +02:00
Marcel Märtens
7913e6a9ba Change the version number to 0.11 2021-09-10 20:19:17 +02:00
Ben Wallis
d256d09d28 Fixed server-cli command parsing failure on Windows 2021-09-05 16:46:20 +01:00
Joshua Barretto
643807e5ff Multiple color gradient options 2021-08-29 13:57:36 +01:00
Joshua Barretto
c2498d81c7 Added feature flag for terrain persistence 2021-08-12 10:48:00 +01:00
Imbris
172bddf731 Make admin add/remove command arguments positional again 2021-07-30 01:25:38 -04:00
Dr. Dystopia
70d0840e96 Resolve unused '#[allow(clippy::unnecessary_wraps)]' error supressions 2021-07-24 20:14:26 +02:00
Marcel
423b87316e Merge branch 'xMAC94x/experiment_ci' into 'master'
fix/cleanup ci

See merge request veloren/veloren!2595
2021-07-16 00:33:35 +00:00
Marcel Märtens
7c2cf9f707 only build once, dont build multiple targets. save time
Profiles:
(all are build, all are release, all are --no-default-features --features="default-publish" )

A) -p veloren-voxygen AND -p veloren-server-cli
B) NONE AND -p veloren-server-cli
C) NONE
D) NONE but server-cli/Cargo.toml has a default-publish feature

Timings
A)
> time cargo build -p veloren-voxygen --release --no-default-features --features default-publish
Compiling veloren-client v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/client)
   Compiling refinery v0.5.0 (https://gitlab.com/veloren/refinery.git?rev=8ecf4b4772d791e6c8c0a3f9b66a7530fad1af3e#8ecf4b47)
   Compiling gfx-auxil v0.9.0 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling gfx-backend-gl v0.8.1 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling veloren-server v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server)
   Compiling wgpu v0.8.0 (https://github.com/gfx-rs/wgpu.git?rev=a92b8549a8e2cb9dac781bafc5ed32828f3caf46#a92b8549)
   Compiling wgpu-profiler v0.4.0 (https://github.com/Imberflur/wgpu-profiler?tag=wgpu-0.8#b156eb14)
    Finished release [optimized] target(s) in 16m 19s
cargo build -p veloren-voxygen --release --no-default-features --features   3091.78s user 71.80s system 322% cpu 16:19.44 total
> time cargo build --release -p veloren-server-cli
   Compiling veloren-world v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/world)
   Compiling refinery v0.5.0 (https://gitlab.com/veloren/refinery.git?rev=8ecf4b4772d791e6c8c0a3f9b66a7530fad1af3e#8ecf4b47)
   Compiling veloren-server v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server)
   Compiling veloren-server-cli v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server-cli)
    Finished release [optimized] target(s) in 6m 06s
cargo build --release -p veloren-server-cli  1024.29s user 18.42s system 284% cpu 6:06.62 total

B)
> time cargo build --release --no-default-features --features default-publish
   Compiling veloren-client v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/client)
   Compiling veloren-voxygen-egui v0.9.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/egui)
   Compiling gfx-auxil v0.9.0 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling gfx-backend-gl v0.8.1 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling refinery v0.5.0 (https://gitlab.com/veloren/refinery.git?rev=8ecf4b4772d791e6c8c0a3f9b66a7530fad1af3e#8ecf4b47)
   Compiling veloren-server v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server)
   Compiling wgpu v0.8.0 (https://github.com/gfx-rs/wgpu.git?rev=a92b8549a8e2cb9dac781bafc5ed32828f3caf46#a92b8549)
   Compiling wgpu-profiler v0.4.0 (https://github.com/Imberflur/wgpu-profiler?tag=wgpu-0.8#b156eb14)
   Compiling veloren-voxygen-anim-dyn v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/anim/dyn)
   Compiling veloren-voxygen-egui-dyn v0.9.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/egui/dyn)
   Compiling veloren-server-cli v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server-cli)
    Finished release [optimized] target(s) in 17m 10s
cargo build --release --no-default-features --features default-publish  4415.58s user 91.10s system 437% cpu 17:10.66 total
> time cargo build --release -p veloren-server-cli
   Compiling veloren-world v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/world)
   Compiling refinery v0.5.0 (https://gitlab.com/veloren/refinery.git?rev=8ecf4b4772d791e6c8c0a3f9b66a7530fad1af3e#8ecf4b47)
   Compiling veloren-server v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server)
   Compiling veloren-server-cli v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server-cli)
    Finished release [optimized] target(s) in 6m 08s
cargo build --release -p veloren-server-cli  1123.93s user 23.01s system 311% cpu 6:08.14 total

C)
> time cargo build --release --no-default-features --features default-publish
   Compiling prometheus-hyper v0.1.2
   Compiling authc v1.0.0 (https://gitlab.com/veloren/auth.git?rev=fb3dcbc4962b367253f8f2f92760ef44d2679c9a#fb3dcbc4)
   Compiling veloren-common-net v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/common/net)
   Compiling veloren-plugin-api v0.1.0 (/mnt/nfs/marcel/Entw/Rust/veloren/plugin/api)
   Compiling veloren-voxygen-anim v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/anim)
   Compiling veloren-plugin-rt v0.1.0 (/mnt/nfs/marcel/Entw/Rust/veloren/plugin/rt)
   Compiling veloren-common-systems v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/common/systems)
   Compiling veloren-common-state v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/common/state)
   Compiling veloren-world v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/world)
   Compiling veloren-world v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/world)
   Compiling veloren-client v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/client)
   Compiling veloren-voxygen-egui v0.9.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/egui)
   Compiling refinery v0.5.0 (https://gitlab.com/veloren/refinery.git?rev=8ecf4b4772d791e6c8c0a3f9b66a7530fad1af3e#8ecf4b47)
   Compiling veloren-server v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server)
   Compiling gfx-auxil v0.9.0 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling gfx-backend-gl v0.8.1 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling wgpu v0.8.0 (https://github.com/gfx-rs/wgpu.git?rev=a92b8549a8e2cb9dac781bafc5ed32828f3caf46#a92b8549)
   Compiling wgpu-profiler v0.4.0 (https://github.com/Imberflur/wgpu-profiler?tag=wgpu-0.8#b156eb14)
   Compiling veloren-voxygen-anim-dyn v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/anim/dyn)
   Compiling veloren-voxygen-egui-dyn v0.9.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/egui/dyn)
   Compiling veloren-server-cli v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server-cli)
    Finished release [optimized] target(s) in 16m 41s
cargo build --release --no-default-features --features default-publish  4349.71s user 90.02s system 443% cpu 16:41.58 total

D)
> time cargo build --release --no-default-features --features default-publish
   Compiling prometheus-hyper v0.1.2
   Compiling authc v1.0.0 (https://gitlab.com/veloren/auth.git?rev=fb3dcbc4962b367253f8f2f92760ef44d2679c9a#fb3dcbc4)
   Compiling veloren-common-net v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/common/net)
   Compiling veloren-plugin-api v0.1.0 (/mnt/nfs/marcel/Entw/Rust/veloren/plugin/api)
   Compiling veloren-voxygen-anim v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/anim)
   Compiling veloren-plugin-rt v0.1.0 (/mnt/nfs/marcel/Entw/Rust/veloren/plugin/rt)
   Compiling veloren-common-state v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/common/state)
   Compiling veloren-common-systems v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/common/systems)
   Compiling veloren-world v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/world)
   Compiling veloren-client v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/client)
   Compiling veloren-voxygen-egui v0.9.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/egui)
   Compiling refinery v0.5.0 (https://gitlab.com/veloren/refinery.git?rev=8ecf4b4772d791e6c8c0a3f9b66a7530fad1af3e#8ecf4b47)
   Compiling veloren-server v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server)
   Compiling gfx-auxil v0.9.0 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling gfx-backend-gl v0.8.1 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling wgpu v0.8.0 (https://github.com/gfx-rs/wgpu.git?rev=a92b8549a8e2cb9dac781bafc5ed32828f3caf46#a92b8549)
   Compiling wgpu-profiler v0.4.0 (https://github.com/Imberflur/wgpu-profiler?tag=wgpu-0.8#b156eb14)
   Compiling veloren-voxygen-egui-dyn v0.9.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/egui/dyn)
   Compiling veloren-voxygen-anim-dyn v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/anim/dyn)
   Compiling veloren-server-cli v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server-cli)
    Finished release [optimized] target(s) in 17m 30s
cargo build --release --no-default-features --features default-publish  4462.34s user 92.17s system 433% cpu 17:31.00 total

Hashes
A)
veloren-voxygen: e9de69144b4d459dc0da2775b2b87ac9
veloren-server-cli: 8c131c1b1daaa6efd0f83d95d9b5dad9
B)
veloren-voxygen: 415e14ec1c14a6a559d2908b843d88d5
veloren-server-cli: 8c131c1b1daaa6efd0f83d95d9b5dad9
C)
veloren-voxygen: 415e14ec1c14a6a559d2908b843d88d5
veloren-server-cli: 3bf56d0d0a76191a578ed5e71389f512
D)
veloren-voxygen: 415e14ec1c14a6a559d2908b843d88d5
veloren-server-cli: c9dc4fb0bfcbd831150eebac788e2f71

Binary Sizes:
A)
veloren-voxygen: 156667288
veloren-server-cli: 85136736
B)
veloren-voxygen: 162860552
veloren-server-cli: 85136736
C)
veloren-voxygen: 162860552
veloren-server-cli: 95597304
D)
veloren-voxygen: 162860552
veloren-server-cli: 95586360

Total Cache Size:
A) 4.1G
B) 5G
C) 4.1G
D) 4.1G
2021-07-15 10:56:32 +02:00
Ben Wallis
73b5c03510 Changed veloren-server-cli to run in interactive basic mode as default. Removed -b and added -t which enables the tui. 2021-07-14 20:03:16 +01:00
Marcel Märtens
9b3b21f368 fix clippy warnings 2021-07-12 12:09:09 +02:00
Marcel Märtens
98800c5424 update depednencies 2021-07-08 12:21:02 +02:00
Ben Wallis
a50ed6b50a Fixed build warnings for server-cli related to non-default plugin feature 2021-06-26 21:56:03 +01:00
Imbris
659b42e813 Remove tracy features that are no longer needed now that macros have been fixed 2021-06-19 04:27:50 -04:00
Marcel Märtens
4167621f5d Change the version number to 0.10 2021-06-12 10:14:07 +02:00
Imbris
df16c20eb4 Require all commands to succeed in server-cli Dockerfile 2021-06-07 13:31:01 -04:00
Marcel Märtens
a65ef892ca use split_inclusive instead 2021-05-12 18:40:12 +02:00
Marcel Märtens
863e11d5e3 enable TUI to actually handle newline character.
but we are not sure if NEWLINEs are wanted in logs as it could cause problems with automated parsing.
2021-05-12 18:40:08 +02:00
Joshua Yanovski
33494c0e29 More fixes to stdin input.
Adding tty makes sure docker attach won't be accidentally detached
by ctrl-C (there are better ways of doing this but this one works
for now)

shell-words more closely emulates Bash's tokenizer rules (but without
doing things like environment variable expansion) which allows us to use
multiline strings as reasons, etc.  Unfortunately entering newlines
still won't work the way we've written things since shell-words does not
right now give enough information to incrementally build up a valid
string, just says there was a tokenizing error; but maybe in the future
we can fix that.
2021-05-11 04:15:59 -07:00
Joshua Yanovski
51911417ee Open stdin when using Veloren with docker.
This allows entering CLI commands like `help`, `admin add`, and
`shutdown` directly using `docker attach`, rather than needing to run
server-cli commands separately or perform a manual reboot or interrupt.
2021-05-10 11:44:04 -07:00
Joshua Yanovski
e7587c4d9d Added non-admin moderators and timed bans.
The security model has been updated to reflect this change (for example,
moderators cannot revert a ban by an administrator).  Ban history is
also now recorded in the ban file, and much more information about the
ban is stored (whitelists and administrators also have extra
information).

To support the new information without losing important information,
this commit also introduces a new migration path for editable settings
(both from legacy to the new format, and between versions).  Examples
of how to do this correctly, and migrate to new versions of a settings
file, are in the settings/ subdirectory.

As part of this effort, editable settings have been revamped to
guarantee atomic saves (due to the increased amount of information in
each file), some latent bugs in networking were fixed, and server-cli
has been updated to go through StructOpt for both calls through TUI
and argv, greatly simplifying parsing logic.
2021-05-09 21:19:16 -07:00
Marcel Märtens
4cfdbdd069 use a constant for recommended_threads 2021-05-05 14:35:06 +02:00
Marcel Märtens
0142cf37f0 limit tokio threads to 1/4 of num_cpus
make sure that rayon has at least 2 threads even on 1cpu systems to increase stability
2021-05-04 21:06:11 +02:00
Marcel
ea16fa10ab use different docker tags for master and nightly runs,
This allow us to decouple our test-ci from the release-ci and is necessary for multiple release channels in the future.
E.g. we can run a master build without it directly beeing pushed to watchtower and airshipper (config setting requiered on airshipper)
Adjust Tags for server-cli
2021-04-22 21:38:29 +02:00
Yusuf Bera Ertan
62844d816a
build(nix): switch to nix-cargo-integration 2021-04-17 21:37:57 +03:00
Ben Wallis
95d7a3d761 Fixed cargo test-server. Removed -Z package-features from .cargo/config as it is no longer required 2021-04-15 19:07:46 +01:00
Ben Wallis
1de94a9979 * Replaced diesel with rusqlite and refinery
* Added "migration of migrations" to transfer the data from the __diesel_schema_migrations table to the refinery_schema_history table
* Removed all down migrations as refinery does not support down migrations
* Changed all diesel up migrations to refinery naming format
* Added --sql-log-mode parameter to veloren-server-cli to allow SQL tracing and profiling
* Added /disconnect_all_players admin command
* Added disconnectall CLI command
* Fixes for several potential persistence-related race conditions
2021-04-13 22:05:47 +00:00
Marcel Märtens
ccb78eeb5c move tracing code to own crate 2021-03-30 16:35:36 +02:00
Marcel Märtens
edebe06a10 make interactive OPT-OUT isntead so that it's not forgotten when its important. and its more userfriendly for the average user. scripts prob just add a -n or -b 2021-03-26 00:22:46 +01:00
Marcel Märtens
fdc40f52d9 give more threads a fixed name 2021-03-22 12:37:03 +01:00
Marcel Märtens
96049904a6 add keepalive in server-cli so we know it still ticks, ~ all 30s 2021-03-21 19:15:40 +01:00
Marcel Märtens
2733ba2e27 Change the version number to 0.9 2021-03-20 13:07:09 +01:00
Marcel Märtens
a286eb084a create a wrapper around rayon, slowjobpool, that spawns on rayon but drop feed it 2021-03-16 13:31:04 +01:00
Avi Weinstock
2e2b74fde1 Copy assets/server to the right place in server-cli's Dockerfile. 2021-03-15 09:46:16 -04:00