Need binaries for up to date FreeBSD 13.

FreeBSD 12 is going EoL in December so the least support FreeBSD version would be 13.2
The problem with FreeBSD 12 binaries is that they are linked to OpenSSL 1.1, while FreeBSD 13 ships OpenSSL 1.1.1
This makes it impossible to use FreeBSD 12 binaries as bootstrap on FreeBSD 13 (on 14 too, but that's for later)
Can you please provide binaries that are compiled on the fully updated FreeBSD 13.2?

Quick run test in VM:
root@freebsd:~ # uname -a; freebsd-version -kru
FreeBSD freebsd 13.2-RELEASE-p4 FreeBSD 13.2-RELEASE-p4 GENERIC amd64
13.2-RELEASE-p4
13.2-RELEASE-p4
13.2-RELEASE-p4
root@freebsd:~ # fetch https://github.com/Thefrank/freebsd-dotnet-sourcebuild/releases/download/v8.0.100/dotnet-sdk-8.0.100-rc.2.23502.1-freebsd-x64.tar.gz
root@freebsd:~ # mkdir dotnetrc2
root@freebsd:~ # tar xf dotnet-sdk-8.0.100-rc.2.23502.1-freebsd-x64.tar.gz -C dotnetrc2/
root@freebsd:~ # elfctl -e +noaslr dotnetrc2/dotnet
root@freebsd:~ # dotnetrc2/dotnet --info
.NET SDK:
 Version:   8.0.100-rc.2.23502.1
 Commit:    0abacfc2b6

Runtime Environment:
 OS Name:     FreeBSD
 OS Version:  13
 OS Platform: FreeBSD
 RID:         freebsd-x64
 Base Path:   /root/dotnetrc2/sdk/8.0.100-rc.2.23502.1/

.NET workloads installed:
There are no installed workloads to display.

Host:
  Version:      8.0.0-rc.2.23475.17
  Architecture: x64
  Commit:       0b25e38ad3

.NET SDKs installed:
  8.0.100-rc.2.23502.1 [/root/dotnetrc2/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 8.0.0-rc.2.23480.2 [/root/dotnetrc2/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 8.0.0-rc.2.23475.17 [/root/dotnetrc2/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download
root@freebsd:~ # ldd dotnetrc2/shared/Microsoft.NETCore.App/8.0.0-rc.2.23475.17/libSystem.Security.Cryptography.Native.OpenSsl.so
dotnetrc2/shared/Microsoft.NETCore.App/8.0.0-rc.2.23475.17/libSystem.Security.Cryptography.Native.OpenSsl.so:
        libcrypto.so.11 => /usr/local/lib/libcrypto.so.11 (0x6b4f1ef4000)
        libssl.so.11 => /usr/local/lib/libssl.so.11 (0x6b4f19e1000)
        libc.so.7 => /lib/libc.so.7 (0x6b4ee39a000)
        libthr.so.3 => /lib/libthr.so.3 (0x6b4f3051000)

Can you post the error you are getting?

I still don't get it. dlopen doesn't ignore /lib/ so it still should use OpenSSL from base. The FEATURE_DISTRO_AGNOSTIC_SSL flag just removes the .so dependency from the ELF file.
Anyways, using OpenSSL from ports is a no-go for porting.

If true rm -r /usr/ports/lang/dotNET8/ and I finally get to experience "finished product not launched due to external factors"

Why? What prevents using base OpenSSL? What happen if you do pkg remove -x openssl and then try to build VMR?

Why? What prevents using base OpenSSL? What happen if you do pkg remove -x openssl and then try to build VMR?

If using a non-portable bootstrap. dotNET fails to start because of the missing libraries.
If using a portable bootstrap, runtime fails to build as it can not find a working OpenSSL via cmake's find_package()
Atleast on FreeBSD 14, there are some oddities between base and ports OpenSSL that prevent simple libmap overrides.
readelf -a /lib/libcrypto.so.30 | grep OpenSSL_version
  1040:<PHONE_NUMBER>199ff0    11 FUNC    GLOBAL DEFAULT   14 OpenSSL_version_num@@OPENSSL_1_1_0 (2)
  4292:<PHONE_NUMBER>19a050   139 FUNC    GLOBAL DEFAULT   14 OpenSSL_version@@OPENSSL_1_1_0 (2)
readelf -a /usr/local/lib/libcrypto.so | grep OpenSSL_version
  2130:<PHONE_NUMBER>2ea7f0    11 FUNC    GLOBAL DEFAULT   14 OpenSSL_version_num@@OPENSSL_3.0.0 (2)
  3501:<PHONE_NUMBER>2ea850   139 FUNC    GLOBAL DEFAULT   14 OpenSSL_version@@OPENSSL_3.0.0 (2)

If using a portable bootstrap, runtime fails to build as it can not find a working OpenSSL via cmake's find_package()

Then let's just fix that?

Then let's just fix that?

Yep! I have tried a number of solutions including PATHS, HINTS, min, and OPENSSL 3 but all failed. I am absolutely open to suggestions on this.

If we're talking about the FindOpenSSL.cmake bundled with CMake itself then according to the documentation, passing -DOPENSSL_ROOT_DIR=/usr somewhere to CMake should be enough. Of course, the openssl should not be installed on the system.
If you tried that, do you still have error logs by hand?

Sorry for my 2 cents, but, when I did VMR build under FreeBSD 14:

took SDK build under 13.2, not from VMR, but from each repo, it wasn't linked with any openssl, but using libdl as @Thefrank wrote already
did VMR build
result SDK is linked with base system OpenSSL (cut from log: Found OpenSSL: /usr/lib/libcrypto.so (found version "3.0.12"))
and in fact it is - libcrypto.so.30 => /lib/libcrypto.so.30 (0x26cde56e5000) - now this SDK works without having openssl from packages installed

So, question, @arrowd what SDK do you need?
If you need SDK for 13.2 - you need OpenSSL3 which needs to be installed from ports/packages, as base doesn't have 3.
For 14.0 - SDK build under 13.2 will need OpenSSL from packages - but I have build of VMR done under VMR, which doesn't require openssl from ports/packages, becuase it's linked with the system one.

The problem is that we can't have 13+openssl3. The openssl port is sort of special in that it can't be just installed into the system by some dependency. Instead it requires an user to set DEFAULT_VERSION=ssl=openssl3 and then build all ports from source. This will make sure that all ports software is linked to the same openssl library.
Anyways, I'll now proceed with current SDK for 13.2 and try to come up with steps for recreating the same SDK without dependency on the ports openssl. Let's see how this will go down.

Yes, we can always just give up on FreeBSD 13.

Why drop 13? To build VMR under 13, all is needed is SDK bootstraped NOT from VMR (ex. either crossbuild or native build from each repo)
Building by hand from each repo make the build with FEATURE_DISTRO_AGNOSTIC_SSL=1
Building from VMR makes FEATURE_DISTRO_AGNOSTIC_SSL=0
And that flag is controller by PortableBuild, right?
Or the problem is that, build pickup openssl3 (when there's 1 and 3 both available) ?
For 14 we can use SDK from VMR (as it's linked to base openssl3, which will work, but it's hacky I think)

welp. this is the best that I can do: Consumes portable RC2. No hard depend on OpenSSL. USES=ssl. Outputs non-portable SDK that uses base OpenSSL3. Tested for FreeBSD 14 only. Need to wire in Flavors for FreeBSD 13 support

SDK FROM: https://github.com/sec/dotnet-core-freebsd-source-build/releases/download/8.0.100-vmr/dotnet-sdk-8.0.100-freebsd-x64.tar.gz
root@freebsd14:~/dn # find ./ -name "*Ssl*.so" -exec readelf -a "{}" ";" | grep _version
00000001fcc0 000c00000007 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 X509_get_version + 0
00000001fe28<PHONE_NUMBER>07 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 OpenSSL_version_num + 0
0000000205b0<PHONE_NUMBER>07 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 SSL_get_version + 0
0000000205e0 012a00000007 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 SSL_version + 0
000000020708 014f00000007 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 SSL_CIPHER_get_version + 0
    12:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND<EMAIL_ADDRESS>(3)
    57:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND<EMAIL_ADDRESS>(3)
   292:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND<EMAIL_ADDRESS>(4)
   298:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND<EMAIL_ADDRESS>(4)
   335:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND<EMAIL_ADDRESS>(4)
    53:<PHONE_NUMBER>000000     0 FILE    LOCAL  DEFAULT  ABS _version.c
    79:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND X509_get_version
   147:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND OpenSSL_version_num
   563:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND SSL_get_version
   575:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND SSL_version
   640:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND SSL_CIPHER_get_version
  0x0000 vn_version: 1 vn_file: libcrypto.so.12 vn_cnt: 1
  0x0010 vn_version: 1 vn_file: libssl.so.12 vn_cnt: 1
  0x0020 vn_version: 1 vn_file: libc.so.7 vn_cnt: 3
00000001fcc0 000c00000007 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 X509_get_version + 0
00000001fe28<PHONE_NUMBER>07 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 OpenSSL_version_num + 0
0000000205b0<PHONE_NUMBER>07 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 SSL_get_version + 0
0000000205e0 012a00000007 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 SSL_version + 0
000000020708 014f00000007 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 SSL_CIPHER_get_version + 0
    12:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND<EMAIL_ADDRESS>(3)
    57:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND<EMAIL_ADDRESS>(3)
   292:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND<EMAIL_ADDRESS>(4)
   298:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND<EMAIL_ADDRESS>(4)
   335:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND<EMAIL_ADDRESS>(4)
    53:<PHONE_NUMBER>000000     0 FILE    LOCAL  DEFAULT  ABS _version.c
    79:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND X509_get_version
   147:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND OpenSSL_version_num
   563:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND SSL_get_version
   575:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND SSL_version
   640:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND SSL_CIPHER_get_version
  0x0000 vn_version: 1 vn_file: libcrypto.so.12 vn_cnt: 1
  0x0010 vn_version: 1 vn_file: libssl.so.12 vn_cnt: 1
  0x0020 vn_version: 1 vn_file: libc.so.7 vn_cnt: 3

VMR PORTS:
root@freebsd14:/usr/ports/lang/dotNET8/work/stage/usr/local/dotnet # find ./ -name "*Ssl*.so" -exec readelf -a "{}" ";" | grep _version
00000001fe00 000c00000007 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 X509_get_version + 0
00000001ff68<PHONE_NUMBER>07 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 OpenSSL_version_num + 0
0000000206f0<PHONE_NUMBER>07 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 SSL_get_version + 0
000000020720 012a00000007 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 SSL_version + 0
000000020848 014f00000007 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 SSL_CIPHER_get_version + 0
    12:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND X509_get_version@OPENSSL_1_1_0 (4)
    57:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND OpenSSL_version_num@OPENSSL_1_1_0 (4)
   292:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND SSL_get_version@OPENSSL_1_1_0 (5)
   298:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND SSL_version@OPENSSL_1_1_0 (5)
   335:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND SSL_CIPHER_get_version@OPENSSL_1_1_0 (5)
  0x0000 vn_version: 1 vn_file: libcrypto.so.30 vn_cnt: 3
  0x0010 vn_version: 1 vn_file: libssl.so.30 vn_cnt: 3
  0x0020 vn_version: 1 vn_file: libc.so.7 vn_cnt: 3
00000001fe00 000c00000007 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 X509_get_version + 0
00000001ff68<PHONE_NUMBER>07 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 OpenSSL_version_num + 0
0000000206f0<PHONE_NUMBER>07 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 SSL_get_version + 0
000000020720 012a00000007 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 SSL_version + 0
000000020848 014f00000007 R_X86_64_JUMP_SLOT<PHONE_NUMBER>000000 SSL_CIPHER_get_version + 0
    12:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND X509_get_version@OPENSSL_1_1_0 (4)
    57:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND OpenSSL_version_num@OPENSSL_1_1_0 (4)
   292:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND SSL_get_version@OPENSSL_1_1_0 (5)
   298:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND SSL_version@OPENSSL_1_1_0 (5)
   335:<PHONE_NUMBER>000000     0 FUNC    GLOBAL DEFAULT  UND SSL_CIPHER_get_version@OPENSSL_1_1_0 (5)
  0x0000 vn_version: 1 vn_file: libcrypto.so.30 vn_cnt: 3
  0x0010 vn_version: 1 vn_file: libssl.so.30 vn_cnt: 3
  0x0020 vn_version: 1 vn_file: libc.so.7 vn_cnt: 3

@arrowd Have more ports related questions. Base provides libunwind. runtime provides in-tree libunwind. FreeBSD's version rejects both and uses ports. Is this a show stopper? Same question for GSSAPI. Ports version is used.
It was my understanding that items in base are for general usage and building/using the OS. Stuff in ports is for ports. So having DEPENDS would better than USES. If this policy has changed then a large number of changes need to be made in how runtime consumes and uses various libraries under FreeBSD
@sec the main flag to stop the build system of dotnet/* from using online resource is /p:DotNetBuildFromSource. This turns off PGO (not used by FreeBSD), NativeAOT, Agnostic SSL, and others that I can not think of right now. This also stops most, but not all, repos from generating a portable RID.

I came up with a port based on @Thefrank 's version. It builds fine on 15-CURRENT, although there might be a problem with aslr.
Anyways, now my questions are:

Can we generate bootstrapsdk distfiles from the built port? If so, how?
Same question for bootstrapartifacts distfiles.
What is the Private.SourceBuilt.Artifacts.${DOTNET_BOOTSTRAPARTIFACTS}.centos.8-x64.tar.gz distfile? I'm confused by the centos part. Should we generate it for FreeBSD? Again, is is possible to do from the built port's WRKSRC?
What versions 8.0.0 and 8.0.100 are correctly called? Is the former "dotnet version" and the latter - "sdk version"?

Thanks again both you guys for all the effort you put into this. We're really close into getting the port into the main tree!

@arrowd
1+2: you want SHA512's for all of the files contained in both of those packages? It is doable but I don't have a place to host that many files and I assumed (incorrectly??) that size and SHA512 matching two large files would be sufficient protection against bad actors.  Also, those files are generated during the final step of the source build to be used as input for the next version of dotNET (e.g., NET8RC2 generates the 8.0.100 SDK for users and an artifacts ball to be used with the SDK for building 8.0.1/8.0.xxx from source)
From what I recall source building does not provide deterministic compilation. If you are looking for way to verify via signature the source code: https://github.com/dotnet/dotnet/releases each release has a .sig with it.
3: Easiest way to get all of the required items during fetch. 98% of the files not platform specific and the build infrastructure does not care if there are extra items just items that are missing. Most are generated from https://github.com/dotnet/source-build-reference-packages
4: 8.0.0 is for items that don't need SDK versioning. 8.0.100 is for things that do. "Runtimes" (e.g., netcore and aspnetcore) use the former and SDKs/Installers use the later. Example in production: https://github.com/dotnet/core/releases/tag/v8.0.0 .Different repos use different tags for the results "core" product
dotnet allows for many different SDKs and runtimes to live side-by-side
frank@buildbot:~$ dotnet --info
.NET SDK (reflecting any global.json):
 Version:   6.0.417
 Commit:    04fde1d2e3

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  20.04
 OS Platform: Linux
 RID:         ubuntu.20.04-x64
 Base Path:   /usr/share/dotnet/sdk/6.0.417/

global.json file:
  Not found

Host:
  Version:      6.0.25
  Architecture: x64
  Commit:       492abbeef0

.NET SDKs installed:
  5.0.408 [/usr/share/dotnet/sdk]
  6.0.417 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 5.0.17 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.25 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 5.0.17 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.25 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Download .NET:
  https://aka.ms/dotnet-download

Learn about .NET Runtimes and SDKs:
  https://aka.ms/dotnet/runtimes-sdk-info

[root@azurecli ~]# dotnet --info
.NET SDK:
 Version:   7.0.203
 Commit:    5b005c19f5

Runtime Environment:
 OS Name:     FreeBSD
 OS Version:  13
 OS Platform: FreeBSD
 RID:         freebsd.13-x64
 Base Path:   /usr/share/dotnet/sdk/7.0.203/

Host:
  Version:      7.0.5
  Architecture: x64
  Commit:       8042d61b17

.NET SDKs installed:
  6.0.302 [/usr/share/dotnet/sdk]
  6.0.401 [/usr/share/dotnet/sdk]
  6.0.404 [/usr/share/dotnet/sdk]
  6.0.406 [/usr/share/dotnet/sdk]
  6.0.408 [/usr/share/dotnet/sdk]
  7.0.202 [/usr/share/dotnet/sdk]
  7.0.203 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.7 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.9 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.12 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.14 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.16 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.4 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.7 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.9 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.12 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.14 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.16 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.4 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download
[root@azurecli ~]#

1+2: you want SHA512's for all of the files contained in both of those packages?

No, I need a way to regenerate, say, the runtime.freebsd-x64.Microsoft.NETCore.ILAsm.nupkg file. After getting the port installed, what commands do I need to generate it?

from the nuspec:
<description>Internal implementation package not meant for direct consumption. Please do not reference directly.
The .NET IL Assembler.</description>

It is in Private.SourceBuilt.Artifacts.DOTNETVERSION.OS-ARCH.tar.gz if you absolutely need it. The SDK should not nor should end users of the SDK need it.
If you want to pull out individual packages from the source build remove --clean-while-building and fish them out at the end. Between "Shipping" and "Nonshipping" there should be ~500 nuget packages, most of which were restored and not produced.

I have minified the port to not have any unnecessary patches, distfiles and steps. The port from https://github.com/arrowd/freebsd-ports/tree/dotnet is now ready to be upstreamed. Please take a look at it and leave comments if any.
I'll now contact FreeBSD portmgr team asking to enable allow.mlock=true for the build jails on our jailer. This is the last problem holding us off from getting the port into the tree.
Meanwhile, @sec @Thefrank @wfurt share with me your real names and email addresses if you want me to give you a credit in the commit message. It is OK to omit the real name and use a nickname instead. If you know someone else who also contributed to our cause, please tag them too.
And the last question - anyone wants to take a maintainership of the newly created port? I will still help with carrying out the builds, pushing the stuff into the tree and port-related fixes, but I'm lacking the domain knowledge of .NET itself. You mined a lot of domain knowledge while hacking on it, so it'd be great if someone steps out for the maintarnership.
Again, thanks everyone involved! This is a tremendous success and I'm happy it got to the fruition.

Ignore-able to nitpick:

nitpick
https://github.com/arrowd/freebsd-ports/blob/f9d9c5adbb1b9eb024886d55240613b1e13517e3/lang/dotnet/files/patch-src_installer_src_redist_targets_GenerateBundledVersions.targets
The patch I made here adds freebsd-x64 RID support for FreeBSD builds that, while available on the internet, are not pkg installable. Not a problem per se but it will create confusion for anyone trying to target an older version dotNET only to discover they need to wander the internet to find the needed NuGet files to make the build happen. Users should not be targeting EOL versions of dotNET but I left it this way so older code could be maintained. The impact here is close to, if not, 0 users.

ignore-able
https://github.com/Thefrank/freebsd-dotnet-sourcebuild/blob/a4eca45cfbb3eed5dddf2e352264feaf534721ed/PortWIP/dotNET8/files/patch-src_runtime_src_native_libs_System.Security.Cryptography.Native_opensslshim.c
This patch updates the helper function for finding usable versions of OpenSSL. Useful for building portable builds where newer versioned OpenSSL exists or non-portables where the input and output will have different OpenSSL versions. This can be forced in cases where the system is using a version of OpenSSL that is not on the list. Verify the output library is linked correctly and that it looks for the correct symbols. If the build runs without it and without the override on all in-support FreeBSD versions then this patch is unneeded.

ignore-able
eng/bootstrap/OverrideBootstrapVersions.props
My Makefile generates this to copy one of the functions that prep.sh does: fixing earlier build authoring/versioning errors. Unnecessary if the build completes without it. Future versions are unlikely to need this.

Thanks for getting this over the finishing line!

Do you think, we should remove patch-src_installer_src_redist_targets_GenerateBundledVersions.targets then?

If the build runs without it and without the override on all in-support FreeBSD versions then this patch is unneeded.

Yep, it is, which is why I removed it. The only little problem is that bootstrap binaries are linked to 111, but it is easily fixable by creating a misc/compat13x port. I already mailed maintainer of misc/compat12x asking him if he can do this.

eng/bootstrap/OverrideBootstrapVersions.props

Yep, I also removed that change.

@arrowd have you tested the building the port under 14? For me it's failing due to missing openssl when using bootstrapped SDK it downloaded Shared object "libcrypto.so.111" not found, required by "libSystem.Security.Cryptography.Native.OpenSsl.so"
I assume creating misc/compat13x will fix this by installing previous openssl version?

I assume creating misc/compat13x will fix this by installing previous openssl version?

Exactly. I already contacted compat12x maintainer asking for this. If I don't get an answer in near days, I'll create this port myself and this will unblock building on FreeBSD 14+

Using a portable build of dotNET as a bootstrap should (hopefully) resolve the issue without needing to generate more dependencies/ports for it.

I don't quite understand how could it be truly portable. It'd still need to use some version of OpenSSL?

I don't quite understand how could it be truly portable. It'd still need to use some version of OpenSSL?

dotNET is not capable of building true "portable" binaries for any given OS. It can however work with a large number of OpenSSL versions, libunwind types, node versions, and *libc libraries if generated as a "portable" version.
The portable version uses the helper function and links to ldl to find a usable version of OpenSSL as long as that version ends in .10, .11, or .111, it will work. You can override this check and force it to look for a version of OpenSSL with a certain number.
https://github.com/Thefrank/freebsd-dotnet-sourcebuild/blob/a4eca45cfbb3eed5dddf2e352264feaf534721ed/PortWIP/dotNET8/Makefile#L45
The helper function is patched as more of a "we should never get here" worst case of the VMR not linking to a version of OpenSSL but instead ldl. VMR on Linux can take either a portable build or a non-portable distro-specific build and output a new non-portable distro-specific build. This was my failed attempt at replicating that.
Feel free to ignore any/all that I have done with the Makefile. I don't mind being wrong; I just want it working :)
It has been over 7 years since the first people starting work FreeBSD support for dotNET. I am just happy to see if finally finish out as a port.

It can however work with a large number of OpenSSL versions, libunwind types, node versions, and *libc libraries if generated as a "portable" version.

Ah, I see. Anyways, I don't think it is worth bothering to build bootstrap in this mode. It is much easier to provide missing bits as BUILD_DEPENDS.

@arrowd how long will port files be available on distcache.freebsd.org/local-distfiles/arrowd/dotnet/ ? Am I safe to delete my artifacts here and/or delete the repo?

@arrowd how long will port files be available on distcache.freebsd.org/local-distfiles/arrowd/dotnet/ ?

Until I remove them.

Am I safe to delete my artifacts here and/or delete the repo?

Yes, you are, but why do that? They might still be useful for someone and the whole repo may serve historic purposes.

Yes, you are, but why do that? They might still be useful for someone and the whole repo may serve historic purposes.

This has only happened to me on a private repo, but at some point GH gets annoyed about how much space your repo's releases take up.
With an official port. this repo and a few others of mine would be at-best redundant to the port or at-worst confusing to those looking for dotNET on FreeBSD.
I did just discover that GH allows you to archive a repo! I think this would be better way of guiding people towards an official port rather than a repo disappearing.

Closing. We have a version in ports!
Thank you @arrowd for your work here!


Simtracks ssrc handle

add code lost to handle simulcast ssrc during refactor

boy, did I miss this?


Updated Mapping Suite Structure Validator

Codecov Report
Base: 98.75% // Head: 98.95% // Increases project coverage by +0.19% :tada:

Coverage data is based on head (62b5ad4) compared to base (fb4447a).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #279      +/-   ##
==========================================
+ Coverage   98.75%   98.95%   +0.19%
==========================================
  Files         114      103      -11
  Lines        5319     5144     -175
==========================================
- Hits         5253     5090     -163
+ Misses         66       54      -12

Impacted Files
Coverage Δ

ted_sws/core/model/manifestation.py
100.00% <100.00%> (ø)

...cessor/adapters/mapping_suite_structure_checker.py
100.00% <100.00%> (ø)

.../notice_transformer/services/notice_transformer.py
100.00% <100.00%> (ø)

ted_sws/notice_transformer/__init__.py

ted_sws/notice_packager/__init__.py

ted_sws/mapping_suite_processor/__init__.py

ted_sws/core/__init__.py

ted_sws/notice_fetcher/__init__.py

ted_sws/core/model/__init__.py

ted_sws/__init__.py

... and 4 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Handle graceful shutdown when receiving SIGINT.

resolves #31

I think it's fine like this, commits will be squashed anyways

Closing this PR because commit history is ugly af, new PR #61 solves this


pigar -c requirements.txt download error if lib name contains hyphen or brackets (- or [])

Problems for downloading info if lib name contains hypen (- like python-multipart) or brackets ([], like uvicorn[standard])
If I try to list information for libraries like this:
./venv/bin/pigar -c requirements.txt I run into some errors:
❯ ./venv/bin/pigar -c requirements.txt --no
--- Logging error ---
Traceback (most recent call last):
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/core.py", line 248, in check_requirements_latest_versions
    latest = downloader.download_package(pkg).version()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/pypi.py", line 64, in download_package
    pkg_info = self.download(PKG_INFO_URL.format(name))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/pypi.py", line 54, in download
    resp.raise_for_status()
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://pypi.org/pypi/uvicorn%5Bstandard%5D/json

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.11/logging/__init__.py", line 1110, in emit
    msg = self.format(record)
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/logging/__init__.py", line 953, in format
    return fmt.format(record)
           ^^^^^^^^^^^^^^^^^^
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/log.py", line 49, in format
    message = color(record.getMessage())
                    ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/logging/__init__.py", line 377, in getMessage
    msg = msg % self.args
          ~~~~^~~~~~~~~~~
TypeError: must be real number, not HTTPError
Call stack:
  File "/home/mick/projects/capmon-backend/./venv/bin/pigar", line 8, in <module>
    sys.exit(main())
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/__main__.py", line 174, in main
    check_requirements_latest_versions(
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/core.py", line 250, in check_requirements_latest_versions
    logger.error('checking %s failed: %e', pkg, e)
Message: 'checking %s failed: %e'
Arguments: ('uvicorn[standard]', HTTPError('404 Client Error: Not Found for url: https://pypi.org/pypi/uvicorn%5Bstandard%5D/json'))
--- Logging error ---
Traceback (most recent call last):
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/core.py", line 248, in check_requirements_latest_versions
    latest = downloader.download_package(pkg).version()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/pypi.py", line 64, in download_package
    pkg_info = self.download(PKG_INFO_URL.format(name))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/pypi.py", line 54, in download
    resp.raise_for_status()
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://pypi.org/pypi/python-jose%5Bcryptography%5D/json

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.11/logging/__init__.py", line 1110, in emit
    msg = self.format(record)
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/logging/__init__.py", line 953, in format
    return fmt.format(record)
           ^^^^^^^^^^^^^^^^^^
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/log.py", line 49, in format
    message = color(record.getMessage())
                    ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/logging/__init__.py", line 377, in getMessage
    msg = msg % self.args
          ~~~~^~~~~~~~~~~
TypeError: must be real number, not HTTPError
Call stack:
  File "/home/mick/projects/capmon-backend/./venv/bin/pigar", line 8, in <module>
    sys.exit(main())
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/__main__.py", line 174, in main
    check_requirements_latest_versions(
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/core.py", line 250, in check_requirements_latest_versions
    logger.error('checking %s failed: %e', pkg, e)
Message: 'checking %s failed: %e'
Arguments: ('python-jose[cryptography]', HTTPError('404 Client Error: Not Found for url: https://pypi.org/pypi/python-jose%5Bcryptography%5D/json'))
--- Logging error ---
Traceback (most recent call last):
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/core.py", line 248, in check_requirements_latest_versions
    latest = downloader.download_package(pkg).version()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/pypi.py", line 64, in download_package
    pkg_info = self.download(PKG_INFO_URL.format(name))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/pypi.py", line 54, in download
    resp.raise_for_status()
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://pypi.org/pypi/passlib%5Bbcrypt%5D/json

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.11/logging/__init__.py", line 1110, in emit
    msg = self.format(record)
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/logging/__init__.py", line 953, in format
    return fmt.format(record)
           ^^^^^^^^^^^^^^^^^^
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/log.py", line 49, in format
    message = color(record.getMessage())
                    ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/logging/__init__.py", line 377, in getMessage
    msg = msg % self.args
          ~~~~^~~~~~~~~~~
TypeError: must be real number, not HTTPError
Call stack:
  File "/home/mick/projects/capmon-backend/./venv/bin/pigar", line 8, in <module>
    sys.exit(main())
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/__main__.py", line 174, in main
    check_requirements_latest_versions(
  File "/home/mick/projects/capmon-backend/venv/lib/python3.11/site-packages/pigar/core.py", line 250, in check_requirements_latest_versions
    logger.error('checking %s failed: %e', pkg, e)
Message: 'checking %s failed: %e'
Arguments: ('passlib[bcrypt]', HTTPError('404 Client Error: Not Found for url: https://pypi.org/pypi/passlib%5Bbcrypt%5D/json'))
 ==============================================
  PACKAGE                   | CURRENT | LATEST
  --------------------------+---------+-------
  fastapi                   | 0.85.0  | 0.85.1
  h11                       | 0.12.0  | 0.14.0
  pydantic                  | 1.10.2  | 1.10.2
  starlette                 | 0.20.4  | 0.21.0
  uvicorn[standard]         |         | 0.21.0
  python-socketio           |         | 5.7.2
  websockets                | 10.4    | 10.4
  aiohttp                   | 3.8.3   | 3.8.3
  httpx                     | 0.23.0  | 0.23.0
  python-jose[cryptography] |         | 0.23.0
  passlib[bcrypt]           |         | 0.23.0
  bcrypt                    | 4.0.1   | 4.0.1
  yahooquery                | 2.2.15  | 2.2.15
  yfinance                  | 0.1.84  | 0.1.84
  html5lib                  | 1.1     | 1.1
  pycoingecko               | 3.0.0   | 3.0.0
  beautifulsoup4            | 4.11.1  | 4.11.1
  cloudscraper              | 1.2.64  | 1.2.64
  motor                     | 3.1.1   | 3.1.1
  pymongo                   | 4.3.2   | 4.3.2
  beanie                    | 1.13.0  | 1.13.0
  kubernetes                | 25.3.0  | 25.3.0
  pytest                    | 7.2.0   | 7.2.0
  pytest-asyncio            |         | 0.20.1
  locust                    | 2.12.2  | 2.12.2
  loguru                    | 0.6.0   | 0.6.0
  autopep8                  | 1.7.0   | 1.7.0
  pylint                    | 2.15.5  | 2.15.5
  python-multipart          |         | 0.0.5
  email-validator           |         | 1.3.0
  configparser              | 5.3.0   | 5.3.0
  apscheduler               |         | 3.9.1
  Pillow                    | 9.2.0   | 9.2.0
  async_lru                 | 1.0.3   | 1.0.3
  colorama                  | 0.4.6   | 0.4.6
  pigar                     | 1.0.0   | 1.0.0
 ==============================================

Try the main branch pip install git+https://github.com/damnever/pigar.git@main --upgrade

Thanks for answering. I will test this a soon I have access to my PC.
Is

I tested your suggested solution, and here is my result:
  PACKAGE          | SPEC     | LOCAL  | LATEST
  -----------------+----------+--------+-------
  fastapi          | ==0.85.1 | 0.85.1 | 0.86.0
  h11              | ==0.12.0 | 0.12.0 | 0.14.0
  pydantic         |          | 1.10.2 | 1.10.2
  starlette        | ==0.20.4 | 0.20.4 | 0.21.0
  uvicorn          |          | 0.19.0 | 0.19.0
  python-socketio  |          |        | 5.7.2
  websockets       |          | 10.4   | 10.4
  aiohttp          |          | 3.8.3  | 3.8.3
  httpx            |          | 0.23.0 | 0.23.0
  python-jose      |          |        | 3.3.0
  passlib          |          | 1.7.4  | 1.7.4
  bcrypt           |          | 4.0.1  | 4.0.1
  yahooquery       |          | 2.2.15 | 2.2.15
  yfinance         |          | 0.1.85 | 0.1.85
  html5lib         |          | 1.1    | 1.1
  pycoingecko      |          | 3.1.0  | 3.1.0
  beautifulsoup4   |          | 4.11.1 | 4.11.1
  cloudscraper     |          | 1.2.64 | 1.2.64
  motor            |          | 3.1.1  | 3.1.1
  pymongo          |          | 4.3.2  | 4.3.2
  beanie           |          | 1.15.1 | 1.15.1
  kubernetes       |          | 25.3.0 | 25.3.0
  pytest           |          | 7.2.0  | 7.2.0
  pytest-asyncio   |          |        | 0.20.1
  locust           |          | 2.13.0 | 2.13.0
  loguru           |          | 0.6.0  | 0.6.0
  autopep8         |          | 2.0.0  | 2.0.0
  pylint           |          | 2.15.5 | 2.15.5
  python-multipart |          |        | 0.0.5
  email-validator  |          |        | 1.3.0
  configparser     |          | 5.3.0  | 5.3.0
  apscheduler      |          |        | 3.9.1
  Pillow           |          | 9.3.0  | 9.3.0
  async_lru        |          | 1.0.3  | 1.0.3
  colorama         |          | 0.4.6  | 0.4.6
 ===============================================

The lib definitions including brackets seem to be working now, but the ones with hyphens do not show a version number and there are still exceptions:
--- Logging error ---
Traceback (most recent call last):
  File "/root/.local/lib/python3.11/site-packages/packaging/requirements.py", line 102, in __init__
    req = REQUIREMENT.parseString(requirement_string)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.local/lib/python3.11/site-packages/pyparsing/core.py", line 1141, in parse_string
    raise exc.with_traceback(None)
pyparsing.exceptions.ParseException: Expected string_end, found '+'  (at char 3), (line:1, col:4)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/.local/lib/python3.11/site-packages/pigar/helpers.py", line 131, in parse_requirements
    req = Requirement(line)
          ^^^^^^^^^^^^^^^^^
  File "/root/.local/lib/python3.11/site-packages/packaging/requirements.py", line 104, in __init__
    raise InvalidRequirement(
packaging.requirements.InvalidRequirement: Parse error at "'+https:/'": Expected string_end

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/.local/lib/python3.11/site-packages/pigar/core.py", line 241, in check_requirements_latest_versions
    for req in parse_requirements(file):
  File "/root/.local/lib/python3.11/site-packages/pigar/helpers.py", line 133, in parse_requirements
    raise PraseRequirementError('line {}: {}'.format(lineno, e))
pigar.helpers.PraseRequirementError: line 226: Parse error at "'+https:/'": Expected string_end

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/logging/__init__.py", line 1110, in emit
    msg = self.format(record)
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/logging/__init__.py", line 953, in format
    return fmt.format(record)
           ^^^^^^^^^^^^^^^^^^
  File "/root/.local/lib/python3.11/site-packages/pigar/log.py", line 49, in format
    message = color(record.getMessage())
                    ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/logging/__init__.py", line 377, in getMessage
    msg = msg % self.args
          ~~~~^~~~~~~~~~~
TypeError: must be real number, not PraseRequirementError
Call stack:
  File "/root/.local/bin/pigar", line 8, in <module>
    sys.exit(main())
  File "/root/.local/lib/python3.11/site-packages/pigar/__main__.py", line 174, in main
    check_requirements_latest_versions(
  File "/root/.local/lib/python3.11/site-packages/pigar/core.py", line 256, in check_requirements_latest_versions
    logger.error('parse %s failed: %e', file, e)
Message: 'parse %s failed: %e'
Arguments: ('/server/requirements.txt', PraseRequirementError('line 226: Parse error at "\'+https:/\'": Expected string_end'))

Looks like there are some invalid lines in requirements.txt, could you post your requirements.txt file here?

So here is the requirements.txt:
fastapi==0.86.0

h11==0.12.0

pydantic==1.10.2

starlette==0.20.4

uvicorn[standard]==0.19

python-socketio==5.7.2

websockets==10.4

aiohttp==3.8.3

httpx==0.23.0

python-jose[cryptography]==3.3.0

passlib[bcrypt]==1.7.4

bcrypt==4.0.1

yahooquery==2.2.15

yfinance==0.1.84

html5lib==1.1

pycoingecko==3.1.0

beautifulsoup4==4.11.1

cloudscraper==1.2.64

motor==3.1.1

pymongo==4.3.2

beanie==1.15.1

kubernetes==25.3.0

pytest==7.2.0

pytest-asyncio==0.20.1

locust==2.12.0

loguru==0.6.0

autopep8==2.0.0

pylint==2.15.5

python-multipart==0.0.5

email-validator==1.3.0

configparser==5.3.0

apscheduler==3.9.1

Pillow==9.3.0

async_lru==1.0.3

colorama==0.4.6

git+https://github.com/damnever/pigar.git@main

And this is the error message:
--- Logging error ---
Traceback (most recent call last):
  File "/root/.local/lib/python3.11/site-packages/packaging/requirements.py", line 102, in __init__
    req = REQUIREMENT.parseString(requirement_string)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.local/lib/python3.11/site-packages/pyparsing/core.py", line 1141, in parse_string
    raise exc.with_traceback(None)
pyparsing.exceptions.ParseException: Expected string_end, found '+'  (at char 3), (line:1, col:4)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/.local/lib/python3.11/site-packages/pigar/helpers.py", line 131, in parse_requirements
    req = Requirement(line)
          ^^^^^^^^^^^^^^^^^
  File "/root/.local/lib/python3.11/site-packages/packaging/requirements.py", line 104, in __init__
    raise InvalidRequirement(
packaging.requirements.InvalidRequirement: Parse error at "'+https:/'": Expected string_end

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/.local/lib/python3.11/site-packages/pigar/core.py", line 241, in check_requirements_latest_versions
    for req in parse_requirements(file):
  File "/root/.local/lib/python3.11/site-packages/pigar/helpers.py", line 133, in parse_requirements
    raise PraseRequirementError('line {}: {}'.format(lineno, e))
pigar.helpers.PraseRequirementError: line 70: Parse error at "'+https:/'": Expected string_end

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/logging/__init__.py", line 1110, in emit
    msg = self.format(record)
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/logging/__init__.py", line 953, in format
    return fmt.format(record)
           ^^^^^^^^^^^^^^^^^^
  File "/root/.local/lib/python3.11/site-packages/pigar/log.py", line 49, in format
    message = color(record.getMessage())
                    ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/logging/__init__.py", line 377, in getMessage
    msg = msg % self.args
          ~~~~^~~~~~~~~~~
TypeError: must be real number, not PraseRequirementError
Call stack:
  File "/root/.local/bin/pigar", line 8, in <module>
    sys.exit(main())
  File "/root/.local/lib/python3.11/site-packages/pigar/__main__.py", line 174, in main
    check_requirements_latest_versions(
  File "/root/.local/lib/python3.11/site-packages/pigar/core.py", line 256, in check_requirements_latest_versions
    logger.error('parse %s failed: %e', file, e)
Message: 'parse %s failed: %e'
Arguments: ('/server/requirements.txt', PraseRequirementError('line 70: Parse error at "\'+https:/\'": Expected string_end'))

But nevertheless, there is an output:
  PACKAGE          | SPEC     | LOCAL  | LATEST
  -----------------+----------+--------+-------
  fastapi          | ==0.86.0 | 0.86.0 | 0.86.0
  h11              | ==0.12.0 | 0.12.0 | 0.14.0
  pydantic         | ==1.10.2 | 1.10.2 | 1.10.2
  starlette        | ==0.20.4 | 0.20.4 | 0.21.0
  uvicorn          | ==0.19   | 0.19.0 | 0.19.0
  python-socketio  | ==5.7.2  |        | 5.7.2
  websockets       | ==10.4   | 10.4   | 10.4
  aiohttp          | ==3.8.3  | 3.8.3  | 3.8.3
  httpx            | ==0.23.0 | 0.23.0 | 0.23.0
  python-jose      | ==3.3.0  |        | 3.3.0
  passlib          | ==1.7.4  | 1.7.4  | 1.7.4
  bcrypt           | ==4.0.1  | 4.0.1  | 4.0.1
  yahooquery       | ==2.2.15 | 2.2.15 | 2.2.15
  yfinance         | ==0.1.84 | 0.1.84 | 0.1.85
  html5lib         | ==1.1    | 1.1    | 1.1
  pycoingecko      | ==3.1.0  | 3.1.0  | 3.1.0
  beautifulsoup4   | ==4.11.1 | 4.11.1 | 4.11.1
  cloudscraper     | ==1.2.64 | 1.2.64 | 1.2.64
  motor            | ==3.1.1  | 3.1.1  | 3.1.1
  pymongo          | ==4.3.2  | 4.3.2  | 4.3.2
  beanie           | ==1.15.1 | 1.15.1 | 1.15.1
  kubernetes       | ==25.3.0 | 25.3.0 | 25.3.0
  pytest           | ==7.2.0  | 7.2.0  | 7.2.0
  pytest-asyncio   | ==0.20.1 |        | 0.20.1
  locust           | ==2.12.0 | 2.12.0 | 2.13.0
  loguru           | ==0.6.0  | 0.6.0  | 0.6.0
  autopep8         | ==2.0.0  | 2.0.0  | 2.0.0
  pylint           | ==2.15.5 | 2.15.5 | 2.15.5
  python-multipart | ==0.0.5  |        | 0.0.5
  email-validator  | ==1.3.0  |        | 1.3.0
  configparser     | ==5.3.0  | 5.3.0  | 5.3.0
  apscheduler      | ==3.9.1  |        | 3.9.1
  Pillow           | ==9.3.0  | 9.3.0  | 9.3.0
  async_lru        | ==1.0.3  | 1.0.3  | 1.0.3
  colorama         | ==0.4.6  | 0.4.6  | 0.4.6
 ===============================================

Maybe the reason for the error message is the pigar requirement itself, since it's not part of the table?

You can remove git+https://github.com/damnever/pigar.git@main to fix the issue for now..
In the case like git+https://github.com/damnever/pigar.git@main, the first step may be to download the package, then to parse information from it, there is much work to be done and done it right.

You can remove git+https://github.com/damnever/pigar.git@main to fix the issue for now..

I just use the old version for now and live with the error message. It's just for debugging, so that's fine right now

In the case like git+https://github.com/damnever/pigar.git@main, the first step may be to download the package, then to parse information from it, there is much work to be done and done it right.

I am looking forward to upcoming versions.
Thanks for this great tool!


Brew formula update for terrarium version v0.11.1

Automated with GoReleaser

@dshelley66 can you check the pipeline failure? it seems like there is a race condition in uploading a file named "bottles" from two pipelines - ubuntu and mac. if one completes before the other begin, then it'll fail with conflict. where as In the previous run I see it didn't fail but there is only one file being uploaded so it must have replaced.
https://github.com/cldcvr/homebrew-tap/actions/runs/7206447803
I'm not sure if we are using these files or it was only uploaded for debugging purpose? If we need it then we'll probably have to name it differently for each platform.

@dshelley66 can you check the pipeline failure? it seems like there is a race condition in uploading a file named "bottles" from two pipelines - ubuntu and mac. if one completes before the other begin, then it'll fail with conflict. where as In the previous run I see it didn't fail but there is only one file being uploaded so it must have replaced. https://github.com/cldcvr/homebrew-tap/actions/runs/7206447803
I'm not sure if we are using these files or it was only uploaded for debugging purpose? If we need it then we'll probably have to name it differently for each platform.

@kanaksinghal I added the OS to the end of the artifact name to make them unique - looks like it should work now.


bigquery: complete system tests

Fixes #2000
cc @tswast

Should we expect a review from some one on the BigQuery team?

I wouldn't count on it, but I can try to recruit someone if you'd like. For what it's worth, the expected rows in packages/bigquery/system-test/bigquery.js were precisely what I was after in suggesting the tests. It makes me a lot more comfortable to see these data types are coming through properly.

@tswast cool, thanks for the heads up!

@stephenplusplus might be unrelated to the PR, but locally I'm getting an error where the system tests start to pass, but when I get to streaming inserts I get this
  1) BigQuery BigQuery/Table should insert rows via stream:
     Error: Sorry, we cannot connect to Google Cloud Services without a project ID. You may specify one with an environment variable named "GCLOUD_PROJECT". See https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/authentication for a detailed guide on creating an authenticated connection.
      at Object.<anonymous> (node_modules/@google-cloud/common/src/util.js:55:29)
      at Object.<anonymous> (node_modules/@google-cloud/common/src/service-object.js:32:12)
      at Object.<anonymous> (node_modules/@google-cloud/common/src/operation.js:31:21)
      at Object.<anonymous> (node_modules/@google-cloud/common/src/index.js:27:21)
      at Object.<anonymous> (src/dataset.js:23:14)
      at Object.<anonymous> (system-test/bigquery.js:25:15)
      at Array.forEach (native)
      at node.js:814:3

That is strange. Can you open a new issue for that?


Handle Invalid analysis (and other analysis creation errors)

If an analysis is not valid or an error occurs while creating it (prior to registration, execution, etc.) no error appears in the UI. The analysis is left with the progress icon. (we cannot easily generate this situation currently before tampering with the code, so this is not a bug, but please keep reading 😬 )
These are cases in which the map instantiation (GET .../api/v1/map?config=...) responds with a 200 and this kind of payload:
{
  "errors": [
    "Invalid analysis, cycle found"
  ],
  "errors_with_context": [
    {
      "type": "analysis",
      "message": "Invalid analysis, cycle found",
      "analysis": {
        "id": "a1",
        "type": "filter-category"
      }
    }
  ]
}

This may seem not very important for the invalid analysis case (because the UI should not allow building an invalid analysis in the first place) but other errors may occur during the analysis creation, and in particular we're working in pre-checking the analyses and this seems like a good way to make them fail if they limits are exceeded.
cc/ @rafatower

In order of priorities: better to fail silently than starving all resources with a huge analysis. That said, I think Builder is gonna work on improving UI feedback to the user.

cc @alonsogarciapablo and @javierarce

I've tried to replicate what @jgoizueta is describing (manually "breaking" an analysis through the console) and it's working for me. Example, if I add a Filter analysis and I unset the max and min properties, I get the following response from the maps API when the map is loaded:
{
  "errors": [
    "Range filter expect to have at least one value in min or max numeric params"
  ],
  "errors_with_context": [
    {
      "type": "analysis",
      "message": "Range filter expect to have at least one value in min or max numeric params",
      "analysis": {
        "id": "b1",
        "node_id": "b1",
        "type": "filter-range"
      }
    }
  ]
}

@jgoizueta comparing this response to the one you posted, I've noticed that there's no analysis.node_id in yours, which is basically what cartodb.js uses to assign that error to the corresponding analysis node.
@jgoizueta is this happen locally? If so, would you please try this after you upgrade node-windshaft to the latest version? thx!

Issue moved to CartoDB/Windshaft-cartodb #584 via ZenHub

Talked to @dgaubert about this. As we saw in @jgoizueta's comment, Invalid analysis, cycle found errors are not including the ID of the analysis node (node_id), and that's why the error is not be assigned to a node in the BUILDER.


feat(anim-done): indicate when animation is done via classes

this adds an opt-in feature to add entered/left classes to elements after successful animations. This can be used to setup an ending style for the element after its animation phase
Fixes issue #11

@EisenbergEffect this one's ready to check, I'd appreciate if you could give it a try and run the karma tests.

Will do. We can probably get it released today as well.

@zewa666 Any chance of you looking into why the css animation system seems to have a delay on page transition animations in the skeleton? It just seems a bit laggy on the actual start of the animation for some reason.


Unpublishing a published page does not revalidate

Package containing the bug
next-drupal (NPM package)
Describe the bug
A published page shows fine on front-end. But when we unpublish a page it's not revalidating, and the page keep showing on frontend.
I'm seeing below error in Drupal:
GuzzleHttp\Exception\ClientException: Client error: GET https://example.com/api/revalidate?path=/test-page&secret=test-secret resulted in a 404 Not Found response: {"message":"Failed to revalidate /test-page/: Invalid response 500"} in GuzzleHttp\Exception\RequestException::create() (line 113 of /var/www/drupal-website/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php).
On frontend I'm using:
"next": "14.0.1",
"next-drupal": "^2.0.0-beta.0",

On Drupal I'm using drupal/next:^2.0@beta
Expected behavior
Unpublishing a published page should revalidate and should not be visible on frontend afterwards.
Steps to reproduce:

Create a page/article on Drupal and publish it.
Open published page on frontend.
Unpublish the page from Drupal. It should invalidate the page on frontend.
Open the same link again on frontend and it shouldn't show anymore.

Additional context
I was earlier using "next-drupal": "^1.60" but it stopped revalidating pages, show previews etc.
I'm now trying "next-drupal": "^2.0.0-beta.0" and so far following test cases are working fine with it:

showing previews of published/unpublished pages in Drupal.
creating new pages shows fine on frontend.
revalidation of published pages.
revalidation of unpublished pages works fine when checking preview in Drupal but not on frontend.

Hey, did you manage to make revalidation work ? I'm trying to test the Nextjs revalidatePath function but it does not seem to be working. Could you briefly tell me how's your setup ?

Hi @MontiMarco92
With "next-drupal": "^2.0.0-beta.0":

CMS preview is working for both published and unpublished pages.
Updating a published page shows updated content on both CMS preview and Next.js frontend.
But unpublishing a published page does not revalidate as the page keep showing on Next.js frontend.

As I mentioned, on frontend I'm using:
"next": "14.0.1",
"next-drupal": "^2.0.0-beta.0"

And on Drupal: drupal/next:^2.0@beta
Below is the content for pages/api/revalidate.ts
import { NextApiRequest, NextApiResponse } from "next";

export default async function handler(
    request: NextApiRequest,
    response: NextApiResponse
) {
    let path = request.query.path as string
    const secret = request.query.secret as string

    // Validate secret.
    if (secret !== process.env.DRUPAL_REVALIDATE_SECRET) {
        return response.status(401).json({ message: "Invalid secret." })
    }

    // Validate path.
    if (!path) {
        return response.status(400).json({ message: "Invalid path." })
    }

    try {
        await response.revalidate(path)

        return response.json({})
    } catch (error) {
        return response.status(404).json({
            message: error.message,
        })
    }
}

To revalidate any page we can make a GET request to https://example.com/api/revalidate?path=/test-page&secret={{drupalRevalidateSecret}}
Please let me know if you need any help.

ahh I see.. but you're still working with the pages router, right ? I'm trying to use the App router, hence the usage of the new revalidatePath function, and it's not working for me at the moment.
But thanks for answering!

Yes, I'm still using the pages router. Sorry I have no idea how it works in the app router. Good luck!

Hey @MontiMarco92 Have you implemented the "preview" mode? Take a look at #496. Maybe that's your missing piece :)

Thanks @blyme for your suggestion! I've made it work!


Going to 31

@lunarfs This resolves my outstanding issue finding the port for create-topics.  I was having trouble with:
KAFKA_LISTENERS: INSIDE://:29092,OUTSIDE://:9094

but the revised awk regex will find 29092 ok.
Also switched to ubi8 base image for the reasons discussed in the commit.
Hoping you can ripple this through.

Hi, Sorry, I have not given this much attention for some time.. wiull try to get this going now..
For sure we need a new base image, but I am not sure that redhat is the image to go for, switching distribution from debian has many consequences beyond this PR, I think I will take a look at temurin jdk 11 and then use temurin jdk 17 for kafka 3.4
Can you maybee revert the redhat commit, then I will merge this PR, and do a fix for the FROM image (WIP)


Reduced KVO dependency

We can use an observation token to abstract a KVO layer.
I've also created an intermediate RawData type.
I wanted to make this generic, but the same compiler bugs we've seen in the past still exist.
I think, given that, my next PR I plan to make something like a CWJSON enum/struct.
I'll also make a point of having it conform to dynamic member lookup so we can do stuff like:
let organizationID = data.organizationId?.id?.stringValue or something similar.

Codecov Report

Merging #4 into version-2.0 will increase coverage by 0.06%.
The diff coverage is 95.94%.

@@               Coverage Diff               @@
##           version-2.0       #4      +/-   ##
===============================================
+ Coverage        93.46%   93.53%   +0.06%
===============================================
  Files               26       28       +2
  Lines             5114     5119       +5
===============================================
+ Hits              4780     4788       +8
+ Misses             334      331       -3

Impacted Files
Coverage Δ

FetchRequestsTests/CWTestObject+Associations.swift
62.3% <ø> (-3.95%)
:arrow_down:

...ntrollers/CWFetchedResultsControllerTestCase.swift
100% <100%> (ø)
:arrow_up:

FetchRequests/Sources/CWRawDataRepresentable.swift
100% <100%> (ø)

...sts/Models/CWFetchableObjectProtocolTestCase.swift
100% <100%> (ø)
:arrow_up:

...ibleSectionsFetchedResultsControllerTestCase.swift
99.64% <100%> (ø)
:arrow_up:

...s/CWPausableFetchedResultsControllerTestCase.swift
99.35% <100%> (+0.01%)
:arrow_up:

...uests/Sources/Associations/CWObservableToken.swift
94.44% <100%> (-3.39%)
:arrow_down:

FetchRequests/Sources/CWFetchableObject.swift
100% <100%> (ø)
:arrow_up:

...ources/Associations/AssociatedValueReference.swift
97.7% <100%> (+1.62%)
:arrow_up:

...CWPaginatingFetchedResultsControllerTestCase.swift
99.2% <100%> (+0.01%)
:arrow_up:

... and 10 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fc39f8b...f3c15c7. Read the comment docs.


Exclude markdown from default languages

Tell us how you think we can improve Sandpack
Packages affected

[ ] sandpack-client
[x] sandpack-react

What is this feature?
This seems unnecessary as a default:
https://github.com/codesandbox/sandpack/blob/a746ae3ae700bf3b64b8e14e5caee3cb57dd307d/sandpack-react/src/components/CodeEditor/utils.ts#L5
It's not very common that a code editor would need a Markdown example outside of a full sandbox environment.
How would your idea work?
Let's exclude it by default, and let people add it as an extra lang as opt in.

Fair enough, Sandpack supports loading additional languages, and Markdown doesn't seem more necessary as a default language


[FR] Naming with randomly generated numbers

Description
Thanks for the plugin!
Is it possible to name the pasted files with randomly generated 6-digit numbers? The reason for this is that:

I don’t want to reveal when the files were pasted, so I don’t want to use ${date}.
I don’t want to reveal the sequence in which the files were pasted (e.g., "file 1," "file 2," etc.).

I think the best way to avoid duplicate file names without adding ${date} is to use randomly generated numbers.
Thank you!
Details

Desired Behavior

Current Behavior

Attachments

Confirmations

[X] I attached a video showing the current behavior
[X] I attached a sample vault where the desired Feature Request could be applied
[X] I have tested the issue with the latest version
[X] I have checked for existing Feature Requests

Added in https://github.com/RainCat1998/obsidian-custom-attachment-location/releases/tag/5.0.0


helm 2.8.2 hangs with server 2.8.2

Hello
I have a strange behavior on helm after upgrade of the tiller server to 2.8.2. It does not respond to helm client only if it is with the same version.
The command is executed from one namespace to another one.
I have 2 clients, helm-2.8 and helm 2.7. See what I got:

client 2.7 is able to connect to server 2.8:

$ ./helm-2.7 version --tiller-namespace tillernamespace --host tiller-deploy.tillernamespace:44134
Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"}

client 2.8 does not connect to server 2.8:

$ ./helm-2.8 version --tiller-namespace tillernamespace --host tiller-deploy.tillernamespace:44134
Client: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"}
(hangs here)

Any idea?

tiller (even 2.8) works great if I use the helm 2.7 client. I actually do it now. the pod has a state
we use the pattern "one tiller by namespace) so the tiller runs in the same namespace that the pods it is expected to manages

If I try on the same namespace than the current terminal (tiller 2.7 installed):
$ ./helm-2.7 version --tiller-namespace currentnamespace --host tiller-deploy.currentnamespace:44134
Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.7.0", GitCommit:"08c1144f5eb3e3b636d9775617287cc26e53dba4", GitTreeState:"clean"}
jovyan@jupyter-az02065:~/bin$ ./helm-2.8 version --tiller-namespace currentnamespace --host tiller-deploy.currentnamespace:44134
Client: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"}
(hangs)

Does this only happen when using --tiller-namespace?

Same with 2.9.1. Something has changed.
Helm init works.
Helm client 2.7 can "talk" to tiller 2.9.1:
$ helm-2.7.2 version --tiller-namespace=my-namespace --host tiller-deploy.my-namespace:44134
Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}

But Helm 2.9 cannot:
$ helm-2.9.1 version --tiller-namespace=my-namespace --host tiller-deploy.my-namespace:44134
Client: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}
(staled)

Any news? Thanks

Got it running few minutes ago. Thanks !

Closing due to inactivity. Please open a new ticket against Helm 3 if this issue persists. Thanks!


SDK JS: saveAll() with updates (PUT) is setting className into body

Hey, so if I fire from JS (client) with new entities works fine
Parse.Object.saveAll( [ parseObject, parseObject ] )

but, if I send entities which already have an id (by PUT) it fails retrieving an error:
{
  code: 105,
  message: "The className key is a reserved word"
}

So I checked out the Request is sending (Chrome 46) from the console and it's setting the className into the body of each PUT request for the Batch.
{
  // .. removed keys from here
  requests: [{
    body: {
      className: "TeamMember", // < -- THIS
      displayName: "test",
      isAdmin: true
    },
    method: "PUT",
    path: "/1/classes/TeamMember/RQDYlZqgLA"
  }]
}

I give it a try doing a REST API request (without using the JS SDK) exactly the same but without that className property and it seems to work fine.
{
  // .. removed keys from here
  requests: [{
    body: {
      displayName: "test",
      isAdmin: true
    },
    method: "PUT",
    path: "/1/classes/TeamMember/RQDYlZqgLA"
  }]
}

Is this a bug or am I missing something?, I'm using parse version 1.6.14 and I'm working on the Browser.
Thanks!

I'm having trouble reproducing this. classname is not injected into the payload anywhere in the code; it suggests that your object is setting a className attribute. Can you show how you created the objects?

Sure!, here is an extract:
const TeamMember = Parse.Object.extend("TeamMember");

createMembers(members){
    return members.map( member => {

      if (member.objectId){
        member.id = member.objectId;
        delete member.objectId;
        delete member.className;
        delete member.createdAt;
        delete member.updatedAt;
        delete member.__type;
      }

      return new TeamMember(member);
    });
  }

I call createMembers() with an array of JSON (previously ParseObjects doing .toJSON()) and then I call the following:
Parse.Object.saveAll(members).then( done,
 (error) => console.dir(error) /* <-- I get the error here */ );

@andrewimm
So after I pasted the code I thought I could create the Entity in another way, instead of removing the props, create it with the id and then setting only the values and it worked fine:
createMembers(members){
    return members.map( member => {
      let m = new TeamMember({id: member.objectId});
      m.set({
        displayName: member.displayName,
        isAdmin: member.isAdmin
      });
   });
}

Do you know why?, I'm closing the issue cause the problem was how I was creating the entity but I'd like to know why was my error if you have time (please mention me, so I get the notificacion if you answer)
Thanks for your time!

Minor note: Objects created with toJSON() do not contain the __type or className properties; these are only created by the private API method _toFullJSON(), so you shouldn't need to delete these properties. Additionally, object creation with an id attribute is supported, so I'm not sure you need any of your object manipulation.
Anyways, I'm sorry, but I still can't get this to reproduce. Here's the code I'm running, interpreted from what you describe:
var TeamMember = Parse.Object.extend('Member');

var members = [
  new TeamMember({ count: 1 }),
  new TeamMember({ count: 2 }),
  new TeamMember({ count: 3 }),
];

Parse.Object.saveAll(members).then(() => {
  var json = [];
  console.log('Generating JSON...');
  members.forEach((m) => {
    var j = m.toJSON();

    // Note that
    if (j.objectId) {
      j.id = j.objectId;
      delete j.id;
      delete j.className;
      delete j.createdAt;
      delete j.updatedAt;
      delete j.__type;
    }
    // Print out the JSON objects
    console.log(j);

    json.push(j);
  });

  console.log('\nCloning objects...');
  var objs = [];
  json.forEach((j) => {
    var obj = new TeamMember(j);
    console.log(obj.id, obj.attributes);
    objs.push(obj);
  });

  console.log('\nSaving all objects...');
  return Parse.Object.saveAll(objs);
}).then((success) => {
  console.log('success');
}, (err) => {
  console.log('Error!');
  console.log(err);
});

And a sample output:
Generating JSON...
{ count: 1, objectId: 'wS2t9kgZ0T' }
{ count: 2, objectId: 'iHrn23CLkJ' }
{ count: 3, objectId: '6BD9bhQDUJ' }

Cloning objects...
wS2t9kgZ0T { count: 1 }
iHrn23CLkJ { count: 2 }
6BD9bhQDUJ { count: 3 }

Saving all objects...
success

@pjnovas walked through the entire chain Parse.Object.extend, through instance creation. Can't figure out where className would be carried through to the attributes of the object.

@andrewimm yeah it's weird, I tried to figure it out but didn't come up with the trouble.
I don't wanna take more of your time, I really appreciate your help, thanks again!


Accepting auth token on deploy

Fixes #735
We currently don't allow for downloading from private registries, or from Docker Hub when an authorization is needed. This change allows the user to input an --auth flag while doing swarmctl deploy that is a base64 encoded auth token created during docker login. This is then added as a label in the service annotations and is pushed down to the agent (via ServiceAnnotations in tasks) where it is used during image pulls.

Signed-off-by: Nishant Totla<EMAIL_ADDRESS>

@stevvooe @nishanttotla After thinking some more, I think we should avoid storing this information in labels.

@aluzzardi let's talk about this tomorrow, and decide what is the best temporary solution for this.


Only copy the relevant portion of the screen when copying to backbuffer in Compatibility backend

Partially addresses: https://github.com/godotengine/godot/issues/79439
Implements the first point from https://github.com/godotengine/godot/issues/79439#issuecomment-1756481658
Previously we copied the entire backbuffer, now we only copy the relevant portion. This matches the behavior on the RD backends.
Opening as draft as I need to do more testing
On my laptop using intel integrated graphics I get roughly double the performance with this change (~160 FPS to ~320 FPS) using the MRP from #79439. Testing on a pixel 4 and there is no difference (likely because it is not a fill rate bottleneck)

Tested locally (rebased on top of master 671c04f89f449f94e9d129d2fa0b96d3f65dd191), it works as expected. Visuals look identical in the MRP.
Exported projects (for quick testing)
Press Enter/Space, left-click or tap the screen to toggle Clip Children.
Android

ClipChildrenSlow.apk.zip
ClipChildrenSlow.GL-CanvasGroup-Performance.apk.zip

Web

ClipChildrenSlow.GL-CanvasGroup-Performance.web.zip
ClipChildrenSlow.web.zip

Benchmark
Linux
OS: Fedora 39
CPU: Intel Core i9-13900K
GPU: GeForce RTX 4090 (NVIDIA 535.129.03)
1152×648 window

No Clip Children
Clip Children Before
Clip Children After (this PR)

11594 FPS (0.09 mspf)
859 FPS (1.16 mspf)
942 FPS (1.06 mspf)

3840×2160 fullscreen

No Clip Children
Clip Children Before
Clip Children After (this PR)

6611 FPS (0.15 mspf)
393 FPS (2.54 mspf)
882 FPS (1.13 mspf)

Web on Linux
Browser: Chromium 118
CPU: Intel Core i9-13900K
GPU: GeForce RTX 4090 (NVIDIA 535.129.03)
Start Chromium with the --disable-frame-rate-limit --disable-gpu-vsync CLI arguments to disable any FPS limiting from the browser.
3840×2160 fullscreen

No Clip Children
Clip Children Before
Clip Children After (this PR)

2431 FPS (0.41 mspf)
282 FPS (3.55 mspf)
447 FPS (2.24 mspf)

Android
OS: Android 13
Device: Samsung Galaxy Z Fold4 (Snapdragon 8 Gen 1+, Adreno 730)
Measured using the main display, which has a resolution of 2176×1812.

No Clip Children
Clip Children Before
Clip Children After (this PR)

120 FPS (8.33 mspf, capped by V-Sync)
62 FPS (16.13 mspf)
120 FPS (8.33 mspf, capped by V-Sync)

Web on Android
Browser: Bromite 118
Device: Samsung Galaxy Z Fold4 (Snapdragon 8 Gen 1+, Adreno 730)
Measured using the main display, which has a resolution of 2176×1812.

No Clip Children
Clip Children Before
Clip Children After (this PR)

120 FPS (8.33 mspf, capped by V-Sync)
10 FPS (100.00 mspf)
13 FPS (76.92 mspf)

Any news, seems to be really good performance improvements! ;)

Thank you @Calinou for testing I wanted to ensure that a performance difference could be reproduced on Android, since you already did that, I am happy to mark as ready for review

Thanks!

Cherry-picked for 4.2.2.

Are there anyway to include this improvement for the Godot 4.1.5 next? i tested the FPS difference on Godot 4.3 (stable) and Godot 4.1.4, there are about 15~ fps gap  (145 vs 131)

Are there anyway to include this improvement for the Godot 4.1.5 next? i tested the FPS difference on Godot 4.3 (stable) and Godot 4.1.4, there are about 15~ fps gap (145 vs 131)

I'm not sure if we will be releasing another 4.1.x version.
However, in either case, a new PR would be needed targeting 4.1.x directly as the source diverged enough between 4.1 and 4.2 that this can't be cleanly cherry picked. In other words, you will have to copy these changes manually into the 4.1 branch if you want to use them there.


webcord: 3.8.6 -> 3.9.3

Request for a version bump.

The electron version is new enough in Nixpkgs and dream2nix for 3.9.2. However when trying to build it, some package lookups fail. Feel free to try building it yourself if you think you can fix it.

The electron version is new enough in Nixpkgs and dream2nix for 3.9.2. However when trying to build it, some package lookups fail. Feel free to try building it yourself if you think you can fix it.

There has been a change in dream2nix.
  dream = genSystems (system: dreamlib.${system}.makeOutputs {source = webcord;});

Now is
  dream = genSystems (system: dreamlib.${system}.dream2nix-interface.makeOutputs {source = webcord;});

However, the build fails with:
error: builder for '/nix/store/18b4vj7ylma08kwgmxafy0sf7c0kqqnf-webcord-3.9.2.drv' failed with exit code 1;
       last 10 log lines:
       > ><EMAIL_ADDRESS>build
       > > tsc
       >
       > error TS2688: Cannot find type definition file for 'keyv'.
       >   The file is in the program because:
       >     Entry point for implicit type library 'keyv'
       >
       >
       > Found 1 error.
       >
       For full logs, run 'nix log /nix/store/18b4vj7ylma08kwgmxafy0sf7c0kqqnf-webcord-3.9.2.drv'.
error: 1 dependencies of derivation '/nix/store/69iqjrrjmkvrv5mmnxm21mlmbl0f2d2h-webcord-3.9.2-wrapped.drv' failed to build

Full logs here: https://pastebin.com/nH9dK2Yy

Yes, that was the error I've got before as well. I am no Node expert, so I don't know how to fix it.

Yes, that was the error I've got before as well. I am no Node expert, so I don't know how to fix it.

Me neither :(

Updated now, seems like the issue was resolved in 3.10.1.


zwave_js and ozw need clear lock code workaround of setting a random PIN

As an aside, it was mentioned the random code instead of clearing was a workaround for the deprecated zwave integration.  According to my lock documentation, codes can only be cleared by overwriting with a different code.  How would that work with zwavejs?

Deleting User Codes
In order to delete a user code, you must override the code by adding a different user code in the same position. For example, if
you want to delete the third code, add a different user code in position three.
If you cannot remember the user code position, you may wish to perform a factory reset to delete all codes associated with
the lock. See section “G.”
http://www.weiserlock.com/PDFs/instructions/Electronics/SmartCode_5_Installation_and_User_Guide_English.pdf (Section D-d)

Originally posted by @thayerfox in https://github.com/FutureTense/keymaster/issues/121#issuecomment-800770247

My Kwikset also states this in the manual, yet the codes clear. I have yet to find a lock that will not clear it's code in ozw or zwavejs.

that's good to know. @thayerfox can you test this and report back? I'd prefer not to add more workarounds if we don't have to 🙂

Unfortunately my older Yale Real Living YRD220 doesn't seem to want to clear


SQL Query in AL code

It would be nice if we can execute custom SQL queries via AL Code.

TSQL will never be allowed for SaaS. The reason for this is security and resource governance.
For OnPrem this can technically be done through .net interop (when we support that in the new tools).

We have been supporting .NET interop for a while now. It should be possible to achieve this scenario using functionality available in Business Central Fall 2018 and later.


INFO and SAMPLE floating point fields range is not checked

Some integer number fields are checked to guarantee their zero or positive, but this doesn't happen for floating-point fields. Also, those fields that represent frequencies are not checked to be between 0 and 1.
This fix will involve un-commenting the test file failed_body_info_004.vcf.

There are some fields like GL that are logarithms of frequencies, so its range is (-inf, 0], and this range is not described in the meta entry of the field, so we can only do range checks for the reserved fields described in the spec.

done partially in #72. except for some fields that are not unambiguously specified (https://github.com/samtools/hts-specs/issues/224 and the ones about likelihood such as PL or GL)

Done partly in https://github.com/EBIvariation/vcf-validator/pull/89

another bug: FORMAT GP in 4.2 is not a probability [0, 1] as in 4.3, it's a phred-scale (https://genome.sph.umich.edu/wiki/Phred_scale) which I think it's [0, +inf)

Tracked in EVA-2051: closing

tracked in EVA-2052: closing


Add 'install-only' mode

Allow VHS action to complete without failing or running a tape render when path == 'none'. This will help with setting up automation that runs VHS itself without the need to add empty tapes to repo.
See #145 (the main issue for this) and #56 (context).

IMO, I think install-only is extraneous. You should be able to use the action without a path argument to get VHS installed to PATH and fail if the path argument is not empty and doesn't exist. Although this will break the current API, we could release these changes in v2

I don't think failing with 'file not found' error is a right solution for that. Otherwise, there is no way to distinguish between installation failures and failures that happen just because there is no tape file.
I think the best way is to have a mechanism that clearly tells the action what to do, and the action should only fail if it can't do that it's told.
Whether to have a separate flag for it, or have a special path value, or maybe bumping to v2 and using path === '' as a flag to do an install-only run, is up for debate.

Hey @aymanbagabas @caarlos0, can I please get an update, which path forward do we choose? I don't want this to become stall as I need it for my projects.

@maaslalani wanna break the voting here? :P

I agree with empty path approach rather than an extra option! We should simply handle the empty path as install only.

@aymanbagabas @caarlos0 so I think we can merge this and make a new release?


Outdoors Experimentation

Test if the UV sensor reads realistic values outdoors (should range between 2-5), as we are currently in the fall.

Completed.


PosPrinter Crashed

Hi my problem crashed choose my PosPrinter80
Model my printer xprinter px80c

@lion77pnh, we are going to need more details that this to help you.  Please reactivate with additional details and we can try to assist.

I download sample code posprinter, compile run program my windows  10 x64 1803.
Find print, okey 2 print and 1 print chouse and crashed model my printer XP-Q260NL
http://poskeytech.com/html/80mm-Series/67.html

We have found deficiencies is some OPOS service objects and a fix is available.  Please make sure to go to Settings - Update & Security - Windows Update and make sure that you have applied all updates available. Once you have applied all available updates then try the sample again and let us know if you continue to experience this issue.

Update last version 1803
Don't new update
https://imgur.com/a/5rz9ss6

KB4467682 is a cumulative update for release 1803 which contains fixes and security updates. According to the image this update has not been applied to the system yet, but it is almost ready.  Please apply the update once Windows Update completes the download and staging.  You will see an Install Now button or under the Start - Power menu you will see an option to Update and Restart.

Closing due to lack of response with assumption that installing KB4467682 solved the problem.  Please re-open this thread if that is not true.


Change reason for ignoring TimedGet.java in Java 19/20

Changed due to eclipse-openj9/openj9/issues/16729 being resolved

@Mesbah-Alam Can you review this change?


Source file requires different compiler version

MythX CLI version: v0.6.14
Python version: 3.7.5
Operating System: MacOS 10.15.14

Description
Run analysis on these contracts: https://github.com/arcadeum/wallet-contracts/tree/master/contracts
It installed two versions of solidity locally, then failed with a "source file requires different version" error.
What I Did
$ mythx analyze --create-group contracts/**/*.sol
Installing solidity dependencies on macOS 10.15 Catalina.

Traceback (most recent call last):
  File "/Users/primary/.pyenv/versions/3.7.5/lib/python3.7/site-packages/solcx/install.py", line 352, in _install_solc_osx
    message="Running dependency installation script `install_deps.sh`",
  File "/Users/primary/.pyenv/versions/3.7.5/lib/python3.7/site-packages/solcx/install.py", line 257, in _check_subprocess_call
    command, stderr=subprocess.STDOUT if verbose else subprocess.DEVNULL, **proc_kwargs
  File "/Users/primary/.pyenv/versions/3.7.5/lib/python3.7/subprocess.py", line 363, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['sh', '/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.8/scripts/install_deps.sh']' returned non-zero exit status 1.
-- The C compiler identification is AppleClang <IP_ADDRESS>30032
-- The CXX compiler identification is AppleClang <IP_ADDRESS>30032
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- [ccache] Enabled: /usr/local/bin/ccache
-- Found Boost headers in
-- Found Boost::filesystem at
-- Found Boost::unit_test_framework at
-- Found Boost::program_options at
-- Found Boost::system at
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test fstack-protector-strong
-- Performing Test fstack-protector-strong - Success
-- Performing Test Wimplicit-fallthrough
-- Performing Test Wimplicit-fallthrough - Success
-- Performing Test fmacro-prefix-map=/private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.8=/solidity
-- Performing Test fmacro-prefix-map=/private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.8=/solidity - Failed
-- Performing Test Wpessimizing-move
-- Performing Test Wpessimizing-move - Success
-- Performing Test Wredundant-move
-- Performing Test Wredundant-move - Success
-- Found Z3: /usr/local/lib/libz3.dylib (found suitable version "4.8.7", minimum required is "4.6.0")
-- Configuring done
-- Generating done
-- Build files have been written to: /private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.8/build
Scanning dependencies of target solidity_BuildInfo.h
[  0%] Built target solidity_BuildInfo.h
Scanning dependencies of target jsoncpp-project
[  0%] Creating directories for 'jsoncpp-project'
[  1%] Performing download step (download, verify and extract) for 'jsoncpp-project'
-- verifying file...
       file='/private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.8/deps/downloads/jsoncpp-1.9.2.tar.gz'
-- File already exists and hash match (skip download):
  file='/private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.8/deps/downloads/jsoncpp-1.9.2.tar.gz'
  SHA256='77a402fb577b2e0e5d0bdc1cf9c65278915cdb25171e3452c68b6da8a561f8f0'
-- extracting...
     src='/private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.8/deps/downloads/jsoncpp-1.9.2.tar.gz'
     dst='/private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.8/build/deps/src/jsoncpp-project'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[  1%] No patch step for 'jsoncpp-project'
[  1%] No update step for 'jsoncpp-project'
[  2%] Performing configure step for 'jsoncpp-project'
-- The CXX compiler identification is AppleClang <IP_ADDRESS>30032
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- JsonCpp Version: 1.9.2
-- Looking for C++ include clocale
-- Looking for C++ include clocale - found
-- Looking for localeconv
-- Looking for localeconv - found
-- Looking for C++ include sys/types.h
-- Looking for C++ include sys/types.h - found
-- Looking for C++ include stdint.h
-- Looking for C++ include stdint.h - found
-- Looking for C++ include stddef.h
-- Looking for C++ include stddef.h - found
-- Check size of lconv
-- Check size of lconv - done
-- Performing Test HAVE_DECIMAL_POINT
-- Performing Test HAVE_DECIMAL_POINT - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.8/build/deps/src/jsoncpp-project-build
[  2%] Performing build step for 'jsoncpp-project'
Scanning dependencies of target jsoncpp_lib
[  8%] Building CXX object src/lib_json/CMakeFiles/jsoncpp_lib.dir/json_reader.cpp.o
[ 16%] Building CXX object src/lib_json/CMakeFiles/jsoncpp_lib.dir/json_value.cpp.o
[ 25%] Building CXX object src/lib_json/CMakeFiles/jsoncpp_lib.dir/json_writer.cpp.o
[ 33%] Linking CXX static library libjsoncpp.a
[ 33%] Built target jsoncpp_lib
Scanning dependencies of target readFromString
[ 41%] Building CXX object example/CMakeFiles/readFromString.dir/readFromString/readFromString.cpp.o
[ 50%] Linking CXX executable readFromString
[ 50%] Built target readFromString
Scanning dependencies of target streamWrite
[ 58%] Building CXX object example/CMakeFiles/streamWrite.dir/streamWrite/streamWrite.cpp.o
[ 66%] Linking CXX executable streamWrite
[ 66%] Built target streamWrite
Scanning dependencies of target stringWrite
[ 75%] Building CXX object example/CMakeFiles/stringWrite.dir/stringWrite/stringWrite.cpp.o
[ 83%] Linking CXX executable stringWrite
[ 83%] Built target stringWrite
Scanning dependencies of target readFromStream
[ 91%] Building CXX object example/CMakeFiles/readFromStream.dir/readFromStream/readFromStream.cpp.o
[100%] Linking CXX executable readFromStream
[100%] Built target readFromStream
Scanning dependencies of target examples
[100%] Built target examples
[  2%] Performing install step for 'jsoncpp-project'
[ 33%] Built target jsoncpp_lib
[ 50%] Built target readFromString
[ 66%] Built target streamWrite
[ 83%] Built target stringWrite
[100%] Built target readFromStream
[100%] Built target examples
Install the project...

Already up-to-date.
==> Downloading https://homebrew.bintray.com/bottles/icu4c-66.1.catalina.bottle.tar.gz
Already downloaded: /Users/primary/Library/Caches/Homebrew/downloads/1ec6af4a043f49a66fe48d480e3908b80ad3690c0822e1da68653cea5f5350ab--icu4c-66.1.catalina.bottle.tar.gz
==> Downloading https://homebrew.bintray.com/bottles/boost-1.72.0_2.catalina.bottle.tar.gz
Already downloaded: /Users/primary/Library/Caches/Homebrew/downloads/4d7b0853a67f9ef27dc5a837d24ea4bec1c318930151cab3e721fc45f035bcf7--boost-1.72.0_2.catalina.bottle.tar.gz
WARNING:solcx:Command '['sh', '/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.4/scripts/install_deps.sh']' returned non-zero exit status 1.
Traceback (most recent call last):
  File "/Users/primary/.pyenv/versions/3.7.5/lib/python3.7/site-packages/solcx/install.py", line 352, in _install_solc_osx
    message="Running dependency installation script `install_deps.sh`",
  File "/Users/primary/.pyenv/versions/3.7.5/lib/python3.7/site-packages/solcx/install.py", line 257, in _check_subprocess_call
    command, stderr=subprocess.STDOUT if verbose else subprocess.DEVNULL, **proc_kwargs
  File "/Users/primary/.pyenv/versions/3.7.5/lib/python3.7/subprocess.py", line 363, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['sh', '/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.4/scripts/install_deps.sh']' returned non-zero exit status 1.
-- The C compiler identification is AppleClang <IP_ADDRESS>30032
-- The CXX compiler identification is AppleClang <IP_ADDRESS>30032
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- [ccache] Enabled: /usr/local/bin/ccache
-- Found Boost headers in
-- Found Boost::filesystem at
-- Found Boost::unit_test_framework at
-- Found Boost::program_options at
-- Found Boost::system at
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test fstack-protector-strong
-- Performing Test fstack-protector-strong - Success
-- Performing Test Wimplicit-fallthrough
-- Performing Test Wimplicit-fallthrough - Success
-- Performing Test fmacro-prefix-map=/private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.4=/solidity
-- Performing Test fmacro-prefix-map=/private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.4=/solidity - Failed
-- Found Z3: /usr/local/lib/libz3.dylib (found suitable version "4.8.7", minimum required is "4.6.0")
-- Configuring done
-- Generating done
-- Build files have been written to: /private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.4/build
Scanning dependencies of target solidity_BuildInfo.h
[  0%] Built target solidity_BuildInfo.h
Scanning dependencies of target jsoncpp-project
[  0%] Creating directories for 'jsoncpp-project'
[  0%] Performing download step (download, verify and extract) for 'jsoncpp-project'
-- verifying file...
       file='/private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.4/deps/downloads/jsoncpp-1.9.2.tar.gz'
-- File already exists and hash match (skip download):
  file='/private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.4/deps/downloads/jsoncpp-1.9.2.tar.gz'
  SHA256='77a402fb577b2e0e5d0bdc1cf9c65278915cdb25171e3452c68b6da8a561f8f0'
-- extracting...
     src='/private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.4/deps/downloads/jsoncpp-1.9.2.tar.gz'
     dst='/private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.4/build/deps/src/jsoncpp-project'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[  0%] No patch step for 'jsoncpp-project'
[  1%] No update step for 'jsoncpp-project'
[  1%] Performing configure step for 'jsoncpp-project'
-- The CXX compiler identification is AppleClang <IP_ADDRESS>30032
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- JsonCpp Version: 1.9.2
-- Looking for C++ include clocale
-- Looking for C++ include clocale - found
-- Looking for localeconv
-- Looking for localeconv - found
-- Looking for C++ include sys/types.h
-- Looking for C++ include sys/types.h - found
-- Looking for C++ include stdint.h
-- Looking for C++ include stdint.h - found
-- Looking for C++ include stddef.h
-- Looking for C++ include stddef.h - found
-- Check size of lconv
-- Check size of lconv - done
-- Performing Test HAVE_DECIMAL_POINT
-- Performing Test HAVE_DECIMAL_POINT - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /private/var/folders/vk/01zl87497jx6bq66fhhhd9zm0000gn/T/solcx-tmp-68277/solidity_0.6.4/build/deps/src/jsoncpp-project-build
[  2%] Performing build step for 'jsoncpp-project'
Scanning dependencies of target jsoncpp_lib
[  8%] Building CXX object src/lib_json/CMakeFiles/jsoncpp_lib.dir/json_reader.cpp.o
[ 16%] Building CXX object src/lib_json/CMakeFiles/jsoncpp_lib.dir/json_value.cpp.o
[ 25%] Building CXX object src/lib_json/CMakeFiles/jsoncpp_lib.dir/json_writer.cpp.o
[ 33%] Linking CXX static library libjsoncpp.a
[ 33%] Built target jsoncpp_lib
Scanning dependencies of target readFromString
[ 41%] Building CXX object example/CMakeFiles/readFromString.dir/readFromString/readFromString.cpp.o
[ 50%] Linking CXX executable readFromString
[ 50%] Built target readFromString
Scanning dependencies of target streamWrite
[ 58%] Building CXX object example/CMakeFiles/streamWrite.dir/streamWrite/streamWrite.cpp.o
[ 66%] Linking CXX executable streamWrite
[ 66%] Built target streamWrite
Scanning dependencies of target stringWrite
[ 75%] Building CXX object example/CMakeFiles/stringWrite.dir/stringWrite/stringWrite.cpp.o
[ 83%] Linking CXX executable stringWrite
[ 83%] Built target stringWrite
Scanning dependencies of target readFromStream
[ 91%] Building CXX object example/CMakeFiles/readFromStream.dir/readFromStream/readFromStream.cpp.o
[100%] Linking CXX executable readFromStream
[100%] Built target readFromStream
Scanning dependencies of target examples
[100%] Built target examples
[  2%] Performing install step for 'jsoncpp-project'
[ 33%] Built target jsoncpp_lib
[ 50%] Built target readFromString
[ 66%] Built target streamWrite
[ 83%] Built target stringWrite
[100%] Built target readFromStream
[100%] Built target examples
Install the project...

Error: Error compiling source with solc v0.6.4: contracts/utils/LibBytes.sol:15:1: ParserError: Source file requires different compiler version (current compiler is 0.6.4+commit.1dca32f3.Darwin.appleclang - note that nightly builds are considered to be strictly less than the released version
pragma solidity ^0.6.8;
^---------------------^

        > command: `/Users/primary/.solcx/solc-v0.6.4 --allow-paths /Users/primary/temp/wallet-contracts --standard-json`
        > return code: `0`
        > stderr:
        {"errors":[{"component":"general","formattedMessage":"contracts/utils/LibBytes.sol:15:1: ParserError: Source file requires different compiler version (current compiler is 0.6.4+commit.1dca32f3.Darwin.appleclang - note that nightly builds are considered to be strictly less than the released version\npragma solidity ^0.6.8;\n^---------------------^\n","message":"Source file requires different compiler version (current compiler is 0.6.4+commit.1dca32f3.Darwin.appleclang - note that nightly builds are considered to be strictly less than the released version","severity":"error","sourceLocation":{"end":676,"file":"contracts/utils/LibBytes.sol","start":653},"type":"ParserError"}],"sources":{}}

        > stdout:

These errors can happen when the Solidity files passed as targets have different versions. In this case, most likely, the first detected Solidity file has version 0.6.4. The CLI will then make that solc version available and try to compile all targets with it. Another file then has a pragma statement ^0.6.8, which results in a compilation error.
A possible solution to the problem can be to explicitly specify the solc version like so (updating the above command):
mythx analyze --solc-version 0.6.8 --create-group contracts/**/*.sol

Could you try to rerun that command and check that things are working?

Awesome, that did it, thanks!


Merge pull request #1 from NajiSarah/main

sarah Naji

Sarah Naji , an Iraqi engineer. I joined this group to get a very new skill for me. Web development is something very new to me.