Skip to content
Merged
Show file tree
Hide file tree
Changes from 51 commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
09e506e
Replace version functions by constants
Johannesd3 Feb 9, 2021
85be0d0
Adjust documentation
Johannesd3 Feb 12, 2021
bce4858
Add semver constant, rename "build id" env var
Johannesd3 Feb 13, 2021
c8e45ab
Modified startup message
jdertmann Feb 17, 2021
58bd339
Restore MSRV to 1.41
jdertmann Feb 18, 2021
da0e913
Merge pull request #647 from Johannesd3/msrv_1.41
sashahilton00 Feb 23, 2021
4beb3d5
Add version string CLI parameter, set name to optional parameter, def…
sashahilton00 Feb 23, 2021
56f1fb6
Merge pull request #595 from Johannesd3/const_versions
ashthespy Feb 26, 2021
8dc1e80
separated stream for each seek
philippe44 Feb 27, 2021
f29e521
High-resolution volume control and normalisation
roderickvd Feb 24, 2021
1672eb8
Fix build on Rust < 1.50.0
roderickvd Mar 2, 2021
5257be7
Add command-line option to set F32 or S16 bit output
roderickvd Mar 12, 2021
6379926
Fix example
roderickvd Mar 12, 2021
a4ef174
Fix Alsa backend for 64-bit systems
roderickvd Mar 12, 2021
5f26a74
Add support for S32 output format
roderickvd Mar 13, 2021
309e264
Rename steepness to knee
roderickvd Mar 14, 2021
9dcaeee
Default to S16 output
roderickvd Mar 16, 2021
770ea15
Add support for S24 and S24_3 output formats
roderickvd Mar 16, 2021
b94879d
Fix GStreamer buffer pool size [ref #660 review]
roderickvd Mar 18, 2021
a1326ba
First round of refactoring
roderickvd Mar 18, 2021
001d3ca
Bump Alsa, cpal and GStreamer crates
roderickvd Mar 19, 2021
86dbaa8
true/false don't need to be explicit
philippe44 Mar 20, 2021
74b2fea
Refactor sample conversion into separate struct
roderickvd Mar 21, 2021
bfca1ec
Minor code improvements and crates bump
roderickvd Mar 27, 2021
cdbce21
Make S16 to F32 sample conversion less magical
roderickvd Mar 27, 2021
a200b25
Fix formatting
roderickvd Mar 27, 2021
cc60dc1
Fix buffer size in JACK Audio backend
roderickvd Mar 27, 2021
d252eee
Warn about broken backends
roderickvd Mar 27, 2021
07d710e
Use AudioFormat size for SDL
roderickvd Mar 31, 2021
78bc621
Move SamplesConverter into convert.rs
roderickvd Apr 5, 2021
928a673
DRY up constructors
roderickvd Apr 5, 2021
6df9779
Merge pull request #664 from philippe44/passthrough-update
sashahilton00 Apr 9, 2021
f5274f5
Merge branch 'dev' into tokio_migration
Johannesd3 Apr 9, 2021
7c3d891
Fix clippy warnings
Johannesd3 Mar 31, 2021
11ce290
Fix formatting
Johannesd3 Apr 1, 2021
d0ea963
Optimize requantizer to work in `f32`, then round
roderickvd Apr 9, 2021
222f9bb
Bump playback crates to the latest supporting Rust 1.41.1
roderickvd Apr 9, 2021
e20b96c
Merge remote-tracking branch 'upstream/dev' into hi-res-volume-control
roderickvd Apr 9, 2021
7ddb1a2
Reuse librespot-core's Diffie Hellman in discovery
Johannesd3 Mar 10, 2021
9378ae5
Bump num-bigint dependency
Johannesd3 Mar 18, 2021
8fe2e01
Merge pull request #660 from roderickvd/hi-res-volume-control
sashahilton00 Apr 10, 2021
e688e7e
Almost eliminate util module
Johannesd3 Mar 18, 2021
cb8c9c2
Enable apresolve always in binary
Johannesd3 Apr 1, 2021
b7350b7
Restore previous feature flags
Johannesd3 Apr 9, 2021
9a3a666
Bump MSRV to 1.45
Johannesd3 Apr 9, 2021
5435ab3
Fix compile errors in backends
Johannesd3 Apr 1, 2021
690e0d2
Add simple tests to librespot-core
Johannesd3 Apr 2, 2021
ff49982
Add missing feature flag to tokio
Johannesd3 Apr 9, 2021
317e586
Improve CI
Johannesd3 Apr 9, 2021
26c127c
Merge branch 'dev' into tokio_migration
Johannesd3 Apr 10, 2021
a576194
Fix bug in rodio backend
Johannesd3 Apr 10, 2021
b4f9ae3
Fix clippy warnings
Johannesd3 Apr 10, 2021
3e9aee1
Renamed variable
Johannesd3 Apr 10, 2021
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
139 changes: 105 additions & 34 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,61 +4,81 @@ name: test
on:
push:
branches: [master, dev]
paths: ['**.rs', '**.toml', '**.lock', '**.yml']
paths:
[
"**.rs",
"Cargo.toml",
"/Cargo.lock",
"/rustfmt.toml",
"/.github/workflows",
]
pull_request:
branches: [master, dev]
paths: ['**.rs', '**.toml', '**.lock', '**.yml']
paths:
[
"**.rs",
"Cargo.toml",
"/Cargo.lock",
"/rustfmt.toml",
"/.github/workflows",
]
schedule:
# Run CI every week
- cron: "00 01 * * 0"

env:
RUST_BACKTRACE: 1

jobs:
fmt:
name: 'Rust: format check'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# Only run the formatting check for stable
include:
- os: ubuntu-latest
toolchain: stable
name: rustfmt
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
# Use default profile to get rustfmt
profile: default
toolchain: ${{ matrix.toolchain }}
profile: minimal
toolchain: stable
override: true
- run: cargo fmt --verbose --all -- --check
components: rustfmt
- run: cargo fmt --all -- --check

test:
test-linux:
needs: fmt
name: cargo +${{ matrix.toolchain }} build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
toolchain:
- 1.42.0 # MSRV (Minimum supported rust version)
- 1.45 # MSRV (Minimum supported rust version)
- stable
- beta
experimental: [false]
# Ignore failures in nightly, not ideal, but necessary
# Ignore failures in nightly
include:
- os: ubuntu-latest
toolchain: nightly
experimental: true
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
override: true

- name: Get Rustc version
id: get-rustc-version
run: echo "::set-output name=version::$(rustc -V)"
shell: bash

- name: Cache Rust dependencies
uses: actions/cache@v2
with:
Expand All @@ -67,21 +87,65 @@ jobs:
~/.cargo/registry/cache
~/.cargo/git
target
key: ${{ runner.os }}-build-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-${{ steps.get-rustc-version.outputs.version }}-${{ hashFiles('**/Cargo.lock') }}

- name: Install developer package dependencies
run: sudo apt-get update && sudo apt-get install libpulse-dev portaudio19-dev libasound2-dev libsdl2-dev gstreamer1.0-dev libgstreamer-plugins-base1.0-dev
- run: cargo build --locked --no-default-features
- run: cargo build --locked --examples
- run: cargo build --locked --no-default-features --features "with-tremor"
- run: cargo build --locked --no-default-features --features "with-vorbis"
- run: cargo build --locked --no-default-features --features "alsa-backend"
- run: cargo build --locked --no-default-features --features "portaudio-backend"
- run: cargo build --locked --no-default-features --features "pulseaudio-backend"
- run: cargo build --locked --no-default-features --features "jackaudio-backend"
- run: cargo build --locked --no-default-features --features "rodiojack-backend"
- run: cargo build --locked --no-default-features --features "rodio-backend"
- run: cargo build --locked --no-default-features --features "sdl-backend"
- run: cargo build --locked --no-default-features --features "gstreamer-backend"
run: sudo apt-get update && sudo apt-get install libpulse-dev portaudio19-dev libasound2-dev libsdl2-dev gstreamer1.0-dev libgstreamer-plugins-base1.0-dev libavahi-compat-libdnssd-dev

- run: cargo build --workspace --examples
- run: cargo test --workspace

- run: cargo install cargo-hack
- run: cargo hack --workspace --remove-dev-deps
- run: cargo build -p librespot-core --no-default-features
- run: cargo build -p librespot-core
- run: cargo hack build --each-feature -p librespot-audio
- run: cargo build -p librespot-connect
- run: cargo build -p librespot-connect --no-default-features --features with-dns-sd
- run: cargo hack build --locked --each-feature

test-windows:
needs: fmt
name: cargo build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest]
toolchain: [stable]
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.toolchain }}
profile: minimal
override: true

- name: Get Rustc version
id: get-rustc-version
run: echo "::set-output name=version::$(rustc -V)"
shell: bash

- name: Cache Rust dependencies
uses: actions/cache@v2
with:
path: |
~/.cargo/registry/index
~/.cargo/registry/cache
~/.cargo/git
target
key: ${{ runner.os }}-${{ steps.get-rustc-version.outputs.version }}-${{ hashFiles('**/Cargo.lock') }}

- run: cargo build --workspace --examples
- run: cargo test --workspace

- run: cargo install cargo-hack
- run: cargo hack --workspace --remove-dev-deps
- run: cargo build --no-default-features
- run: cargo build

test-cross-arm:
needs: fmt
Expand All @@ -97,13 +161,20 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
target: ${{ matrix.target }}
toolchain: ${{ matrix.toolchain }}
override: true

- name: Get Rustc version
id: get-rustc-version
run: echo "::set-output name=version::$(rustc -V)"
shell: bash

- name: Cache Rust dependencies
uses: actions/cache@v2
with:
Expand All @@ -112,7 +183,7 @@ jobs:
~/.cargo/registry/cache
~/.cargo/git
target
key: ${{ runner.os }}-build-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-${{ matrix.target }}-${{ steps.get-rustc-version.outputs.version }}-${{ hashFiles('**/Cargo.lock') }}
- name: Install cross
run: cargo install cross || true
- name: Build
Expand Down
2 changes: 1 addition & 1 deletion COMPILING.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ curl https://sh.rustup.rs -sSf | sh

Follow any prompts it gives you to install Rust. Once that’s done, Rust's standard tools should be setup and ready to use.

*Note: The current minimum required Rust version at the time of writing is 1.40.0, you can find the current minimum version specified in the `.github/workflow/test.yml` file.*
*Note: The current minimum required Rust version at the time of writing is 1.45, you can find the current minimum version specified in the `.github/workflow/test.yml` file.*

#### Additional Rust tools - `rustfmt`
To ensure a consistent codebase, we utilise [`rustfmt`](https://github.com/rust-lang/rustfmt), which is installed by default with `rustup` these days, else it can be installed manually with:
Expand Down
Loading