mirror of
				https://github.com/bspeice/qadapt
				synced 2025-10-31 09:30:37 -04:00 
			
		
		
		
	Use new CI template
This commit is contained in:
		
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,5 +1,3 @@ | |||||||
| /target | /target | ||||||
| **/*.rs.bk | **/*.rs.bk | ||||||
| Cargo.lock | Cargo.lock | ||||||
| *.swp |  | ||||||
| .idea/ |  | ||||||
							
								
								
									
										75
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,75 @@ | |||||||
|  | # Created by the Rust CI generator: https://github.com/bspeice/rust-ci | ||||||
|  | dist: trusty | ||||||
|  | language: rust | ||||||
|  | # Used during coverage to build kcov | ||||||
|  | addons.apt.packages: | ||||||
|  |   - libcurl4-openssl-dev | ||||||
|  |   - libelf-dev | ||||||
|  |   - libdw-dev | ||||||
|  |   - binutils-dev | ||||||
|  |  | ||||||
|  | matrix: | ||||||
|  |   include: | ||||||
|  |     # Uniquely identifies the build that uploads to codecov.io | ||||||
|  |     - env: CODECOV=TRUE | ||||||
|  |       rust: nightly | ||||||
|  |     # Uniquely identifies the build that uploads to crates.io | ||||||
|  |     - env: CRATESIO=TRUE | ||||||
|  |       rust: nightly | ||||||
|  |     - rust: nightly | ||||||
|  |     # To build against specific Rust versions, include an item like the following: | ||||||
|  |     # - rust: 1.30.0 | ||||||
|  |     - rust: nightly | ||||||
|  |       os: osx | ||||||
|  |  | ||||||
|  | before_install: | ||||||
|  |   - set -e | ||||||
|  |   - rustup self update | ||||||
|  |  | ||||||
|  | install: | ||||||
|  |   - source ~/.cargo/env || true | ||||||
|  |  | ||||||
|  | script: | ||||||
|  |   - rustup component add rustfmt-preview | ||||||
|  |   - cargo fmt --all -- --check | ||||||
|  |   - | | ||||||
|  |     if [ -z "$TRAVIS_TAG" ]; then | ||||||
|  |       cargo test | ||||||
|  |       cargo test --release | ||||||
|  |     fi | ||||||
|  |  | ||||||
|  | after_script: set +e | ||||||
|  | after_success: | | ||||||
|  |     # Build test coverage statistics | ||||||
|  |     wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz && \ | ||||||
|  |     tar xzf master.tar.gz && \ | ||||||
|  |     cd kcov-master && \ | ||||||
|  | 		mkdir build && \ | ||||||
|  | 		cd build && \ | ||||||
|  | 		cmake .. && \ | ||||||
|  | 		make && \ | ||||||
|  | 		make install DESTDIR=../../kcov-build && \ | ||||||
|  |     rm -rf kcov-master && \ | ||||||
|  |     for file in target/debug/*-*[^\.d]; do \ | ||||||
|  |       mkdir -p "target/cov/$(basename $file)"; \ | ||||||
|  |       ./kcov-build/usr/local/bin/kcov --exclude-pattern=/.cargo,/usr/lib --verify "target/cov/$(basename $file)" "$file"; \ | ||||||
|  |     done && \ | ||||||
|  |     bash <(curl -s https://codecov.io/bash) && \ | ||||||
|  |     echo "Uploaded code coverage" | ||||||
|  |  | ||||||
|  | branches: | ||||||
|  |   only: | ||||||
|  |     # Release tags - vX.Y.Z | ||||||
|  |     - /^v\d+\.\d+\.\d+.*$/ | ||||||
|  |     - master | ||||||
|  |  | ||||||
|  |  | ||||||
|  | deploy: | ||||||
|  |   - provider: cargo | ||||||
|  |     on: | ||||||
|  |       condition: "$CRATESIO = TRUE" | ||||||
|  |       tags: true | ||||||
|  |     skip_cleanup: true | ||||||
|  |     token: "0I4H/gLnBP0G26lTWKAWTVzgBNulh1Ih4XIYtAtOSf5TTAH4J7h634qPCVU/D73RhyYQKIUT9FxtY107tPNDKqFDY0QK6WgJJIsHJw4LuS2A2XdPp7i5lU8LMc58o0Qq2wGV+1Fy5QLfMt0OfKJcu0QdZiOYffOL5Vquj6srlq0xhslD3Xit87P4H5tqQYHoKXNwkWFZhRPOMep14oU1F7gUrAFMFIxnHxpii06v3TYz1pmQ4xxfO8ElM8br6uhahgngAnJSmN57kPWpU43g2zltJEH6Hi0HDu0mzKTbkqFv/JXSuVd43vC6p8NGURdojTII3zsZ5Cg4R6Xnd/z++2QH71S9eD3FtyVp0pwprJxjLc2BLx/b53bD6i8YR2wLpuPk+d2Ghr04zJRPNNm2DK4Hpq2pk3pt06l3YnkJU3hb7Fbt8dacXag/3y6lf70Mj58bVcNuItVWF1u7+DTaVM5XdsD7ZerYRm0E4r5IbukEwz4Cjk4UCbFZgFk46jsG+AQ3ngIw1wjwAx16tpCmRKUNwR1h31TlKFm9ihE/kDiabia56jYJyzWhSu5GHppSEWmHBLajEse7SowpDTIAyJLKD3QG6/YT+ukulkb1lweS6AvlYaKiJo0H2h7ndUhXDMn9SnJUTQmFcnQ3N125l+NC6BY+Z1P/Sk7fKXmy55k=" | ||||||
|  |  | ||||||
|  |       | ||||||
							
								
								
									
										31
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | |||||||
|  | # Contributing | ||||||
|  |  | ||||||
|  | If you're interested in assisting with development, here are the best ways to help: | ||||||
|  |  | ||||||
|  | ## Bug Reports | ||||||
|  |  | ||||||
|  | While this repository has automated testing in place, testing is no replacement for | ||||||
|  | real-world usage. If you have questions about what behavior should be, please open | ||||||
|  | an issue [on Github](https://github.com/bspeice/qadapt/issues). | ||||||
|  |  | ||||||
|  | ## Feature Requests | ||||||
|  |  | ||||||
|  | The work of coding is never finished. If you have ideas on how to make this code | ||||||
|  | better for the future, please open an issue [on Github](https://github.com/bspeice/qadapt/issues). | ||||||
|  |  | ||||||
|  | Writing code to implement the feature isn't mandatory (though is appreciated), | ||||||
|  | and there are no bad suggestions. | ||||||
|  |  | ||||||
|  | ## Documentation/Examples | ||||||
|  |  | ||||||
|  | To make this project easy to use, additional documentation and usage examples | ||||||
|  | are greatly appreciated. Please also feel free to report typos and other | ||||||
|  | documentation clarity errors. | ||||||
|  |  | ||||||
|  | ## Pull Requests | ||||||
|  |  | ||||||
|  | Thanks for your contribution! To assist expediently merging your code, | ||||||
|  | please ensure the following have been run: | ||||||
|  |  | ||||||
|  | - [] `cargo fmt` | ||||||
|  | - [] `make doc` | ||||||
							
								
								
									
										2
									
								
								CONTRIBUTORS.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								CONTRIBUTORS.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | `qadapt` is developed by: | ||||||
|  |   Bradlee Speice <bradlee@speice.io> | ||||||
							
								
								
									
										3
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								LICENSE
									
									
									
									
									
								
							| @ -1,10 +1,11 @@ | |||||||
|  |  | ||||||
| Copyright 2018 Bradlee Speice | Copyright 2018 Bradlee Speice | ||||||
|  |  | ||||||
| Licensed under the Apache License, Version 2.0 (the "License"); | Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
| you may not use this file except in compliance with the License. | you may not use this file except in compliance with the License. | ||||||
| You may obtain a copy of the License at | You may obtain a copy of the License at | ||||||
|  |  | ||||||
|     http://www.apache.org/licenses/LICENSE-2.0 |   http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  | ||||||
| Unless required by applicable law or agreed to in writing, software | Unless required by applicable law or agreed to in writing, software | ||||||
| distributed under the License is distributed on an "AS IS" BASIS, | distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  | |||||||
							
								
								
									
										19
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,19 @@ | |||||||
|  | .PHONY: all | ||||||
|  | all: | ||||||
|  | 	@echo 'Please use `cargo` commands to manage building/testing qadapt' | ||||||
|  |  | ||||||
|  | .PHONY: contributors | ||||||
|  | contributors: | ||||||
|  | 	@echo '`qadapt` is developed by:' > CONTRIBUTORS.md | ||||||
|  | 	@echo '  Bradlee Speice <bradlee@speice.io>' >> CONTRIBUTORS.md | ||||||
|  | 	@git log --format='  %aN <%aE>' | grep -v "Bradlee Speice <bradlee@speice.io>" | sort -u >> CONTRIBUTORS.md | ||||||
|  |  | ||||||
|  | .PHONY: readme README.md | ||||||
|  | readme: README.md | ||||||
|  |  | ||||||
|  | README.md: src/lib.rs | ||||||
|  | 	@sed -i '/---/q' README.md | ||||||
|  | 	@cat src/lib.rs | grep '//!' | sed 's/^\/\/\! *//g' >> README.md | ||||||
|  |  | ||||||
|  | .PHONY: doc | ||||||
|  | doc: readme contributors | ||||||
							
								
								
									
										24
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								README.md
									
									
									
									
									
								
							| @ -1,17 +1,25 @@ | |||||||
| The Quick And Dirty Allocation Profiling Tool | # qadapt | ||||||
| ============================================= |  | ||||||
|  |  | ||||||
| [](https://crates.io/crates/qadapt) | [](https://crates.io/crates/qadapt) | ||||||
| [](https://docs.rs/qadapt/) | [](https://docs.rs/qadapt/) | ||||||
|  | [](https://travis-ci.org/bspeice/qadapt) | ||||||
|  | <!-- | ||||||
|  |     AppVeyor badges use a unique ID that we're not able to compute ahead of time. | ||||||
|  |     Please see https://ci.appveyor.com/project/bspeice/qadapt/settings/badges | ||||||
|  |     to set up the badge | ||||||
|  | --> | ||||||
|  | [](https://codecov.io/gh/bspeice/qadapt) | ||||||
|  |  | ||||||
|  | --- | ||||||
|  | # The Quick And Dirty Allocation Profiling Tool | ||||||
|  |  | ||||||
| This allocator is a helper for writing high-performance code that is allocation/drop free; | This allocator is a helper for writing high-performance code that is allocation/drop free; | ||||||
| for functions annotated with `#[allocate_panic]`, QADAPT will detect when allocations/drops | for functions annotated with `#[allocate_panic]`, QADAPT will detect when allocations/drops | ||||||
| happen during their execution (and execution of any functions they call) and throw a | happen during their execution (and execution of any functions they call) and throw a | ||||||
| thread panic if this occurs. | thread panic if this occurs. QADAPT-related code is *stripped out during release builds*, | ||||||
|  | so no worries about random allocations crashing in production. | ||||||
|  |  | ||||||
| Because QADAPT panics on allocation and is rather slow (for an allocator) it is **strongly** | Currently this crate is Nightly-only, but will work once `const fn` is in Stable. | ||||||
| recommended that QADAPT (the allocator) be used only in code tests. Functions annotated with |  | ||||||
| `#[allocate_panic]` will have no side effects if the QADAPT allocator is not being used, |  | ||||||
| so the attribute is safe to leave everywhere. |  | ||||||
|  |  | ||||||
| Currently this crate is Nightly-only, but will work once `const fn` is in Stable. | Please also take a look at [qadapt-macro](https://github.com/bspeice/qadapt/tree/master/qadapt-macro) | ||||||
|  | for some helper macros to make working with QADAPT a bit easier. | ||||||
|  | |||||||
							
								
								
									
										59
									
								
								appveyor.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								appveyor.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | |||||||
|  | environment: | ||||||
|  |   matrix: | ||||||
|  |     # MinGW | ||||||
|  |     - TARGET: i686-pc-windows-gnu | ||||||
|  |       RUST_VERSION: stable | ||||||
|  |     - TARGET: x86_64-pc-windows-gnu | ||||||
|  |       RUST_VERSION: stable | ||||||
|  |  | ||||||
|  |     # MSVC | ||||||
|  |     - TARGET: i686-pc-windows-msvc | ||||||
|  |       RUST_VERSION: stable | ||||||
|  |     - TARGET: x86_64-pc-windows-msvc | ||||||
|  |       RUST_VERSION: stable | ||||||
|  |  | ||||||
|  |     # Testing other channels | ||||||
|  |     - TARGET: x86_64-pc-windows-gnu | ||||||
|  |       RUST_VERSION: 1.30.1 | ||||||
|  |     - TARGET: x86_64-pc-windows-gnu | ||||||
|  |       RUST_VERSION: nightly | ||||||
|  |     - TARGET: x86_64-pc-windows-msvc | ||||||
|  |       RUST_VERSION: nightly | ||||||
|  |  | ||||||
|  | install: | ||||||
|  |   - ps: >- | ||||||
|  |       If ($Env:TARGET -eq 'x86_64-pc-windows-gnu') { | ||||||
|  |         $Env:PATH += ';C:\msys64\mingw64\bin' | ||||||
|  |       } ElseIf ($Env:TARGET -eq 'i686-pc-windows-gnu') { | ||||||
|  |         $Env:PATH += ';C:\msys64\mingw32\bin' | ||||||
|  |       } | ||||||
|  |   - curl -sSf -o rustup-init.exe https://win.rustup.rs/ | ||||||
|  |   - rustup-init.exe -y --default-host %TARGET% --default-toolchain %RUST_VERSION% | ||||||
|  |   - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin | ||||||
|  |   - rustc -Vv | ||||||
|  |   - cargo -V | ||||||
|  |  | ||||||
|  | test_script: | ||||||
|  |   # If you need to run additional steps during testing, they should be placed | ||||||
|  |   # inside this block | ||||||
|  |   - if [%APPVEYOR_REPO_TAG%]==[false] ( | ||||||
|  |       cargo test --target %TARGET% && | ||||||
|  |       cargo test --target %TARGET% --release | ||||||
|  |     ) | ||||||
|  |  | ||||||
|  | cache: | ||||||
|  |   - C:\Users\appveyor\.cargo\registry | ||||||
|  |   - target | ||||||
|  |  | ||||||
|  | branches: | ||||||
|  |   only: | ||||||
|  |     # release tag format is "vX.Y.Z" | ||||||
|  |     - /^v\d+\.\d+\.\d+.*$/ | ||||||
|  |     - master | ||||||
|  |  | ||||||
|  | notifications: | ||||||
|  |   - provider: Email | ||||||
|  |     on_build_success: false | ||||||
|  |  | ||||||
|  | # Building is done in the test phase, so we disable Appveyor's build phase. | ||||||
|  | build: false | ||||||
							
								
								
									
										1
									
								
								rustfmt.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								rustfmt.toml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | # Empty file uses default settings | ||||||
		Reference in New Issue
	
	Block a user