Revision history for conan-flake
0.11.0 (Aug 18, 2026)
Documentation
-
The project’s documentation is now a site, published at https://tarcisio.codeberg.page/conan-flake/ and written in mdBook under
docs/: a chapter per integration style (getting started,flake-parts, devenv, standalone withevalConanConfigandsubmoduleWith, LLVM/CUDA toolchains), plus templates, contributing, references and this revision history. It is built byconan-flake.lib.packages.docs(just docs,just docs-serve), asserted over by one check per requirement innix flake check ./dev, and published to Codeberg Pages byscripts/publish-pages.sh(just docs-publish,.woodpecker/pages.yml). -
README.mdis now a pointer at that site: what conan-flake is, one embedded configuration example, how to instantiate a template, a link per chapter, and the option reference. Every topic it used to carry is on the site; nothing was dropped. Its command-output blocks moved there with the prose, somdshis pointed at the site’s sources alone and no longer runs overREADME.md(embedmdstill does, for the one sample it kept). -
The site is now published by CI on every change to its sources on
main: thepagesstep of.woodpecker/pages.ymlruns on a push as well as on demand, and the tokenless step that used to keep such a push green while announcing that nothing was published is gone. The workflow’s existing branch and path filters are what keep unrelated pushes from publishing, and a manual run still republishes the site without a commit. Thecodeberg_tokensecret has to be available at Woodpecker’spushevent for this, since secrets are resolved while the workflow is compiled; the activation checklist in the contributing chapter says so. For the same reason a fork now has to work through that checklist before its ownpagesworkflow compiles at all, rather than getting a green run that announces that nothing was published.
0.10.0 (Aug 13, 2026)
Bug Fixes
-
profiles.<name>.buildEnvandprofiles.<name>.runEnvare now merged with the conan-flake defaults and rendered from the final profile state, like every other profile section. They were the only two sections rendered straight from the profile’s own values, which silently exempted them from the defaults merging and from thenull-removal marker. Added the matchingdefaults.profiles.buildEnvanddefaults.profiles.runEnvoptions (empty by default). An entry replaces the default entry carrying the samename, and setting itsvaluetonullremoves that default entry; the merged defaults keep their relative order and come first. Rendered profiles are unchanged for configurations that set no environment defaults. -
Removed references to
proactivefromclaude.code.agents.*(this property is going to be deprecated).
Improvements
- Updated default Conan package to 2.31.2 version
- Added
profiles.<name>.options,profiles.<name>.toolRequires,profiles.<name>.replaceRequires,profiles.<name>.replaceToolRequiresandprofiles.<name>.platformRequiresoptions, rendering the Conan profile[options],[tool_requires],[replace_requires],[replace_tool_requires]and[platform_requires]sections. - Added the matching
defaults.profiles.*options (empty by default), so every profile section can be given configuration-wide defaults and removed per profile by assigningnullto an entry.
Breaking Changes
-
Flattened the Conan profile
[settings]section into a single attribute set, removing thecompiler/_split:profiles.<name>.settings.compiler.*andprofiles.<name>.settings._.*becomeprofiles.<name>.settings.*;final.profiles.<name>.settings.compiler.*andfinal.profiles.<name>.settings._.*becomefinal.profiles.<name>.settings.*;defaults.profiles.settings.compiler.*anddefaults.profiles.settings._.*becomedefaults.profiles.settings.*.
There is no alias and no deprecation period: the new
settingsoption is a free-form attribute set that must accept an entry literally namedcompiler, so the old declaredcompilersub-option cannot coexist with it at the same path. To migrate, merge the two sets into one, keeping the entry names exactly as Conan spells them (compiler,compiler.cppstd,compiler.libcxx,compiler.version,arch,build_type,os, …).nullstill removes the corresponding default. For example,settings.compiler."compiler.cppstd" = "17"; settings._.build_type = "Release";becomessettings."compiler.cppstd" = "17"; settings.build_type = "Release";.The top-level
settings.compileroption (thesettings_user.ymlproducer) is a different, unrelated option and is not affected.
Notes
-
dev/flake.lockis now committed. The development flake declared its inputs by branch (nixpkgs-unstable,devenv-nixpkgs/rolling, and the unpinnedflake-parts,git-hooks,devenv,treefmt-nix,nix2containerandmk-shell-bin) with no lockfile, so the Woodpeckerdevstep resolved whatever each of them happened to point at when it ran, and two runs of the same commit could build different closures. Refresh the lock deliberately withnix flake update ./dev. This affects the development environment only: nothing undernix/is involved, and conan-flake consumers are unaffected. -
Generated Conan profile files now emit the
[settings]section as a single alphabetically ordered run of entries instead of two consecutive groups (non-compiler entries first, then thecompiler*ones). Anyone diffing generated profile files will seeos=move past thecompiler*entries; the set of rendered lines is unchanged, and Conan parses[settings]into a dictionary, so intra-section order carries no meaning. -
The
README.mdcommand-output blocks are regenerated against this release, withexamples/standalone-submodule-with/default.nix’sfetchGitrev bumped to it andmdshno longer excluded fromREADME.mdindev/treefmt.nix. They now show the ten profile sections and the[settings]entries in one alphabetically ordered run: the same rendering change described above, observed end to end through a real Conan profile. -
Generated Conan profile files now contain all ten sections, ordered as
[settings],[options],[tool_requires],[buildenv],[runenv],[conf],[replace_requires],[replace_tool_requires],[platform_requires]and[platform_tool_requires]. Anyone diffing generated configuration files will see the new (empty) sections and the changed section order.
0.9.0 (Aug 05, 2026)
Improvements
- Added support for multiple Conan profiles (
profiles.<name>), each one rendered as aconfig/profiles/<name>Conan profile and linked into${configLocal}/profiles/. - Added
profiles.<name>.nameoption to override the profile name.
Breaking Changes
- Moved
profiles.*options underprofiles.<name>.*(profiles.Xbecomesprofiles.default.X). - Moved
final.profiles.*options underfinal.profiles.<name>.*(final.profiles.Xbecomesfinal.profiles.default.X).
Notes
- Until this release lands on
mainand theconan-flakepins used by the examples are bumped (examples/standalone-submodule-with/default.nix’sfetchGitrev, and the unlocked flake inputs of the other examples), do not runtreefmt/mdshagainstREADME.md: the pinned revisions still expose the oldprofiles.*interface, so the migrated examples fail to evaluate andmdshempties theREADME.mdcommand-output blocks. The committedREADME.mdis the correct post-release state.
0.8.1 (Jul 31, 2026)
Bug Fixes
- Fix autowiring of
packagesoutputs.
Improvements
- Added local package infrastructure.
- Added
devenvproject development integration (under./dev/).
0.8.0 (Jul 29, 2026)
Improvements
- Added
nix/packages/conan/package.nixto track Conan releases and tweak Conan CLI. - Redirected the output of all
conan remotecommands tostderr.
Breaking Changes
- Set
nix/packages/conan/package.nixas default Conan package.
0.7.0 (Jul 21, 2026)
Improvements
- Silence noisy
pushd/popdduring shell activation. - Added
profile-show-wrapper. - Flush
profile-show-wrapperoutput to avoid buffering issues. - Added
pnameFromStdenvCcandversionFromStdenvCcutility functions. - Added
global.confsupport. - Default
core.graph:compatibility_modetooptimized.
0.6.1 (Jul 07, 2026)
Improvements
- Added
create-lock-install-wrapper.
0.6.0 (Jul 07, 2026)
Improvements
- Added support to shared Conan home directory.
- Added wrapping infrastructure.
0.5.1 (Jun 30, 2026)
Bug Fixes
- Fix exposing of
libutility functions forflake-partsmodule integration.
0.5.0 (Jun 29, 2026)
Improvements
- Add
generatorsoption toconan-flake. - Refactored and improved environment variable handling:
CONAN_FLAKE_ROOT: Root directory of the configuration.CONAN_FLAKE_HOME: If there’s ahomeDirectoryin the configuration, it will be appended toCONAN_FLAKE_ROOTand used as the home directory.CONAN_FLAKE_CONFIG:$CONAN_FLAKE_HOME/${configLocal}CONAN_HOME:$CONAN_FLAKE_HOME/${conanHome}
Breaking Changes
- Refactored
libinterface.
0.4.0 (Jun 13, 2026)
Bug Fixes
- Fixed
flake-partsdocs: added missingdefaultTextfordefaults.devShell.toolsoption. - Fixed treefmt’s project root configuration of
flake-partstest. - Excluded
./examples/devenv-module/devenv.nixfrom dev treefmt settings. - Fixed handling of root configuration path when setting local recipe index repos.
- Set
info.configRootoption. - Fixed tests to use
grep -F.
Improvements
- Improved docs on devenv integration.
- Added tests on overriding defaults.
- Trimmed embedded snippets in README (using veggiemonk’s embedmd’s PR: https://github.com/veggiemonk/embedmd/tree/feat/issue-47-directive-options).
- Added devenv integration example featuring local-recipe-index remote.
- Added
confoption (to compose profiles [conf] section). - Added
autoWireoption (initially supporting onlydevShellsand mapping only the configuration). - Added
buildEnvoption (to compose profiles [buildenv] section). - Added
runEnvoption (to compose profiles [runenv] section). - Added
final.devShell.toolsoption to map the final state ofdevShell.toolsafterdefaultsresolution. - Added CMake by default to
devShell.tools. - Added a
defaults.profiles.platformToolRequiresoption and set acmakeattribute by default depending whether CMake is a required tool or not. conan.stdenv.ccadded as a default tool.- Added
final.profiles.platformToolRequiresoption. - Added
final.settings.compiler,defaults.settings.compilerandsettings.compileroptions usinginfuseto merge andfilterAttrsto filter out nulled attributes. - Added
profiles.settings,final.profiles.settingsanddefaults.profiles.settingsoptions. - Added defaults for
arch,build_typeandosindefaults.profiles.settings. - Added defaults and finals for
profiles.conf. - Added
profiles.settings.compiler,final.profiles.settings.compileranddefaults.profiles.settings.compileroptions. - Whenever a LLVM toolchain is detected (with libcxx):
- Set
defaults.profiles.conf."tools.build:compiler_executables"appropriately. - Set
defaults.profiles.settings.compiler."compiler.libcxx"to"libc++".
- Set
Breaking Changes
- Removed default
infooutput command. - Removed automatic mapping of
config.conan.outputs.packages. - Removed
platformToolRequiresoption (profiles.platformToolRequiresmust be used instead). - Removed the
buildEnv,runEnvandconfoptions (keep only those in theprofilesnamespace). - Removed
settings.baseoption. - Removed
arch,buildTypeandosoptions; thearch,build_typeandosprofiles.settingsmust be used instead respectively. - Removed
compiler,compilerCppStd,compilerLibCxxandcompilerVersionoptions. The following should be used as a replacement (only if necessary):profiles.settings.compiler."compiler";profiles.settings.compiler."compiler.cppstd";profiles.settings.compiler."compiler.libcxx";profiles.settings.compiler."compiler.version".
0.3.1 (May 29, 2026)
Improvements
- Added
release.ymlworkflow. - Improved documentation.
0.3.0 (May 28, 2026)
Improvements
- Added
defaultsoption to track defaults (initially, this contains onlydefaults.devShell.tools). - Improved tests.
Breaking Changes
- Renamed the
devShell.packageoption todevShell.toolsand changed its type to package set.
0.2.0 (May 25, 2026)
Breaking Changes
- Removed the
devShell.apple.sdkoption.