Skip to content

Commit 8d18149

Browse files
authored
restructure master - v1 (#5221)
1 parent 86f9428 commit 8d18149

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+160
-130
lines changed

.github/workflows/ci.yml

Lines changed: 37 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,20 @@ jobs:
1717
ci:
1818
if: "!contains(github.event.head_commit.message, '[skip ci]')"
1919
env:
20-
GKS_ENCODING: "utf8"
21-
GKSwstype: "nul"
22-
JULIA_CONDAPKG_BACKEND: "MicroMamba"
23-
PLOTS_PLOTLYJS_UNSAFE_ELECTRON: "true"
24-
MPLBACKEND: "agg"
20+
JULIA_PROJECT_CMD: julia --project=@. --check-bounds=yes --color=yes
21+
GKS_ENCODING: utf8
22+
GKS_WSTYPE: nul
23+
JULIA_CONDAPKG_BACKEND: MicroMamba
24+
PLOTS_PLOTLYJS_UNSAFE_ELECTRON: true
25+
MPLBACKEND: agg
2526
name: Julia ${{ matrix.version }} - ${{ matrix.os }}
2627
continue-on-error: ${{ matrix.experimental }}
2728
runs-on: ${{ matrix.os }}
2829
strategy:
2930
fail-fast: false
3031
matrix:
3132
version:
32-
- 'lts' # LTS, also minimum declared julia compat in `Project.toml`
33+
- 'lts' # LTS, also minimum declared julia compat in `Project.toml`
3334
- '1' # latest stable
3435
experimental:
3536
- false
@@ -42,14 +43,12 @@ jobs:
4243
version: '1'
4344
- os: ubuntu-latest
4445
experimental: false
45-
prefix: xvfb-run # add `xvfb-run` prefix julia-actions/julia-runtest/blob/master/README.md
4646
- os: ubuntu-latest
4747
experimental: true
48-
prefix: xvfb-run
4948
version: 'pre' # upcoming julia version, next `rc`
5049

5150
steps:
52-
- uses: actions/checkout@v5
51+
- uses: actions/checkout@v6
5352

5453
- name: Ubuntu LaTeX dependencies
5554
if: startsWith(matrix.os, 'ubuntu')
@@ -68,42 +67,36 @@ jobs:
6867
- uses: julia-actions/cache@v2
6968
- uses: julia-actions/julia-buildpkg@latest
7069

71-
- name: Run upstream RecipesBase & RecipesPipeline tests
72-
shell: julia --project=@. --color=yes {0}
70+
- name: dev pkgs and install mpl deps
71+
env:
72+
JULIA_PKG_PRECOMPILE_AUTO: 0
7373
run: |
74-
using Pkg
75-
foreach(("RecipesBase", "RecipesPipeline")) do name
76-
Pkg.develop(path=name); Pkg.test(name; coverage=true)
77-
end
74+
${{ env.JULIA_PROJECT_CMD }} -e '
75+
using Pkg
76+
Pkg.develop([
77+
(; path="./RecipesBase"), # compat for LTS [sources], remove later
78+
(; path="./RecipesPipeline"), # compat for LTS [sources], remove later
79+
(; path="./Plots"), # compat for LTS [sources], remove later
80+
])
81+
include(joinpath(@__DIR__, "ci", "matplotlib.jl"))
82+
Pkg.precompile() # // precompilation
83+
'
7884
79-
- name: Install conda based matplotlib
80-
shell: julia --project=@. --color=yes {0}
85+
- name: test Plots stack
86+
timeout-minutes: 90
8187
run: |
82-
using Pkg; Pkg.add("CondaPkg")
83-
using CondaPkg; CondaPkg.resolve()
84-
libgcc = if Sys.islinux()
85-
# see discourse.julialang.org/t/glibcxx-version-not-found/82209/8
86-
# 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)
87-
# see gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html
88-
specs = Dict(
89-
v"3.4.29" => ">=11.1,<12.1",
90-
v"3.4.30" => ">=12.1,<13.1",
91-
v"3.4.31" => ">=13.1,<14.1",
92-
v"3.4.32" => ">=14.1,<15.1",
93-
v"3.4.33" => ">=15.1,<16.1",
94-
# ... keep this up-to-date with gcc 16
95-
)[Base.BinaryPlatforms.detect_libstdcxx_version()]
96-
("libgcc-ng$specs", "libstdcxx-ng$specs")
97-
else
98-
()
99-
end
100-
CondaPkg.PkgREPL.add([libgcc..., "matplotlib"])
101-
CondaPkg.status()
102-
103-
- uses: julia-actions/julia-runtest@latest
104-
timeout-minutes: 60
105-
with:
106-
prefix: ${{ matrix.prefix }} # for `xvfb-run`
88+
cmd=(${{ env.JULIA_PROJECT_CMD }} --depwarn=yes)
89+
if [ "$RUNNER_OS" == "Linux" ]; then
90+
cmd=(xvfb-run ${cmd[@]})
91+
fi
92+
echo ${cmd[@]}
93+
${cmd[@]} -e '
94+
using Pkg; Pkg.test([
95+
"RecipesBase",
96+
"RecipesPipeline",
97+
"Plots",
98+
]; coverage=true)
99+
'
107100
108101
- name: Run downstream tests
109102
if: startsWith(matrix.os, 'ubuntu')
@@ -112,14 +105,14 @@ jobs:
112105
using Pkg
113106
foreach(("StatsPlots", "GraphRecipes")) do name
114107
Pkg.activate(tempdir())
115-
foreach(path -> Pkg.develop(; path), ("RecipesBase", "RecipesPipeline", "."))
108+
foreach(path -> Pkg.develop(; path), ("RecipesBase", "RecipesPipeline", "Plots"))
116109
Pkg.add(name); Pkg.test(name; coverage=true)
117110
end
118111
119112
- uses: julia-actions/julia-processcoverage@latest
120113
if: startsWith(matrix.os, 'ubuntu')
121114
with:
122-
directories: RecipesBase/src,RecipesPipeline/src,src
115+
directories: RecipesBase/src,RecipesPipeline/src,Plots/src
123116
- uses: codecov/codecov-action@v4
124117
if: startsWith(matrix.os, 'ubuntu')
125118
with:

.github/workflows/compathelper.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,7 @@ jobs:
1414
env:
1515
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1616
COMPATHELPER_PRIV: ${{ secrets.COMPATHELPER_PRIV }} # optional
17-
run: julia -e 'using CompatHelper; CompatHelper.main()'
17+
run: |
18+
julia -e 'using CompatHelper; CompatHelper.main(
19+
subdirs=["RecipesBase", "RecipesPipeline", "Plots"]
20+
)'

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
DOCUMENTER_KEY: ${{secrets.DOCUMENTER_KEY}}
2828
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
2929
steps:
30-
- uses: actions/checkout@v5
30+
- uses: actions/checkout@v6
3131
- uses: julia-actions/setup-julia@latest
3232
- uses: julia-actions/cache@v2
3333
- run: bash -c '. ci/build-docs.sh; install_ubuntu_deps'

.github/workflows/tagbot.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,4 @@ jobs:
3030
token: ${{ secrets.GITHUB_TOKEN }}
3131
ssh: ${{ secrets.TAGBOT_KEY }}
3232
branch: master
33+
subdir: Plots

Project.toml renamed to Plots/Project.toml

Lines changed: 16 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
4040
UnicodeFun = "1cfade01-22cf-5700-b092-accc4b62d6e1"
4141
Unzip = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d"
4242

43+
[sources]
44+
RecipesBase = {path = "../RecipesBase"}
45+
RecipesPipeline = {path = "../RecipesPipeline"}
46+
4347
[weakdeps]
4448
FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
4549
GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326"
@@ -55,79 +59,42 @@ ImageInTerminalExt = "ImageInTerminal"
5559
UnitfulExt = "Unitful"
5660

5761
[compat]
58-
Aqua = "0.8"
62+
Base64 = "1"
5963
Contour = "0.5 - 0.6"
64+
Dates = "1"
6065
Downloads = "1"
6166
FFMPEG = "0.4.1"
67+
FileIO = "1"
6268
FixedPointNumbers = "0.6 - 0.8"
69+
GeometryBasics = "0.5"
6370
GR = "0.73"
64-
Gaston = "1"
65-
HDF5 = "0.16 - 0.17"
66-
InspectDR = "0.4"
71+
ImageInTerminal = "0.5"
6772
JLFzf = "0.1"
6873
JSON = "0.21, 1"
6974
LaTeXStrings = "1"
7075
Latexify = "0.16.9"
7176
Measures = "0.3"
7277
NaNMath = "0.3, 1"
73-
PGFPlots = "3"
74-
PGFPlotsX = "1"
78+
Pkg = "1"
7579
PlotThemes = "2, 3"
7680
PlotUtils = "1"
77-
PlotlyBase = "0.7 - 0.8"
78-
PlotlyJS = "0.18"
79-
PlotlyKaleido = "1,2"
8081
PrecompileTools = "1"
81-
PyPlot = "2"
82-
PythonPlot = "1"
82+
Printf = "1"
83+
Random = "1"
84+
REPL = "1"
8385
RecipesBase = "1.3.1"
8486
RecipesPipeline = "0.6.10"
8587
Reexport = "0.2, 1"
8688
RelocatableFolders = "0.3, 1"
8789
Requires = "1"
8890
Scratch = "1"
8991
Showoff = "0.3.1, 1"
92+
SparseArrays = "1"
9093
Statistics = "1"
9194
StatsBase = "0.33 - 0.34"
95+
TOML = "1"
9296
UnicodeFun = "0.4"
93-
UnicodePlots = "3.4"
9497
Unitful = "1.25"
9598
Unzip = "0.1 - 0.2"
99+
UUIDs = "1"
96100
julia = "1.10"
97-
98-
[extras]
99-
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
100-
Colors = "5ae59095-9a9b-59fe-a467-6f913c188581"
101-
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
102-
FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
103-
FilePathsBase = "48062228-2e41-5def-b9a4-89aafe57970f"
104-
FreeType = "b38be410-82b0-50bf-ab77-7b57e271db43"
105-
Gaston = "4b11ee91-296f-5714-9832-002c20994614"
106-
GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326"
107-
Gtk = "4c0ca9eb-093a-5379-98c5-f87ac0bbbf44"
108-
HDF5 = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f"
109-
ImageMagick = "6218d12a-5da1-5696-b52f-db25d2ecc6d1"
110-
Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0"
111-
InspectDR = "d0351b0e-4b05-5898-87b3-e2a8edfddd1d"
112-
LibGit2 = "76f85450-5226-5b5a-8eaa-529ad045b433"
113-
OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881"
114-
PGFPlots = "3b7a836e-365b-5785-a47d-02c71176b4aa"
115-
PGFPlotsX = "8314cec4-20b6-5062-9cdb-752b83310925"
116-
PlotlyBase = "a03496cd-edff-5a9b-9e67-9cda94a718b5"
117-
PlotlyJS = "f0f68f2c-4968-5e81-91da-67840de0976a"
118-
PlotlyKaleido = "f2990250-8cf9-495f-b13a-cce12b45703c"
119-
PyPlot = "d330b81b-6aea-500a-939a-2ce795aea3ee"
120-
PythonPlot = "274fc56d-3b97-40fa-a1cd-1b4a50311bf9"
121-
RDatasets = "ce6b1742-4840-55fa-b093-852dadbb1d8b"
122-
SentinelArrays = "91c51154-3ec4-41a3-a24f-3f23e20d615c"
123-
StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3"
124-
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
125-
StatsPlots = "f3b207a7-027a-5e70-b257-86293d7955fd"
126-
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
127-
TestImages = "5e47fb64-e119-507b-a336-dd2b206d9990"
128-
UnicodePlots = "b8865327-cd53-5732-bb35-84acbb429228"
129-
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
130-
VisualRegressionTests = "34922c18-7c2a-561c-bac1-01e79b2c4c92"
131-
132-
[targets]
133-
test = ["Aqua", "Colors", "Distributions", "FileIO", "FilePathsBase", "FreeType", "Gaston", "GeometryBasics", "Gtk", "ImageMagick", "Images", "LibGit2", "OffsetArrays", "PGFPlotsX", "PlotlyJS", "PlotlyBase", "PyPlot", "PythonPlot", "PlotlyKaleido", "HDF5", "RDatasets", "SentinelArrays", "StableRNGs", "StaticArrays", "StatsPlots", "Test", "TestImages", "UnicodePlots", "Unitful", "VisualRegressionTests"]
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)