Commit Graph

560 Commits

Author SHA1 Message Date
Antoine Prouvost 9c68ee239b
Refactor (some) OpenSSL functions (#3024)
* Add sha256 to cryptography

* Refactor cryptographic hasher

* Use new hasher in validation

* Split util::encoding

* Improve hash tests

* Move and refactor cache_name_from_url

* Fix conversion

* Fix namespace

* Fix conversion

* Refactor Base64 encoding

* Move URL percent encoding

* Document encoding.hpp

* Move EVPContextDeleter

* Add doc to DigestHasher

* Remove util::hex_string

* Add UTF8 source file encoding on Windows

* Add hex_to_bytes

* Use util::hex_to_bytes

* Private Digest inheritance

* Make thread_local hasher

* Use digester in validation

* Fix Win
2023-12-04 16:11:35 +01:00
Antoine Prouvost 32ffc54249
Default to hide credentials (#3017)
* Default to hide credentials in util::URL

* Default to hide credentials in CondaURL::pretty_str

* Default to hide credentials in CondaURL::str
2023-11-29 12:47:30 +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 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 139b7ef020
Refactor env::which (#2997)
* Clenup env::which

* RAII C calls

* Refactor which functions

* Remove second param from which

* Change which namespace

* Fix which extension

* Add missing OSX headers

* Add util::which tests
2023-11-20 15:13:22 +01:00
Antoine Prouvost 7c5f0562c4
Migrate expand/shrink_home (#2990) 2023-11-17 19:45:30 +01:00
Antoine Prouvost a0f81393dd
Refactor env directories (#2983)
* Refactor env directories

* util::split char sep

* Refactor pathsep

* Add path_concat

* user_home_dir as string

* get_windows_known_user_folder return as string

* xdg location as string
2023-11-16 18:26:03 +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
Johan Mabille 21c6d73680
removed dependency on conda-index (#2964) 2023-11-08 22:15:05 +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 8683078464
Refactor CI and libamambapy tests (on Win) (#2955)
* TMP disable Unix tests

* Try refactor win CI

* Add libmambapy tests

* Run Windows libamamba tests via CMake

* Add Windows menuinst dependency

* Fix typo

* Debug libmambapy tests Win

* Add micromamba tests windows

* Call test_libmamba from different paths

* Merge workflow launchers

* Fix libmamba tests win

* Fxi

* Fix workspace key

* DEbug win

* Implement local channel tests as part of the intergration tests

* Try Win libmamba tests bash

* Cleanup

* Restore Unix tests

* Make test local channel noarch

* Fix workspace action number

* No error on test cleanup in CI

* Reduce number of threads to conda-index

* Disable local channel tests on Windows
2023-11-03 14:07:54 +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 5564887b97
Rename env functions (#2954) 2023-10-31 16:08:49 +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
Antoine Prouvost 33649d1005
Add refactor getenv setenv unsetenv (#2944)
* Add refactor getenv setenv unsetenv

* Move to refactored env functions
2023-10-31 10:56:33 +01:00
Antoine Prouvost a38196e284
Move reposerver tests to micromamba (#2941)
* Move reposerver tests to micromamba

* Add micromamba channel data

* Remove mamba test

* Fix mamba path

* Restore mamba files

* Fix mamba code
2023-10-26 22:17:48 +02:00
Antoine Prouvost bca398a5dc
Refactor win encoding conversion (#2939) 2023-10-26 19:00:17 +02: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
Isuru Fernando f23e078f2c
Fix channels with slashes regression (#2926)
* Fix channels with slashes regression

* fix formatting

* make the test isolated

Co-authored-by: Antoine Prouvost <AntoinePrv@users.noreply.github.com>

* Add more tests

* Use pytest utilities for negative testing

* Add extra test doc

---------

Co-authored-by: Antoine Prouvost <AntoinePrv@users.noreply.github.com>
2023-10-24 18:35:31 +02:00
Isuru Fernando 24f26a0175
Allow defaults::* spec (#2927) 2023-10-23 20:03:58 +03: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 a8464367c4
Make some fixture local (#2919)
* Make xdg fixtures local

* Make create fixtures local
2023-10-17 16:27:47 +02:00
Marius van Niekerk c32d3ae116
Fix for #2910 (#2911) 2023-10-13 21:54:03 +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
Hind-M 620ae9500c
Add CI test for local channels (#2854)
* Add CI test for local channels

* Replace conda_prefix with mamba_root_prefix

* Add note for `-c local` in channels long description

* Throw exception if no `conda-bld` dir exists and `-c local` is given

* Add umamba local channel tests to windows CI

* Fix test_config
2023-10-06 11:11:49 +02:00
Antoine Prouvost 5a302fc4cb
Filesystem library (#2879)
* move mamba_fs.hpp

* Header cleanup

* No util:: dependency in filesystem

* Change header names

* Use std::replace in filesystem
2023-10-05 20:52:41 +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 7c02338cb5
Fix Ci (#2889)
* Pin pre-commit Python version

* update pre-commit config

* Try fix Mamba tests Windows

* use boltons

* Fix channel in tests
2023-10-03 22:20:29 +02:00
Hind-M b1c4950261
[Micromamba] Add mamba tests (#2877)
* Add mamba `test_api` tests to umamba

* Add more tests
2023-10-03 10:51:16 +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
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
Antoine Prouvost a8d595b6ff
Fix Posix shell on Windows (#2803)
Fix path spearator on Win Posix shells
2023-09-25 14:04:22 +02:00
Hind-M 0fbb449bd7
Add comments in `micromamba` repoquery (#2863)
Add comments in repoquery
2023-09-23 06:18:41 +02:00
Antoine Prouvost 3c200f9e8e
Don't force MSVC_RUNTIME (#2861)
* Don't force MSVC_RUNTIME

* Run micromamba-feedstock fork

* Explicit MSVC runtime in CI

* Fix typo
2023-09-21 20:02:02 +02:00
Antoine Prouvost 7cf41652cf
Channel cleanup (#2832)
* Compress channel alias creation

* Remove split_scheme_auth_token from query

* Remove split_scheme_auth_token from output.cpp

* Remove split_scheme_auth_token from channel.cpp

* Delete split_scheme_auth_token

* Channel no string copy

* channel.hpp include sanitazing

* Remove split_anaconda_token

* Remove split_conda_url

* Remove is_package_file

* Remove needless include

* Move secret regex to util.cpp
2023-09-19 09:43:54 +02:00
Jonas Haag 0319eaf97f
Support $var syntax in .condarc (#2833) 2023-09-15 09:00:52 +02:00
Casper van Elteren f4cea9b732
Add Nushell activation support (#2693) 2023-09-14 12:14:09 +02:00
Antoine Prouvost 9b757c24a8
No ugly kenum (#2831) 2023-09-14 10:56:29 +02:00
Antoine Prouvost 8cb0985cd1
Refactor tests (#2829)
* Make test Python 3.8 compatible

* Speed up test_activation.py

* Refactor test_list.py
2023-09-13 19:26:38 +02:00
rmittal87 a5c51980ba
Adding locks for cache directories in case multiple processes are try…. (#2811)
Adding locks for cache directories in case multiple processes are trying to create an environment at the same time
2023-09-13 15:04:29 +02:00
Hind-M 806287599c
[Micromamba] Add `env update` (#2827)
* Remove weird piece of code

* Add micromamba env update

* Add env update test

* Add xtl check in tests
2023-09-13 13:15:37 +02:00
Lisandro Dalcin 0289050d17
Fix linking on Windows when Scripts folder is missing (#2825)
* Add reproducer for issue #2808

* Ensure parent directory exists when creating Python entry points (#2808)
2023-09-11 18:02:24 +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
Jonas Haag 07ce0c4bdb
Implement --md5 and --channel-subdir for non-explicit env export (#2672)
Co-authored-by: Johan Mabille <johan.mabille@gmail.com>
2023-09-02 00:20:33 +02:00
Hind-M 1919fc0854
[Micromamba] Fix wrong command description (#2804)
Fix wrong command description
2023-09-01 14:29:50 +02:00
Antoine Prouvost 207e7556e4
Fix extra agrument in self-update reinit (#2787) 2023-08-31 22:18:30 +02:00
Antoine Prouvost 3fcff3904b
Windows path manipulation and other cleanups (#2801)
* Add path_win_to_posix

* Move path_has_drive_letter and is_path

* Refactor on_[plat]

* Add util::path_to_posix

* Fix static builds
2023-08-31 22:10:18 +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
Antoine Prouvost e5abd4249f
Fix pins (#2786)
* Add libsolv test scenarios

* Fix pins

* Add test for python pinning

* Fix test

* Deactivate test on Windows
2023-08-29 03:32:09 +02:00
Antoine Prouvost da70542cbe
Enable Link Time Optimization (#2742)
* Add MAMBA_LTO option to CMake

* Handle no CMAKE_BUILD_TYPE in LTO
2023-08-25 09:50:35 +02:00
Jonas Haag 20b477f459
Restore `__linux=0` test (#2778) 2023-08-24 20:05:52 +02:00
Antoine Prouvost 41bc4ee5f3
Speed up tests (a bit) (#2776)
Make independent long path test
2023-08-24 14:47:50 +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
Jonas Haag ae2f3e84ca
Revert failing test (#2777) 2023-08-23 23:10:12 +02:00
Antoine Prouvost d5cd432e7e
Strong pin in test (#2774) 2023-08-23 14:21:01 +02:00
Jonas Haag 2cd1bd0d38
Fix __linux virtual package default version (#2749)
Co-authored-by: AntoinePrv <AntoinePrv@users.noreply.github.com>
2023-08-23 13:26:12 +02:00
Hind-M 378c4db57e
[micromamba] Fix config list sources (#2756)
* Fix config list sources in micromamba

* Add test

* Handle case of source as map
2023-08-22 09:10:39 +02:00
Hind-M 427771c4b4
Fix warnings (#2760) 2023-08-21 15:16:48 +02:00
Antoine Prouvost df918ccf06
Isolate URL object (#2744)
* Add remove_(prefix|suffix)

* Refactor and document unc_url

* Remove unused functions

* Add CURLUrl wrapper

* Hide CURL from URLHandler

* Rename URLHandler > URL

* Simplify test_url

* Fix path setter

* Add URL builder tests

* Rename URL::url > URL::str

* Rename URL ctor URL::parse

* Refactor has_scheme

* Add get_scheme

* Add scheme option to URL::parse

* Add scheme option to URL::str

* Fix build

* Add has_drive_letter

* Rename and document scheme functions

* Stronger URL invariant

* Rename URL::auth > URL::authentication

* Add URL::authority

* Add URL IP tests

* Document URL

* Fxi rebase util/string

* Fix channel tests

* Allow password without user in URL

* Scope util::URL

* No context in test_url_manip

* Remove unused CURLEasyHandle

* remove declaration

* Add case handling to URL

* Add URL::operator==

* Add URL::operator/

* Test url encoding

* Reimplement URL encoding without CURL

* Fix MSVC

* Add URL::user encoding

* Add URL::password encoding

* Add URL::host encoding

* Add URL::str options

* Small URL imrovement in channel.cpp

* Fix URL auth encoding

* Added review suggestions from @Hind-M
2023-08-21 11:43:09 +02:00
Antoine Prouvost 9438ac77d2
Fix and improve static builds (#2755)
* Check that CI fails

* Run CI through conda-forge script

* Run conda-forge script in feddstock dir

* Try setting mamba source visible to conda-forge script

* Fix feedstock patch path

* Checkout TMP AntoinePrv repo

* Don't template micromamba-feedstock

* Fix checkout ref

* Extract static package

* TMP debug OSX build

* Set OSX out dir

* Disable cleanup

* Run Linux ppc64le and aarch64 builds on emulated arch

* Try running python on fedora

* Run docker in docker

* Try ubuntu

* Change repo to conda-forge

* Revert "Check that CI fails"

This reverts commit 3b1a7d29ec.

* Remove unused recipe fork
2023-08-17 14:33:03 +02:00
Antoine Prouvost 03e34174dc
Move util_string to utility library (#2739) 2023-08-11 13:32:15 +02:00
Antoine Prouvost 1400c4e768
Refactor test_shell (#2726) 2023-08-04 13:00:02 +02:00
Antoine Prouvost 0c5154188c
Remove warnings from test_activation (#2727)
Remove warnings
2023-08-03 10:48:43 +02:00
Antoine Prouvost 58acf67d98
Fix wrong activated PATH in micromamba shell (#2722)
* Fix wrong activated PATH in micromamba shell

* Add PATH check for shell activation

* Simplify stdout check in shell test
2023-08-01 14:31:54 +02:00
Daniel Farrell 00fb86c726
Use xdg schemas for config saving/reading (minified) (#2714)
Co-authored-by: Danny Farrell <dan@cyrusbio.com>
2023-08-01 00:08:02 +02:00
ThomasBlauthQC a7cd3b6292
Respect subdir in match spec (#2300) 2023-07-26 10:33:55 +02:00
Antoine Prouvost f77b521253
Refactor test_repoquery to use new fixtures (#2691) 2023-07-21 10:46:33 +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 f55576587a
Added upper bound to fmt to avoid weird failure on ci (windows only) (#2671) 2023-07-13 14:14:34 +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
Antoine Prouvost 5b931ed4da
No profile.d fallback in rc files (#2649)
* No profile.d fallback in rc files

* Fallback to messages from 'micromamba activate'
2023-07-06 09:39:10 +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
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 d8c1ef1437
Not reading hook file (#2631)
* Do no read hook file

* Clean micromamba.sh

* csh activation without reading file

* Try fixing powershell activation
2023-06-30 09:33:50 +02:00
Antoine Prouvost 16c3da8e4d
Allow --force-reinstall on uninstalled specs (#2636) 2023-06-29 14:27:18 +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
Hind-M 1b28840016
Channels refactoring/cleaning (#2537)
* Remove unused functions

* Have make_channel and parsing in different lines

* Remove m_canonical_name setting in getter

* Set canonical_name in make_simple_channel and make it mandatory

* Fix canonical_name setting

* Remove make_cached_channel

* Remove channel_context from channel

* Cleaning and moving functions around and add some tests

* Add forgotten mamba namespace in tests

* Move utility functions to url files and remove util_url
2023-06-28 11:22:40 +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
Antoine Prouvost f4bb43676b
Add topological sort explict export tests (#2618) 2023-06-23 17:59:47 +02:00
Jonas Haag 0a7490c940
Remove banner (#2298) 2023-06-20 16:53:19 +02:00
Antoine Prouvost be99482471
Fix --force-reinstall (#2601) 2023-06-16 17:50:54 +02:00
Antoine Prouvost 7b0b9a5aeb
Move GHA to setup-micromamba (#2545)
* Move to setup-micromamba

* Try init-shell

* Activate env in umamba_tests_win_cmd

* Add test_run failure output

* Try pwsh

* Use TEST_MAMBA_EXE in test_run.sh

* Unset CONDARC

* Remove more CONDARC

* Remove unecessary cleanup in main CI

* Flexible Pytest deletion

* Remove explicit activation
2023-06-15 18:20:10 +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
Jonas Haag 48d595ae45
Update pre-commit hooks (#2586) 2023-06-13 22:39:50 +02:00
Antoine Prouvost ecb5a7edc5
Micromamba tests improvements (#2517)
* Automatically restore os.environ in umamba tests

* Cleanup test_info

* Refactor conftest.py

* Eagerly clean micromamba test dir

* Refactor micromamba test_info with new fixtures

* Fix test self_update on Win
2023-05-26 18:27:54 +02:00
Antoine Prouvost 17232ca90e
Honor envs_dirs (#2538)
* Improve `is_writable` on non-existing sub-folders

Co-authored-by: Katrin Muck <katrin.muck@tuwien.ac.at>

* Add contains test case

* Include envs_dirs in target_prefix computation

* Use target_prefix and root_prefix in micromamba shell cmds

* Add umamba envs_dirs activation test

* Add envs_dirs create test

* Mantain umamba shell cmds backward compat

* Improve activate error message

* Fix activation on windows

---------

Co-authored-by: Katrin Muck <katrin.muck@tuwien.ac.at>
2023-05-25 10:16:56 +02:00
Antoine Prouvost 02a539db65
Fix umamba tests ¯\_(ツ)_/¯ (#2540)
Fix umamba test update
2023-05-23 17:22:15 +02:00
Antoine Prouvost 09dc37addc
[Internal] Use subsub commands for `micromamba shell` (#2527)
* Refactor shell subcommand function

* Split shell CLI callback fucntions

* Use subsubcommands for micromamba shell

* Adapt calls to micromamba shell

* Fix typo

* Fix config loading in micromamba shell hook

* Replace vector with array

* Restore  launcher

* Fix run_in_environment prefix

* Fix shell subcommand loading config

* Fix greedly config set

* Don't change bat files because I have no idea
2023-05-22 11:52:21 +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
Ruben Arts 5b8d2a2149
fix: let the new executable run the shell init script (#2529) 2023-05-16 21:37:55 +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
Wolf Vollprecht 18ca4f16fc
add bearer token authentication (#2512)
add bearer token authentication
2023-05-15 17:23: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
Antoine Prouvost 0739da245f
cleanup: fix pytest warnings (#2490) 2023-04-25 14:22:31 +02:00
Hind-M 9831342dd1
Resume `Context` structuring (#2460)
Add ThreadsParams and PrefixParams in Context
2023-04-25 10:02:51 +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 5fa2ce3f3d
No Storing Channel* and MRepo* in Solvables (#2409)
No Storing Channel* and MRepo* in Solvables, removed dependency between Channel and MRepo

---------

Co-authored-by: Johan Mabille <johan.mabille@gmail.com>
2023-04-11 15:32:44 +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
Hind-M 22d37ceeb8
Remove const ref to string_view in codebase (#2440)
Remove const ref to string_view
2023-04-05 09:16:47 +02:00
Antoine Prouvost d12ea01795
Fix segfault in add_pin/all_problems_structured (#2428)
Fix segfault in add_pin/all_problems_structured
2023-04-04 11:31:04 +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
Antoine Prouvost 05f1b9b6b3
Refactor test_create, test_proxy, and test_env for test isolation (#2416)
* Deactivate PyCQA line-length warnings

* Proper os.environ restore in pytest

* Add --mamba-pkgs-dir for cache reuse in Pytest

* Set pytest tmp retention policy

* Allow Path in test helpers

* Refactor test_create for isolation

* Improve pytest fixtures

* Refactor test_env.py for test isolation

* Refactor test_proxy for isolating tests
2023-03-29 19:30:38 +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
Thorsten Beier b7a60591cd
add option to relocate prefix. (#2385)
add option to relocate prefix
2023-03-27 10:26:19 +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 156edfd89f
Arrange header sorting (#2375)
* Change headers sorting in Clang-format

* Reorder headers
2023-03-14 17:15:21 +01:00
Antoine Prouvost 26fbc7836e
Clean some warnings (#2374) 2023-03-14 10:02:41 +01:00
Johan Mabille 44c8abe391
Fixed micromamba server and removed some warnings (#2361)
Fixed microserver building
2023-03-08 19:35:39 +01:00
Wolf Vollprecht 7866468c51
Micromamba server (#2185)
Implemented a micromamba server
2023-03-08 15:54:10 +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
Johan Mabille b38377a479
Only full shared or full static build (#2342) 2023-03-03 17:27:25 +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 24261d15b2
Isolate solv::ObjQueue (#2289)
Isolate solv::ObjQueue
2023-03-02 11:25:57 +01:00
Antoine Prouvost 5e30262e99
Fix some warnings (#2303) 2023-03-02 11:18:48 +01:00
Wolf Vollprecht f701ba8853
fixed failing CI (#2334) 2023-03-01 14:37:04 +01:00
Hind-M f279b484f2
Fix `micromamba env export` to get channel name instead of full url (#2260)
* Fix `micromamba env export` to get channel name instead of full url

* Use pkgs/main instead of defaults as channel name
2023-02-22 16:53:11 +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
timostrunk c80493a22c
Fix segmentation fault in case of an invalid package name (#2287)
Co-authored-by: Timo Strunk <Timo.Strunk@nanomatch.com>
2023-02-13 22:39:23 +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
Jonas Haag 59050cd4a7
Fix micromamba shell with environment name (#2272)
Also fix up target_prefix computation and prevent auto_activate_base when environment already active
---------

Co-authored-by: Hind Montassif <hind.montassif@gmail.com>
Co-authored-by: Wolf Vollprecht <w.vollprecht@gmail.com>
2023-02-10 09:58:22 +01:00
Wolf Vollprecht 87343ca7d6
fix up single download target perform finalization (#2274) 2023-02-09 09:17:07 +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
Hind-M 61da8d8337
Remove unused `get_tarball` function (#2261)
Remove unused get_tarball function
2023-02-02 17:16:02 +01:00
Wolf Vollprecht be98796855
fix tests for pkg_cache (#2259) 2023-02-02 15:54:24 +01:00
Hind-M 353ed8d7f6
[micromamba] Stop run command when given prefix does not exist (#2257)
Fix https://github.com/mamba-org/mamba/issues/2084
2023-02-02 13:35:51 +02: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 0fa866b3bd
also reset uname & gname when creating archives (#2217) 2023-01-12 10:10:16 +01:00
Wolf Vollprecht 3f2135ef9e
remove patches for feedstock (#2216) 2023-01-11 13:40:19 +01:00
Wolf Vollprecht 1de3df2fc3
use new shebang style (#2211) 2023-01-11 13:39:58 +01:00
Wolf Vollprecht e9695a45cc
use local meta.yaml for static builds (#2214) 2023-01-10 17:45:49 +01:00
Jonas Haag 3f716332f9
Fix #1783: Add `micromamba env create` (#1790)
Fixes https://github.com/mamba-org/mamba/issues/1783
2023-01-10 17:40:25 +01:00
Ben Mares 4ab454766f
Don't create a prefix which is missing conda-meta (#2162) 2023-01-09 16:50:40 +01:00
Wolf Vollprecht a6c0082e37
faster (streaming) conda decompress (#2200) 2023-01-05 16:13:14 +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
Wolf Vollprecht e0848e695e
release 1.1.0 (#2130) 2022-11-28 18:44:19 +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
Wolf Vollprecht 4ec23a65e6
fix direct hook for powershell (#2122) 2022-11-18 20:17:43 +01:00
Wolf Vollprecht c5d73a204b release 1.0.0 2022-11-01 21:01:36 +01:00
Wolf Vollprecht 68a6568de1
add shell command to enter activated subshell (#2056)
* initial port of run to libmamba and adding shell command to enter activated shell
* remove micromamba/run.hpp
2022-11-01 19:53:34 +01:00
Wolf Vollprecht c889fa6855
add micromamba self-update functionality (#2023) 2022-11-01 17:24:46 +01:00
Torfinn Berset 405cb607fa
Order dependencies of `micromamba env export` alphabetically (#2063)
* Use (ordered) map in PrefixData, to ensure that `micromamba env export` gives a deterministic and sorted output
* Fix some typos
2022-11-01 15:40:09 +01:00
Jonas Haag eea9407d30
Test special characters in basic auth (#2012) 2022-10-29 17:55:37 +02:00
Antoine Prouvost 40772bc540
Fix CI by pointing to updated feedstock and fixing update tests (#2055)
Co-authored-by: Wolf Vollprecht <w.vollprecht@gmail.com>
2022-10-28 08:51:41 +02:00
AntoinePrv d6316a91cf Pin pytest 2022-10-26 11:27:45 +02:00
AntoinePrv 4e2a91bea7 Direct dependency on fmt 2022-10-26 10:49:50 +02:00
Johan Mabille 57e1fa2c5e
Merge pull request #2014 from Klaim/klaim/lockfile-interface-rewrite
LockFile as a testable type - no need to try_lock or use pointers.
2022-10-25 14:32:52 +02:00
Johan Mabille 583ee233e2
Merge pull request #2002 from Hind-M/remove_env_micromamba
Add complete environment removal in micromamba
2022-10-25 11:54:46 +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
Hind Montassif 8a0e1c5cf6 Remove or rename env dir instead of just removing 2022-10-20 12:08:21 +02:00
Hind Montassif 980f3f92a3 Add utf-8 encoding when opening file 2022-10-17 09:40:47 +02:00
Wolf Vollprecht 5251f93c3d
Merge pull request #1903 from AntoinePrv/test-isolation
Test Isolation 2 (TBC)
2022-10-14 09:10:37 -07:00
Hind Montassif 0d052d2685 Read line by line 2022-10-14 17:41:37 +02:00
Hind Montassif 3c199a0358 Use readlines instead of read in test_env 2022-10-14 17:01:53 +02:00
Hind Montassif 5e00ffb139 Fix linter error 2022-10-14 16:01:02 +02:00
Hind Montassif ed13a07532 Add conda environments file check in test_env 2022-10-14 15:54:26 +02:00
Wolf Vollprecht 23ea2fb1ff try to fix powershell tests 2022-10-14 14:53:32 +02:00
Adrian Freund 1cbe1d6b3a
Add authentication with urlencoded @ to proxy test (#2024)
* Add authentication with urlencoded @ to proxy test

* Pass unquoted auth string to mitmproxy
2022-10-14 14:38:43 +02:00
Hind Montassif aeb4f86a43 Remove double spaces causing linter error 2022-10-14 12:07:40 +02:00
Adrian Freund ef2c8e564b
Add missing changelog entry (#2022) 2022-10-14 11:25:43 +02:00
Hind Montassif d8a549dbcf Add unregistering/remove envs at the end of env tests 2022-10-14 11:13:44 +02:00
AntoinePrv c3051a3723 Dynamic windows lookup profile 2022-10-14 11:03:53 +02:00
AntoinePrv 2c10965041 Add winreg fixture on windows 2022-10-14 11:03:51 +02:00
AntoinePrv a4ce7fde8c No unicode parametrization 2022-10-14 10:45:54 +02:00
AntoinePrv bbf1980c7e Add missing home folder isolation 2022-10-14 10:45:54 +02:00
AntoinePrv bd94b721be Remove umamba/tests PATH cleaning on Windows 2022-10-14 10:45:54 +02:00
AntoinePrv 8a31b22905 Remove duplicate random_string from umamba tests 2022-10-14 10:45:54 +02:00
AntoinePrv 6893ceaa33 Properly capture stderr in test exceptions 2022-10-14 10:45:54 +02:00
AntoinePrv 241c5f4f0e Refactor micromamba test_actiavation to use isolated fixtures 2022-10-14 10:45:52 +02:00
AntoinePrv 613328af41 Rename and parametrize micromamba test env name 2022-10-14 10:04:01 +02:00
Wolf Vollprecht 3e34b1e3fe test dash and remove csh (only keep tcsh for now) 2022-10-13 21:03:34 +02:00
Hind Montassif 293503cad8 Remove bkup conda env file in env tests
(will hopefully fix CI failure on windows)
2022-10-13 18:34:29 +02:00
Wolf Vollprecht 0434a27f4e add tcsh testing 2022-10-13 16:24:20 +02:00
Wolf Vollprecht eae95e3797 add csh tests and fix other tests 2022-10-13 16:24:20 +02:00
Wolf Vollprecht 89adfb7d6a port csh activator to mamba 2022-10-13 16:24:20 +02:00
Wolf Vollprecht 537eb44c78 add some tests to check for env vars when activating 2022-10-13 16:24:20 +02:00
Hind Montassif 41e91e5906 Add test env remove 2022-10-11 10:42:40 +02:00
Hind Montassif d170ff5f17 Fix linter failure in CI 2022-10-10 12:06:59 +02:00
Hind Montassif 79883a0ddd Add complete environment removal in micromamba 2022-10-10 10:23:19 +02:00
Wolf Vollprecht cb2342a009
release 0.27.0 (#1990) 2022-10-04 12:47:54 +02:00
Wolf Vollprecht 590c6e91d2
Merge pull request #1985 from wolfv/fix_run_warning
fix error condition for log warning
2022-10-04 01:13:23 -07:00
Wolf Vollprecht 4cca66d7d8 fix error condition for log warning 2022-10-03 21:53:20 +02:00
Joël Lamotte (Klaim) 3625231fd3 Added test detecting failure when cleaning removed packages. 2022-10-03 19:19:51 +02:00
Joël Lamotte (Klaim) d04ab8641f Added test creating with env file using pip without specifying the parent directory 2022-10-03 12:55:22 +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
Wolf Vollprecht b7fcc74220
fix issues with empty prefix and non existent proc dir for ps command (#1953) 2022-09-29 11:32:57 +02:00
Jonas Haag 423a2a8d2d
Add micromamba info --licenses (#1933) 2022-09-22 15:32:07 +02:00
Jonas Haag 7260871613
Fix #1936: Proper quoting in 'run' (#1939) 2022-09-21 15:48:43 +02:00
Jakob van Santen d1f88bb069 Install from lockfile by category 2022-09-12 15:52:38 +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) 29a2c5a9a2 Added micromamba test to reveal env-lock install-after-create crash 2022-09-02 16:34:47 +02:00
Jonas Haag ad46971fab
Update test_install.py 2022-08-31 11:00:22 +02:00
Jonas Haag d443b7c26b
Update test_install.py 2022-08-31 10:24:03 +02:00
Jonas Haag ded99da75c
Update test_install.py 2022-08-31 09:24:05 +02:00
Jonas Haag fa9f450ca2
Fix test_python_pinning 2022-08-30 23:06:54 +02:00
AntoinePrv 4cf684f55d Add pywin32 to windows micromamba tests 2022-08-19 17:29:48 +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) f6ef365795 Wrapped filesystem directory iterators to enforce encoding. 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
Klaim (Joël Lamotte) 0b8b9a7aab
Fixed create/install requiring pip install failing when the prefix have whitespaces on Windows (#1838)
* micromamba: add tests creating/installing with pip in prefix with whitespaces
* Fixed installing with pip when prefix have whitespaces on Windows

Co-authored-by: Jonas Haag <jonas@lophus.org>
2022-08-08 19:36:46 +02:00
Wolf Vollprecht ad46f318ba release micromamba 0.25.1 2022-07-29 17:33:56 +02:00
Wolf Vollprecht 4074116dae
Release 0.25.0 (#1824) 2022-07-26 18:03:18 +02:00
AntoinePrv 78457b79a7 Add auth login doc 2022-07-22 15:44:23 +02:00
AntoinePrv 32cd392bb8 Remove scheme from auth login 2022-07-22 15:17:57 +02:00
AntoinePrv be03b672c5 Add multiple authentication support for same domain 2022-07-22 10:46:27 +02:00
AntoinePrv 5c8672ebd1 Fix test using wrong path separator on Windows 2022-07-21 10:38:42 +02:00
AntoinePrv 44b56f2c31 Fake home on windows 2022-07-21 10:38:42 +02:00
AntoinePrv 771ea3cebc Isolate micromamba config tests 2022-07-21 10:38:42 +02:00
Pavel Zwerschke e1bf7b9901 Add micromamba deinit shell command
Fix xonsh + fish micromamba shell init
2022-07-20 17:29:45 +02:00
Adrian Freund 20c5a50fb0
Merge remote-tracking branch 'upstream/master' into feature-nodefaults 2022-07-15 10:44:16 +02:00
Adrian Freund 126f9f5436
Add test to micromamba 2022-07-12 16:28:27 +02:00
Antoine Prouvost a50ad5ebd9
Duplicate test name skip test (#1777) 2022-07-07 12:16:00 +02:00
Jonas Haag bb69cbd7de
Do not modify string during sregex_iterator iteration (#1768) 2022-07-02 10:27:24 +02:00
Adrian Freund 0b6d81ac89
Add support for nodefaults channel 2022-07-01 15:08:14 +02:00
Guillaume Dollé 7f1ede763a
Fix issue #1694 external fmt lib (#1732)
- Update headers to use spdlog.h instead of fmt.h (=> include tweakme.h).
- Modify CmakeList.txt to link with fmt libraries, only if SDPLOG_FMT_EXTERNAL
  macro is set/uncommented in tweakme.h.
2022-06-22 19:08:07 +02:00
Nicolas Stinus 3ea76ece36 Do not truncate channel url during `micromamba env export` (#1733) 2022-06-10 11:01:25 -04:00
Nicolas Stinus 7d607e70b2 Add a test for `micromamba env export` 2022-06-10 11:01:25 -04:00
Joël Lamotte (Klaim) 701f351a18 Fixed most obvious warnings reported by msvc. 2022-06-02 17:46:24 +02:00
Wolf Vollprecht d48711724a
release libmamba 0.24.0, libmambapy 0.24.0, mamba 0.24.0, micromamba 0.24.0 (#1714) 2022-06-01 10:00:56 +02:00
Wolf Vollprecht f058d3cfc9
simplify constructor code and refactor how we write repodata_record.json files (#1698) 2022-05-24 19:30:01 +02:00
Wolf Vollprecht d992bd655e release 0.23.3 2022-05-20 18:23:53 +02:00
Wolf Vollprecht c124c4c818
reduce number of compiler warnings (#1691) 2022-05-20 18:06:44 +02:00
Wolf Vollprecht 165735558a
sum up verbosity flags (#1690) 2022-05-20 16:14:27 +02:00
Patrick Collins 3402b13ad7
make clean_force_pkgs_dirs respect always_yes (#1686) 2022-05-19 16:49:00 +02:00
Wolf Vollprecht f751daf803 release micromamba 0.23.2 2022-05-12 16:07:59 +02:00
Wolf Vollprecht 46428139ce release 0.23.1 2022-05-11 19:23:58 +02:00
Joël Lamotte (Klaim) b6c391837a micromamba: remove explicit progress bar termination
Previously, explicitly terminating the progress bar was necessary
to avoid the progress bars threads
from running while reporting
erros in `main()` thread.
The issue was due to no `.terminate()` call happening in progress bars threads
when an exception was thrown.

We now rely on `interrupt_guard` to call the progress bars termination
when an exception  escapes it's scope, already used in progress bar threads.

The previous explicit fix is therefore unnecessary.
2022-05-11 15:43:38 +02:00
Joël Lamotte (Klaim) 7b5a19e891 Fixed formatting 2022-05-10 12:26:52 +02:00
Joël Lamotte (Klaim) f3da147cd1 Fix: prevent Console from reinstantiate itself while being destroyed. 2022-05-10 12:26:52 +02:00
Joël Lamotte (Klaim) 35276cee6f Added a backtrace dump when an internal failure occurs
Currently this can only happen when a singleton is used but
it was destroyed.
2022-05-10 12:26:52 +02:00
Joël Lamotte (Klaim) 21453744e7 Fix: micromamba error report now always after all threads are done. 2022-05-10 12:26:52 +02:00
Joël Lamotte (Klaim) ef40250880 Fix #1649 (cleaner alternative to hotfix #1653) 2022-05-10 12:26:52 +02:00
Joël Lamotte (Klaim) 9ad9ddab5a Improves singletons construction and destruction order guarantees
In C++ namespace-scope static object are created and destructed in an
unspecified order before and after `main()` execution, respectively.
The only guarantee is that such objects in the same translation unit
shall be constructed in apparition order in the file and destructed in
the reverse order. Another guarantee is that local (inside functoins)
static object are guaranteed to be created only at the first call to
that function, but then there is no guarantee on the destruction order.

This is fine until these objects interacts, that is, at least one of
these objects have a dependency/usage of another object defined in a
different translation unit.

We currently have singletons which are implemented as global statics
spread through various translation units, and several of these
singletons are also accessed through construction and destruction of
other singletons. Basically, we have undefined behavior around their
creation and destruction, so it is not always visible because often
memory looks like valid objects even if it is not. Some recent fixes
made this even more visible (which is helpful).

This change moves all the singleton object definitions into the same
translation unit to begin improving guarantees on their construction
and destruction order after `main()` execution.
2022-05-10 12:26:52 +02:00
Klaim (Joël Lamotte) fd7d78076f
Hotfix #1649 : progress-manager termination function was never called on errors (#1653)
Also made the signaling boolean as atomic, otherwise this is a data race (false sharing would happen).
2022-04-27 19:03:30 +02:00
Klaim (Joël Lamotte) 51e917e124
Replace thread detaching by thread joining before main's end (#1637)
Scopes lifetime of any thread used by libmamba to `main()`'s scope.

This fixes undefined behavior when threads are running after `main()`
is finished. At the end of `main()`, static objects are destroyed in
an unspecified order which can also lead easilly to undefined behaviors.
This change should fix both issues.

For now the implementation of `MainExecutor` is simple: it spawn a
new thread for each task scheduled and does not provide means to track
the progress and/or end of tasks. This reflects the previous behavior.
The intent is to enabled changing the implementation of `MainExecutor`
in the future to improve execution speed and/or execution resources
usage.
2022-04-27 12:01:28 +02:00