diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..a3f7bfe --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,68 @@ +name: CI +on: + push: + branches: + - master + - /^release-.*$/ + pull_request: + types: [opened, synchronize, reopened] +jobs: + test: + name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + version: + - '1.2' # minimum Julia version that your package supports. + - '1' # Leave this line unchanged. '1' will automatically expand to the latest stable 1.x release of Julia. + os: + - ubuntu-latest + arch: + - x64 + steps: + - uses: actions/checkout@v2 + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - uses: actions/cache@v1 + env: + cache-name: cache-artifacts + with: + path: ~/.julia/artifacts + key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} + restore-keys: | + ${{ runner.os }}-test-${{ env.cache-name }}- + ${{ runner.os }}-test- + ${{ runner.os }}- + - uses: julia-actions/julia-buildpkg@v1 + - uses: julia-actions/julia-runtest@v1 + with: + depwarn: error + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v1 + with: + file: lcov.info + docs: + name: Documentation + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: julia-actions/setup-julia@v1 + with: + version: '1' + - run: | + julia --project=docs -e ' + using Pkg + Pkg.develop(PackageSpec(path=pwd())) + Pkg.instantiate()' + - run: | + julia --project=docs -e ' + using Documenter: doctest + using DynamicSparseArrays + doctest(DynamicSparseArrays)' + - run: julia --project=docs docs/make.jl + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DOCUMENTER_KEY: ${{ secrets.documenter }} \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c45a59b..0000000 --- a/.travis.yml +++ /dev/null @@ -1,28 +0,0 @@ -## Documentation: http://docs.travis-ci.com/user/languages/julia/ -language: julia -os: - - linux -julia: - - 1.5 -notifications: - email: false -git: - depth: 99999999 - -## uncomment the following lines to override the default test script -# script: -# - julia -e 'Pkg.clone(pwd()); Pkg.build("DynamicSparseArrays"); Pkg.test("DynamicSparseArrays"; coverage=true)' -after_success: - - julia -e 'Pkg.add("Documenter")' - - julia -e 'cd(Pkg.dir("DynamicSparseArrays")); include(joinpath("docs", "make.jl"))' - - julia -e 'import Pkg; Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())' - -jobs: - include: - - stage: "Documentation" - julia: 1.3 - os: linux - script: - - julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' - - julia --project=docs/ docs/make.jl - after_success: skip diff --git a/Project.toml b/Project.toml index 6988e15..0447b34 100644 --- a/Project.toml +++ b/Project.toml @@ -4,7 +4,7 @@ authors = ["Guillaume Marques "] version = "0.3.0" [compat] -julia = "1" +julia = "≥ 1.2" [extras] Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" diff --git a/README.md b/README.md index faf9377..5f63e37 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # DynamicSparseArrays.jl [![Documentation](https://img.shields.io/badge/docs-dev-blue.svg)](https://atoptima.github.io/DynamicSparseArrays.jl/dev/) -[![Build Status](https://travis-ci.org/atoptima/DynamicSparseArrays.jl.svg?branch=master)](https://travis-ci.org/atoptima/DynamicSparseArrays.jl) +![Build Status](https://github.com/atoptima/DynamicSparseArrays.jl/workflows/CI/badge.svg?branch=master)] [![codecov](https://codecov.io/gh/atoptima/DynamicSparseArrays.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/atoptima/DynamicSparseArrays.jl) [![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) [![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0) diff --git a/docs/src/index.md b/docs/src/index.md index de3851e..af8cd72 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -1,7 +1,5 @@ # DynamicSparseArrays -** Documentation is work in progress** - This package aims to provide dynamic sparse vectors and matrix in Julia. Unlike the sparse arrays provided in `SparseArrays`, @@ -9,10 +7,12 @@ arrays from this package have unfixed size. It means that we can add or delete rows and columns after the instantiation of the array. -This package is a work in progress. -We welcome any contributions. +We designed this package for [Coluna.jl](), a Branch-and-Cut-and-Price (Column-and-row generation) +framework in julia. +We welcome any contributions. + ## Installation Install the package through the package manager of Julia. diff --git a/docs/src/matrix.md b/docs/src/matrix.md index 44a41bf..c819e19 100644 --- a/docs/src/matrix.md +++ b/docs/src/matrix.md @@ -1,9 +1,5 @@ # Sparse Matrix -todo - ---- - -Mode details in following papers : +Implementation of the following paper : > WHEATMAN, Brian et XU, Helen. Packed Compressed Sparse Row: A Dynamic Graph Representation. In : 2018 IEEE High Performance extreme Computing Conference (HPEC). IEEE, 2018. p. 1-7. diff --git a/docs/src/vector.md b/docs/src/vector.md index e892827..f5be6ee 100644 --- a/docs/src/vector.md +++ b/docs/src/vector.md @@ -1,10 +1,6 @@ # Sparse Vector -todo - ---- - -Mode details in following papers : +Implementation from : > BENDER, Michael A. et HU, Haodong. An adaptive packed-memory array. ACM Transactions on Database Systems (TODS), 2007, vol. 32, no 4, p. 26. @@ -13,7 +9,9 @@ Mode details in following papers : > ITAI, Alon, KONHEIM, Alan G., et RODEH, Michael. A sparse table implementation of priority queues. In : International Colloquium on Automata, Languages, and Programming. Springer, Berlin, Heidelberg, 1981. p. 417-431. -One-phase rebalance & Partially dearmotized PMA : + + +One-phase rebalance & Partially dearmotized PMA (for later?) : > HU, Haodong. Cache-Oblivious Data Structures forMassive Data Sets. PhD Dissertation, 2007, p. 102.