json-c: 0.13.1 -> 0.14

Changes: https://github.com/json-c/json-c/blob/json-c-0.14-20200419/ChangeLog

Motivation for this change
New version of popular library.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@ofborg build freeradius ttyd drm_info tpm2-tss opae libmypaint libubox libndctl liblognorm google-compute-engine-oslogin hubicfuse snapper rpm-ostree yubikey-personalization zmap mpw syslog-ng rsyslog uqmi ntopng fastd netifd nfstrace solvespace mypaint sway ptask pianobar girara fwts bluez health-check multipath-tools shogun postgis kernelshark

@ofborg build freeradius ttyd drm_info tpm2-tss opae libmypaint libubox libndctl liblognorm google-compute-engine-oslogin hubicfuse snapper rpm-ostree yubikey-personalization zmap mpw syslog-ng rsyslog uqmi ntopng fastd netifd nfstrace solvespace mypaint sway ptask pianobar girara fwts bluez health-check multipath-tools shogun postgis kernelshark

@ofborg build freeradius ttyd drm_info tpm2-tss opae libvmi libmypaint libubox libndctl liblognorm google-compute-engine-oslogin hubicfuse snapper yubikey-personalization zmap mpw syslogng rsyslog uqmi ntopng fastd netifd nfstrace solvespace mypaint sway ptask pianobar girara fwts bluez health-check multipath-tools shogun postgis kernelshark
rpm-ostree was broken already

rpm-ostree should be fixed by 508a1322200c92db25423e4dd10a8649691a2b83

Thanks, with 508a132 rpm-ostree builds fine against json-c-0.14.

Looks great.

Checked the changes.
Checked the diffs of old and new directory trees, looking fine.
Checked that .pc file looks okay.

Some extra patches:

Cryptsetup: https://gitlab.com/cryptsetup/cryptsetup/-/issues/556#note_334458143
multipath-tools: https://www.redhat.com/archives/dm-devel/2020-May/msg00381.html or better https://www.redhat.com/archives/dm-devel/2020-May/msg00261.html
zmap is weird:

/nix/store/bh3r88sv8wckwmfyhjxbqmxcha0hrm8h-binutils-2.31.1/bin/ld: /nix/store/c2rlh7xa8fcgg7qz8pl76ipvvb172c6k-glibc-2.30/lib/crt1.o: in function `_start':
/build/glibc-2.30/csu/../sysdeps/x86_64/start.S:104: undefined reference to `main'
collect2: error: ld returned 1 exit status
/nix/store/5hplxs3kprdp6v62qk3di6a1m1s1paiq-bash-4.4-p23/bin/bash: -I/nix/store/10wxs7b7pl3fi1z9byn87r0lf3wcnvqv-json-c-0.14-dev/include/json-c: No such file or directory
make[2]: *** [lib/CMakeFiles/zmaplib.dir/build.make:109: lib/CMakeFiles/zmaplib.dir/logger.c.o] Error 127
make[2]: *** Waiting for unfinished jobs....
/nix/store/bh3r88sv8wckwmfyhjxbqmxcha0hrm8h-binutils-2.31.1/bin/ld: /nix/store/c2rlh7xa8fcgg7qz8pl76ipvvb172c6k-glibc-2.30/lib/crt1.o: in function `_start':
/build/glibc-2.30/csu/../sysdeps/x86_64/start.S:104: undefined reference to `main'
collect2: error: ld returned 1 exit status
/nix/store/5hplxs3kprdp6v62qk3di6a1m1s1paiq-bash-4.4-p23/bin/bash: -I/nix/store/10wxs7b7pl3fi1z9byn87r0lf3wcnvqv-json-c-0.14-dev/include/json-c: No such file or directory
make[2]: *** [lib/CMakeFiles/zmaplib.dir/build.make:83: lib/CMakeFiles/zmaplib.dir/blacklist.c.o] Error 127
/nix/store/bh3r88sv8wckwmfyhjxbqmxcha0hrm8h-binutils-2.31.1/bin/ld: /nix/store/c2rlh7xa8fcgg7qz8pl76ipvvb172c6k-glibc-2.30/lib/crt1.o: in function `_start':
/build/glibc-2.30/csu/../sysdeps/x86_64/start.S:104: undefined reference to `main'
collect2: error: ld returned 1 exit status
/nix/store/5hplxs3kprdp6v62qk3di6a1m1s1paiq-bash-4.4-p23/bin/bash: -I/nix/store/10wxs7b7pl3fi1z9byn87r0lf3wcnvqv-json-c-0.14-dev/include/json-c: No such file or directory
make[2]: *** [lib/CMakeFiles/zmaplib.dir/build.make:122: lib/CMakeFiles/zmaplib.dir/pbm.c.o] Error 127
/nix/store/bh3r88sv8wckwmfyhjxbqmxcha0hrm8h-binutils-2.31.1/bin/ld: /nix/store/c2rlh7xa8fcgg7qz8pl76ipvvb172c6k-glibc-2.30/lib/crt1.o: in function `_start':
/build/glibc-2.30/csu/../sysdeps/x86_64/start.S:104: undefined reference to `main'
collect2: error: ld returned 1 exit status
/nix/store/5hplxs3kprdp6v62qk3di6a1m1s1paiq-bash-4.4-p23/bin/bash: -I/nix/store/10wxs7b7pl3fi1z9byn87r0lf3wcnvqv-json-c-0.14-dev/include/json-c: No such file or directory
make[2]: *** [lib/CMakeFiles/zmaplib.dir/build.make:96: lib/CMakeFiles/zmaplib.dir/constraint.c.o] Error 127
make[1]: *** [CMakeFiles/Makefile2:139: lib/CMakeFiles/zmaplib.dir/all] Error 2

looks like a linking error but Void did not need any patch https://github.com/void-linux/void-packages/commit/701b122db4d161b5d51268c828c0c494e4be8796

Building zmap with ninja gives us more info:
[4/56] Building C object lib/CMakeFiles/zmaplib.dir/pbm.c.o
FAILED: lib/CMakeFiles/zmaplib.dir/pbm.c.o
/nix/store/v1hcd1cswjgd11gan4czq7hada69iqkq-gcc-wrapper-9.3.0/bin/gcc -DJSON -I/nix/store/phl75ffn401sd3zyc4mj8fz4l2p2hmky-json-c-0.14-dev/include/json-c -Ilib -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all -fwrapv -fPIC --param ssp-buffer-size=1 -O2 -Wall -Wformat=2 -Wno-format-nonliteral -pedantic -fno-strict-aliasing -Wextra -Wfloat-equal -Wundef -Wwrite-strings -Wredundant-decls -Wnested-externs -Wbad-function-cast -Winit-self -Wmissing-noreturn -Wstack-protector /nix/store/phl75ffn401sd3zyc4mj8fz4l2p2hmky-json-c-0.14-dev/include;-I/nix/store/phl75ffn401sd3zyc4mj8fz4l2p2hmky-json-c-0.14-dev/include/json-c -std=gnu99 -O3 -DNDEBUG -MD -MT lib/CMakeFiles/zmaplib.dir/pbm.c.o -MF lib/CMakeFiles/zmaplib.dir/pbm.c.o.d -o lib/CMakeFiles/zmaplib.dir/pbm.c.o   -c lib/pbm.c
/nix/store/bh3r88sv8wckwmfyhjxbqmxcha0hrm8h-binutils-2.31.1/bin/ld: /nix/store/phl75ffn401sd3zyc4mj8fz4l2p2hmky-json-c-0.14-dev/include: file not recognized: Is a directory
collect2: error: ld returned 1 exit status
/bin/sh: -I/nix/store/phl75ffn401sd3zyc4mj8fz4l2p2hmky-json-c-0.14-dev/include/json-c: not found

Looks like the Cflags are joined using semicolong for some reason, curiously causing a linking error.
Removing the -I flag that was not there in 0.13 fixes the build. I wonder why other distros do not see the issue though:
diff --git a/pkgs/development/libraries/json-c/default.nix b/pkgs/development/libraries/json-c/default.nix
index 636c913c7d6..2805480588c 100644
--- a/pkgs/development/libraries/json-c/default.nix
+++ b/pkgs/development/libraries/json-c/default.nix
@@ -20,6 +20,10 @@ stdenv.mkDerivation rec {

   nativeBuildInputs = [ cmake ];

+  postFixup = ''
+    substituteInPlace "$dev/lib/pkgconfig/json-c.pc" --replace 'Cflags: -I''${includedir}' 'Cflags:'
+  '';
+
   meta = with stdenv.lib; {
     description = "A JSON implementation in C";
     homepage    = "https://github.com/json-c/json-c/wiki";

Nice, thanks for the clue. Looks like it's a bug in the upstream CMakefile.txt, opened a PR: zmap/zmap#609.

Only cryptsetup remains on 0.13.1 now. Unfortunately the upstream commits do not apply cleanly to our version. Looking at the difficulties Fedora had I'd suggest waiting for cryptsetup update to 2.3.3 (#91017) which is compatible with json-c-0.14.

please rebase

Rebased & dropped the newsboat commit because it's no longer needed.

Dropped the cryptsetup commit (#91017 is merged) and the json-c 0.13 version because it's no longer needed.

Thanks.


How can I get the image coordinates of touched / clicked place?

Did you have any solution for this?


bug:  Product_Name Param does not render in Killercoda

{{% param “PRODUCT_NAME” %}} doesn't expand when rendered through transformer (used pervasively in some docs repos like alloy where I'm testing)

This will also need to support {{< param "<LOOKUP>" >}}.
The metadata for this lookup isn't guaranteed to be in the file. I think the tool will need an "inherited metadata" option to capture all that external source which can be cascading from parent topics: https://gohugo.io/content-management/front-matter/#cascade-field.
I think the algorithm would be:

Look up <LOOKUP> in the page's front matter
Look up <LOOKUP> in the inherited metadata option value
Error if not found


Add AMQP Broker

Please review MR to add AMQP Broker. Let me know if any questions.

Thanks for your review -- if I missed anything just let me know and I'll get the updates done. :)

I've updated the testing suite to accommodate for multiple brokers vs (potentially) multiple result backends. Both work for local tests and for GHA tests.
Alas it seems that phpstan complains about some stuff in the code of PhpAmqpLibAmqpDriver class (it was complaining even before my latest commit into your PR, but I noticed it just now). Could you take a look at it? :)
The unused $channel property is an easy fix. The issue with Dead catch - PhpAmqpLib\Exception\AMQPProtocolChannelException is never thrown in the try block. also doesn't seem like something complicated, but I'd feel better if you'd take a look and fix it.

@smuuf
Yeah that leftover $channel var was from the fetchResult method that we removed. phpstan is complaining about these exceptions not firing, but they are thrown by the parent lib. php-amqplib does not have an exception-free way to check if a queue/exchange exists that I know of (it throws the caught exception). Perhaps there is a way to hint to phpstan in a better way to resolve this -- but I added a baseline with those 3 errors and it's now passing.
 If you have a better solution, I appreciate your help there :)
Thanks!

By the way, decreasing the phpstan --level to 3 will also pass without the baseline.

Lowering phpstan level is just hiding the problem, not solving it.
Baseline is not the way this should be handled. The idea of having a baseline is to make transition to phpstan easier in projects that haven't been using it. Then things should continuously disappear from baseline rather than appear :)
I did some testing around the expected exception and discovered:

Executing $ch->exchange_delete("nonexistent_deleteExchange"); does not seem to throw any exception.
Executing $ch->queue_delete("nonexistent_deleteQueue"); does not seem to throw any exception.
Executing $ch->queue_purge("nonexistent_purgeQueue"); does indeed throw exception: PhpAmqpLib\Exception\AMQPProtocolChannelException: NOT_FOUND - no queue 'nonexistent_purgeQueue' in vhost '/'

Ad 3. it seems to me that both exchange_delete nor queue_delete do not throw any exception (let alone AMQPProtocolChannelException). That may be because I was doing something wrong when checking those, or it might be a bug in php-amqplib (?).
So, these two cases I'm not sure the try...catch should be even there (I'd even say it shouldn't be there...). But you may know better, so I leave it up to you. If you decide the try...catch should really be there, then I'd do it the same way as I describe below.
The $ch->queue_purge("nonexistent_purgeQueue") call does throw and the try...catch is in that case justified. PHPStan still complains that it's a "dead catch", very probably due to the IMHO highly-magic implementation of php-amqplib's internals.
So, in this case - instead of lowering phpstan level or creating a baseline - you should just tell phpstan not to check that specific place via a // @phpstan-ignore-line comment at that specific place:
try {
	$ch->queue_purge($queueName);
} catch (AMQPProtocolChannelException $e) { // @phpstan-ignore-line
	if ($e->getCode() !== 404) {
		throw $e;
	}
}

I replaced my latest commit adjusting to your response.

Although I've never used phpstan before I do understand that much.
I hunted around for exactly what you just shared with me, thanks! I updated with an ignore line -- must cleaner.
I think I originally ran into the exception because of purge_queue when making updates to get tests to work. Thanks for the time testing that.

We should be ready to rock now!

Great!
I'd like to do some additional cosmetic changes before I merge it into master. Would it be ok if I'd do a forced push into your branch? (I'm not sure GitHub will allow me, but if yes, then I'd also like to clean up the commit graph a bit).

Yeah that’s cool with me!
On Thu, Nov 9, 2023 at 5:23 PM Přemysl Karbula @.***>
wrote:

Great!
I'd like to do some additional cosmetic changes before I merge it into
master. Would it be ok if I'd do a forced push into your branch? (I'm not
sure GitHub will allow me, but if yes, then I'd also like to clean up the
commit graph a bit).
—
Reply to this email directly, view it on GitHub
https://github.com/smuuf/celery-for-php/pull/2#issuecomment-1804777024,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDPPDDBJAVSXCNZ5VGBE7EDYDVJVHAVCNFSM6AAAAAA65D3NJSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBUG43TOMBSGQ
.
You are receiving this because you modified the open/close state.Message
ID: @.***>


Unable to load zephir_parser.so

[18-Mar-2016 09:05:37] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20131226/zephir_parser.so' - /usr/lib/php5/20131226/zephir_parser.so: cannot open shared object file: No such file or directory in Unknown on line 0
[18-Mar-2016 09:05:37] NOTICE: fpm is running, pid 1
[18-Mar-2016 09:05:37] NOTICE: ready to handle connections

Fixed by using latest klay/php-cli build


Use GCC's Endian Detection Macro

Instead of platform detection use WORDS_BIG_ENDIAN

GCC 2.95.3 (2001) manual mentions WORDS_BIG_ENDIAN

All tests pass on Windows 7 with GHC 7.6.3 and GHC 7.10.2

All tests pass on Ubuntu 14.04 with GHC 7.6.3 and GHC 7.10.2

All tests pass on SmartOS base-multiarch 15.3.0 with GHC 7.6.3 and
GHC 7.10.3

Thanks for this, Alain. Have you tested on any big endian machines?

@patperry I don't have access to a big endian machine to test on. Karel Gardas has Solaris 11 on SPARC. I'll ask him if I cam have access or if he can give this a try.  Based on GCC docs it should work, but better safe tham sorry.

Hi,
Alain, I don't know structure of hs-ieee library, but it looks like the file you changed is compiled directly by GNU C compiler?  The problem is that this does not seems to be the case of SPARC/Solaris 11. I'm compiling:
#include <stdio.h>

#ifdef WORDS_BIG_ENDIAN
#warning "Big endian!"
#else
#warning "Little endian!"
#endif

int
main()
{
return 0;
}

and the output is:
$ gcc big-test.c
big-test.c:7:2: warning: #warning "Little endian!" [-Wcpp]
 #warning "Little endian!"
  ^

the machine is SPARC:
$ isainfo
sparcv9 sparc
$ uname -a
SunOS niagara 5.11 11.2 sun4v sparc SUNW,Sun-Fire-T200

Am I doing anything wrong in my test?

Also a test done on SPARC:
$ gcc -dM -E - < /dev/null|grep BIG
#define __BIGGEST_ALIGNMENT__ 8
#define __FLOAT_WORD_ORDER__ __ORDER_BIG_ENDIAN__
#define __ORDER_BIG_ENDIAN__ 4321
#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__
$

This is GNU C provided by Solaris 11 itself:
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/lto-wrapper
Target: sparc-sun-solaris2.11
Configured with: /export/home/hudson/workspace/nightly-update/build/sparc/components/gcc48/gcc-4.8.2/configure CC=/usr/gcc/4.7/bin/gcc CXX=/usr/gcc/4.7/bin/g++ --prefix=/usr/gcc/4.8 --mandir=/usr/gcc/4.8/share/man --bindir=/usr/gcc/4.8/bin --libdir=/usr/gcc/4.8/lib --sbindir=/usr/gcc/4.8/sbin --infodir=/usr/gcc/4.8/share/info --libexecdir=/usr/gcc/4.8/lib --enable-languages=c,c++,fortran,objc --enable-shared --with-gmp-include=/usr/include/gmp --with-mpfr-include=/usr/include/mpfr --without-gnu-ld --with-ld=/usr/bin/ld --without-gnu-as --with-as=/usr/bin/as CFLAGS='-g -O2  -mtune=ultrasparc -mcpu=ultrasparc -mno-unaligned-doubles' CXXFLAGS='-g -O2 -mtune=ultrasparc -mcpu=ultrasparc -mno-unaligned-doubles'
Thread model: posix
gcc version 4.8.2 (GCC)

Thanks, @kgardas , this is good to know.
On x86-64 Mac OS:
$ clang -dM -E - < /dev/null | grep ORDER
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __ORDER_BIG_ENDIAN__ 4321
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __ORDER_PDP_ENDIAN__ 3412

$ gcc-4.9 -dM -E - < /dev/null | grep ORDER
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __ORDER_PDP_ENDIAN__ 3412
#define __ORDER_BIG_ENDIAN__ 4321
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__

@AlainODea can you modify your patch to check if __BYTE_ORDER__ is defined, then fall back to the platform-specific #includes if not?

Will do. Thank you gentlemen.
On Wed, Jan 6, 2016 at 12:38 Patrick O. Perry<EMAIL_ADDRESS>wrote:

Thanks, @kgardas https://github.com/kgardas , this is good to know.
On x86-64 Mac OS:
$ clang -dM -E - < /dev/null | grep ORDER
#define BYTE_ORDER ORDER_LITTLE_ENDIAN
#define ORDER_BIG_ENDIAN 4321
#define ORDER_LITTLE_ENDIAN 1234
#define ORDER_PDP_ENDIAN 3412
$ gcc-4.9 -dM -E - < /dev/null | grep ORDER
#define ORDER_LITTLE_ENDIAN 1234
#define FLOAT_WORD_ORDER ORDER_LITTLE_ENDIAN
#define ORDER_PDP_ENDIAN 3412
#define ORDER_BIG_ENDIAN 4321
#define BYTE_ORDER ORDER_LITTLE_ENDIAN
@AlainODea https://github.com/AlainODea can you modify your patch to
check if BYTE_ORDER is defined, then fall back to the
platform-specific #includes if not?
—
Reply to this email directly or view it on GitHub
https://github.com/patperry/hs-ieee754/pull/10#issuecomment-169371813.

Okay, I made a serious mistake reading the GCC documentation.  WORDS_BIG_ENDIAN is an internal define used by GCC for its own portability.  It isn't available to code compiled with GCC.  My change only "worked" on Ubuntu x86-64 and SmartOS x86-64 because little endian was the fallback if the define was missing.  My code would ensure that all machines would be considered little endian.  Not exactly our intent here ;)
BYTE_ORDER appears to be the best option.  I'll come up with a smaller adaptation of the original code that tries BYTE_ORDER and falls back to the original stragegy of includes and ifdefs.
$ gcc -dM -E - < /dev/null|grep ORDER
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __ORDER_PDP_ENDIAN__ 3412
#define __ORDER_BIG_ENDIAN__ 4321
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__

endian.c:
#ifdef __BYTE_ORDER__
#  if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
#    warning "Big endian!"
#  else
#    if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
#      warning "Little endian!"
#    else
#      warning "Unknown endianness!"
#    endif
#  endif
#endif

int
main()
{
return 0;
}

Compile it with GCC on SmartOS:
$ gcc endian.c
endian.c:6:8: warning: #warning "Little endian!" [-Wcpp]

Compile it with GCC on Ubuntu:
$ gcc endian.c
endian.c:6:8: warning: #warning "Little endian!" [-Wcpp]
 #      warning "Little endian!"
        ^

Replaced by #11.


Fix PreviewThumbnailsOptions type

Link to related issue (if applicable)
Summary of proposed changes
According to the docs, the src should also accept an array of strings.
Checklist

[x] Use develop as the base branch
[x] Exclude the gulp build (/dist changes) from the PR
[x] Test on supported browsers

Cheers 👍


[UI] Silence creator from HTTP header or Basic Auth

PR for following implementation
Silence creator from HTTP header or Basic Auth

I would like to see this feature as we have a reverse proxy in front Alertmanager for authentication that could easily add a username header for Alertmanager to consume and prefill the author, or even enforce the author.


Support Mongo Java Driver 3.1.x (?)

The interface "com.mongodb.connection.Connection" has changed - new methods have been added (e.g. "killCursor(MongoNamespace, List)", also see "since 3.1" tags).
Switching to the new driver results in "AbstractMethodError":
java.lang.AbstractMethodError: com.github.fakemongo.FongoConnection.query(Lcom/mongodb/MongoNamespace;Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;IIIZZZZZZLorg/bson/codecs/Decoder;)Lcom/mongodb/connection/QueryResult;
        at com.mongodb.operation.FindOperation$1.call(FindOperation.java:397)
        at com.mongodb.operation.FindOperation$1.call(FindOperation.java:394)
        at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:196)
        at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:169)
        at com.mongodb.operation.FindOperation.execute(FindOperation.java:394)
        at com.mongodb.operation.FindOperation.execute(FindOperation.java:57)
        at com.github.fakemongo.Fongo.execute(Fongo.java:156)
        at com.mongodb.FindIterableImpl$FindOperationIterable.first(FindIterableImpl.java:197)
        at com.mongodb.FindIterableImpl.first(FindIterableImpl.java:140)
        ...

Hi,
with mongo 3.2 ??

(and the v3 branch ?)

I'll check tomorrow...

Am 15.12.2015 um 19:00 schrieb William Delanoue<EMAIL_ADDRESS>(and the v3 branch ?)
—
Reply to this email directly or view it on GitHub.

Hi, with MongoDB Java driver version 3.1.1 and the locally compiled v3 branch of fongo (2.0.4-SNAPSHOT), I get the following NoSuchMethodError:
java.lang.NoSuchMethodError: com.mongodb.MongoClientOptions.getReadConcern()Lcom/mongodb/ReadConcern;
        at com.mongodb.MockMongoClient.create(MockMongoClient.java:32)
        at com.github.fakemongo.Fongo.createMongo(Fongo.java:157)
        at com.github.fakemongo.Fongo.<init>(Fongo.java:73)
        at com.github.fakemongo.Fongo.<init>(Fongo.java:62)
        ...

Additionally, the "ReadConcern" class is no longer existent - it's called "ReadPreference" now.
Probably it's best to drop 3.0.x driver support in fongo v3 (since there is a 3.2.x version of the driver now) or create a separate 3.1.x+ branch...

the v3 branch is now only for version 3.2.0 of mongo drivers. It's hard to
maintain for all drivers
On Wed, Dec 16, 2015 at 6:14 PM, René Zanner<EMAIL_ADDRESS>wrote:

Hi, with MongoDB Java driver version 3.1.1 and the locally compiled v3
branch of fongo (2.0.4-SNAPSHOT), I get the following NoSuchMethodError:
java.lang.NoSuchMethodError: com.mongodb.MongoClientOptions.getReadConcern()Lcom/mongodb/ReadConcern;
at com.mongodb.MockMongoClient.create(MockMongoClient.java:32)
at com.github.fakemongo.Fongo.createMongo(Fongo.java:157)
at com.github.fakemongo.Fongo.(Fongo.java:73)
at com.github.fakemongo.Fongo.(Fongo.java:62)
...
Additionally, the "ReadConcern" class is no longer existent - it's called
"ReadPreference" now.
Probably it's best to drop 3.0.x driver support in fongo v3 (since there
is a 3.2.x version of the driver now) or create a separate 3.1.x+ branch...
—
Reply to this email directly or view it on GitHub
https://github.com/fakemongo/fongo/issues/170#issuecomment-165179640.

Yeah - that's understandable. From my point of view you can close this issue - I won't be using the 3.1.x drivers anyway, when the 3.2.x drivers are supported properly. :-)

Am 16.12.2015 um 18:43 schrieb William Delanoue<EMAIL_ADDRESS>the v3 branch is now only for version 3.2.0 of mongo drivers. It's hard to
maintain for all drivers
On Wed, Dec 16, 2015 at 6:14 PM, René Zanner<EMAIL_ADDRESS>wrote:

Hi, with MongoDB Java driver version 3.1.1 and the locally compiled v3
branch of fongo (2.0.4-SNAPSHOT), I get the following NoSuchMethodError:
java.lang.NoSuchMethodError: com.mongodb.MongoClientOptions.getReadConcern()Lcom/mongodb/ReadConcern;
at com.mongodb.MockMongoClient.create(MockMongoClient.java:32)
at com.github.fakemongo.Fongo.createMongo(Fongo.java:157)
at com.github.fakemongo.Fongo.(Fongo.java:73)
at com.github.fakemongo.Fongo.(Fongo.java:62)
...
Additionally, the "ReadConcern" class is no longer existent - it's called
"ReadPreference" now.
Probably it's best to drop 3.0.x driver support in fongo v3 (since there
is a 3.2.x version of the driver now) or create a separate 3.1.x+ branch...
—
Reply to this email directly or view it on GitHub
https://github.com/fakemongo/fongo/issues/170#issuecomment-165179640.

—
Reply to this email directly or view it on GitHub.


SA1000: Spacing around new() expression inconsistent with formatter support

In C# 9.0, you can omit the type name when using new in some cases:
// With the type name
List<int> ws = new List<int>();

// Without the type name
List<int> xs = new();
List<int> ys = new(capacity: 10_000);
List<int> zs = new() { Capacity = 20_000 };

The SA1000 rule catches new() and wants a space like new () because it assumes the next thing should be a type name. It should treat new() like a function instead of like new TypeHere() with respect to spacing. That would also allow C# formatters, which treat new() like a function, to be consistent with StyleCop rules. (Right now they fight a bit.)

It looks like there's already a unit test around this so perhaps this just hasn't been released yet?

 Updated to 1.2.0-beta.321 and all is well. Sorry for any confusion.

Duplicate of #3214


Use localstack to replace S3 dependency

@ddebeau this removes the S3 dependency from tests and allows any fork to run the action without needing the secrets.

PR requested changes applied

I do not have write access to your repo, so you would have to merge. Thanks!


dbless config doesn't work, no documentation for details

Hello,
I would like to install Kong with DB-less config within a POC evaluation. When I attempt to install Kong Helm Chart 2.31.0 on EKS 1.28, I get following error message:
helm upgrade --install kong -n kong . \
  --set dblessConfig.config=kong.yml \
  --create-namespace

k logs -n kong kong-kong-698cb54cb-qjjw4
Defaulted container "proxy" out of: proxy, clear-stale-pid (init)
2023/11/08 11:33:55 [warn] 1#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /kong_prefix/nginx.conf:7
nginx: [warn] the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /kong_prefix/nginx.conf:7
2023/11/08 11:33:55 [error] 1#0: init_by_lua error: /usr/local/share/lua/5.1/kong/init.lua:652: error parsing declarative config file /kong_dbless/kong.yml:
failed parsing declarative configuration: expected an object
stack traceback:
	[C]: in function 'error'
	/usr/local/share/lua/5.1/kong/init.lua:652: in function 'init'
	init_by_lua:3: in main chunk
nginx: [error] init_by_lua error: /usr/local/share/lua/5.1/kong/init.lua:652: error parsing declarative config file /kong_dbless/kong.yml:
failed parsing declarative configuration: expected an object
stack traceback:
	[C]: in function 'error'
	/usr/local/share/lua/5.1/kong/init.lua:652: in function 'init'
	init_by_lua:3: in main chunk

I see there are many complaints for DB-less configuration since 2019 but all workarounds are for Docker or linux installation. Unfortunately I couldn't have accessed to any workaround or solid solution.
There are mentions for kong.yml but it is not something configurable in Helm Chart. If it must prepared manually, all fields (url, path) are blury and not defined in any documentation properly.
  # # _format_version: "1.1"
  # # services:
  # #   # Example configuration
  # #   # - name: example.com
  # #   #   url: http://example.com
  # #   #   routes:
  # #   #   - name: example
  # #   #     paths:
  # #   #     - "/example"

could you please a workaround and indicate something I missed?
Thanks & Regards

Hi @tirelibirefe
Do you mind attaching the config file that you're trying to use in this configuration so that we can assess what might be wrong with it?
You can always refer to https://docs.konghq.com/gateway/3.4.x/production/deployment-topologies/db-less-and-declarative-config/ for more information on the declarative config schema and how to manage it.
As mentioned in the docs, you can also use deck yourself to check via deck gateway validate what's wrong with your config.

Hello @pmalek
Thanks for your response and feedback.
Here is my values.yaml file:
deployment:
  kong:
    enabled: true
  serviceAccount:
    create: true
    automountServiceAccountToken: false
  test:
    enabled: false
  daemonset: false
  hostNetwork: false
  prefixDir:
    sizeLimit: 256Mi
  tmpDir:
    sizeLimit: 1Gi
env:
  database: "off"
  router_flavor: "traditional"
  nginx_worker_processes: "2"
  proxy_access_log: /dev/stdout
  admin_access_log: /dev/stdout
  admin_gui_access_log: /dev/stdout
  portal_api_access_log: /dev/stdout
  proxy_error_log: /dev/stderr
  admin_error_log: /dev/stderr
  admin_gui_error_log: /dev/stderr
  portal_api_error_log: /dev/stderr
  prefix: /kong_prefix/
  plugins: "bundled,oidc"
extraLabels: {}
image:
  repository: kong
  tag: "3.4"
  effectiveSemver:
  pullPolicy: IfNotPresent
admin:
  enabled: false
  type: ClusterIP
  loadBalancerClass:
  annotations: {}
  labels: {}
  http:
    enabled: false
    servicePort: 8001
    containerPort: 8001
    parameters: []
  tls:
    enabled: true
    servicePort: 8444
    containerPort: 8444
    parameters:
    - http2
    client:
      caBundle: ""
      secretName: ""
  ingress:
    enabled: false
    ingressClassName:
    hostname:
    annotations: {}
    path: /
    pathType: ImplementationSpecific
status:
  enabled: true
  http:
    enabled: true
    containerPort: 8100
    parameters: []
  tls:
    enabled: false
    containerPort: 8543
    parameters: []
clusterCaSecretName: ""
cluster:
  enabled: false
  annotations: {}
  labels: {}
  tls:
    enabled: false
    servicePort: 8005
    containerPort: 8005
    parameters: []
  type: ClusterIP
  loadBalancerClass:
  ingress:
    enabled: false
    ingressClassName:
    hostname:
    annotations: {}
    path: /
    pathType: ImplementationSpecific
proxy:
  enabled: true
  type: ClusterIP
  loadBalancerClass:
  nameOverride: ""
  annotations: {}
  labels:
    enable-metrics: "true"
  http:
    enabled: true
    servicePort: 80
    containerPort: 8000
    parameters: []
  tls:
    enabled: true
    servicePort: 443
    containerPort: 8443
    parameters:
    - http2
  stream: []
  ingress:
    enabled: true
    ingressClassName: nginx
    annotations: {}
    labels: {}
    hostname: newerapi.dev-hub.myawesomecompany.com
    path: /
    pathType: ImplementationSpecific
    hosts: []
udpProxy:
  enabled: false
  type: LoadBalancer
  loadBalancerClass:
  annotations: {}
  labels: {}
  stream: []
plugins: {}
secretVolumes: []
migrations:
  preUpgrade: true
  postUpgrade: true
  annotations:
    sidecar.istio.io/inject: false
  jobAnnotations: {}
  backoffLimit:
  resources: {}
dblessConfig:
  configMap: ""
  secret: ""
  config: |
  _format_version: "1.1"
  services:
    # Example configuration
    - name: noidea.com
      url: http://noidea.com
      routes:
      - name: whatroute
        paths:
        - "/whatpath"
  # Optionally specify any extra sidecar containers to be included in the
  # migration jobs
  # See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core
  sidecarContainers:
    - name: sidecar
      image: sidecar:latest
ingressController:
  enabled: false
  image:
    repository: kong/kubernetes-ingress-controller
    tag: "3.0"
    effectiveSemver:
  args: []
  gatewayDiscovery:
    enabled: false
    generateAdminApiService: false
    adminApiService:
      namespace: ""
      name: ""
  watchNamespaces: []
  env:
    kong_admin_tls_skip_verify: true
  admissionWebhook:
    enabled: true
    failurePolicy: Ignore
    port: 8080
    certificate:
      provided: false
    namespaceSelector: {}
    service:
      labels: {}
  ingressClass: kong
  ingressClassAnnotations: {}
  rbac:
    create: true
  livenessProbe:
    httpGet:
      path: "/healthz"
      port: 10254
      scheme: HTTP
    initialDelaySeconds: 5
    timeoutSeconds: 5
    periodSeconds: 10
    successThreshold: 1
    failureThreshold: 3
  readinessProbe:
    httpGet:
      path: "/readyz"
      port: 10254
      scheme: HTTP
    initialDelaySeconds: 5
    timeoutSeconds: 5
    periodSeconds: 10
    successThreshold: 1
    failureThreshold: 3
  resources: {}
  konnect:
    enabled: false
    runtimeGroupID: ""
    apiHostname: "us.kic.api.konghq.com"
    tlsClientCertSecretName: "konnect-client-tls"
    license:
      enabled: false
  adminApi:
    tls:
      client:
        enabled: false
        certProvided: false
        secretName: ""
        caSecretName: ""
postgresql:
  enabled: false
  auth:
    username: kong
    database: kong
  image:
    tag: 13.11.0-debian-11-r20
  service:
    ports:
      postgresql: "5432"
certificates:
  enabled: false
  issuer: ""
  clusterIssuer: ""
  proxy:
    enabled: false
    issuer: ""
    clusterIssuer: ""
    commonName: "app.example"
    dnsNames: []
  admin:
    enabled: true
    issuer: ""
    clusterIssuer: ""
    commonName: "kong.example"
    dnsNames: []
  portal:
    enabled: true
    issuer: ""
    clusterIssuer: ""
    commonName: "developer.example"
    dnsNames: []
  cluster:
    enabled: true
    issuer: ""
    clusterIssuer: ""
    commonName: "kong_clustering"
    dnsNames: []
waitImage:
  enabled: true
  pullPolicy: IfNotPresent
updateStrategy: {}
resources: {}
readinessProbe:
  httpGet:
    path: "/status/ready"
    port: status
    scheme: HTTP
  initialDelaySeconds: 5
  timeoutSeconds: 5
  periodSeconds: 10
  successThreshold: 1
  failureThreshold: 3
livenessProbe:
  httpGet:
    path: "/status"
    port: status
    scheme: HTTP
  initialDelaySeconds: 5
  timeoutSeconds: 5
  periodSeconds: 10
  successThreshold: 1
  failureThreshold: 3
lifecycle:
  preStop:
    exec:
      command:
        - kong
        - quit
        - '--wait=15'
terminationGracePeriodSeconds: 30
tolerations: []
nodeSelector: {}
podAnnotations:
  kuma.io/gateway: enabled
  traffic.sidecar.istio.io/includeInboundPorts: ""
podLabels: {}
replicaCount: 1
deploymentAnnotations: {}
autoscaling:
  enabled: false
  minReplicas: 2
  maxReplicas: 5
  behavior: {}
  targetCPUUtilizationPercentage:
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 80
podDisruptionBudget:
  enabled: false
podSecurityPolicy:
  enabled: false
  labels: {}
  annotations: {}
  spec:
    privileged: false
    fsGroup:
      rule: RunAsAny
    runAsUser:
      rule: RunAsAny
    runAsGroup:
      rule: RunAsAny
    seLinux:
      rule: RunAsAny
    supplementalGroups:
      rule: RunAsAny
    volumes:
      - 'configMap'
      - 'secret'
      - 'emptyDir'
      - 'projected'
    allowPrivilegeEscalation: false
    hostNetwork: false
    hostIPC: false
    hostPID: false
    readOnlyRootFilesystem: true
priorityClassName: ""
securityContext: {}
containerSecurityContext:
  readOnlyRootFilesystem: true
  allowPrivilegeEscalation: false
  runAsUser: 1000
  runAsNonRoot: true
  seccompProfile:
    type: RuntimeDefault
  capabilities:
    drop:
    - ALL
serviceMonitor:
  enabled: false
enterprise:
  enabled: false
  vitals:
    enabled: true
  portal:
    enabled: false
  rbac:
    enabled: false
    admin_gui_auth: basic-auth
    session_conf_secret: kong-session-config
    admin_gui_auth_conf_secret: CHANGEME-admin-gui-auth-conf-secret
  smtp:
    enabled: false
    portal_emails_from<EMAIL_ADDRESS>    portal_emails_reply_to<EMAIL_ADDRESS>    admin_emails_from<EMAIL_ADDRESS>    admin_emails_reply_to<EMAIL_ADDRESS>    smtp_admin_emails<EMAIL_ADDRESS>    smtp_host: smtp.example.com
    smtp_port: 587
    smtp_auth_type: ''
    smtp_ssl: nil
    smtp_starttls: true
    auth:
      smtp_username: ''  # e.g<EMAIL_ADDRESS>      smtp_password_secret: CHANGEME-smtp-password
manager:
  enabled: true
  type: ClusterIP
  loadBalancerClass:
  annotations: {}
  labels: {}
  http:
    enabled: true
    servicePort: 8002
    containerPort: 8002
    parameters: []
  tls:
    enabled: false
    servicePort: 8445
    containerPort: 8445
    parameters:
    - http2
  ingress:
    enabled: true
    ingressClassName: nginx
    hostname: kong.dev-hub.myawesomecompany.com
    annotations: {}
    path: /
    pathType: ImplementationSpecific
portal:
  enabled: false
  type: ClusterIP
  loadBalancerClass:
  annotations: {}
  labels: {}
  http:
    enabled: true
    servicePort: 8003
    containerPort: 8003
    parameters: []
  tls:
    enabled: true
    servicePort: 8446
    containerPort: 8446
    parameters:
    - http2
  ingress:
    enabled: false
    ingressClassName:
    hostname:
    annotations: {}
    path: /
    pathType: ImplementationSpecific
portalapi:
  enabled: true
  type: ClusterIP
  loadBalancerClass:
  annotations: {}
  labels: {}
  http:
    enabled: true
    servicePort: 8004
    containerPort: 8004
    parameters: []
  tls:
    enabled: true
    servicePort: 8447
    containerPort: 8447
    parameters:
    - http2
  ingress:
    enabled: false
    ingressClassName:
    hostname:
    annotations: {}
    path: /
    pathType: ImplementationSpecific
clustertelemetry:
  enabled: false
  annotations: {}
  labels: {}
  tls:
    enabled: false
    servicePort: 8006
    containerPort: 8006
    parameters: []
  type: ClusterIP
  loadBalancerClass:
  ingress:
    enabled: false
    ingressClassName:
    hostname:
    annotations: {}
    path: /
    pathType: ImplementationSpecific
extraConfigMaps: []
extraSecrets: []
extraObjects: []

I you want "nothing fancy" and "just make it work" then ingress chart is the way to go:
helm upgrade --install --create-namespace -n kong kong  kong/ingress

Should work out of the box. This will install KIC + Kong Gateway in a dbless setting.

If you'd like to explore example values for either of our charts you can find those in

https://github.com/Kong/charts/tree/main/charts/kong/example-values for kong chart
https://github.com/Kong/charts/tree/main/charts/ingress/example-values for ingress chart.

Hello @pmalek
thanks again for your kindly feedback even if you were mad at me.
this chart enables ingress controller. I don't want to enable ingress controller.
I think I was misunderstood.
I would like to evaluate "apigateway / api management" features of Kong. My purpose is not to have an ingress controller. As I assumed "proxy" is the Kong itself, I don't want to exclude it in my installation.
...anyway, I found the problem.
Indentation is wrong in the example config, I fixed it and it works now.
Thanks & Regards

A simple values file like so should get you going:
image:
  repository: kong/kong-gateway
  tag: "3.4"

admin:
  # Enable creating a Kubernetes service for the admin API
  # Enterprise users that wish to use Kong Manager with the controller should enable this
  enabled: true
  type: NodePort

readinessProbe:
  httpGet:
    # Configure this to get Kong Gateway immediately ready. By default /status/ready is used
    # ref: https://docs.konghq.com/gateway/latest/production/monitoring/readiness-check
    path: "/status"
    port: status
    scheme: HTTP

env:
  database: "off"

ingressController:
  enabled: false

Please note that you have to decide what's your preferred way of configuring the Gateway. This way you can configure it through the Admin API (which in this values.yaml file is configure to be exposed as a NodePort Service).
I hope that helps. Let us know if you have any other questions.

Thank you @pmalek
DBless works and now I am working on "...with external Postgres" option. I have a problem here which I am looking for help.

👍
Can we close this one then?

sure

Obrigado DBless funciona e agora estou trabalhando em "... com Postgres externo". Eu tenho um problema aqui que estou procurando ajuda.

Could you leave an example of the error, I'm having the same problem. What example worked?


Assignment

I've improved this document as part of my assignment in the recruitment process.

@raoufchebri can you please review?

@annastuchlik can you please resend the PR or fix the conflicts?

@annastuchlik can you please resend the PR or fix the conflicts?

The fork was deleted, so I've applied the changes here: https://github.com/scylladb/care-pet/pull/66.
I'm closing this PR.


Upgrade deps & update rollup config

adding .editorconfig;  formatting files
adding .eslintignore
updating .gitignore
updating CI configuration (run linter before build)
adding readme badges (ci status, install size, published version)

Thanks! It's merged :)


Uncaught TypeError: Cannot read property 'stdout' of undefined

[Enter steps to reproduce below:]

...
...

Atom Version: 1.0.0
System: Mac OS X 10.10.3
Thrown From: autocomplete-erlang package, v1.1.1
Stack Trace
Uncaught TypeError: Cannot read property 'stdout' of undefined
At /Users/swamiv/.atom/packages/autocomplete-erlang/lib/alchemide/wrapper.coffee:34

TypeError: Cannot read property 'stdout' of undefined
  at Object.exports.init (/Users/swamiv/.atom/packages/autocomplete-erlang/lib/alchemide/wrapper.coffee:34:19)
  at exit (/Users/swamiv/.atom/packages/autocomplete-erlang/lib/alchemide/wrapper.coffee:21:53)
  at triggerExitCallback (/Applications/Atom.app/Contents/Resources/app.asar/src/buffered-process.js:213:47)
  at ChildProcess.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/buffered-process.js:235:18)
  at emitTwo (events.js:87:13)
  at ChildProcess.emit (events.js:169:7)
  at Process.ChildProcess._handle.onexit (child_process.js:1057:12)

Commands
     -0:54.7.0 core:close (atom-text-editor.editor.emacs-plus.is-focused)
     -0:45.3.0 core:move-right (atom-text-editor.editor.emacs-plus.is-focused)
     -0:45 core:move-down (atom-text-editor.editor.emacs-plus.is-focused)
     -0:44.9.0 core:move-left (atom-text-editor.editor.emacs-plus.is-focused)
     -0:44.7.0 editor:newline (atom-text-editor.editor.emacs-plus.is-focused)
     -0:42.8.0 emacs-plus:set-mark (atom-text-editor.editor.emacs-plus.is-focused)
     -0:41.5.0 emacs-plus:just-one-space (atom-text-editor.editor.emacs-plus.is-focused.mark-mode)
     -0:40.8.0 core:backspace (atom-text-editor.editor.emacs-plus.is-focused)
     -0:40.4.0 emacs-plus:just-one-space (atom-text-editor.editor.emacs-plus.is-focused)
  6x -0:40 core:backspace (atom-text-editor.editor.emacs-plus.is-focused)
     -0:38.5.0 core:move-right (atom-text-editor.editor.emacs-plus.is-focused)
     -0:38.2.0 core:move-up (atom-text-editor.editor.emacs-plus.is-focused)
     -0:38 core:select-down (atom-text-editor.editor.emacs-plus.is-focused)
     -0:37.6.0 core:backspace (atom-text-editor.editor.emacs-plus.is-focused.mark-mode)
     -0:37 core:save (atom-text-editor.editor.emacs-plus.is-focused)
     -0:34.8.0 core:close (atom-text-editor.editor.emacs-plus.is-focused)

Config
{
  "core": {
    "themes": [
      "atom-dark-ui",
      "atom-dark-syntax"
    ]
  },
  "autocomplete-erlang": {
    "elixirPath": "/usr/local/bin/elixir"
  }
}

Installed Packages
# User
autocomplete-erlang, v1.1.1
autocomplete-python, v0.5.1
emacs-plus, v0.9.5
language-erlang, v3.0.0

# Dev
No dev packages

OSX is doing it's best to make atom crash. I'm trying to resolve this issues. It works perfectly fine from the commandline, but It doesn't want to work from finder

same is observed on Windows 10 too..

Same on Windows 8, any updates coming soon? thanks

As far as I'm concerned this is an issue with Atom itself. Or maybe some kind of security measure. I've got no idea nor even a lead where to look to make it access elixir executable. Embedding the whole thing is not a solution and it

Actually,I believe I fixed it. I inspected the Elixir script for autocompleter and noticed slight difference in function parameter. Then copied the file verbatim to Erlang autocompleter  and replaced it. It worked. I haven't done full test on it, but so far I am able to get Erlang code to autocomplete. The Elixir plugin works like a charm. BTW, while investigating this issue, got all fired up about Elixir, so bought a book and doing further  tests on your code.

@hsaid hi, genius, how's tests going, we can't wait for your update the fix. thanks.


Simple Cross-chain Retirement Interface

Is your feature request related to a problem? Please describe.
Simple UX for retiring pool tokens using $KLIMA from any chain using pre-populated parameters as much as possible
Describe the solution you'd like
A new app, integrating latest cross-chain functionality via Axelar to issue retirements from multiple chains to underlying Polygon carbon credit tokens.
As a first pass, simply retire the default project from BCT pool, meaning we hard-code those addresses into the function call:

BCT pool: https://polygonscan.com/address/0x2f800db0fdb5223b3c3f354886d907a671414a7f
default project token address: 0xb139C4cC9D20A3618E9a2268D73Eff18C496B991

This initial implementation should pre-populate as many fields as possible in the retireExactCarbonDefault function: https://docs.klimadao.finance/developers/contracts/retirement/v2-diamond/generalized-retirement#retire-exact-carbon
For retirement message, offer the user a generic pre-filled value (e.g. "Doing my part to support climate action") with the opportunity to override if they want
Screenshots from optima about requirements:

Other notes on requirements:

At top right a typical “multichain toggle” , including major chains supported out of the box by Axelar, e.g. Optimism, Base, Arbitrum
Example testnet retirement here: https://testnet.axelarscan.io/gmp/0xb347fa5d5ecda828983df076ac01a99bb40dee8bd9cdc330756a59270c55d8d4
Coordinate with @cujowolf on deployment of Axelar contract to additional chains, see solidity repo PR for Axelar code: https://github.com/KlimaDAO/klimadao-solidity/pull/57

Describe alternatives you've considered
This doesn't really fit into Carbonmark's roadmap so having it as a standalone application within the KlimaDAO app is the quickest path forward - but we won't offer the full marketplace functionality that Carbonmark has as that's way too much scope
Additional context
To create and deploy a new app within this repo:

npx create-next-app to get it set up
add it to the package.json workspaces array, add some build scripts for convenience
npm i --package-lock-only to update the lock file
in vercel it should "Just Work"TM using the same config as our other apps
reach out to @Atmosfearful when ready for a subdomain

Overview:

This will be a new contract ("Infinity Cross-chain Retire Contract") on Base that Axelar interacts with.
This user is calling a method on the Infinity cross-chain contract - nativeUsdcDefaultRetirement()
Supports Base USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Method may be subject to change but here is the current signature:

function nativeUsdcDefaultRetirement(
    string memory destinationChain,
    uint256 usdcAmount,
    bytes memory retirementData,
    bytes32 traceId,
    address fallbackRecipient
) external

Notes:
We don't know if the final polygon retirement transaction will succeed or fail until after:

Confirmed in a block on Base
Communicated across the Axelar network
Initiated (via the Axelar relayer) on Polygon
This can take between 5-20 minutes.

User needs a way to track the above 3 steps:

We can construct a link to Axelarscan by using the same Base transaction hash
We can link the user to /retirements and let the user know that their retirement will appear there when they are confirmed

Constructing the retirement data:

The data that is passed in to the retirementData argument above must properly formatted InputData for a default BCT retirement retireExactCarbonDefault
Shown here on polygonscan

This can be accomplished by encoding in ethers using the Aggregator ABI

    const iface = new ethers.utils.Interface(retireCarbonAbi)
    const retirementData = iface.encodeFunctionData('retireExactCarbonDefault', [
        USDC['polygon'],
        poolToken,
        maxAmountIn,
        retireAmount,
        retiringEntityString,
        beneficiaryAddress,
        beneficiaryString,
        retirementMessage,
        0
    ])

Add default slippage % of max 2%, the client converts this to a maxAmountIn value (USDC)
Remaining work to be done on the Contract side:

Make $KLIMA bridgeable to and from base via Axelar
Update contract to use $KLIMA as payment in addition to $USDC (the frontend will only support Base Native USDC)

@0xMakka please checkin with @Atmosfearful before you start on this because he did some work in a local PR related to completing this work

@Atmosfearful @cujowolf a few quick questions

Max slippage requirements - in the legacy offset app, the slippage/aggregation fee looks to be 1%, should this slippage be 1% or 2% for base? Also this still needs to be included right, the fact we are only supporting KLIMA as the payment token and not USDC?

Approvals - does the Axelar contract still require an approval step? i.e. approval to spend the users Base KLIMA?

@Atmosfearful  On the UI, it's mentioned above that a retirement can take up to 20 minutes. After submitting the transaction, we receive a transaction hash from axelar. Is it enough to display this axelar transaction link to the user or should we be putting both this link and a link to the /retirements page on carbonmark with the user address?


chore(release): v2.4.0

Issue #, if available:
Description of changes:

release ver 2.4.0

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report

Merging #658 (3153da5) into main (cd800fd) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #658   +/-   ##
=======================================
  Coverage   90.52%   90.52%
=======================================
  Files          98       98
  Lines        3685     3685
  Branches      990      990
=======================================
  Hits         3336     3336
  Misses        324      324
  Partials       25       25

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 cd800fd...3153da5. Read the comment docs.


validation

Some steady-state values are negative upon Bmh knockout.

Solved when changing solver to DynamicSS

closed by https://github.com/ntumitolab/mitochondria-retrograde-model/commit/ce1ca8fd5e1be45f976b9c77ebd6135d26e90f66


update build.gradle to use U8

for issue: https://github.com/ArcGIS/open-source-apps/issues/340

@puneet-pdx looks good


Feat: Glyphs

Fix glyphs to use regular charcode.
From
#499
#483

Can you please implement these as optional with a toggle in the settings tab.  Please make the default be the current ones and define these as "Use Compatibility Glyphs (for Linux, etc)"

Sorry I didn't read this carefully to see that you implemented my request already.  Looking more carefully.

@cabarius no worries. I have updated the pr.


[Fixes #1877] Do not duplicate namespace in the path name

If a feature spec is generated with a namespaced name, the namespace gets duplicate in the filename as well.
The table_name method returns a string that is already a combination of the class_path and file_name. We could used file_name directly instead of the table_name, which is also the approach taken in the controller generator.
Closes #1877

Thanks a lot @jekuta for this PR. It looks ok for me.
I'm still a junior here so the merge button will be probably push by @JonRowe

@benoittgt you can merge this if you feel its good to go, don't forget a change log :)


westeurope is missing in allowed locations

Hi there, thanks for the updated version. I figured that westeurope is not an option for the "Open AI Location" when deploying the infrastructure.

Use the  francecentral option, this one is closest to westeurope.

Thats a nice Workaround but not the solution i´d say :)

Well it is the solution since the models that are being used are not deployed in westeurope yet. You can find the regions and models in the docs here.

It works when you also change the chatGptModelVersion to 0301


feat: V3 comment

Notice: Experimental Stage
Overview
Add comment list in now playing page. Support hotest/newest order, pagination.
Current Progress
Finish comment api for all platforms and basic hotest comment list show.
Pagination/Order is not supported.
Still consider add checkbox in settings to disable comment function (some users prefer pure music playing)
Detected Problems

qq: comment list include emoji tag not parsed to image
qq: some comment includes \n not convert to return line
migu: comment avatar image error

Special Thanks to
洛雪音乐播放器：https://github.com/lyswhut/lx-music-desktop
Most of comment related code is refered from repo. After merged, I'll add it to readme docs.
BTW, it's best open source music player codebase I found so far.

A little bit related, can we also add support for description on tracks and playlists?

A little bit related, can we also add support for description on tracks and playlists?

good idea, we can create a new pr for that.


Add Timestamp

Add timestamp when restarting the server

Great work, can we format the time output it is a little cryptic right now. Maybe something like just the time ?

Ok

I also added a Server restarted at instead of just restarted

This closes #7


[Feature Request] User defined size & location of freeform app.

Amazing! I wanted this very functionality. But l have a feature request also. Can a customised size & location for "freeform applications" be added along with predefined options for opening New window, like "Standard" & others? I want to launch an app in pre-defined size & location.
Regards.

This is a really good idea.  I'll definitely consider implementing this in the future (likely not for the next release, but after that)


Logo image and Cover image is getting loaded

@josmilan  you meant, Logo image and Cover image is getting 'not' loaded, right ?

Yes

This issue is fixed with this commit.


Found and fixed the error in keylogger.py but there is another error in peristance keylogger

I have gotten the normal keylogger to work perfectly, the thing I was missing was "allow from less secure apps."

it MUST be turned to on or you will get errors out the ass, now that is fixed and the program is working  fine, however when I switch over to the persistance keylogger I am getting a few errors as shows in the pic below. In line 20 I changed keylogger.Keylogger(120, "email" "pass) to keylogger_persistance_windows.Keylogger(interval email pass).  Otherwise it will result in a not defined because you are importing the wrong file. But after I do that I still get these errors screenshotted in the last pic. Thanks for helping and making this public, I love it so far  just this one error remains.

Update: I have fixed the issue by adding two modules
import sys
import subprocess
this fixes it so far, lmk if this is a temporary fix or something. thanks

Apologies yes you are right, I have added the two missing modules.
Thx also for reminding me to add to the documentation that access to less secure apps should be enabled from the email provider settings.
I totally forget to include that in the documentation since when I developed the tool back in 2018 I guess I had a dummy Gmail account that I had enabled this setting to work with all my python tools.
Thx again


Question on Differences between RFiles, 1.10.2 -> 2.1.1

I've noticed recently that Accumulo 2.0+ has backwards compatibility in terms of being able to import rfiles from 1.10.2 for example, but the opposite is understandably not the case. I was wondering, would anyone be able to explain what exactly is the difference between the way the rfiles are written or structured between the two versions, and is there any way for a 2.1.1 rfile to be converted backwards to something that 1.10.2 could import? Or are the versions mechanically too different to convert?

@avgAGB We occasionally add features to RFiles that make it support things we add to Accumulo. Those changes won't be understood by older versions of Accumulo, but they don't typically alter the fundamental storage concepts of RFiles. I believe the main feature added after 1.10 was the ability to support data emitted from a configured Sampler.
If you need to extract data from one RFile version and store it in an older Accumulo version, you could just create a scanner and scan the data in the file, storing it in whatever intermediate format you wish.
Since this issue tracker is mainly used by developers to track issues, you may have luck finding home grown solutions for your situation, or similar situations, that you can adapt, from the bigger audience of users if you post your question to the user mailing list.


light sleep mode issue

Hi
I got an new issue (I also have minor issues but I will talk about these in another thread)
The lorawan library didn't work when ESP wakes up after a light sleep (esp_light_sleep_start())
In fact, after a light sleep, the lora seems to stops working, so I have to reinit it with :
      esp_sleep_enable_timer_wakeup(esp_sleep);
      esp_light_sleep_start();

      SPI.begin(5,19,27,18);
      if(!lora.init()){
        Serial.println("LORA: lora module not detected");
        delay(5000);
        return;
      }

      lora.setDeviceClass(CLASS_A);
      lora.setDataRate(LORA_DATARATE);
      lora.setChannel(LORA_CHANNEL);

In that case, the lora succeed to send datas and receive acks, but my LoRaWAN receiver keeps telling me I got nothing...
I think it's because during lora.init(), all lora parameters (including actual session) are reset.
But all works again if I edit your library (lorawan-arduino-rfm.cpp > LoRaWANClass::init()) this way (value = 1 for full reset, value = 0 for half reset) :
bool LoRaWANClass::init(bool value)
{
	if(value)
	{
    // Lora Setting Class
    dev_class = CLASS_A;
    // Random seed
    randomSeed(analogRead(0));

    // Status
    RFM_Command_Status = NO_RFM_COMMAND;
    Rx_Status = NO_RX;
    Ack_Status = NO_ACK;

    // current channel
    currentChannel = MULTI;

    // Initialise session data struct (Semtech default key)
    memset(Address_Tx, 0x00, 4);
    memset(NwkSKey, 0x00, 16);
    memset(AppSKey, 0x00, 16);

    Frame_Counter_Tx = 0x0000;

    Session_Data.NwkSKey = NwkSKey;
    Session_Data.AppSKey = AppSKey;
    Session_Data.DevAddr = Address_Tx;
    Session_Data.Frame_Counter = &Frame_Counter_Tx;

    //Initialize OTAA data struct
    memset(DevEUI, 0x00, 8);
    memset(AppEUI, 0x00, 8);

    memset(AppKey, 0x00, 16);
    memset(DevNonce, 0x00, 2);
    memset(AppNonce, 0x00, 3);
    memset(NetID, 0x00, 3);
    OTAA_Data.DevEUI = DevEUI;
    OTAA_Data.AppEUI = AppEUI;
    OTAA_Data.AppKey = AppKey;
    OTAA_Data.DevNonce = DevNonce;
    OTAA_Data.AppNonce = AppNonce;
    OTAA_Data.NetID = NetID;

    // Device Class
    LoRa_Settings.Mote_Class = 0x00; //0x00 is type A, 0x01 is type C

    // Rx
#if defined(AS_923)
    LoRa_Settings.Datarate_Rx = 0x02;   //set to SF10 BW 125 kHz
#elif defined(EU_868)
    LoRa_Settings.Datarate_Rx = 0x03;   //set to SF9 BW 125 kHz
#else //US_915 or AU_915
    LoRa_Settings.Datarate_Rx = 0x0C;   //set to SF8 BW 500 kHz
#endif
    LoRa_Settings.Channel_Rx = 0x0A;    // set to recv channel

    // Tx
#if defined(US_915)
    LoRa_Settings.Datarate_Tx = drate_common = 0x02;   //set to SF7 BW 125 kHz
#elif defined(AU_915)
    LoRa_Settings.Datarate_Tx = drate_common = 0x02;   //set to SF7 BW 125 kHz
#else
    LoRa_Settings.Datarate_Tx = drate_common = 0x00;   //set to SF12 BW 125 kHz
#endif
    LoRa_Settings.Channel_Tx = 0x00;    // set to channel 0

    LoRa_Settings.Confirm = 0x00; //0x00 unconfirmed, 0x01 confirmed
    LoRa_Settings.Channel_Hopping = 0x00; //0x00 no channel hopping, 0x01 channel hopping

    // Initialise buffer for data to transmit
    memset(Data_Tx, 0x00, sizeof(Data_Tx));
    Buffer_Tx.Data = Data_Tx;
    Buffer_Tx.Counter = 0x00;
    // Initialise buffer for data to receive
    memset(Data_Rx, 0x00, sizeof(Data_Rx));
    Buffer_Rx.Data = Data_Rx;
    Buffer_Rx.Counter = 0x00;
    Message_Rx.Direction = 0x01; //Set down direction for Rx message
	}
    //Initialize I/O pins
    pinMode(RFM_pins.DIO0,INPUT);
    pinMode(RFM_pins.DIO1,INPUT);
    #ifdef BOARD_DRAGINO_SHIELD
    pinMode(RFM_pins.DIO5,INPUT);
    #endif
    pinMode(RFM_pins.DIO2,INPUT);
    pinMode(RFM_pins.CS,OUTPUT);
    pinMode(RFM_pins.RST,OUTPUT);

    digitalWrite(RFM_pins.CS,HIGH);

    // Reset
    digitalWrite(RFM_pins.RST,HIGH);
    delay(10);
    digitalWrite(RFM_pins.RST,LOW);
    delay(10);
    digitalWrite(RFM_pins.RST,HIGH);

    //Initialise the SPI port
    SPI.begin();

    /*** This prevents the use of other SPI devices with different settings ***/
    //SPI.beginTransaction(SPISettings(4000000,MSBFIRST,SPI_MODE0));

    //Wait until RFM module is started
    delay(50);

    //Initialize RFM module
    if(!RFM_Init()){
    return 0;
    }
    return 1;
}

Of course, in that case, I also have to change the header file and my own program with
lora.init(false) \\for half reset, or after a light sleep
lora.init(true) \\for full reset

Could you make your library works with light sleep (and maybe deep sleep) ?
Anyways, thanks for your great work
My configuration : Heltec Lora32 v2 (ESP32 + sx1276)

Hi @Koraze
Can you test with this branch please https://github.com/BeelanMX/Beelan-LoRaWAN/pull/58? Ill wait for your comments

I will try when I will have some time (I don't know how to use branches so I need to make some researches before ;))
Hopefully, my solution works too !!
More details about my issue :
My setup

LoraWAN End Node : Heltec Lora32 v2
LoraWAN Gateway : LPS8
LoraWAN Server : ChirpStack

My end node config

EU 868MHz, Class A, Mode OTAA, Channel 1, Data rate SF10BW125

My end node goal

Send data
Wait for ACK
Enter into light sleep mode during 7s
Repeat all

How to reproduce my issue

Init lora with lora.init()
Join my lorawan with lora.join()
Send new data then wait for ack (the lorawan server correctly receive my datas)
...
Send new data again then wait for ack (the lorawan server still correctly receive my datas)
light sleep during 7s (in that mode, all radios including lora are disable)
Enable lora again with lora.init()
Send new data then wait for ack (the lorawan server shows nothing)
...
Send new data again then wait for ack (the lorawan server will never shows anything again until I restart the end node)

@Koraze use this link https://github.com/BeelanMX/Beelan-LoRaWAN/archive/DownlinkTimingFix.zip ;)

Great thanks !!
I just try your branch, I still have the same issue ... and I found another one ... :

After you init your lora then join a lorawan network, if you let the ESP32 takes a light sleep, you can't reach the network anymore (uplinks and downlinks). You have to re-init and join again !!
After you join a lorawan network, if you send uplinks, you will always get ack even if for some reasons that network falls some time later (gateway unplugged)


Emulator Crashes Before Video Starts

What package does this bug report belong to?
video_player
What target platforms are you seeing this bug on?
Android
Have you already upgraded your packages?
Yes
Dependency versions
pubspec.lock
  video_player:
    dependency: "direct main"
    description:
      name: video_player
      sha256: "4a8c3492d734f7c39c2588a3206707a05ee80cef52e8c7f3b2078d430c84bc17"
      url: "https://pub.dev"
    source: hosted
    version: "2.9.2"
  video_player_android:
    dependency: transitive
    description:
      name: video_player_android
      sha256: b176e047ead64968d07bc36e7a60bcd471455f2bcba3997814e4c2a8596b5fc8
      url: "https://pub.dev"
    source: hosted
    version: "2.7.11"
  video_player_avfoundation:
    dependency: transitive
    description:
      name: video_player_avfoundation
      sha256: cd5ab8a8bc0eab65ab0cea40304097edc46da574c8c1ecdee96f28cd8ef3792f
      url: "https://pub.dev"
    source: hosted
    version: "2.6.2"
  video_player_platform_interface:
    dependency: transitive
    description:
      name: video_player_platform_interface
      sha256: "229d7642ccd9f3dc4aba169609dd6b5f3f443bb4cc15b82f7785fcada5af9bbb"
      url: "https://pub.dev"
    source: hosted
    version: "6.2.3"
  video_player_web:
    dependency: transitive
    description:
      name: video_player_web
      sha256: "6dcdd298136523eaf7dfc31abaf0dfba9aa8a8dbc96670e87e9d42b6f2caf774"
      url: "https://pub.dev"
    source: hosted
    version: "2.3.2"

Steps to reproduce
1.. launch the app in debug mode
Expected results
the video to load and run properly
Actual results
The app crashes immediately when run on the emulator, but it runs fine on a physical device.
The app used to work fine with no changes made to this code recently.
This issue seems to be related to the implementation of the video_player package and impeller
by the way I observed a similar issue on a physical device where the video wouldn't load a few weeks ago
Code sample
Code sample
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:showcaze3/core/constants/app_strings.dart';
import 'package:video_player/video_player.dart';

class AssetVideoPlayerWidget extends ConsumerStatefulWidget {
  final String videoUrl;
  const AssetVideoPlayerWidget({super.key, required this.videoUrl});

  @override
  ConsumerState<ConsumerStatefulWidget> createState() =>
      _VideoPlayerWidgetState();
}

class _VideoPlayerWidgetState extends ConsumerState<AssetVideoPlayerWidget> {
  late VideoPlayerController _videoPlayerController;

  @override
  void initState() {
    super.initState();
    _videoPlayerController = VideoPlayerController.asset(AppStrings.video1)
      ..addListener(() {
        if (mounted) {
          setState(() {});
        }
      })
      ..setLooping(true)
      ..initialize().then((_) => _videoPlayerController.play());
  }

  @override
  void dispose() {
    _videoPlayerController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return VideoPlayerWidget(controller: _videoPlayerController);
  }
}

class VideoPlayerWidget extends ConsumerWidget {
  final VideoPlayerController controller;
  const VideoPlayerWidget({super.key, required this.controller});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    return controller.value.isInitialized
        ? AspectRatio(
            aspectRatio: controller.value.aspectRatio,
            child: VideoPlayer(controller),
          )
        : const SizedBox(
            height: 300,
            child: Center(child: CircularProgressIndicator()),
          );
  }
}

Screenshots or Videos

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
in the debug console :
I/Surface ( 4242): Surface::setFrameRate is deprecated, setFrameRate hint is dropped as destination is not SurfaceFlinger
E/flutter ( 4242): [ERROR:flutter/impeller/base/validation.cc(59)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not create graphics pipeline: ErrorUnknown
Lost connection to device.

in the output console :
[ERR] The Android emulator exited with code<PHONE_NUMBER> after startup
[ERR] Android emulator stderr:
[ERR] [29792:26712:20241014,140524.265:ERROR filesystem_win.cc:130] GetFileAttributes C:\Users\maxim\AppData\Local\Temp\\AndroidEmulator\emu-crash-35.2.10.db\attachments\673a28fb-0329-4b9d-b10b-f69650024b6a: The system cannot find the file specified. (2)
[ERR] [6864:32792:20241014,140524.462:ERROR filesystem_win.cc:130] GetFileAttributes C:\Users\maxim\AppData\Local\Temp\\AndroidEmulator\emu-crash-35.2.10.db\attachments\673a28fb-0329-4b9d-b10b-f69650024b6a: The system cannot find the file specified. (2)
[ERR] initialize: Supports id properties, got a vulkan device UUID
[ERR] netsimd I 10-14 12:05:26.269 daemon\src\rust_main.rs:98 - netsim artifacts path: "C:\\Users\\maxim\\AppData\\Local\\Temp\\netsimd"
[ERR] netsimd I 10-14 12:05:26.269 daemon\src\rust_main.rs:101 - NetsimdArgs {
[ERR]     fd_startup_str: None,
[ERR]     no_cli_ui: true,
[ERR]     no_web_ui: true,
[ERR]     pcap: false,
[ERR]     disable_address_reuse: false,
[ERR]     hci_port: None,
[ERR]     connector_instance: None,
[ERR]     instance: None,
[ERR]     logtostderr: false,
[ERR]     dev: false,
[ERR]     rust_grpc: false,
[ERR]     rust_hostapd: false,
[ERR]     rust_slirp: false,
[ERR]     vsock: None,
[ERR]     config: None,
[ERR]     host_dns: Some(
[ERR]         "<IP_ADDRESS>",
[ERR]     ),
[ERR]     http_proxy: None,
[ERR]     wifi_tap: None,
[ERR]     test_beacons: false,
[ERR]     no_test_beacons: false,
[ERR]     no_shutdown: false,
[ERR]     verbose: false,
[ERR]     version: false,
[ERR] }
[ERR] NVVM compilation failed: 1
[ERR] [6864:32792:20241014,140845.424:ERROR filesystem_win.cc:130] GetFileAttributes C:\Users\maxim\AppData\Local\Temp\\AndroidEmulator\emu-crash-35.2.10.db\attachments\dc482012-2563-4a71-a3ed-d80f38e56003: The system cannot find the file specified. (2)
[ERR] [6864:32792:20241014,140845.424:ERROR filesystem_win.cc:130] GetFileAttributes C:\Users\maxim\AppData\Local\Temp\\AndroidEmulator\emu-crash-35.2.10.db\attachments\dc482012-2563-4a71-a3ed-d80f38e56003: The system cannot find the file specified. (2)
[ERR] [6864:32792:20241014,140845.424:ERROR directory_reader_win.cc:43] FindFirstFile: The system cannot find the path specified. (3)
[ERR] [6864:32792:20241014,140849.600:ERROR filesystem_win.cc:130] GetFileAttributes C:\Users\maxim\AppData\Local\Temp\\AndroidEmulator\emu-crash-35.2.10.db\attachments\dc482012-2563-4a71-a3ed-d80f38e56003: The system cannot find the file specified. (2)
[ERR] Address these issues and try again.

Flutter Doctor output
Doctor output
[√] Flutter (Channel stable, 3.24.3, on Microsoft Windows [Version 10.0.22631.4317], locale en-US)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.9.2)
[√] Android Studio (version 2024.1)
[√] VS Code (version 1.94.2)
[√] Connected device (3 available)
    ! Device emulator-5562 is offline.
[√] Network resources

• No issues found!

@max-anders
The code sample you provided contains third party implementation which we can't debug. Please provide us minimal but complete reproducible code sample without third party packages that still replicates the reported behavior.

@max-anders The code sample you provided contains third party implementation which we can't debug. Please provide us minimal but complete reproducible code sample without third party packages that still replicates the reported behavior.

Thanks for your answer,
Can you clarify what what part of my initial example was missing ?
Here's a more minimal version of the code
The issue started recently, only while impeller is enabled and on emulator, (so I think it's unlikely that it's caused by this code)

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late VideoPlayerController _videoPlayerController;
  static const video1 = 'assets/videos/case_anim_davinci2.1.mp4';

  @override
  void initState() {
    super.initState();
    _videoPlayerController = VideoPlayerController.asset(video1)
      ..addListener(() {
        if (mounted) {
          setState(() {});
        }
      })
      ..setLooping(true)
      ..initialize().then((_) => _videoPlayerController.play());
  }

  @override
  void dispose() {
    _videoPlayerController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: _videoPlayerController.value.isInitialized
          ? AspectRatio(
              aspectRatio: _videoPlayerController.value.aspectRatio,
              child: VideoPlayer(_videoPlayerController),
            )
          : const SizedBox(
              height: 300,
              child: Center(child: CircularProgressIndicator()),
            ),
    );
  }
}

Thanks for the update. Can you please switch to latest master and re-run your scenario to confirm if it persist still ?
There have been similar fixes made on master.


Add Based LLM from Hazy Research.

Small LLMs based on an interesting architecture.
https://hazyresearch.stanford.edu/blog/2024-03-03-based

Thanks!


fix the "loading model" message which was logged twice

Proposed changes:

Fix #7260

Status (please check what you already did):

[x] added some tests for the functionality
[ ] updated the documentation
[x] updated the changelog (please check changelog for instructions)
[ ] reformat files using black (please check Readme for instructions)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Anca Lita seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for submitting a pull request 🚀 @erohmensing will take a look at it as soon as possible ✨

Oops, this was the ignore list i was meant to add you to 🙈


Wireframe: Landing page template

User story
As a designer/engineer on the ReportStream team, I need a robust page template for each of our standard page types, so that we can establish a shared component toolkit to build with in the website redesign.
Background & context
Goal: Create page templates for each of the standardized page types that capture the scope of needed components agnostic of specific content. Taking a template approach will increase the team's operational efficiency – the design & eng team can employ existing templates to design and implement page updates across the website redesign.
This ticket captures the work of creating a high fidelity wireframe of the Landing page template.
Open questions

What existing USWDS components can we leverage for the landing page template?
What new components do we need to custom design & build for the landing page template?

Working links

Figma: Working file
Reference: USWDS Page template

Acceptance criteria
Design

[x] Page template contains every possible component that may be used on a landing page
[x] Page template defines how the components sit on the overall grid layout (ex., "left aligned, modular 2-col or 4-col width")
[x] Capture questions that come up during the content and design work in the Website redesign research plan

Review

[x] Page template reviewed with design and/or design lead
[x] Page template reviewed with product and engineering

Status: In review with design. Sharing async via Slack for eng/prod review by EOD.

Link: Prototype (not pixel perfect, just getting a sense for layout for each of the pages)
Link: Template (eng-ready capture of all the recurring components used on landing pages)

Sent for async review via Slack


Adds api-server support testing for ec2-e2e

Enables both api-server and agent in ec2 instead of just the agent.
You can choose either a branch or PR to deploy to ec2. Before it was just main.

Screencaps of what the dispatch looks like:

PR option

branch option


Migration of components from ovirt-ui-componets

Css handling changed: Stylesheets

from dependencies and local stylesheets with '-nomodules.css'  are
handled as before.
defined locally are processed using css modules - similarly to
ovirt-ui-components.

There are no real changes compared to previous state, just shuffling imports.

Verified.
Built agains ovirt-ui-components with https://github.com/oVirt/ovirt-ui-components/pull/35 applied, UI seems to be unchanged, actions work.
To finish migration:

merge https://github.com/oVirt/ovirt-ui-components/pull/35
new release OUC
increase OUC version in web-ui/package.json
release new ovirt-engine-node-modules
release web-ui

Verified, still works.
@jniederm , are we ready to merge?


Add Content Security Policy Header Tag

Fixes the Content Security Policy Warning in Excalidraw Desktop - https://github.com/excalidraw/excalidraw-desktop/issues/82

Looks like the CI Lint and tests are failing, but GH Action doesn't show why :thinking: . Running the lint and tests locally seem to work though.

That's strange...


CM-93: ConcurrentDictionary in C#

Hi @vladimir-pecanac-main,
Please review this request together with the article. Link to the article on CM-93.

retest this please

Hi @vladimir-pecanac-main. I had some unexpected variations in test execution due to concurrency. I expect it will be better after these fixes, but I don't think we can make a completely deterministic test in such conditions. I'm open to any advice you have.
Also, feel free to squash the changes on PR merge. Thanks.

retest this please

Hey @redeyens, your last build seems to have broken the Jenkins instance. As far as I can tell, it came to tests, and then no logs have been shown afterward.
I've restored Jenkins, and now the tests pass, but I'll have to check it in detail tomorrow.

Great stuff Dusko, we always squash the changes by default. The code looks alright as is, thanks!


Add Tinkerbell CRDs to EKS-A components yaml

Adding Tinkerbell CRDs to the EKS-A components yaml manifest.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/meow cool


GettingExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'size: 0'. Current value: 'size: 65' when i am trying to update the size dynamically

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Create a Stackblitz demoing the bug/issue:
https://stackblitz.com/

Demo missing..


Guides – Getting started

This is the proposed structure for the guide:

Introduction
Basic set up (link to advanced set up in "Advanced Tips" section)
Define the basemap
Define the user
Define the source
Define the Viz object
Define the Layer
Style the Viz object
All together

This has just been merged to master 🚀

VAMOS! 💪


Archive File error

Hi Team,
We are continuously getting this error:
terraform plan
╷
│ Error: error archiving directory: error encountered during file walk: CreateFile ..\aft-codecommit-solution\aft-deployment-new\modules\aing-framework\lambda\aft-account-provisioning-framework-validate-request\schema\request_schema.json: The system cannot find the path speci
│
│   with module.aft.module.aft_account_provisioning_framework.data.archive_file.validate_request,
│   on ..\aft-codecommit-solution\aft-deployment-new\modules\aft-account-provisioning-framework\lambda.tf line 4, in data "archive_file" "
╵
╷
│ Error: error archiving directory: error encountered during file walk: CreateFile ..\aft-codecommit-solution\aft-deployment-new\modules\aft-account-provisioning-framework\lambda\aft-account-provisioning-framework-create-role\iam\trust-policies\aftmanagement.tpl: The system cannot find the path specified.
│
│   with module.aft.module.aft_account_provisioning_framework.data.archive_file.create_role,
│   on ..\aft-codecommit-solution\aft-deployment-new\modules\aft-account-provisioning-framework\lambda.tf line 64, in data "archive_file"
"create_role":
│   64: data "archive_file" "create_role" {
│

My suspicion is the way the module is being sourced is causing this issue. Do you mind sharing how you're sourcing our module?

Hi,
Thanks for reviewing. Its resolved after souricig the module in correct way.

Hi,
Thanks for reviewing. Its resolved after souricig the module in correct way.

How did it got resolved?


Dev

2-factor authentication added. Users can authenticate using username/password and Google Authenticator TOTP to authenticate.


HomeKit unable to control Deebot after it enters sleep mode

Hi there,
I have not been able to control my Deebot after it returns to the charger and enters the sleep mode. When I control any of the Deebot options in HomeKit, they will "turn on" and then turn off a while later – my Deebot doesn't respond at all.
When I start vacuuming from the Ecovacs app, the Deebot wakes up and vacuums as it should – and the icons all update to their appropriate status in HomeKit. I can control it via HomeKit after this, until it returns to the charger and goes back to sleep.
Any ideas?

Hi can you tell me what vaccumm model you are using  ? Do you see the same behavior with ecovacs app ? Is the deebot still connected on wifi while in standby ?
I would be interested into the logs when you try to wake it up while asleep.

Hey there, I'm using a Deebot 900. It works just fine from the Ecovacs app. It will not wake up when using HomeKit though. Once I activate it with the Ecovacs app, HomeKit updates the status correctly and I am able to control it through HomeKit without any issues – until it docks to charge and eventually goes back to sleep.
I would assume it's still connected to Wifi while in standby because it wakes up when using the Ecovacs app without any issue?
How would I get you logs for when it is waking up? I don't see any status updates in my Homebridge logs.

Have the same issue with deboot 950.
But BIP is working fine

I'm glad I'm not the only one it seems like...

For me deebot 950, this was causing the wrong fan direction causing this.
It was set to edge cleaning, which is not available, so change the direction to auto clean and it works perfect.

That did it! Thank you so much. I wonder if there's anyone documentation could be provided about that? I'd been trying to figure out the difference between clockwise and counterclockwise and that must've caused the issue.
Mine was set to "rotate clockwise" and did not work. Setting it to "counterclockwise" made it work as expected.
I think the reason I was able to control it after I'd already started a cleaning cycle was because it was using the current/correct cleaning mode (auto).


Feature request: Add Glass

Please add "Glass".
Because Acid is too destructive that can destroy everything,even the stone,lava and cloner.
Glass is a kind of fire-resistant solid material that will not be corroded by acid. It can be destroyed by falling stone and will become new lava with the high temperature of magma. In addition, it has good thermal conductivity and a smooth surface .

Lava+sand=Glass
Glass+Lava=Lava
(If possible)Falling Stone+Glass=Sand

Another idea would be sand+wind=glass instead of sand+lava=glass.

Sand reacting with lava seems a bit confusing to me.


Feature/issue 71 smsforward

Simple HTTP Relaying application:

Accepts common message format
Relays to an HTTP URL, HTTP Basic auth supported only atm.
If the HTTP response sets the header 'X-Vumi-HTTPRelay-Reply: true' (not case sensitive) whatever is in the body of the reply is sent as a response to the original message in Vumi.

It might be worth moving this into the vumi.application namespace instead of vumi.demos.
Other than that and my other question, looks good to merge.

Added the validate_config & friends from the Transport base class, there's bound to be more refactoring there but that'll be part of [#78]

Looks good.


Runtime configurations in Ott

This is a step towards getting the imperative semantics into Ott.

And to answer the comment quesion: yes there is automation for proving Countable, it's about mapping the structure into gentree from Std++. I'll get around to it.

Great!
Einar and I spoke today about the problems with typing tasks, and it is going to result in some changes to tasks.
In particular they will have to include either

explicit types for the local state, or
a method name (from which the types can be reconstructed)
I will experiment a bit to see which solution works best, but I suspect (1) will be easier

If you think explicit runtime typing would be easiest at proof level, then that is probably the best start, and other more general approaches could be tried later. We have something similar but much lower level w.r.t. runtime typing in the HolBA library using HOL4, so there is precedent...


Add DisconnectReceiveEndpoint feature to Transports

Summary
Add DisconnectReceiveEndpoint feature to Transports
Feature Description
MassTransit provides the possibility to connect a new endpoint while app running.
However, as i see it does not support to remove/disconnect an endpoint while app running.
There might be requirement to remove/disconnect an endpoint dynamically as well as in ConnectReceiveEndpoint.
This PR aims to add remove/disconnect endpoint while bus running.
I wait your reviews and feedbacks.

If you need to disconnect/remove an endpoint from the bus, it is recommend to connect that endpoint after the bus is started and use the returned handle to disconnect it. This methods added by this pull request aren't really intuitive nor are they in the style MassTransit was designed to be used. Appreciate the effort, but it isn't something I'm going to accept.


Debug reloader extra files arg doesn't accept directories

I'm using Webpack to bundle static assets from an "src/assets" subdirectory and place the generated files into the "src/static" directory.
I need to instruct the reloader to watch all extra files in the "src/assets" directory and reload the app on changes.
To do this, there are three options:

There's an environment variable FLASK_RUN_EXTRA_FILES=...
There's a command line argument to flask_run --extra-files=...
You can pass it as an option directly to the app.run(extra_files=[...]) function.

All three of these approaches do not accept directory paths, every individual file to watch must be enumerated.
I suppose that in and of itself is a problem with Werkzeug not Flask, since it appears the options are just passed through to the run_simple function.
However, because of this limitation, I need to find a good way to construct this option dynamically based on the current state of the "src/assets" directory before the app starts.
I can't figure out how one would do this, and still be able to use the flask run cli command to start the server.
So I'm proposing one of two fixes:

Allow the extra_files option to accept directory paths as inputs. This would require enumerating each of the files in the directories before passing the option to Werkzeug, or patching Werkzeug to do this.
Allow the flask_run command to be mapped to a specific configuration of the app.run() function. Currently I can either configure an app.run() to use within the if __name__ == "__main__": block, however then I can no longer use the flask run cli command and instead need to start the application with "python main.py".

Minimal example
Project structure:
app/
  assets/
    main.js
  main.py

# main.py
from flask import Flask

app = Flask(__name__)

if __name__=="__main__":
	app.run(debug=1, extra_files=["./assets/"])

// assets/main.js
console.log('test');

Run using python main.py or flask run --extra-fields=./assets/, and modify ./assets/main.js. The server does not reload.
Then either modify the extra_files argument of the app.run() command to extra_files=["./assets/main.js"] and re-run with python main.py, or run the cli command flask run --extra-fields=./assets/main.js. Now, if you change ./assets/main.js the server reloads.
Expected Behavior
Specifying a path to a directory watches every file in that directory.  OR
flask_run calls the configured app.run(...) function so that I can generate the list of files to watch at run time.
Environment:

Python version: 3.9.5
Flask version: 2.0.1

I did find a work around FWIW..
You can dynamically set your FLASK_RUN_EXTRA_FILES env variable before starting the app...
#main.py
from flask import Flask
import os

app = Flask(__name__)

os.environ['FLASK_RUN_EXTRA_FILES'] = "./assets/main.js" # assume this string is generated dynamically

You can then run the app with flask run and it watches ./assets/main.js.

@davidism would you accept a PR that fixes this? If so should this be handled in Flask or Werkzeug?
This seems like unintended behavior, given that the example in the docs passes a directory.
PS: I'm new to open source development and appreciate your help getting started!

extra_files can already contain directories, but only *.py, *.pyc, and *.zip files are watched. Specific other files can be watched, but not arbitrary files in arbitrary directories, it's too ineficient. Reloading on asset build changes doesn't make sense, Flask will already serve whatever file exists, it doesn't require a refresh. Perhaps you have a caching issue?

Ok 👍
I'm integrating with Webpack and am using the @app.before_first_request hook to rebuild static assets when the server reloads.
Webpack takes the files in assets/ and bundles them into the static/ folder. So, I'm watching the 'assets' directory to trigger this reload/rebuild whenever a static asset changes.
I guess this is an edge case. Thanks for considering.

Webpack builds do not really belong in there. Run the webpack watcher separately from the flask dev server (and not at all in production).

I use the webpack watcher when it is running, but fall back this approach when it is not running (and only in dev mode). This makes it so that you don't need to run the watcher, even though it's usually faster to.
Here's the full module for my webpack integration in case your curious.
import requests
from flask import current_app, url_for
import subprocess
import os

def static_url_for(path):
    if current_app.config["USE_WEBPACK_DEV_SERVER"]:
        return f"http://localhost:3000/static/{path}"
    else:
        return url_for("static", filename=path)

def webpack_init(app):
    if app.config["ENV"] == "development":

        @app.before_first_request
        def build_assets_on_reload_if_webpack_dev_server_not_running():
            if app.config["ENV"] == "development":
                try:
                    r = requests.get("http://localhost:3000/static/main.js")
                    # Webpack dev server is running
                    app.config["USE_WEBPACK_DEV_SERVER"] = True
                except requests.exceptions.ConnectionError as e:
                    # Webpack dev server is not running
                    app.logger.warning(
                        "Compiling static assets. To avoid this warning, start the webpack dev server in a new shell with `flask webpack watch`."
                    )
                    app.config["USE_WEBPACK_DEV_SERVER"] = False
                    subprocess.run("npx webpack", shell=True)

        @app.before_request
        def webpack_dev_server_health_check():
            if app.config["ENV"] == "development":
                try:
                    r = requests.get("http://localhost:3000/static/main.js")
                    # Webpack dev server is running
                    app.config["USE_WEBPACK_DEV_SERVER"] = True
                except requests.exceptions.ConnectionError as e:
                    # Webpack dev server is not running
                    app.config["USE_WEBPACK_DEV_SERVER"] = False

        # Add all files in ./src/assets directory to watched files list
        extra_files = []
        watched_directories = ["./src/assets"]
        for directory in watched_directories:
            for dirpath, dirs, files in os.walk(directory):
                for filename in files:
                    filename = os.path.join(dirpath, filename)
                    if os.path.isfile(filename):
                        extra_files.append(filename)
        if os.name != 'nt':
            os.environ["FLASK_RUN_EXTRA_FILES"] = ":".join(extra_files)
        else:
            os.environ["FLASK_RUN_EXTRA_FILES"] = ";".join(extra_files)

    @app.context_processor
    def webpack_init_template_vars():
        return {"static_url_for": static_url_for}

I also added two cli commands flask webpack build and flask webpack watch.
I hear you that rebuilding assets shouldn't be the job of the flask dev server, maybe I'll refactor this. Thanks for the feedback!


python search ignores fine codes

From reading the code and executing it under pdb, it appears that the python search algorithm (both dict, and lmdb) ignores the fine codes and returns results only on the coarse cells.
Can you please confirm whether this is the case ?

Conceptually, there are two phases of the search algorithm. The first phase retrieves candidate items from the index by looking up the candidates by their coarse codes; this is implemented by LOPQSearcherBase.get_result_quota. The second phase uses the fines codes associated with the candidate index points to compute a distance for each point; this is implemented by LOPQSearcherBase.compute_distances (the algorithmic work is actually done in LOPQModel.get_subquantizer_distances which is called as a subroutine).
Your understanding of the paper is correct: the paper analyzes the case where residual encoders (called "subquantizers" in this repo) are fit to residuals within each cluster. In the paper's formulation, there are 2K clusters total (K cluster for each of the 2 splits of the top-level product quantizer), which yield a total K**2 cells, and subquantizers are fit to the residuals in each of the 2K clusters independently, resulting in 2KM subquantizers. This repo fits subquantizers to residuals across all cells together, resulting in M subquantizers. Doing this saves a factor of 2K subquantizer memory at the expense of slight reduction in recall performances (usually on the order of 1 or 2%). For a large models, this space saving can be over 1Gb and is usually worth the performance hit. Table 1 of the paper refers to this as "LOR+PQ" for "locally optimized rotations + product quantization" (though that version does not use the multi-index).
Note that a rotation matrix is fit to the data in each cluster in both cases, resulting in 2K rotations. The only change in the figure to reflect the global residual subquantizers would be that the grid imposed on each cluster would be identical up to translations and rotations.

Thank you for your explanation. I read the original PQ paper and it became clearer that the fine codes are used to avoid the cost of computing the euclidian distance on rerank (and storing the full vector in memory)


cargo license vs cargo tree output

This is more of a question...I think...
I have a Rust project with the following dependencies:
[dependencies]
postgres = { version = "0.19.0", features = ["with-serde_json-1"] }
postgres-openssl = "0.5.0"
reqwest = { version = "0.11.0", features = ["blocking"] }
native-tls = "0.2.7"
openssl = { version = "0.10.32", features = ["vendored"] }
timer = "0.2.0"
chrono = "0.4.19"
clap = "2.33.3"
ctrlc = { version = "3.1.7", features = ["termination"] }
serde = "1.0.120"
serde_json = "1.0.61"

When I run cargo license, I get the following listing:
Apache-2.0 (1): openssl
Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT (1): wasi
Apache-2.0 OR BSL-1.0 (1): ryu
Apache-2.0 OR MIT (120): async-trait, autocfg, base64, bitflags, block-buffer, bumpalo, cc, cfg-if, cfg-if, chrono, core-foundation, core-foundation-sys, cpuid-bool, crypto-mac, ctrlc, digest, encoding_rs, fallible-iterator, fnv, foreign-types, foreign-types-shared, form_urlencoded, futures, futures-channel, futures-core, futures-executor, futures-io, futures-macro, futures-sink, futures-task, futures-util, getrandom, hashbrown, hermit-abi, hmac, http, httparse, httpdate, hyper-tls, idna, indexmap, ipnet, itoa, js-sys, lazy_static, libc, lock_api, log, md5, mime, miow, native-tls, ntapi, num-integer, num-traits, num_cpus, once_cell, opaque-debug, openssl-probe, openssl-src, parking_lot, parking_lot_core, percent-encoding, pin-project, pin-project, pin-project-internal, pin-project-internal, pin-project-lite, pin-utils, pkg-config, postgres, postgres-openssl, postgres-protocol, postgres-types, ppv-lite86, proc-macro-hack, proc-macro-nested, proc-macro2, quote, rand, rand_chacha, rand_core, rand_hc, remove_dir_all, reqwest, scopeguard, security-framework, security-framework-sys, serde, serde_json, serde_urlencoded, sha2, siphasher, smallvec, socket2, stringprep, syn, tempfile, time, tokio-openssl, tokio-postgres, typenum, unicode-bidi, unicode-normalization, unicode-width, unicode-xid, url, vcpkg, vec_map, version_check, wasm-bindgen, wasm-bindgen-backend, wasm-bindgen-futures, wasm-bindgen-macro, wasm-bindgen-macro-support, wasm-bindgen-shared, web-sys, winapi, winapi-i686-pc-windows-gnu, winapi-x86_64-pc-windows-gnu
Apache-2.0 OR MIT OR Zlib (2): tinyvec, tinyvec_macros
BSD-3-Clause (2): instant, subtle
MIT (31): ansi_term, atty, bytes, clap, generic-array, h2, http-body, hyper, matches, mio, nix, openssl-sys, phf, phf_shared, redox_syscall, redox_syscall, schannel, slab, strsim, textwrap, tokio, tokio-native-tls, tokio-stream, tokio-util, tower-service, tracing, tracing-core, tracing-futures, try-lock, want, winreg
MIT OR Unlicense (2): byteorder, memchr
MPL-2.0 (1): timer

Something that caught my eye in this list was the following that was included in the output:
winapi, winapi-i686-pc-windows-gnu, winapi-x86_64-pc-windows-gnu
If I run cargo tree on the same project, these are not included anywhere. I'm just curious as to why cargo tree wouldn't include these but cargo license would. Most likely it is just me not understanding why.
I am running these commands from Ubuntu 20.10 in WSL2 on Windows 10 if that helps any.
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.10 (Groovy Gorilla)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.10"
VERSION_ID="20.10"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=groovy
UBUNTU_CODENAME=groovy

cargo license shows all dependencies of all platform, but cargo tree shows the dependencies of the current platform by default.
If you run cargo tree --target x86_64-pc-windows-gnu, winapi can be found in the result.

@dalance Thanks for the explanation. I was wondering if that could be the case but I wasn't 100% sure. I figured I would let one of the experts let me know for certain. :-)


Hotswap blocks after compile error

If I write a file with a compile error, the error shows up in reactor, but any further changes require a page refresh to update reactor.
Eg: This program runs fine in reactor:
import Html (..)

main : Html
main = p [] [text "Hi"]

Changing the signature of main to main : Signal causes a compile error as expected.
Type mismatch between the following types on line 4, column 8 to 9:
        Html.Html
        Signal.Signal

But after changing the signature back to main : Html, the error persists until the page is refreshed.

Can't reproduce this; I think it is fixed.