Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plots 2.0 #4904

Draft
wants to merge 90 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
c91872b
Road to plots 2.0 (#4866)
isentropic Mar 12, 2024
b1811ba
create `PlotsBase` (#4913)
t-bltg Apr 1, 2024
d7aa8bc
fix tests - restore preferences - cleanup (#4914)
t-bltg Apr 7, 2024
a5a028b
restore ci on v2
t-bltg Apr 7, 2024
2979ab5
restore format check on v2
t-bltg Apr 7, 2024
5014e6c
empty commit
t-bltg Apr 7, 2024
4ef0b18
Merge branch 'master' into v2
t-bltg Apr 7, 2024
82f57ba
make downstream test conditional
t-bltg Apr 7, 2024
023b643
cleanup
t-bltg Apr 7, 2024
a5992ba
fix typos
t-bltg Apr 7, 2024
cd272b7
Merge branch 'master' into v2
t-bltg Apr 12, 2024
f27c801
fix test
t-bltg Apr 12, 2024
9d70fa9
fixes
t-bltg Apr 12, 2024
b377179
remove `using`
t-bltg Apr 12, 2024
f55ee23
fix test
t-bltg Apr 12, 2024
3bea623
stable Plots v2 - checkpoint CI ✓
t-bltg Apr 18, 2024
9f185ad
use `@static` for `PythonCall`
t-bltg Apr 25, 2024
4f5b3f2
Merge branch 'master' into v2
t-bltg Apr 27, 2024
4609e98
Merge branch 'master' into v2
t-bltg May 4, 2024
0ab074b
format
t-bltg May 4, 2024
83346a6
use deterministic series IDs in PGFPlotsX (#4933)
ajdunlap May 13, 2024
bb08fa0
Bump julia-actions/cache from 1 to 2 (#4938)
dependabot[bot] May 13, 2024
52d35b9
Bump actions/cache from 3 to 4 (#4937)
dependabot[bot] May 13, 2024
3db0408
Bump peter-evans/create-pull-request from 5 to 6 (#4936)
dependabot[bot] May 13, 2024
f32247a
add recipe for series on Plots v2 (#4941)
BeastyBlacksmith May 23, 2024
617b8aa
GR: Draw all gridlines before axis (v2) (#4960)
dd0 Jul 13, 2024
f75d21a
[v2] Fix floating point equality comparison in layouts (#4973)
penelopeysm Aug 23, 2024
8bb247a
Add docs folder (#4963)
BeastyBlacksmith Aug 28, 2024
4bae77b
CI fixes v2 (#4980)
penelopeysm Sep 10, 2024
0d6f0b4
CompatHelper: add new compat entry for IJulia in [weakdeps] at versio…
github-actions[bot] Sep 13, 2024
bec14d1
CompatHelper: add new compat entry for FileIO in [weakdeps] at versio…
github-actions[bot] Sep 13, 2024
2696246
CompatHelper: add new compat entry for GeometryBasics in [weakdeps] a…
github-actions[bot] Sep 13, 2024
9c256c9
CompatHelper: add new compat entry for Unitful in [weakdeps] at versi…
github-actions[bot] Sep 13, 2024
5a611ce
CompatHelper: add new compat entry for ImageInTerminal in [weakdeps] …
github-actions[bot] Sep 13, 2024
f000fc7
GR backend: use textext for :log2 and :ln axis scaling (#4991) (#4993)
pjaap Oct 2, 2024
17b6ca0
RecipesPipeline: GroupBy: apply idxfilter to errorbars (#4967)
lukas-weber Oct 2, 2024
7b37fd5
Update ci.yml for aarch64 mac
ViralBShah Oct 3, 2024
efcbdba
Update ci.yml
ViralBShah Oct 3, 2024
7b0ae81
Merge pull request #4994 from JuliaPlots/ViralBShah-patch-1
ViralBShah Oct 4, 2024
049bba8
restrict to LTS 1.10 (#4997)
t-bltg Oct 8, 2024
19e3073
Bump peter-evans/create-pull-request from 6 to 7 (#4981)
dependabot[bot] Oct 9, 2024
f137efb
Adding uparrow as a predefined marker and creating unfilled markersha…
leckerbeon Oct 9, 2024
fa63411
delete` .github/workflows/invalidations.yml`
t-bltg Oct 12, 2024
c1cfa30
fix docs on v2 (#4999)
t-bltg Oct 13, 2024
46c6361
merge `GraphRecipes` & `StatsPlots` into monorepo - fix docs build (#…
t-bltg Oct 13, 2024
379b5b2
Update ci_build.sh
t-bltg Oct 13, 2024
861f892
Update ci_build.sh
t-bltg Oct 13, 2024
31840f9
Update ci_build.sh
t-bltg Oct 13, 2024
cc021f6
update docs (#5001)
t-bltg Oct 13, 2024
12d1a41
Update build-docs.sh
t-bltg Oct 13, 2024
f7ed0f7
add `Pkg.precompile`
t-bltg Oct 13, 2024
27d0c52
change urls in `docs/make.jl`
t-bltg Oct 13, 2024
38c6c95
restore test order in ci
t-bltg Oct 13, 2024
324fb8e
prevent segfault
t-bltg Oct 13, 2024
fb045e0
add `MPLBACKEND` to ci script
t-bltg Oct 13, 2024
a6562c1
fix url in docs build script
t-bltg Oct 13, 2024
52c6340
use `devbranch` in `docs/make.jl`
t-bltg Oct 14, 2024
c4ca40d
revert `devbranch` changes
t-bltg Oct 14, 2024
912824f
correct deploy repo
BeastyBlacksmith Oct 24, 2024
b51c665
animation: autoplay <video> in HTML (#5006)
fonsp Oct 24, 2024
bb14fd5
fix `GITHUB_REPOSITORY`
t-bltg Oct 24, 2024
8119dac
add `codespell` action and correct spelling errors (#5011)
t-bltg Nov 1, 2024
43e7f65
update docs for `v2` (#5012)
t-bltg Nov 2, 2024
4cb0a72
temporary docs v2 fix (#5013)
t-bltg Nov 2, 2024
675d4dc
update `build-docs.sh`
t-bltg Nov 2, 2024
5c95a62
update `make.jl`
t-bltg Nov 2, 2024
01701b6
update urls for `v2` (#5014)
t-bltg Nov 2, 2024
c7902ef
add `PlotThemes` into monorepo (#5015)
t-bltg Nov 4, 2024
f272860
update `PlotThemes` README.md
t-bltg Nov 4, 2024
76863f3
CI: extend coverage to all packages
t-bltg Nov 4, 2024
c664bfe
fix typo
t-bltg Nov 4, 2024
1e8ed71
fix typo in `plotly_colorscale` (#5017)
simsurace Nov 6, 2024
b381f54
use `mode = PKGMODE_MANIFEST` in tests
t-bltg Nov 7, 2024
bcb7b31
drop older versions (#5019)
t-bltg Nov 7, 2024
dceac86
change ci results branch
t-bltg Nov 8, 2024
9e88053
fix badge
t-bltg Nov 10, 2024
b1ea6c8
enhance cleanup of `tmp` files - format (#5022)
t-bltg Nov 12, 2024
aa34c88
codespell
t-bltg Nov 12, 2024
d38e624
docs: update `install.md`
t-bltg Nov 12, 2024
b4e4b0d
fix typo
t-bltg Nov 12, 2024
0913999
check version in ci - fix precompilation (#5024)
t-bltg Nov 13, 2024
8f39664
fix `PlotsBase.Commons` usage
t-bltg Nov 13, 2024
6bc1ecc
remove dep (#5025)
t-bltg Nov 13, 2024
2068ec7
add `WEAKDEPS` to trigger package extensions (#5026)
t-bltg Nov 13, 2024
a90fca5
fix typo
t-bltg Nov 13, 2024
8da4afc
fix deps
t-bltg Nov 13, 2024
68a3fa8
fix seed
t-bltg Nov 13, 2024
f017272
bump `codecov/codecov-action` from 4 to 5 (#5028)
dependabot[bot] Nov 19, 2024
0b9a176
Make @df support string column names (#5033)
ron-wolf Nov 25, 2024
da79316
update docs: `learning.md` (#5037)
FredrikHedman Dec 15, 2024
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
1 change: 1 addition & 0 deletions .JuliaFormatter.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
for_in_replacement = "∈"
always_for_in = true
import_to_using = false
align_pair_arrow = true
Expand Down
1 change: 0 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
<!-- Plots is in a 2.0 transition phase. Consider (also) targeting the v2 branch with this change -->
## Description

## Attribution
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/CompatHelper.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: CompatHelper

on:
workflow_dispatch:
schedule:
- cron: '00 00 * * *'

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
name: benchmarks

on:
workflow_dispatch:
pull_request:
branches: [master]

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
Expand Down
129 changes: 53 additions & 76 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
name: ci

on:
workflow_dispatch:
pull_request:
push:
branches: [master]
branches: [master, v2]

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
Expand All @@ -17,56 +18,40 @@ jobs:
ci:
if: "!contains(github.event.head_commit.message, '[skip ci]')"
env:
GKS_ENCODING: "utf8"
GKSwstype: "nul"
JULIA_CONDAPKG_BACKEND: "MicroMamba"
MPLBACKEND: "agg"
JULIA_CONDAPKG_BACKEND: MicroMamba
MPLBACKEND: agg
GKS_ENCODING: utf8
GKSwstype: nul
name: Julia ${{ matrix.version }} - ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
version:
- '1.6' # LTS (minimal declared julia compat in `Project.toml`)
- '1' # latest stable
- '1' # latest stable
- '1.10' # minimal declared julia compat in `Project.toml`
experimental:
- false
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-latest, windows-latest]
arch: [x64]
include:
- os: ubuntu-latest
experimental: false
prefix: xvfb-run # julia-actions/julia-runtest/blob/master/README.md
- os: ubuntu-latest
experimental: false
prefix: xvfb-run
version: '1.7' # only test intermediate release on `ubuntu` to spare resources
- os: ubuntu-latest
experimental: false
prefix: xvfb-run
version: '1.8' # only test intermediate release on `ubuntu` to spare resources
- os: ubuntu-latest
experimental: false
prefix: xvfb-run
version: '1.9' # only test intermediate release on `ubuntu` to spare resources
- os: ubuntu-latest
experimental: true
prefix: xvfb-run
version: '~1.11.0-0' # upcoming julia version, next `rc`
- os: ubuntu-latest
experimental: true
prefix: xvfb-run
version: 'nightly'

version: 'pre' # upcoming julia version (`alpha`, `beta` or `rc`)
- os: macOS-latest
arch: aarch64
version: '1'
experimental: false

steps:
- uses: actions/checkout@v4

- name: Ubuntu LaTeX dependencies
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt-get -y update
sudo apt-get -y install gnuplot poppler-utils texlive-{latex-base,latex-extra,luatex} g++
sudo apt-get -y install g++ gnuplot poppler-utils texlive-{latex-base,latex-extra,luatex}
sudo fc-cache -vr

- name: Set LD_PRELOAD
Expand All @@ -76,64 +61,56 @@ jobs:
- uses: julia-actions/setup-julia@latest
with:
version: ${{ matrix.version }}
- uses: julia-actions/cache@v1
- uses: julia-actions/julia-buildpkg@latest

- name: Run upstream RecipesBase & RecipesPipeline tests
shell: julia --project=@. --color=yes {0}
- uses: julia-actions/cache@v2

- name: Develop all Plots packages
env:
JULIA_PKG_PRECOMPILE_AUTO: 0
shell: julia --color=yes {0}
run: |
using Pkg
foreach(("RecipesBase", "RecipesPipeline")) do name
Pkg.develop(path=name); Pkg.test(name; coverage=true)
end
Pkg.develop([
(; path="./RecipesBase"),
(; path="./RecipesPipeline"),
(; path="./PlotThemes"),
(; path="./PlotsBase"),
(; path="./GraphRecipes"),
(; path="./StatsPlots"),
(; path="."),
])

- name: Install conda based matplotlib
shell: julia --project=@. --color=yes {0}
run: |
using Pkg; Pkg.add("CondaPkg")
using CondaPkg; CondaPkg.resolve()
libgcc = if Sys.islinux()
# see discourse.julialang.org/t/glibcxx-version-not-found/82209/8
# julia 1.8.3 is built with libstdc++.so.6.0.29, so we must restrict to this version (gcc 11.3.0, not gcc 12.2.0)
# see gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html
specs = Dict(
v"3.4.29" => ">=11.1,<12.1",
v"3.4.30" => ">=12.1,<13.1",
v"3.4.31" => ">=13.1,<14.1",
v"3.4.32" => ">=14.1,<15.1",
v"3.4.33" => ">=15.1,<16.1",
# ... keep this up-to-date with gcc 16
)[Base.BinaryPlatforms.detect_libstdcxx_version()]
("libgcc-ng$specs", "libstdcxx-ng$specs")
else
()
end
CondaPkg.PkgREPL.add([libgcc..., "matplotlib"])
CondaPkg.status()
env:
JULIA_PKG_PRECOMPILE_AUTO: 0
run: julia --color=yes ci/matplotlib.jl

- uses: julia-actions/julia-runtest@latest
- name: Test all Plots packages
timeout-minutes: 60
with:
prefix: ${{ matrix.prefix }} # for `xvfb-run`

- name: Run downstream tests
if: startsWith(matrix.os, 'ubuntu')
shell: xvfb-run julia --project=@. --color=yes {0}
run: |
using Pkg
foreach(("StatsPlots", "GraphRecipes")) do name
Pkg.activate(tempdir())
foreach(path -> Pkg.develop(; path), ("RecipesBase", "RecipesPipeline", "."))
Pkg.add(name); Pkg.test(name; coverage=true)
end

cmd=(julia --color=yes)
if [ "$RUNNER_OS" == "Linux" ]; then
cmd=(xvfb-run ${cmd[@]})
fi
echo ${cmd[@]}
${cmd[@]} -e 'using Pkg; Pkg.test([
"RecipesBase",
"RecipesPipeline",
"PlotThemes",
"PlotsBase",
"GraphRecipes",
"StatsPlots",
"Plots",
]; coverage=true)'
- uses: julia-actions/julia-processcoverage@latest
if: startsWith(matrix.os, 'ubuntu')
with:
directories: RecipesBase/src,RecipesPipeline/src,src
- uses: codecov/codecov-action@v4
directories: RecipesBase/src,RecipesPipeline/src,PlotsBase/src,src,GraphRecipes/src,StatsPlots/src,PlotThemes/src
- uses: codecov/codecov-action@v5
if: startsWith(matrix.os, 'ubuntu')
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
file: lcov.info

Skip:
Expand Down
17 changes: 17 additions & 0 deletions .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: codespell

on: [pull_request]

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: codespell-project/actions-codespell@v2
with:
ignore_words_list: nd,nax,namin,namax,linez,ist
only_warn: 0
6 changes: 2 additions & 4 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,14 @@ name: docs
on:
workflow_dispatch:
push:
branches: [master]
branches: [v2]
tags: '*'

jobs:
Build_docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
repository: JuliaPlots/PlotDocs.jl
- uses: julia-actions/setup-julia@latest
- name: Cache artifacts
uses: actions/cache@v4
Expand All @@ -30,4 +28,4 @@ jobs:
PYTHON: ""
DOCUMENTER_KEY: ${{secrets.DOCUMENTER_KEY}}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
run: bash docs/ci_build.sh
run: bash ci/build-docs.sh
41 changes: 11 additions & 30 deletions .github/workflows/format_check.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
name: format

on:
workflow_dispatch:
pull_request:
push:
branches: [master]
branches: [master, v2]

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
Expand All @@ -15,44 +16,24 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@latest
- name: Install dependencies
- name: format Julia files
run: |
using Pkg
Pkg.add([
PackageSpec("JuliaFormatter"),
PackageSpec(url = "https://github.com/tkf/JuliaProjectFormatter.jl.git"),
])
shell: julia --color=yes {0}

- name: Format Julia files
run: |
using JuliaFormatter
format(["RecipesBase", "RecipesPipeline", "src", "test", "ext"])
shell: julia --color=yes --compile=min -O0 {0}
- name: suggester / JuliaFormatter
julia --color=yes --compile=min -O0 -e '
using Pkg; Pkg.add("JuliaFormatter")
using JuliaFormatter
format(["RecipesBase", "RecipesPipeline", "PlotsBase", "src", "test", "GraphRecipes", "StatsPlots", "PlotThemes"])
'
- name: suggester
if: success() && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/v2' )
uses: reviewdog/action-suggester@v1
with:
tool_name: JuliaFormatter
fail_on_error: true

# reviewdog/action-suggester not using `cleanup` flag?
- name: Cleanup
- name: cleanup
if: success() || failure()
run: |
git checkout -- .
git clean --force
shell: bash

# temporarily disable `JuliaProjectFormatter` until github.com/tkf/JuliaProjectFormatter.jl/pull/7 is merged
# - name: Format Julia project files
# if: success() || failure()
# run: |
# using JuliaProjectFormatter
# format_projects()
# shell: julia --color=yes --compile=min -O0 {0}
# - name: suggester / JuliaProjectFormatter
# if: success() || failure()
# uses: reviewdog/action-suggester@v1
# with:
# tool_name: JuliaProjectFormatter
# fail_on_error: true
3 changes: 2 additions & 1 deletion .github/workflows/format_pr.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: format

on:
workflow_dispatch:
schedule:
- cron: '0 0 1 * *'

Expand All @@ -19,7 +20,7 @@ jobs:
- name: Create Pull Request
if: ${{ failure() }}
id: cpr
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "Format .jl files [skip ci]"
Expand Down
40 changes: 0 additions & 40 deletions .github/workflows/invalidations.yml

This file was deleted.

7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,9 @@ test/tmpplotsave.hdf5
/.benchmarkci
/benchmark/*.json
.vscode/
.CondaPkg/
.CondaPkg/

# docs
**/generated/
docs/build/
docs/work/
Loading
Loading