Commit Graph

315 Commits

Author SHA1 Message Date
Hind Montassif 6618349cba release libmamba 2.0.0alpha2, libmambapy 2.0.0alpha2, micromamba 2.0.0alpha2 2024-02-02 17:37:25 +01:00
Antoine Prouvost 551540ba0a
Improve Query API (#3167)
* Clean Query

* Bind Query alike to C++
2024-02-01 10:21:41 -05:00
Antoine Prouvost a182b1d453
Bind solver::libsolv::UnSolvable (#3166) 2024-01-31 16:34:55 -05:00
Antoine Prouvost 9f1b5b7e06
Solver sort deps (#3163)
* Improve Solver::solve

* Add Solver request ordering

* Refactor context solver flags

* Add config option order_solver_request

* Fix config

* Change pin test expected solution

* Refactor custom variant comparison

* Add 2.0 order_solver_request doc
2024-01-31 16:21:29 -05:00
Antoine Prouvost dedf072874
Split Solver and Unsolvable (#3156)
* No capture MPool in Solver

* Solution in MSolver

* Change MTransaction solver ctor

* Split UnSolvable from MSolver

* Implement MSolver Outcome

* Private SolverProblem

* Move UnSolvable to solve::libsolv

* Move sat* solver::problems_graph

* Clean test_problems_graph

* Move MSolver to solver::libsolv

* Rename MSolver > Solver

* Add minimal 2.0 doc

* Bind solver::Solution

* Move problems_graph bindings to libmambapy.solver

* Change Solver namespace

* Move Solver bindings to libmambapy.solver.libsolv
2024-01-30 22:20:36 +01:00
Antoine Prouvost b270d9f6b3
Refactor solver flags (#3153)
* Rename Solver keep_specs > keep_user_specs

* Refactor hide libsolv solver flags

* Move Solver flags in Request
2024-01-25 17:07:54 +01:00
Antoine Prouvost a190d9394c
Solver Request (#3141)
* Change type for MSolver::add_pin

* Add Solver Request 1

* Add Solver Request 2

* Add Solver Request 3

* Cleanup retry flags

* Remove constant parameter

* Add Solver Request 4

* Add Request::Freeze

* Add Request::Keep

* Add Request::UpdateAll

* Remove MSolver::add_global_job

* Use MSolver::add_request for remove

* Remove MSolver::add_jobs

* Remove MSolver::add_pins

* Add api/install pins in request

* Add api/update pins in request

* Remove MSolver::add_pin

* Remove dead MSovler neuter_specs & pinned_specs

* Move Request to solver::Request

* Bind solver::Request

* Apply review comments
2024-01-23 13:38:11 +01:00
Antoine Prouvost e8793e59e6
Solver improvements (#3140)
* Change serializing of pin

* Change pin names

* Rename MSolverProblem > SolverProblem

* Move pool_add_matchspec to helpers

* Move transaction_to_solution to helpers

* Remove MSolver::add_constraints

* Move pool_add_pin to helpers

* Remove MSolver pointer convertion

* Remove MSolver macro flags
2024-01-19 10:04:45 +01:00
Antoine Prouvost 0324bd74b0
No M (#3137) 2024-01-18 08:44:23 +01:00
Antoine Prouvost a29f500d17
Fix expected caster (#3136) 2024-01-17 16:54:59 +01:00
Antoine Prouvost 7d6856e9b5
MRepo refactor (#3118)
* Rename Enum members in MRepo

* use solv::Pool in MRepo

* Free MRepo add_pip_as_python_dependency

* Free MRepo repodata reading

* Free MRepo read_solv

* Free MRepo write_solv

* Remove MRepo constructor

* Remove MPool capture from MRepo

* Add missing pip dependency

* Refactor solv file serialization

* No lock on non-existant files

* Cleanup dead code

* write_solve create-directories

* Clean MRepo member functions

* Decouple MRepo and Pool

* Finetune Clang-format

* Add filename location to error

* Do not fail on solv file write

* Load new pool loader for repodata and .solv files

* Remove repo name in favor of URL

* Refactor MRepo index loading

* Fix SubDirData.writable_solv_cache

* Fix solv file loading

* Lock repodata.json while reading metadata

* Refactor expected in load_subdir_in_pool

* use expected in solver helpers

* Refactor helpers functions and error messages in Repo

* Add MPool::create_repo_from_packages

* Use load_installed_packages_in_pool

* Remove MRepo ctor

* Fix rebase

* Refactor MRepo::priority

* Update Taskfile realpath to work on MacOS

* Fix virtual packages being removed

* Move MRepo::priority to MPool

* Rename MRepo > solver::libsolv::RepoInfo

* Move RepoInfo parameters for its own library

* Move make_package_info to helpers

* Add libmambapy.solver.libsolv

* Add solver::libsolv::Priorities op

* Bind libsolv parameters

* Bind RepodataOrigin

* Merge libsolv/serialization and libsolv/parameters

* Bind new MPool methods

* Add RepoInfo op

* Add RepoInfo changes to log

* Rename attribute

* Remove RepoInfo::repo
2024-01-17 16:44:47 +01:00
Antoine Prouvost cc95098a57
Add expected caster to Union (#3135) 2024-01-17 16:44:21 +01:00
Antoine Prouvost 8ab10efa07
Pool channel match (#3122)
* Add Match return type to Channel::contains_package

* Simplify channel specific matchspec in Pool

* (Dirty) fix force reinstall
2024-01-11 15:07:54 +01:00
Antoine Prouvost 43e24a864d
Add Channel::contains_package (#3121)
* Add CondaURL literals

* Add Channel::contains_package

* Fix test case name

* Bind Channel::contains_package
2024-01-11 10:10:36 +01:00
Antoine Prouvost 13d034147f
Rename ChannelSpec > UndefinedChannel (#3117)
* Rename ChannelSpec > UndefinedChannel

* Rename UndefinedChannel > UnresolvedChannel
2024-01-09 13:52:23 +01:00
Antoine Prouvost 328457276a
Add some PackageInfo tests" (#3115)
* Add PackageInfo::from_url

* Add PakcageInfo tests

* Bind PackageInfo::from_url
2024-01-09 09:38:01 +01:00
Antoine Prouvost 6bf43a6d4f
Change PackageInfo types (#3113)
Use NoArchType in PackageInfo
2024-01-08 17:52:17 +01:00
Antoine Prouvost 717456890a
Move PackageInfo in specs:: (#3109)
* Move PackageInfo in specs::

* Move PackageInfo in specs::

* Rename PackageInfo::url > PackageInfo::package_url

* Add changelog entry

* Add MatchSpec migration help
2024-01-08 16:06:22 +01:00
Antoine Prouvost dae5e0e378
NoArchType as standalone enum (#3108)
* NoArch as standalone enum

* Bind NoArchType
2024-01-08 14:26:42 +01:00
Antoine Prouvost 53a5171360
Clean PackageInfo interface (#3103)
* Refactor PackageInfo operator==

* Remove unused headers

* Simplify PackageInfo interface

* Move PackageInfo signature order

* Change type for PackageInfo::defaulted_keys

* Use nlohman::from_json for PackageInfo

* Use nlohman::to_json for PackageInfo

* Fallback in PackageInfo::str

* Rename PackageInfo::fn > filename
2024-01-05 18:26:51 +01:00
Antoine Prouvost 18b77d62be
GlobSpec (#3094)
* Fix include guard

* Add GlobSpec

* Use GlobSpec for MatchSpec build_string

* Make MatchSpec::name a GlobSpec
2024-01-03 09:17:17 +01:00
Antoine Prouvost b9706dce32
MatchSpec use VersionSpec (#3089)
* Don't use members as wip vars

* Make conda-build compatible VersionSpec str

* Add VersionSpec::is_explicitly_free

* Strenghten sat attrs ref

* Try pluging VersionSpec in MatchSpec

* Change type of MatchSpec::version

* Fix MatchSpec::conda_build_str

* Adjust MatchSpec tests
2024-01-02 12:55:42 +01:00
Antoine Prouvost 3f6484c23c
Fix VersionSpec free ranges (#3088) 2023-12-28 13:33:48 +01:00
Antoine Prouvost 15e8056029
Some future proofing MatchSpec (#3082)
* Private MatchSpec::name

* Private MatchSpec::filename

* Private MatchSpec::url

* Make MatchSpec::is_file a function

* Private MatchSpec::namespace

* Private MatchSpec::build_number

* Remove dead affectation

* Private MatchSpec::optional

* Remove dead code

* Clean MatchSpec dist parsing

* Fix MatchSpec dist parse

* Private MatchSpec::version

* Private MatchSpec::build_string

* Private MatchSpec::channel

* Add missing MatchSpec setters

* Put MatchSpec in specs::
2023-12-26 17:23:33 +01:00
Antoine Prouvost 152857f059
Add VersionSpec::str (#3081)
* Add flat_bool_expr_tree:infix_for_each

* Add level to Version repr

* Add VersionSpec::str
2023-12-22 14:19:33 +01:00
Antoine Prouvost 2d85759c13
More specs bindings (#3080)
* Bind archive

* Minor specs::Version improvements

* Bind specs::Version

* Bind VersionSpec

* Use alias
2023-12-22 08:54:02 +01:00
Johan Mabille 29a19e1ef5 release libmamba 2.0.0alpha1, libmambapy 2.0.0alpha1, micromamba 2.0.0alpha1 2023-12-18 11:50:36 +01:00
Antoine Prouvost 6ed8c23721
Fix 2.0 alpha (#3067) 2023-12-18 10:50:47 +01:00
Johan Mabille c54c4b530e release libmamba 2.0.0alpha0, libmambapy 2.0.0alpha0, micromamba 2.0.0alpha0 2023-12-14 16:42:44 +01:00
Daniel Holth d12d77056c
restore use_default_signal_handler flag for libmambapy (#3028) 2023-12-07 23:33:23 +01:00
Antoine Prouvost 21675b6517
Enforce space between definitions (#3049) 2023-12-07 23:00:25 +01:00
Antoine Prouvost f36c3f222e
Change MatchSpec::parse to named constructor (#3048) 2023-12-07 16:06:02 +01:00
Antoine Prouvost d3b72c44fb
Plug ChannelSpec in MatchSpec (#3046)
* Plug ChannelSpec in MatchSpec

* Remove unused split_platform

* Fix channel specific error messages

* Fix MatchSpec tests

* Remove ChannelSpec Context and ChannelContext dep
2023-12-07 13:45:56 +01:00
Antoine Prouvost dfcb8c249e
MatchSpec small improvements (#3043)
* Small CQA

* Add ChannelSpec::str

* Add ChannelContext::make_channel for ChannelSpec

* Split MatchSpec tests
2023-12-07 09:20:58 +01:00
Antoine Prouvost c529199eef
Split validate.[ch]pp (#3041)
* Split validation errors

* Split validation keys

* Fix header include

* Split validation versioned namespaces

* Trailing return types

* Split update framework implementation

* Finish validation split

* Fix missing header
2023-12-06 19:34:19 +01:00
Antoine Prouvost ecd6de037c
Bind ChannelContext (#3034)
* Bind ChannelContext

* Deprecate Context() in Python

* Remove ChannelContext singleton
2023-12-05 17:52:13 +01:00
Antoine Prouvost 5509ed3044
Bind Channel (#3001)
* Rename binding functions

* Minimal specs bindings

* Add ChannelSpec setters

* Fix flat_set caster

* Bind ChannelSpecs

* Bind Platform

* Rename CondaURL::base > CondaURL::generic

* Automatically convert enums from strings

* Fix CondaURL encoding bug

* Bind CondaURL

* Add comparison for AuthenticationInfo

* Bind AuthenticationInfo

* Rename libmambapy tests

* Bind AuthenticationDataBase

* Fix binding size

* Add weakening_map comparison

* Refactor AuthenticationDataBase bindings

* Bind ChannelResolveParams

* Separate binding utility functions

* Bind CondaURL / subpath

* Fix Channel

* Bind Channel

* Modify specs import

* Remove ChannelSpec setters

* Simplify channel tests
2023-11-28 20:50:51 +01:00
Antoine Prouvost abd21ccc8c
Remove ChanelContext context capture (#3015)
* Remove some ChannelContext::context

* Explicit Context capture in SubdirData

* Explicit Context param in MatchSpec

* Move URL hardening to Transaction

* Remove Context capture in ChannelContext
2023-11-28 18:32:09 +01:00
Antoine Prouvost 1230b92094
Move to Ruff (#3011)
* Use Ruff LSP

* Remove unused imports

* More Ruff fixes

* Remove unused test vars

* Explicit import

* Explicit import

* Explicit import

* Explicit import

* Explicit import

* Warning fixes

* Import fixtures

* Add ruff pre-commit

* Remove pre-commits checks superceded by ruff

* Fix imports

* Fix ruff warning

* Fix test_linking fixtures

* Fix typo

* Fix test_update fixture import

* Python line-length to 100

* Reformat Python code line length

* Fix typo
2023-11-27 19:10:34 +01:00
Antoine Prouvost acd357df95
Remove ChannelContext ctor (#3002) 2023-11-22 18:45:43 +01:00
Antoine Prouvost 1ee4893eeb
Move core/channel > specs/channel (#3000)
* Move core/channel > specs/channel

* Remove unnecessary [[nodiscard]]

* Minor specs::Channel improvements

* Add value based ChannelResolveParams

* Add specs::Channel tests

* Add more Channel tests

* ChannelContext::context const only

* Remove unnecessary ChannelContext functions

* Rename core/channel.hpp > core/channel_context.hpp

* Sort (some) CMake files

* Refactor ChannelContext constructor

* Review comments

* Const reference

* Use ChannelContext::make_conda_compatible
2023-11-22 15:29:34 +01:00
Antoine Prouvost e874e7ea71
Migrate Channel::make_channel to resolve multi channels (#2986)
* Add one to many get_channels

* Refactor ChannelContext params

* ChannelContext::make_channel migration 1

* ChannelContext::make_channel migration 2

* ChannelContext::make_channel migration 3

* ChannelContext::make_channel migration 4

* ChannelContext::make_channel migration 5

* ChannelContext::make_channel migration 6

* ChannelContext::make_channel migration 7

* Remove Channel bindings

* Remove ChannelContext::make_channel

* ChannelContext::get_channels migration 1

* ChannelContext::get_channels migration 2

* ChannelContext::get_channels migration 3

* Remove get_channels bindings

* Remove ChannelContext::get_channels

* Channel::resolve return a list

* Resolve multi_channel in Channel::resolve

* Use weakening map for multi_channels

* Split Channel resolve_name

* Cleanup signatures

* Add Channel::clear_xxx

* Force removal of trailing '/' in Channel

* Add weak channel comparison

* Use better channel comparisons

* Remove Channel::base_url

* Rename Channel::make_chan > make_channel

* Add doc

* Resolve Channel paths from params

* Review from JohanMabille

* Fix absolute path
2023-11-21 12:07:19 +01:00
Antoine Prouvost cd744e765c
Channel initialization (#2953)
* Set default_channels at config level

* Resolve default multi channel at the config level

* Fix Yaml source printers

* Resolve local multi channel at the config level

* Remove ChannelContext::make_simple_channel

* Remove Channel::name usage

* Factorize split_once functions

* Try looking for name match in URL path

* Refactor ending_splits_in

* Code improvement

* Replace get_common_parts with concat_dedup

* Remove Channel::name

* Remove Channel::location

* Use URL for priority in channel loader

* Make Channel value-based

* Add range hashing

* Add Channel comparison and hash

* Make channel map/list return by value

* Resolve 1

* Resolve 2

* Resolve 3

* Remove unknown channels

* Hide get_known_platforms

* Add unknown ChannelSpec

* Remove unused function

* Rename Channel::canonical_name > display_name

* Remove Channel friend class

* Add Channel::resolve

* Remove ChannelContext::from_value
2023-11-15 15:52:59 +01:00
Antoine Prouvost 0d42e81667
Modularize libmambapy (#2960)
* Modularize libmambapy

* Add test-libmambapy to Taskfile

* Fix libmamba installation

* Fix standalone libmambapy configuration

* Change libmambapy layout

* Add scikit-build

* Fix libmambapy extension name

* Add submodules shims

* Fix libmambaoy tests

* Fix stubgen

* Adapt libmambapy tests to scikit-build

* Read version from Python

* Replace confusing names
2023-11-10 18:29:16 +01:00
Antoine Prouvost d116ff8917
Add cmake-format (#2962)
* Add cmake-format

* Apply cmake-format
2023-11-07 11:08:26 +01:00
Antoine Prouvost fdf2b65a27
Refactor CI and libamambapy tests (on Unix) (#2952)
* Add simple libmambapy test

* Use CMakePresets in CI

* Share workspace between jobs

* Add Conda dependency

* Remove CMake STRIP

* Fix menuinst skipping

* Refactor CMakePresets

* Change ccache key

* Add pkg-config
2023-11-02 13:55:39 +01:00
Antoine Prouvost 80e3475e06
Explicit and smart CMake target (#2935)
* Explicit and smart CMake target

* Only expose explicit CMake targets
2023-10-31 12:07:03 +01:00
Julien Jerphanion cab1bbfdbb
fix: Parse `remote_connect_timeout_secs` as a double (#2949)
* fix: Parse `remote_connect_timeout_secs` as a double

Signed-off-by: Julien Jerphanion <git@jjerphan.xyz>

* test: Test parsing of `.condarc`

Signed-off-by: Julien Jerphanion <git@jjerphan.xyz>

* fixup! test: Test parsing of `.condarc`

* lint: Format .condarc

Signed-off-by: Julien Jerphanion <git@jjerphan.xyz>

---------

Signed-off-by: Julien Jerphanion <git@jjerphan.xyz>
2023-10-30 13:46:35 +01:00
Antoine Prouvost 6592c84084
Combine dev environments (#2937) 2023-10-26 12:48:50 +02:00
Antoine Prouvost c7aba975b5
Resolve ChannelSpec into a Channel (#2899)
* Change URL custom_channel matcher

* Cannot change location at once

* Simpler channel_alias_location

* Change URL channel_alias matcher

* Refactor ChannelContext::from_url

* Add Windows URL path encoding test

* Simplify URL::set_path

* Fix URL encoding parsing

* Refactor platforms urls

* Fix missing forward declaration

* Fix Win file URL encoding

* Split Channel url functions

* Remove no-URL ctor from ChannelContext::from_name

* Remove no-URL ctor from ChannelContext::make_simple_channel

* Remove old Channel ctor

* Remove channel_alias_location

* Refactor Channel::base_url

* Try not to use location mamba.py

* Remove Channel comparison

* Try Channel::platform_url

* Refactor Channel::platform_urls to use platform_url

* Remove build_url

* Remove concat_scheme_url

* Use spec in from_name

* Tuple equality for URL

* Add tuple_hash

* Add std::hash<mamba::util::URL>

* Make CondaURL hashable

* Refactor make_channel

* New algorithm for authetification map

* Add specs::AutheticationDataBase

* Fix typo authentification > authentication

* Use AuthenticationDataBase

* Fix AuthenticationDataBase

* use AuthenticationDataBase::find_compatible

* Use canonical_name

* Add Credential check to URL

* Simplify crendential check in channel

* Refactor AuthDB credential setters

* No Channel::location in tests

* Remove Channel user scheme password

* Document AuthenticationInfo

* Remove Channel token

* Remove Channel::auth

* Remove Channel::package_name

* More replacement name > canonical_name

* Remove unused function

* No credential from URLs

* Remove unneeded header

* Disable Channel::repo_checker

This is disbled as TUF implementation is not well defined and this
function is not used except in experimental conditions.

* Apply auth info as needed

* Simplify custom_channels instanciation

* Simplify custom_multi_channels instanciation

* Review improvements
2023-10-25 19:06:46 +02:00
Johan Mabille 00dd002fe6
Added PackageFetcher (#2917)
* Added PackageFetcher

* slight refactoring

* Additional cleanup and first pass according to review

* Last pass according to review
2023-10-19 15:26:57 +02:00
Antoine Prouvost 4e93b7967a
Add ChannelSpec (#2870)
* Make find_slash_and_platform private-lib

* Add ChannelSpec

* Add ChannelSpec::Type

* Add abs_path_or_url_to_url

* Add ChannelSpec path normalization and type detection

* Add ChannelSpec::location

* Allow any platform string in ChannelSpec

* Channel::platforms is a flat_set

* Move flat_set_caster to own file

* More flat_set in Channel

* Regenerate Python stubs

* Plug ChannelSpec into Channel

* Resolve path in ChannelSpec

* Fix env export channels

* No resolve symlink in ChannelSpec

* Fix tests on Windows

* Add ChannelSpec attribute extractors

* Add raw domain ChannelSpec test

* Use URL in read_channel_configuration

* Fix local channel name

* Improve path_to_url

* Construct from Channel from URL

* Properly parse channel alias

* Fix wrong move

* Channel alias is a CondaURL

* Add defaulted scheme to URL

* Add defaulted host to URL

* CondaURL tokens can only be at the begining

* Add CondaURL::path_without_token

* Add option to remove credentials in URLs

* Add empty cretendial URL tests

* Add str Credential options

* Add credential option to CondaURL::str

* Add split_prefix/suffix

* Add ChannelContext::from_package_path

* URL::pretty_path only on Windows

* Add ChannelContext::from_path

* Do not resolve paths in ChannelSpec

* Change mapping order in path resolving

* Compute URL canonical_name in read_channel_configurations

* Add URL::authority credentials

* Rename private URL::authentification > URL::authentifaction_elems

* Refactor URL::authority

* Refactor some read_channel_configurations

* Remove empty path URL case

* Add path_is_prefix

* Fix url_match

* Add flat_set doctest printer

* Add CondaURL doctest printer

* Alias dynamic_platform_set in ChannelSpec

* Use util:concat

* Restore subdir in matchspecs

* Make find_slash_and_platform private
2023-10-12 15:56:49 +02:00
Antoine Prouvost 5d515fa043
Add multiple queries to repoquery search (#2897)
* Remove kENUM

* Fix Hide URL confidential

* Refactor repoquery initialization

* Hide implementation headers

* Add enum_name(QueryType)

* Add QueryType_from_name

* Mulitple queries in repoquery search

* Stubgen

* No mathspec in Json query

* Remove unused ChannelContext
2023-10-09 21:40:50 +02:00
Antoine Prouvost 91b6c44a51
Read repodata.json using nl::json (rerun) (#2753)
* Add simdjson dependency

* Add experimental_repodata_parsing option

* Add simdjson repodata parser

* Add missing dependency

* Deactivate simdjson by default
2023-10-04 22:06:46 +02:00
Antoine Prouvost 0fbb0e4fab
Use CMake targets for reproc (#2883)
* Use CMake targets for reproc

* Use reproc-cpp-static on Windows

* Upper pin on Mamba
2023-10-02 18:01:14 +02:00
Johan Mabille 474be8b9b0
Download (#2844)
* Refactored Subdir Metadata

* Plugged downloader into subdirdata

* Simplified Donwloader APIs

* Added DownloadMonitor and plugged it into channel_loader

* Simplified subdir API

* Fixed python bindings

* Changes according to review (on going)

* Added json parsers to subdirmetadata
2023-09-29 16:19:14 +02:00
Antoine Prouvost be30af600a
Build micromamba win with feedstock (#2859)
* Try CI

* Remove useless header

* Try mixing static windows build with Conda

* More packages from conda-forge

* Move to yaml-cpp>=0.8.0

* Ensure proper yaml-cpp target

* Use yaml-cpp-static on Windows

* Fix versions

* Use libsolv-static from Conda-Forge
2023-09-27 10:32:47 +02:00
Daniel Elsner a2b0f9c3b8
Further improve `micromamba search` output (#2823) 2023-09-26 08:09:22 +02:00
Antoine Prouvost 9b757c24a8
No ugly kenum (#2831) 2023-09-14 10:56:29 +02:00
Antoine Prouvost 69a2cd30e2
fix stubs (#2817)
* Downpin pybind11-stubgen

* Fix stubgens

* Regenerate stubs
2023-09-07 10:12:09 +02:00
Klaim (Joël Lamotte) bbac096a04
Context: not a singleton (#2615)
Context is not a singleton anymore.

---------

Co-authored-by: Johan Mabille <johan.mabille@gmail.com>
2023-09-05 10:55:43 +02:00
Johan Mabille 0a5ed8d71f release libmamba 1.5.1, libmambapy 1.5.1, mamba 1.5.1, micromamba 1.5.1 2023-09-05 10:23:43 +02:00
Daniel Elsner 7dfbf2cf0d
Clearer output from `micromamba search` (#2782)
* [feat] Show other versions with --pretty printing

* [feat] Refine version/build table in search pretty print

* [feat] Change table view to contain further aligned build information

* [feat] Redirect non-wildcard search to single package view

* Fix repoquery test for empty single package view

* Cleanup + add string marker for alignment

* Fix string marker for libmambapy

* Add changes suggested by JH

* Move to unordered_map where it makes sense

* Move to string_view and switch-case constexpr alignment mapping

* Fail lookup for non-existing alignments

* Remove unnecessary reference in constructor
2023-08-31 16:10:03 +02:00
Johan Mabille 795734fb7f release libmamba 1.5.0, libmambapy 1.5.0, mamba 1.5.0, micromamba 1.5.0 2023-08-24 09:24:26 +02:00
Johan Mabille 6e4d91e2ec
New apis for downloading (#2695)
* New apis for downloading

* Changes according to review

* Added minimal test and fixed issues

* Python backward compatibility
2023-08-23 09:07:20 +02:00
Hind-M 427771c4b4
Fix warnings (#2760) 2023-08-21 15:16:48 +02:00
Antoine Prouvost 03e34174dc
Move util_string to utility library (#2739) 2023-08-11 13:32:15 +02:00
Johan Mabille 6f6fdd7b98 release libmamba 1.4.9, libmambapy 1.4.9, mamba 1.4.9, micromamba 1.4.9 2023-07-13 16:07:23 +02:00
Johan Mabille bc818db386 release libmamba 1.4.8, libmambapy 1.4.8, mamba 1.4.8, micromamba 1.4.8 2023-07-11 09:50:02 +02:00
Johan Mabille c46647a880
Fixed zst check in MSubdirData (#2661) 2023-07-08 00:11:34 +02:00
Antoine Prouvost 3b6e10159f
Replace MTransaction::m_remove with Solution (#2603)
* Replace MTransaction m_to_remove with m_solution

* Add MSolver filters to Solution

* Add conversion test and accessor to flat_set

* Fix solution filtering in MTransaction

* Use Solution in MTransaction::print

* Ue m_solution in MTransaction::execute

* Fix Json logging

* MTransaction fix python search

* Fix transaction-to_solution topological order

* Fix MTransaction::execute reinstalls

* Remove MTransaction::m_transaction

* Remove MTransaction::filter

* Remove MTransaction::m_filter_name_id

* Add control flow in ObjTransaction loops

* Refactor find_python_versions

* Remove copies in iterations

* Review comments from @JohanMabille
2023-07-07 00:33:05 +02:00
Johan Mabille 2ed8bee1e1 release libmamba 1.4.7, libmambapy 1.4.7, mamba 1.4.7, micromamba 1.4.7 2023-07-06 09:00:00 +02:00
Johan Mabille cd1119fc41
Call init_console in mamba to prevent UTF8 errors when extracting pac… (#2657)
Call init_console in mamba to prevent UTF8 errors when extracting packages
2023-07-05 22:26:40 +02:00
Antoine Prouvost 520872800d
Create Solver solution (#2584)
* Replace MTransaction to_remove with PackageInfo

* Add a solution class

* Fix Solution for_each

* Add Solution empty and size

* Make MTransaction::filter const

* Remove unused MTransaction::m_force_reinstall

* Rename MSolver::set_flags

* Refactor MSolver flags

* Call solver.flag() once in MTransaction

* Implement Solution as alias with free functions

* Remove as many MSolver flag setters as possible

* Make Soltion a struct to possibly add more members

* Remove useless function call

* Add Solution::Omit

* Rename template typenames and parameters in Solution

* Fix MSolver const parameter
2023-07-04 12:04:05 +02:00
John H. Ayad c491f1c52c
Re-introduce ZST support to mamba and remove the feature flag (#2642)
* Re-introduce ZST support to mamba and remove the feature flag

* lint

* Ignore .state.json files for comparison

* lint

* One more
2023-07-02 21:28:37 +02:00
Johan Mabille fa3f7a2f73 release libmamba 1.4.6, libmambapy 1.4.6, mamba 1.4.6, micromamba 1.4.6 2023-06-30 22:07:45 +02:00
Antoine Prouvost 168e55e245
Try fixing missing subdirs on mamba.py (#2632)
* Use install repo from libmamba in mamba.py

* Regenerate stubgens
2023-06-29 10:54:54 +02:00
Antoine Prouvost 50a627e002
Attempt to fix CI (#2637)
* Revert "Change brace space in clang-format (#2627)"

This reverts commit 3dce990111.

* Revert "Improvement: Support ZST in mamba and enable ZST by default (#2404)"

This reverts commit 60cd358c39.
2023-06-29 08:29:37 +02:00
Antoine Prouvost 3dce990111
Change brace space in clang-format (#2627)
Change braced init spaces
2023-06-28 11:38:33 +02:00
John H. Ayad 60cd358c39
Improvement: Support ZST in mamba and enable ZST by default (#2404) 2023-06-27 16:14:29 +02:00
Johan Mabille 9c46dbadd2 release libmamba 1.4.5, libmambapy 1.4.5, mamba 1.4.5, micromamba 1.4.5 2023-06-27 11:05:14 +02:00
Klaim (Joël Lamotte) 5bd15a1502
LockFile behavior on file-locking is now almost independent from Context (#2608)
LockFile behavior on file-locking is now almost independent from Context

---------

Co-authored-by: Johan Mabille <johan.mabille@gmail.com>
2023-06-22 15:40:56 +02:00
Jonas Haag 0a7490c940
Remove banner (#2298) 2023-06-20 16:53:19 +02:00
Klaim (Joël Lamotte) ec95d18986
No Singleton: `Configuration` (#2541)
* Removed unused debugging macros.

* mamba::Configuration is not a singleton anymore.

* review fix
2023-06-15 11:41:21 +02:00
Antoine Prouvost 77bbec5b4a
Fix stubgens (#2556) 2023-06-01 10:05:18 +02:00
Antoine Prouvost 83706d5f9f
Move problem graph creation to MSolver (#2515)
Move problem graph creation to MSolver and remove JupyterLab SAT error case as no long unsolvable
2023-05-23 14:03:00 +02:00
Klaim (Joël Lamotte) ea8249bc7e
No singleton: ChannelContext, ChannelBuilder and channel cache (#2455)
* Fusionned ChannelBuilder and ChannelContext and channel cache

* ChannelContext is not a singleton anymore.

* libmambapy now holds singletons for ChannelContext etc.

* formatting

* Simplified libmambapy singleton handling.

* formatting
2023-05-17 17:11:23 +02:00
Johan Mabille 7a92fa5f62 release libmamba 1.4.4, libmambapy 1.4.4, mamba 1.4.4, micromamba 1.4.4 2023-05-16 23:08:34 +02:00
Hind-M 32c64cdbfe
Support future deprecated API for `Context` (#2494)
Add deprecated API for context and updated stubs accordingly
2023-05-16 21:39:23 +02:00
Johan Mabille 46d3acd3c1 release libmamba 1.4.3, libmambapy 1.4.3, mamba 1.4.3, micromamba 1.4.3 2023-05-15 23:25:22 +02:00
Antoine Prouvost 15f6b6e606
Use libsolv wrappers in MPool and MRepo (#2453)
* Use ObjPool in MPool

* Straightforward wrapper call

* MPool debug callback wrapper

* Fix format

* Use m_real_repo_key

* MRepos need not be stored

* Change MRepo::set_urls call

* Rename real_repo_key

* Awlways set solvable URL

* Rename mrepo_key

* Leaf comment note on package Info

* Ensure proper channel format in query

* Fix set url everywhere

* Rename solvable:noarch

* Fix real_repo_url in pybind

* Bump mamba tool version

* fix: prevent (possible) dangling pointer in query

* Fix url in transaction

* fix: setting url or repo from mamba

* fix: UB string_view of deallocated string

* Use solv:: interface in channel specific dep

* Use new solv:: interface in make_package_info

* Use solv:: interface in add_package_info

* Small implementation changes in MRepo

* Use wrapped reading functions

* kill MRepo::m_url

* Mark MRepo C++ function for Python deprecated

* Add ObjRepo::legacy_read_conda_repodata

* Mark more MRepo functions private

* Remove filename attributes from MRepo

* Fix Mrepo add_extra_pkg_info

* Not ignoring MRepo name

* Split url outside MRepo

* Remove MRepo ctor overload
2023-05-05 11:07:21 +02:00
Hind-M 9831342dd1
Resume `Context` structuring (#2460)
Add ThreadsParams and PrefixParams in Context
2023-04-25 10:02:51 +02:00
Antoine Prouvost c7f897febf
Store PackageInfo::track_features as a vector (#2478)
Store PackageInfo::track_features as a vector
2023-04-21 15:37:30 +02:00
Hind-M 40c220c4ce
Context structuring (#2432)
Context structuring

Co-authored-by: Johan Mabille <johan.mabille@gmail.com>
2023-04-12 21:08:29 +02:00
Antoine Prouvost 032e404fc8
Remove dead code / attribute (#2454)
Removed dead code in package info and PackageInfo::extra_metadata
2023-04-12 15:55:36 +02:00
Johan Mabille 30ca2e2d5d release libmamba 1.4.2, libmambapy 1.4.2, mamba 1.4.2, micromamba 1.4.2 2023-04-06 14:58:37 +02:00
Antoine Prouvost 0345b9d7f8
Use custom function to properly parse matchspec (#2433)
Make MPool::matchspec2id properly process channels
2023-04-03 16:39:43 +02:00
Ivan Ogasawara a3597e33ff
fix: Improve message after the env creating with micromamba (#2425) 2023-03-31 20:50:07 +02:00
Johan Mabille 6ed35f84ef release libmamba 1.4.1, libmambapy 1.4.1, mamba 1.4.1, micromamba 1.4.1 2023-03-28 11:39:49 +02:00
Klaim (Joël Lamotte) 4e7bd605b0
Renamed `validate` namespace to `mamba::validation (#2411)
Renamed `validate` namespace to `mamba::validation
2023-03-27 11:38:06 +02:00
Johan Mabille d212f4aeac release libmamba 1.4.0, libmambapy 1.4.0, mamba 1.4.0, micromamba 1.4.0 2023-03-22 17:42:38 +01:00
Antoine Prouvost 07477a25fe
Some renaming in the utility library (#2387)
Rename vector_set > flat_set, move util_compare > util/compare, move util_cast > util/cast
2023-03-17 09:06:31 +01:00
Antoine Prouvost 8c5841cbfc
Isolate PackageInfo from libsolv (#2340)
* Isolate libsolv from PackageInfo
2023-03-08 09:15:46 +01:00
Antoine Prouvost 66c721c220
Improve Python conflicts (#2318)
Better handle the (almost) cyclic conflict due to the reversal of the dependencies bewteen python and python_abi.
2023-03-07 16:19:55 +01:00
Johan Mabille 0919fbd514
Fixed repoquery output of mamba when query format is JSON (#2353)
Fixed repoquery output of mamba when query format is JSON
2023-03-07 14:55:09 +01:00
Hind-M e549d07b0c
Fix `repoquery` issues (#2330)
Fix `depends` and `whoneeds` repoquery sub-commands in micromamba
2023-03-06 12:13:19 +01:00
Antoine Prouvost 2811c25d75
Clean util_string (#2339)
clean up the util_string header and add util_string.cpp
2023-03-03 16:22:15 +01:00
Antoine Prouvost 8c4212f5d4
DependencyInfo is redundant (#2314)
Removed redundant DependencyInfo and renamed MatchSpec::build
2023-03-02 11:18:22 +01:00
Antoine Prouvost 018aac3dd7
Activate SAT error messages (#2325) 2023-02-28 11:24:47 +01:00
Antoine Prouvost 365342cc04
Fine tune clang-format proposal (#2290)
* Fine-tune .clang-format

* Fix missing header and right const

* Fix header order on Windows

* Apply pre-commit
2023-02-20 16:01:43 +01:00
Antoine Prouvost 0002794f3c
Aggressive compilation warnings (#2304) 2023-02-20 09:02:36 +01:00
timostrunk 2fc0624013
repoquery: Implemented recursive dependency printout. Closes: #1242 (#2283)
Co-authored-by: Timo Strunk <Timo.Strunk@nanomatch.com>
2023-02-13 22:40:21 +02:00
Wolf Vollprecht baf3c48cc3
release libmamba 1.3.1, libmambapy 1.3.1, mamba 1.3.1, micromamba 1.3.1 (#2280) 2023-02-10 11:05:46 +01:00
Wolf 9de6782e02 release libmamba 1.3.0, libmambapy 1.3.0, mamba 1.3.0, micromamba 1.3.0 2023-02-03 13:03:49 +01:00
Johan Mabille aab7768807
Added missing public dependency to libmambaConfig.cmake (#2227) 2023-02-02 16:08:32 +01:00
jaimergp 4e2fb8236e
add `use_lockfiles` to libmambapy bindings (#2256) 2023-01-30 13:56:58 +01:00
Wolf Vollprecht 3390da9ab9 release libmamba 1.2.0, libmambapy 1.2.0, mamba 1.2.0, micromamba 1.2.0 2023-01-16 10:20:39 +01:00
Wolf Vollprecht 3f2135ef9e
remove patches for feedstock (#2216) 2023-01-11 13:40:19 +01:00
Wolf Vollprecht f6e717173c
make tarballs look more similar to conda-package-handling, add compression threads (#2177) 2023-01-03 17:56:12 +01:00
Antoine Prouvost efc377e29d
Error messages improvements (#2149)
* Fix compression of split with different status

* Fix size issue in truncated strings

* Add versions_and_build_strings_trunc

* Use zipped versions and builds

* Better handling of virutal nodes

* Don't merge same name user requirements

* Fix NamedList tests

* Adjust NamedList bindings

* Regenerate stubgens
2022-12-05 15:40:52 +01:00
Claudia Rogoz 53f141a32e
Add Context binding for experimental_sat_error_message (#2143)
* Add experimental_sat_error_message setter

* fix order

* add experimental_sat_error_message to context

* initi_api_context

* pre-commit

* no conda context
2022-12-05 11:28:28 +01:00
Wolf Vollprecht e0848e695e
release 1.1.0 (#2130) 2022-11-28 18:44:19 +01:00
Antoine Prouvost 0181538e54
Bind SAT error messages to python (#2127)
* Bind ProblemsGraph and CompressProblemGraph

* Rename summary error message

* Fix Python static property

* Add stubgens for problems bindings

* Give a little help to Windows

* Windows

* Hang in there MSVC

* Fix Pybind init

* Add graph all successors accessor

* Change graph bindings to raw data

* Add NamedList remove_duplicates py::arg

* Regenerate stubgens
2022-11-23 14:30:03 +01:00
Antoine Prouvost f32b42e3f2
Move to fmt::terminal_color and other output IO improvements (#2085)
* Remove termcolor for fmt
* Reimplement termcolor::is_atty
* Switch to fmt::terminal_color
* Add missing header for to_utf8
* Add Context color palette
* Refactor progress bar to use palette
* Remove misleading flag-like enum
* Fix windows build
* Remove output::format
* Add visited colors for repoquery
* Use palette in SAT error messages
* Console::stream() clear line
2022-11-21 14:22:51 +01:00
Antoine Prouvost ab22b63985
[MER] Add experimental flag for error messages (#2080)
* Add experimental flag for error messages
* Bind MSolver::explain_problems
* Use Solver.explain_problems in mamba
* Rename MSolver::solve > MSolver::try_solve
* Add MSolver::must_solve
* Add [[nodiscard]] to MSolver
* Change solve -> try_solve in tests
* Used shared_ptr for MPool
* Make MSolverProblem a flat data type
* Add deprecation warnings for Solver.solve
* Add tree error message to MSolver
2022-11-10 18:54:41 +01:00
Wolf Vollprecht c5d73a204b release 1.0.0 2022-11-01 21:01:36 +01:00
Wolf Vollprecht c889fa6855
add micromamba self-update functionality (#2023) 2022-11-01 17:24:46 +01:00
Jonas Haag eea9407d30
Test special characters in basic auth (#2012) 2022-10-29 17:55:37 +02:00
AntoinePrv 4e2a91bea7 Direct dependency on fmt 2022-10-26 10:49:50 +02:00
Joël Lamotte (Klaim) 2b7b230613 Changed LockFile to be a non-throwing checkable type, no pointers use.
This changes how we use LockFile. See documentation/comments in the
type's header `util.hpp`.
2022-10-21 16:29:18 +02:00
Wolf Vollprecht d839af71d1
Test stubs (#2025)
test pybind11-stubgen generation
2022-10-14 15:21:26 +02:00
Daniel Holth f055ff777c
add stubs with pybind11-stubgen (#1983)
* add stubs with pybind11-stubgen
* move stubs to libmambapy/__init__.pyi
2022-10-13 14:08:31 +02:00
Wolf Vollprecht cb2342a009
release 0.27.0 (#1990) 2022-10-04 12:47:54 +02:00
Wolf Vollprecht 69cc8944ff use external spdlog in libmambapy if desired 2022-10-04 09:20:20 +02:00
Wolf Vollprecht 25be29a831 update all release files 2022-09-30 16:11:26 +02:00
Daniel Farrell 3a5cd599d6
Add 'use_lockfiles' configuration to enable or disable locking globally (#1830)
Co-authored-by: Danny <dan@cyrusbio.com>
Co-authored-by: Jonas Haag <jonas@lophus.org>
Co-authored-by: Wolf Vollprecht <w.vollprecht@gmail.com>
Co-authored-by: Johan Mabille <johan.mabille@gmail.com>
2022-09-29 18:01:13 +02:00
Adrian Freund 02e4385d2f
Add support for configuring proxies in .condarc (#1814)
* Add support for proxy settings in .condarc

This commit is based on https://github.com/mamba-org/mamba/pull/161/

* Add test for proxy configuration

* Remove env variables from proxy servers configurable

They are already handled by curl

* Add tests for proxy_match

* Remove and improve debug messages

* Use EXPECT_STREQ for proxy match tests

* Use std:string instead of char*

* Add micromamba proxy tests

* Retrigger CI

* Try to fix proxy tests in CI

* Add missing file and fix executable name

* Try to fix windows build

* Use install xtensor package for proxy test

* Try to fix tests on windows

* Pass proxy settings between libmamba and mamba

* Use long form of `--script` parameter for mitmproxy

Co-authored-by: Jonas Haag <jonas@lophus.org>

* Clarify variable name

Co-authored-by: Jonas Haag <jonas@lophus.org>

* Add docstring to dump_proxy_connections.py

* Add explanation to micromamba proxy test

* Cleanup proxy_match function

* Redact passwords in proxy urls when logging

* Renamed redact_url to redact_url_password

* Revert "Renamed redact_url to redact_url_password"

This reverts commit ca39afda21.

* Revert "Redact passwords in proxy urls when logging"

This reverts commit 270eb70420.

* Use existing hide_secrets function to hide password in proxy url

* Rewrite proxy_match function to be in line with conda

Co-authored-by: Jonas Haag <jonas@lophus.org>
2022-09-08 17:48:27 +02:00
Joël Lamotte (Klaim) 5f2bd74d6f Revert "try vs2022"
This reverts commit 4a4c65747ec8707951c0ddb7c0c0cd6fb7345610.
2022-08-12 17:25:10 +02:00
Wolf Vollprecht 0ff503c483 try vs2022 2022-08-12 14:37:50 +02:00
Joël Lamotte (Klaim) a6a1251c10 Replaced `fs::u8path` long-path support on windows by enabling it explicitly. 2022-08-12 14:37:49 +02:00
Joël Lamotte (Klaim) 8b4010a56f Use `fs::u8path` instead of `fs::path` to fix utf-8 paths issues on Windows 2022-08-12 14:37:49 +02:00
Joël Lamotte (Klaim) 231db2021a Fixed missing explicit conversions from `fs::path` to `std::string` 2022-08-12 14:37:49 +02:00
Joël Lamotte (Klaim) 9790a87a5d Use standard C++ filesystem API only 2022-08-12 14:37:49 +02:00
Antoine Prouvost 6d45c96ecc
Add missing SolverRuleinfo enum members to libmambapy (#1833) 2022-08-03 19:59:01 +02:00
Wolf Vollprecht 4074116dae
Release 0.25.0 (#1824) 2022-07-26 18:03:18 +02:00
crogoz a825a08928
Add missing rule info 2022-07-26 16:08:37 +02:00
AntoinePrv cabd3bf640 Safe id2pkginfo 2022-07-26 11:35:10 +02:00
AntoinePrv 13a6a4c086 Change mutability in libmambapy PackageInfo 2022-07-25 18:12:13 +02:00
AntoinePrv 649d7eb406 Add argument for PackageInfo ctor 2022-07-25 18:09:28 +02:00
Antoine Prouvost 5e76e2f644
Keep Pool alive for the lifetime of the Solver (#1804) 2022-07-19 16:53:40 +02:00