Releases: conan-io/conan
0.29.2 (2-December-2017)
0.29.2
- Updated python cryptography requirement for OSX due the pyOpenSSL upgrade. See more: https://pypi.python.org/pypi/pyOpenSSL
0.29.1 (23-November-2017)
0.29.1
- Support for OSX High Sierra
- Reverted concurrency locks to counters, removed
psutil
dependency - Implemented migration for settings.yml (for new VS toolsets)
- Fixed encoding issues in conan_server
0.29.0 (21-November-2017)
0.29.0
- Feature: Support for WindowsStore (WinRT, UWP)
- Feature: Support for Visual Studio Toolsets.
- Feature: New
boost-build
generator for generic bjam (not only Boost) - Feature: new
tools.PkgConfig
helper to parse pkg-config (.pc) files. - Feature: Added
self.develop
conanfile variable. It is true forconan create
packages and for local development. - Feature: Added
self.keep_imports
to avoid removal of imported files in thebuild()
method. Convenient for re-packaging. - Feature: Autodected MSYS2 for
SystemPackageTool
- Feature:
AutoToolsBuildEnvironment
now auto-loadspkg_config_path
(to use withpkg_config
generator) - Feature: Changed search for profiles. Profiles not found in the default
profiles
folder, will be searched for locally. Use./myprofile
to force local search only. - Feature: Parallel builds for Visual Studio (previously it was only parallel compilation within builds)
- Feature: implemented syntax to check options with
if "something" in self.options.myoption
- Fix: Fixed CMake dependency graph when using TARGETS, that produced wrong link order for transitive dependencies.
- Fix: Trying to download the
exports_sources
is not longer done if such attribute is not defined - Fix: Added output directories in
cmake
generator for RelWithDebInfo and MinSizeRel configs - Fix: Locks for concurrent access to local cache now use process IDs (PIDs) to handle interruptions and inconsistent states. Also, adding messages when locking.
- Fix: Not remove the .zip file after a
conan config install
if such file is local - Fix: Fixed
CMake.test()
for the Ninja generator - Fix: Do not crete local conaninfo.txt file for
conan install <pkg-ref>
commands. - Fix: Solved issue with multiple repetitions of the same command line argument
- BugFix: Don't rebuild conan created (with conan-create) packages when
build_policy="always"
- BugFix:
conan copy
was always copying binaries, now can copy only recipes - BugFix: A bug in download was causing appends insteads of overwriting for repeated downloads.
- Development: Large restructuring of files (new cmd and build folders)
- Deprecation: Removed old CMake helper methods (only valid constructor is
CMake(self)
) - Deprecation: Removed old
conan_info()
method, that was superseded bypackage_id()
Breaking changes
- CMAKE_LIBRARY_OUTPUT_DIRECTORY definition has been introduced in
conan_basic_setup()
, it will send shared libraries .so
to thelib
folder in Linux systems. Right now it was undefined. - Profile search logic has slightly changed. For
-pr=myprofile
, such profile will be searched both in the default folder
and in the local one if not existing. Use-pr=./myprofile
to force local search only. - The
conan copy
command has been fixed. To copy all binaries, it is necessary to explicit--all
, as other commands do - The only valid use of CMake helper is
CMake(self)
syntax - If using
conan_info()
, replace it withpackage_id()
0.28.1 (31-October-2017)
0.28.1
- BugFix: Downloading (
tools.download
) of files withcontent-encoding=gzip
were raising an exception because the downloaded content length didn't match thecontent-length
😈 Happy Halloween!
0.28.0 (26-October-2017)
0.28.0
This is a big release, with many important and core changes. Also with a huge number of community contributions, thanks very much!
Important!, see the "Breaking changes" at the end of the document.
- Feature: Major revamp of most conan commands, making command line arguments homogeneous. Much better development flow adapting to user layouts, with
install-folder
,source-folder
,build-folder
,package-folder
. - Feature: new
deploy()
method, useful for installing binaries from conan packages. - Feature: Implemented some concurrency support for the conan local cache. Parallel
conan install
andconan create
for different configurations should be possible. - Feature: options now allow patterns in the command line:
-o *:myoption=myvalue
applies to all packages. - Feature: new
pc
generator that generates files from dependencies forpkg-config
- Feature: new
Meson
helper, similar toCMake
for Meson build system. Works well withpc
generator. - Feature: Support for read-only cache with
CONAN_READ_ONLY_CACHE
environment variable - Feature: new
visual_studio_multi
generator to load Debug/Release, 32/64 configs at once - Feature: new
tools.which
helper to locate executables - Feature: new
conan --help
layout - Feature: allow to override compiler version in
vcvars_command
- Feature:
conan user
interactive (and not exposed) password input for empty-p
argument - Feature: Support for
PacManTool
forsystem_requirements()
for ArchLinux - Feature: Define VS toolset in
CMake
constructor and from environment variable CONAN_CMAKE_TOOLSET - Feature:
conan create
now acceptswerror
argument - Feature:
AutoToolsBuildEnvironment
can useCONAN_MAKE_PROGRAM
env-var to define make program - Feature: added xcode9 for apple-clang 9.0, clang 5 to default settings.yml
- Feature: deactivation of
short_paths
in Windows 10 with Py3.6 and long path support is automatic - Feature: show unzip progress by percentage, not by file (do not clutters output)
- Feature: do not use
sudo
for system requirements if already running as root - Feature:
tools.download
able to use headers/auth - Feature: conan does not longer generate bytecode from recipes (no more .pyc, and more efficient)
- Feature: add parallel argument to
build_sln_command
for VS - Feature: Show warning if vs150comntools is an invalid path
- Feature:
tools.get()
now has arguments for hash checking - Fix: upload pattern now accepts
Pkg/*
- Fix: improved downloader, make more robust, better streaming
- Fix:
tools.patch
now support adding/removal of files - Fix: The
default
profile is no longer taken as a base and merged with user profile. Use explicitinclude(default)
instead. - Fix: Properly manage x86 as cross building with autotools
- Fix:
tools.unzip
removed the unnecessary long-paths check in Windows - Fix:
package_info()
is no longer executed at install for the consumer conanfile.py - BugFix: source folder was not being correctly removed when recipe was updated
- BugFix: fixed
CMAKE_C_FLAGS_DEBUG
definition incmake
generator - BugFix:
CMAKE_SYSTEM_NAME
is now Darwin for iOS, watchOS and tvOS - BugFix:
xcode
generator fixed handling of compiler flags - BugFix: pyinstaller hidden import that broke .deb installer
- BugFix:
conan profile list
when local files matched profile names
Breaking changes
This is an important release towards stabilizing conan and moving out of beta. Some breaking changes have been done, but mostly to command line arguments, so they should be easy to fix. Package recipes or existing packages shouldn't break.
Please update, it is very important to ease the transition of future stable releases. Do not hesitate to ask questions, or for help, if you need it. This is a possibly not complete list of things to take into account:
- The command
conan install
doesn't acceptcwd
anymore, to change the directory where the generator
files are written, use the--install-folder
parameter. - The command
conan build
now requires the path to theconanfile.py
(optional before) - The command
conan package
not longer re-package a package in the local cache, now it only operates in a user local folder. The recommended way to re-package a package is usingconan build
and thenconan export-pkg
. - Removed
conan package_files
in favor of a new commandconan export-pkg
. It requires a local recipe with apackage()
method. - The command
conan source
no longer operates in the local cache. now it only operates in a user local folder. If you usedconan source
with a reference to workaround the concurrency, now it natively supported, you can remove the command call and trust concurrent install processes. - The command
conan imports
doesn't accept-d, --dest
anymore, use--imports-folder
parameter instead. - If you specify a profile in a conan command, like conan create or conan install the base profile
~/.conan/profiles/default
won’t be applied.
Use explicitinclude
to keep the old behavior.
0.27.0 (20-September-2017)
0.27.0
- Feature:
conan config install <url>
new command. Will install remotes, profiles, settings, conan.conf and other files into the local conan installation. Perfect to synchronize configuration among teams - Feature: improved traceback printing when errors are raised for more context. Configurable via env
- Feature: filtering out non existing directories in
cpp_info
(include, lib, etc), so some build systems doesn't complain of them. - Feature: Added include directories to ResourceCompiler and to MIDL compiler in
visual_studio
generator - Feature: new
visual_studio_legacy
generator for Visual Studio 2008 - Feature: show path where manifests are locally stored
- Feature:
replace_in_file
now raises error if replacement is not done (opt-out parameter) - Feature: enabled in conan.conf
[proxies]
sectionno_proxy=url1,url2
configuration (to skip proxying for those URLs), as well ashttp=None
andhttps=None
to explicitely disable them. - Feature: new conanfile
self.in_local_cache
attribute for conditional logic to apply in user folders local commands - Feature:
CONAN_USER_HOME_SHORT=None
can disable the usage ofshort_paths
in Windows, for modern Windows that enable long paths at the system level - Feature:
if "arm" in self.settings.arch
is now a valid check (without casting to str(self.settings.arch)) - Feature: added
--cwd
argument toconan source
local method. - Fix: unzip crashed for 0 Bytes zip files
- Fix:
collect_libs
moved to thetools
module - Bugfix: fixed wrong regex in
deps_cpp_info
causing issues with dots and dashes in package names - Development: Several internal refactors (tools module, installer), testing (using VS2015 as default, removing VS 12 in testing). Conditional CI in travis for faster builds in developers, downgrading to CMake 3.7 in appveyor
- Deprecation:
dev_requires
have been removed. Superseded bybuild_requires
while not documented at all. - Deprecation: sources tgz files for exported sources no longer contain ".c_src" subfolder. Packages created with 0.27 will be incompatible with conan < 0.25
0.26.1 (5-Sep-2017)
0.26.1
- Bugfix: fixed parsing of conanbuildinfo with package names containing a dot.
- Feature: added apple-clang 9.0 to default settings.
- Fix: conan copy command now supports symlinks.
- Fix: fixed removal of "export_source" folder when files have no permissions
0.26.0 (31-August-2017)
0.26.0
- Feature:
conan profile
command has implementedupdate
,new
,remove
subcommands, with--detect
, to allow creation, edition and management of profiles. - Feature:
conan package_files
command now can call recipepackage()
method if--build_folder
or--source_folder
arguments are defined - Feature: graph loading algorithm improved to avoid repeating nodes. Results in much faster times for dense graphs, and avoids duplications of private requirements.
- Feature: authentication based on environment variables. Allows very long processes without tokens being expired.
- Feature: Definition of Visual Studio runtime setting
MD
orMDd
is now automatic based on build type, not necessary to default in profile. - Feature: Capturing
SystemExit
to return user error codes to the system withsys.exit(code)
- Feature: Added SKIP_RPATH argument to cmake
conan_basic_setup()
function - Feature: Optimized uploads, now uploads will be skipped if there are no changes, irrespective of timestamp
- Feature: Automatic detection of VS 15-2017, via both a
vs150comntools
variable, and usingvswhere.exe
- Feature: Added NO_OUTPUT_DIRS argument to cmake
conan_basic_setup()
function - Feature: Add support for Chocolatey system package manager for Windows.
- Feature: Improved in conan user home and path storage configuration, better error checks.
- Feature:
export
command is now able to export recipes without name or version, specifying the full reference. - Feature: Added new default settings, Arduino, gcc-7.2
- Feature: Add conan settings to cmake generated file
- Feature: new
tools.replace_prefix_in_pc_file()
function to help with .pc files. - Feature: Adding support for system package tool
pkgutil
on Solaris - Feature:
conan remote update
now allows--insert
argument to change remote order - Feature: Add
verbose
definition toCMake
helper. - Fix:
conan package
working locally failed if not specified build_folder - Fix: Search when using wildcards for version like
Pkg/*@user/channel
- Fix: Change current working directory to the conanfile.py one before loading it, so relative python imports or code work.
- Fix:
package_files
command now works withshort_paths
too. - Fix: adding missing require of tested package in test_package/conanfile build() method
- Fix: path joining in
vcvars_command
for custom VS paths defined via env-vars - Fix: better managing string escaping in CMake variables
- Fix:
ExecutablePath
assignment has been removed from thevisual_studio
generator. - Fix: removing
export_source
folder containing exported code, fix issues with read-only files and keeps cache consistency better. - Fix: Accept 100 return code from yum check-update
- Fix: importing *.so files from the
conan new
generated test templates - Fix: progress bars display when download/uploads are not multipart (reported size 0)
- Bugfix: fixed wrong OSX
DYLD_LIBRARY_PATH
variable for virtual environments - Bugfix:
FileCopier
had a bug that affectedself.copy()
commands, changing base reference directory.
0.25.1 (20-July-2017)
0.25.1
- Bugfix: Build requires are now applied correctly to test_package projects.
- Fix: Fixed search command to print an error when --table parameter is used without a reference.
- Fix: install() method of the CMake() helper, allows parallel building, change build folder and custom parameters.
- Fix: Controlled errors in migration, print warning if conan is not able to remove a package directory.
0.25.0 (19-July-2017)
0.25.0
This release introduces a new layout for the local cache, with dedicated export_source
folder to store the source code exported with exports_sources
feature, which is much cleaner than the old .c_src
subfolder. A migration is included to remove from the local cache packages with the old layout.
- Feature: new
conan create
command that supersedestest_package
for creating and testing package. It works even without the test_package folder, and have improved management for user, channel. The test_package recipe no longer definesrequires
- Feature: new
conan get
command that display (with syntax highlight) package recipes, and any other file from conan: recipes, conaninfo.txt, manifests, etc. - Feature: new
conan alias
command that creates a special package recipe, that works like an alias or a proxy to other package, allowing easy definition and transparent management of "using the latest minor" and similar policies. Those special alias packages do not appear in the dependency graph. - Feature: new
conan search --table=file.html
command that will output an html file with a graphical representation of available binaries - Feature: created default profile, that replace the
[settings_default]
in conan.conf and augments it, allowing to define more things like env-vars, options, build_requires, etc. - Feature: new
self.user_info
member that can be used inpackage_info()
to define custom user variables, that will be translated to general purpose variables by generators. - Feature:
conan remove
learned the--outdated
argument, to remove those package binaries that are outdated from the recipe, both from local cache and remotes - Feature:
conan search
learned the--outdated
argument, to show only those package binaries that are outdated from the recipe, both from local cache and remotes - Feature: Automatic management
CMAKE_TOOLCHAIN_FILE
inCMake
helper for cross-building. - Feature: created
conan_api
, a python API interface to conan functionality. - Feature: new
cmake.install()
method ofCMake
helper. - Feature:
short_paths
feature now applies also toexports_sources
- Feature:
SystemPackageTool
now supports FreeBSD system packages - Feature:
build_requires
now manage options too, also default options in package recipes - Feature:
conan build
learned new--package_folder
argument, useful if the build system perform the packaging - Feature:
CMake
helper now defines by defaultCMAKE_INSTALL_PREFIX
pointing to the current package_folder, socmake.install()
can transparently execute the packaging. - Feature: improved command UX with
--cwd
arguments to allow define the current directory for the command - Feature: improved
VisualStudioBuildEnvironment
- Feature: transfers now show size (MB, KB) of download/uploaded files, and current status of transfer.
- Feature:
conan new
now has arguments to generate CI scripts for Gitlab CI. - Feature: Added
MinRelSize
andRelWithDebInfo
management inCMake
helper. - Fix: make
mkdir
,rmdir
,relative_dirs
available for import fromconans
module. - Fix: improved detection of Visual Studio default under cygwin environment.
- Fix:
package_files
now allows symlinks - Fix: Windows installer now includes conan_build_info tool.
- Fix: appending environment variables instead of overwriting them when they come from different origins: upstream dependencies and profiles.
- Fix: made opt-in the check of package integrity before uploads, it was taking too much time, and provide little value for most users.
- Fix: Package recipe linter removed some false positives
- Fix: default settings from conan.conf do not fail for constrained settings in recipes.
- Fix: Allowing to define package remote with
conan remote add_ref
before download/upload. - Fix: removed duplicated BUILD_SHARED_LIBS in test_package
- Fix: add "rhel" to list of distros using yum.
- Bugfix: allowing relative paths in
exports
andexports_sources
fields - Bugfix: allow custom user generators with underscore