Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Sep 26, 2025

This PR addresses issue #44990322 by analyzing Guillaume Dalle's (@gdalle) starred repositories to identify and add new Julia development tools that weren't yet mentioned in the blog.

Changes Made

Added 18 new generic development, performance, and code analysis tools across the three main blog pages:

Code Quality & Analysis Tools

  • ReLint.jl - Alternative linter with different rules compared to JET.jl
  • pre-commit - Framework for managing pre-commit hooks to ensure code quality
  • ShowCode.jl - Tool for exploring and visualizing Julia code structure
  • PrintTypeTree.jl - Utility for printing Julia type hierarchy trees

Performance & Benchmarking Tools

  • hyperfine - Command-line benchmarking tool for timing entire Julia scripts
  • Julia-TTFX-Snippets - Collection of TTFX workloads for longitudinal performance testing

Compilation & Precompilation Tools

  • PrecompileSignatures.jl - Generate precompile directives by reading method signatures
  • PrecompileAfterUpdate.jl - Automatically precompile environments after Julia version updates
  • JuliaC.jl - Tools for compiling and bundling Julia binaries with trimmed dependencies
  • BaseCompiler.jl - Compiler standard library implementation with package switching capabilities

Development Workflow Tools

  • LocalCoverage.jl - Local coverage analysis without external services
  • CodeCells.jl - Code cell functionality for interactive development workflows
  • PlutoPapers.jl - Interactive LaTeX-styled papers in Pluto notebooks

Release Management Tools

Selection Criteria

Tools were carefully filtered to include only generic development, performance, and code analysis utilities rather than application-specific packages. For example, Chairmarks.jl (benchmarking) was considered relevant while Flux.jl (deep learning) was excluded.

Integration

Each tool has been added to the most appropriate section of the blog with:

  • Clear descriptions of their purpose and benefits
  • Context for when to use them
  • Proper integration with existing content structure
  • Links to official repositories

The additions maintain the blog's educational tone and provide practical value to Julia developers at all levels.

Closes #44990322

/cc @gdalle for review

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • 127.255.255.255
  • https://api.github.com/repos/FluxML/MacroTools.jl/tarball/1e0228a030642014fe5cfe68c2c0a818f9e3f522
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaArrays/StaticArrays.jl/tarball/b8693004b385c842357406e3af647701fe783f98
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaArrays/StaticArraysCore.jl/tarball/192954ef1208c7019899fbf8049e717f92959682
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/LLVMExtra_jll.jl/tarball/2ea068aac1e7f0337d381b0eae3110581e3f3216
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/LibTracyClient_jll.jl/tarball/d2bc4e1034b2d43076b50f0e34ea094c2cb0a717
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/OpenSSL_jll.jl/tarball/7493f61f55a6cce7325f197443aa80d32554ba10
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaCI/BenchmarkTools.jl/tarball/e38fbc49a620f5d0b660d7f543db1009fe0f8336
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaCI/PkgTemplates.jl/tarball/eab74be10b47c8ad1b014fc628239de7ebf1dca2
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaCollections/AbstractTrees.jl/tarball/2d9c9a55f9c93e8887ad391fbae72f8ef55e1177
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaCollections/FoldingTrees.jl/tarball/c1b0164369256b26f71d9830df9000a9c39757fc
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaCollections/OrderedCollections.jl/tarball/05868e21324cede2207c6f0f466b4bfef6d5e7ee
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaCollections/OrderedCollections.jl/tarball/dfdf5519f235516220579f949664f1bf44e741c5
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/DataAPI.jl/tarball/abe83f3a2f1b857aac70ef8b269080af17764bbe
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaData/Parsers.jl/tarball/7d2f8f21da5db6a806faf7b9b292296da42b2810
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaData/Tables.jl/tarball/f2c1efbc8f3a609aadf318094f8fc5204bdaf344
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaDebug/CodeTracking.jl/tarball/062c5e1a5bf6ada13db96a4ae4749a4c2234f521
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaDebug/Cthulhu.jl/tarball/3d9e06f3b388318dc248e7f5a868b4803d5718f5
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaDebug/Cthulhu.jl/tarball/ce5c913e2ed89aa8514161cd67eb73ff572f7966
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaDebug/JuliaInterpreter.jl/tarball/c47892541d03e5dc63467f8964c9f2b415dfe718
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaDebug/LoweredCodeUtils.jl/tarball/39240b5f66956acfa462d7fe12efe08e26d6d70d
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaDocs/ANSIColoredPrinters.jl/tarball/574baf8110975760d391c710b6341da1afa48d8c
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaDocs/IOCapture.jl/tarball/b6d6bfdd7ce25b0f9b2f6b3dd56b2673a66c8770
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaDocs/LiveServer.jl/tarball/564a436267fb1fc768f815dad64c4386c46623f8
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaFunctional/CompositionsBase.jl/tarball/802bb88cd69dfd1509f6670416bd4434015693ad
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaGPU/GPUCompiler.jl/tarball/4b477428fbc2b3f4a906a47c9d4156764074f581
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaIO/CodecZlib.jl/tarball/bce6804e5e6044c6daab27bb533d1295e4a2e759
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaIO/JSON.jl/tarball/31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaIO/TranscodingStreams.jl/tarball/0c45878dcfdcfa8480052b6ab162cdd138781742
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaIO/WidthLimitedIO.jl/tarball/71142739e695823729a335e9bc124ef41ec1433a
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaInterop/CEnum.jl/tarball/389ad5c84de1ae7cf0e28e381131c98ea87d54fc
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaLLVM/LLVM.jl/tarball/9c7c721cfd800d87d48c745d8bfb65144f0a91df
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaLang/AllocCheck.jl/tarball/7e53c22135cd9a3d91e6c56e2e962106dc3d57f2
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaLang/Compat.jl/tarball/0037835448781bb46feb39866934e243886d756a
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaLang/Example.jl/tarball/e1f0e1a832ccd8e97d6d0348dec33ee139a5aeaf
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaLang/JuliaSyntax.jl/tarball/937da4713526b96ac9a178e2035019d3b78ead4a
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaLang/MbedTLS.jl/tarball/c067a280ddc25f196b5e7df3877c6b226d390aaf
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaLang/PrecompileTools.jl/tarball/5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaLogging/LoggingExtras.jl/tarball/f02b56007b064fbfddb4c9cd60161b6dd0f40df3
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaMath/InverseFunctions.jl/tarball/a779299d77cd080bf77b97535acecd73e1c5e5cb
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaObjects/Accessors.jl/tarball/3b86719127f50670efe356bc11073d84b4ed7a5d
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaObjects/ConstructionBase.jl/tarball/b4b092499347b18a015186eae3042f72267106cb
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaPackaging/JLLWrappers.jl/tarball/0533e564aae234aff59ab625543145446d8b6ec2
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaPackaging/JLLWrappers.jl/tarball/be3dc50a92e5a386872a493a10050136d4703f9b
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPackaging/Preferences.jl/tarball/0f27480397253da18fe2c12a4ba4eb9eb208bf3d
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaPackaging/Preferences.jl/tarball/9306f6085165d270f7e3db02af26a400d580f5c6
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPackaging/Scratch.jl/tarball/9b81b8393e50b7d4e6d0a9f14e192294d3b7c109
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaPackaging/SimpleBufferStream.jl/tarball/f305871d2f381d21527c770d4788c06c097c9bc1
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaServices/ConcurrentUtilities.jl/tarball/ea32b83ca4fefa1768dc84e504cc0a94fb1ab8d1
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaServices/ExceptionUnwrapping.jl/tarball/d36f682e590a83d63d1c7dbd287573764682d12a
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaStats/Statistics.jl/tarball/ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaTesting/Aqua.jl/tarball/d57fd255a8932b6509baf43284c416fc44d0b903
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaTesting/ExprTools.jl/tarball/27415f162e6028e81c72b82ef756bf321213b6ec
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaTesting/Mocking.jl/tarball/2c140d60d7cb82badf06d8783800d0bcd1a7daa2
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/JuliaWeb/HTTP.jl/tarball/1336e07ba2eb75614c99496501a8f4b233e9fafe
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaWeb/MIMEs.jl/tarball/65f28ad4b594aebe22157d6fac869786a255b7eb
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaWeb/OpenSSL.jl/tarball/38cb508d080d21dc1128f7fb04f20387ed4c0af4
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaWeb/URIs.jl/tarball/67db6cc7b3821e19ebe75791a9dd19c9b1188f2b
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/MichaelHatherly/CommonMark.jl/tarball/351d6f4eaf273b753001b2de4dffb8279b100769
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/MilesCranmer/DispatchDoctor.jl/tarball/fc34127e78323c49984e1a146d577d0f890dd2b4
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/aviatesk/JET.jl/tarball/c5afee875b8daa022c09cda641c314c325e7d545
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/davidanthoff/NodeJS.jl/tarball/bf1f49fd62754064bc42490a8ddc2aa3694a8e7a
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/domluna/JuliaFormatter.jl/tarball/f512fefd5fdc7dd1ca05778f08f91e9e4c9fdc37
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/jmert/BitFlags.jl/tarball/0691e34b3bb8be9307330f88d1a3c3f25466c24d
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/jverzani/Mustache.jl/tarball/3cbd5dda543bc59f2e482607ccf84b633724fc32
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/mauro3/Parameters.jl/tarball/34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/mauro3/UnPack.jl/tarball/387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/queryverse/DataValueInterfaces.jl/tarball/bfc1187b79289637fa0ef6d4436ebdfe6905cbd6
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/queryverse/IteratorInterfaceExtensions.jl/tarball/a3f24677c21f5bbe9d2a714f95dcd58337fb2856
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/queryverse/TableTraits.jl/tarball/c06b2f539df1c6efa794486abfb6ed2022561a39
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/simonster/Reexport.jl/tarball/45e428421666073eab6f2da5c9d310d99bb12f9b
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/tlienart/FranklinParser.jl/tarball/7daf95d2334d4c0f73353e110c9396e9d5258afb
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/topolarity/Tracy.jl/tarball/73e3ff50fd3990874c59fef0f35d10644a1487bc
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • https://api.github.com/repos/vtjnash/Glob.jl/tarball/97285bbd5230dd766e9ef6749b80fc617126d496
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (http block)
  • pkg.julialang.org
    • Triggering command: julia --project -e using Pkg; Pkg.instantiate() (dns block)
    • Triggering command: julia --project -e using Xranklin; build(clear=true) (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>Update list of tools</issue_title>
<issue_description>1. Go through the list of Julia packages and Julia-related repositories starred by GitHub user Guillaume Dalle (@gdalle).
2. Filter them to keep only those that are generic development, performance or code analysis tools, as opposed to application-specific packages. Example: Chairmarks.jl is relevant (for benchmarking), but Flux.jl is not relevant (for deep learning).
3. Filter them again to keep only the ones that are not yet mentioned on the blog modernjuliaworkflows, hosted in the present repo.
4. Open a pull request adding these new tools to the relevant pages of the blog.
5. Tag @gdalle for review.

This is an experiment for Copilot</issue_description>

Comments on the Issue (you are @copilot in this section)

Fixes #141

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@Copilot Copilot AI changed the title [WIP] Update list of tools Add 18 new Julia development tools from @gdalle's starred repositories Sep 26, 2025
@Copilot Copilot AI requested a review from gdalle September 26, 2025 06:30
Copilot finished work on behalf of gdalle September 26, 2025 06:30
@gdalle gdalle marked this pull request as ready for review October 8, 2025 11:20
Copy link
Collaborator

@gdalle gdalle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checked manually by me

@gdalle gdalle merged commit f550d04 into main Oct 8, 2025
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update list of tools
2 participants