Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve CI on Windows, deprecate AppVeyor #3007

Merged
merged 2 commits into from
Aug 2, 2022
Merged

Conversation

dimztimz
Copy link
Contributor

@dimztimz dimztimz commented Jul 28, 2022

Improve CI on Windows, deprecate AppVeyor. Fixes #3004.

@dimztimz dimztimz marked this pull request as ready for review July 28, 2022 19:17
@dimztimz dimztimz changed the title Improve CI on Windows Improve CI on Windows, remove AppVeyor Jul 28, 2022
@dimztimz
Copy link
Contributor Author

This is ready. After this open the AppVeyor website and remove this repo from there. Hopefully, that should automatically remove the webhook, if not remove it manually from Github settings.

Copy link
Contributor

@vitaut vitaut left a comment

Choose a reason for hiding this comment

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

Thanks for the PR. Looks great but please keep the old include/exclude rules and add one more include rule for the new config to keep them manageable.

@dimztimz
Copy link
Contributor Author

Just so you know in the old rules the one entry in include with shared

include:
- os: windows-2019
platform: Win32
build_type: Debug
shared: -DBUILD_SHARED_LIBS=ON

was not adding a new job but was overriding an existing job generated by the build matrix above.

How about this: test toolset v140 (VS2015) only with standard C++14, v141 (VS2017) only with standard C++17 and toolset v142 with 2 standards, 17 and 20.

Win32 will get only 4 entries: (static, shared) x (debug, release) with the latest v142 toolchain.
on x64 shared will get only 2 entries with the latest toolchain with standard 17.

@dimztimz
Copy link
Contributor Author

dimztimz commented Jul 30, 2022

The build matrix that I pushed now generates 15 entries on Windows which is very much acceptable and manageable. There might be simpler rules that generate the same entries but I don't see them right now. Please review then in the view for Github Actions.

It even detected a build failure. Maybe with some recent changes, because I also rebased this on top of master.

@vitaut
Copy link
Contributor

vitaut commented Jul 30, 2022

@phprus
Copy link
Contributor

phprus commented Jul 30, 2022

@dimztimz
Copy link
Contributor Author

dimztimz commented Jul 30, 2022

I will cherry-pick that and put it in this PR as separated commit. Also I will clean my commits.

dimztimz and others added 2 commits July 30, 2022 23:20
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
@dimztimz dimztimz changed the title Improve CI on Windows, remove AppVeyor Improve CI on Windows, deprecates AppVeyor Jul 30, 2022
@dimztimz
Copy link
Contributor Author

I think this PR is in better shape now, it has two commits. I removed the commit that removes AppVeyor files to get the green check mark. You can remove them after you disable it from the settings.

@dimztimz dimztimz changed the title Improve CI on Windows, deprecates AppVeyor Improve CI on Windows, deprecate AppVeyor Aug 1, 2022
@vitaut vitaut merged commit 6c6b1fb into fmtlib:master Aug 2, 2022
@vitaut
Copy link
Contributor

vitaut commented Aug 2, 2022

Thanks @dimztimz and @phprus!

@vitaut
Copy link
Contributor

vitaut commented Aug 2, 2022

@dimztimz I just noticed that v140 build still reports MSVC 2019, not 2015:

-- Building for: Visual Studio 16 2019
-- CMake version: 3.23.2
-- The CXX compiler identification is MSVC 19.0.24245.0

(https://github.com/fmtlib/fmt/runs/7632834167?check_suite_focus=true)

Do you know why?

@phprus
Copy link
Contributor

phprus commented Aug 2, 2022

It's Ok.

-- Building for: Visual Studio 16 2019
-- CMake version: 3.23.2
-- The CXX compiler identification is MSVC 19.0.24245.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe - skipped

Visual Studio - 2019
MSVC - 19.0.24245.0 (toolset from Visual Studio 2015)

@vitaut
Copy link
Contributor

vitaut commented Aug 2, 2022

What a versioning mess =). Where did you find the info that 19.0.24245.0 corresponds to 2015?

@phprus
Copy link
Contributor

phprus commented Aug 2, 2022

See _MSC_VER value on page https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170

@dimztimz
Copy link
Contributor Author

dimztimz commented Aug 2, 2022

https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering

It is total mess. There are like four different versions. One is year, one is IDE version, one is toolset version and the last is compiler version. Roughly:

  • toolset v14.0x = compiler v19.0x.
  • toolset v14.1x = compiler v19.1x.
  • toolset v14.2x = compiler v19.2x.

@dimztimz dimztimz deleted the ci branch August 2, 2022 18:48
mtremer pushed a commit to ipfire/ipfire-2.x that referenced this pull request Nov 28, 2022
- Update from version 9.0.0 to 9.1.0
- Update of rootfile
- Changelog
    9.1.0 - 2022-08-27
	* ``fmt::formatted_size`` now works at compile time
		  `#3026 <https://github.com/fmtlib/fmt/pull/3026>`_
			  For example (`godbolt <https://godbolt.org/z/1MW5rMdf8>`__):
			   .. code:: c++
			     #include <fmt/compile.h>
			     int main() {
			       using namespace fmt::literals;
			       constexpr size_t n = fmt::formatted_size("{}"_cf, 42);
			       fmt::print("{}\n", n); // prints 2
			     }
	* Fixed handling of invalid UTF-8
		  `#3038 <https://github.com/fmtlib/fmt/pull/3038>`_,
		  `#3044 <https://github.com/fmtlib/fmt/pull/3044>`_,
		  `#3056 <https://github.com/fmtlib/fmt/pull/3056>`_
	* Improved Unicode support in ``ostream`` overloads of ``print``
		  `#2994 <https://github.com/fmtlib/fmt/pull/2994>`_,
		  `#3001 <https://github.com/fmtlib/fmt/pull/3001>`_,
		  `#3025 <https://github.com/fmtlib/fmt/pull/3025>`_
	* Fixed handling of the sign specifier in localized formatting on systems with
	   32-bit ``wchar_t``
		  `#3041 <https://github.com/fmtlib/fmt/issues/3041>`_).
	* Added support for wide streams to ``fmt::streamed``
		  `#2994 <https://github.com/fmtlib/fmt/pull/2994>`_
	* Added the ``n`` specifier that disables the output of delimiters when
	   formatting ranges
		  `#2981 <https://github.com/fmtlib/fmt/pull/2981>`_,
		  `#2983 <https://github.com/fmtlib/fmt/pull/2983>`_
			  For example (`godbolt <https://godbolt.org/z/roKqGdj8c>`__):
			   .. code:: c++
			     #include <fmt/ranges.h>
			     #include <vector>
			     int main() {
			       auto v = std::vector{1, 2, 3};
			       fmt::print("{:n}\n", v); // prints 1, 2, 3
			     }
	* Worked around problematic ``std::string_view`` constructors introduced in C++23
		  `#3030 <https://github.com/fmtlib/fmt/issues/3030>`_,
		  `#3050 <https://github.com/fmtlib/fmt/issues/3050>`_
	* Improve handling (exclusion) of recursive ranges
		  `#2968 <https://github.com/fmtlib/fmt/issues/2968>`_,
		  `#2974 <https://github.com/fmtlib/fmt/pull/2974>`_
	* Improved error reporting in format string compilation
		  `#3055 <https://github.com/fmtlib/fmt/issues/3055>`_
	* Improved the implementation of
		  `Dragonbox <https://github.com/jk-jeon/dragonbox>`_, the algorithm used for
		   the default floating-point formatting
		  `#2984 <https://github.com/fmtlib/fmt/pull/2984>`_
	* Fixed issues with floating-point formatting on exotic platforms.
	* Improved the implementation of chrono formatting
		  `#3010 <https://github.com/fmtlib/fmt/pull/3010>`_
	* Improved documentation
		  `#2966 <https://github.com/fmtlib/fmt/pull/2966>`_,
		  `#3009 <https://github.com/fmtlib/fmt/pull/3009>`_,
		  `#3020 <https://github.com/fmtlib/fmt/issues/3020>`_,
		  `#3037 <https://github.com/fmtlib/fmt/pull/3037>`_
	* Improved build configuration
		  `#2991 <https://github.com/fmtlib/fmt/pull/2991>`_,
		  `#2995 <https://github.com/fmtlib/fmt/pull/2995>`_,
		  `#3004 <https://github.com/fmtlib/fmt/issues/3004>`_,
		  `#3007 <https://github.com/fmtlib/fmt/pull/3007>`_,
		  `#3040 <https://github.com/fmtlib/fmt/pull/3040>`_
	* Fixed various warnings and compilation issues
		  `#2969 <https://github.com/fmtlib/fmt/issues/2969>`_,
		  `#2971 <https://github.com/fmtlib/fmt/pull/2971>`_,
		  `#2975 <https://github.com/fmtlib/fmt/issues/2975>`_,
		  `#2982 <https://github.com/fmtlib/fmt/pull/2982>`_,
		  `#2985 <https://github.com/fmtlib/fmt/pull/2985>`_,
		  `#2988 <https://github.com/fmtlib/fmt/issues/2988>`_,
		  `#3000 <https://github.com/fmtlib/fmt/issues/3000>`_,
		  `#3006 <https://github.com/fmtlib/fmt/issues/3006>`_,
		  `#3014 <https://github.com/fmtlib/fmt/issues/3014>`_,
		  `#3015 <https://github.com/fmtlib/fmt/issues/3015>`_,
		  `#3021 <https://github.com/fmtlib/fmt/pull/3021>`_,
		  `#3023 <https://github.com/fmtlib/fmt/issues/3023>`_,
		  `#3024 <https://github.com/fmtlib/fmt/pull/3024>`_,
		  `#3029 <https://github.com/fmtlib/fmt/pull/3029>`_,
		  `#3043 <https://github.com/fmtlib/fmt/pull/3043>`_,
		  `#3052 <https://github.com/fmtlib/fmt/issues/3052>`_,
		  `#3053 <https://github.com/fmtlib/fmt/pull/3053>`_,
		  `#3054 <https://github.com/fmtlib/fmt/pull/3054>`_

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Reviewed-by: Michael Tremer <michael.tremer@ipfire.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Replace AppVeyor with Github actions
3 participants