Start using SemVer 'pre-releases'

northstar has not been released on crates.io yet. In addition,  northstar has already been claimed as a name. Given that, we will likely continue to use northstar as a cargo git dependency for the foreseeable future.
Currently in order to use a particular version of northstar, a rev key (with a commit hash) is used together with the git key in Cargo.toml This is a bit of a nuisance, however.
Since northstar, like so many other Rust crates, is still at a 0.x.x version, using the version key is a bit of an issue. Reason is that with a 0.x.x version, the patch level is basically used to denote minor feature updates and not just patches / bug fixes. On the other hand, 0.6.4 and 0.6.5 are considered compatible from a SemVer point of view. This means that cargo update will update a 0.6.4 dependency to 0.6.5. Which is not what the want, if we are interested in version 0.6.4 in particular.
Starting to use SemVer pre-releases would help to avoid the above mentioned issue and allow us to use the version key.
Basically a workflow based on pre-releases would work like so:

A version considered "stable" (i.e. it is usable and not WIP) would use a regular SemVer version like say 0.6.4
Immediately after version 0.6.4 has been "released" or with the next commit adding / changing code, the version would be set to something like 0.6.5-dev.

Since from a SemVer point of view version 0.6.4 and 0.6.5-dev are considered incompatible, a cargo update would not touch anything.
Note that I'm aware that using --precise together with cargo update would allow to "pin"  a dependency to version "0.6.4". I don't think this is a viable alternative, however, because it is a local, manual step and as such quite error prone.

Thanks for your thoughts. Am I right, that with prereleases a particular version would be equivalent to a git sha? Think so and the advantage would be that versions are easier to handle than shas.
Northstar is not yet "stable" in any sense but we can try to identify milestones. There's a (not public) long term monkey test running 24/7 which always makes me confident when it doesn't break for a week ;-)
Sadly the name "northstar" is take on crates.io. My boss didn't check that, before choosing Northstar. I personally would like to rename the full crate because it's not used almost anywhere yet. Suggestions are welcome.

Am I right, that with prereleases a particular version would be equivalent to a git sha? Think so and the advantage would be that versions are easier to handle than shas.

Yeah, basically the pre-relase version of, let's say, 0.6.6 is equivalent to the hash of the commit with which the version was changed from 0.6.5-dev to 0.6.6. So, in the end it is a convenience feature. The issue with using the rev key together with a commit hash is that different commit hashes tend to be used in different places. Trying to keep a common version is easier, IMO.
It is understood, that northstar is still very much WIP. Using pre-release just makes it a bit more straightforward to stay close to master without running into the risk of being 'bitten" by a particular commit.
Regarding renaming, if we want to keep northstar for the overall project, the crate itself could be called polestar or nordstern. Both names are still available.

Am I right, that with prereleases a particular version would be equivalent to a git sha? Think so and the advantage would be that versions are easier to handle than shas.

Yeah, basically the pre-relase version of, let's say, 0.6.6 is equivalent to the hash of the commit with which the version was changed from 0.6.5-dev to 0.6.6. So, in the end it is a convenience feature. The issue with using the rev key together with a commit hash is that different commit hashes tend to be used in different places. Trying to keep a common version is easier, IMO.

OK. I will try to identify those milestones.

Regarding renaming, if we want to keep northstar for the overall project, the crate itself could be called polestar or nordstern. Both names are still available.

Hm. Renaming just the crate would have the nice effect that the name northstar would be free for the example main that is in the workspace :-). I'll discuss this internally.

northstart seem to be free as well. :)

I really don't like the idea of spamming crates.io with dummy crate names.

Closing in favour of #555


Add uts_mode support for docker_container provider

Description
Add uts_mode support for docker_container provider.
https://docs.docker.com/engine/reference/run/#/uts-settings-uts here is option description.

UTS settings (--uts)
--uts=""  : Set the UTS namespace mode for the container,
'host': use the host's UTS namespace inside the container
The UTS namespace is for setting the hostname and the domain that is visible to running processes in that namespace. By default, all containers, including those with --network=host, have their own UTS namespace. The host setting will result in the container using the same UTS namespace as the host. Note that --hostname is invalid in host UTS mode.
You may wish to share the UTS namespace with the host if you would like the hostname of the container to change as the hostname of the host changes. A more advanced use case would be changing the host’s hostname from a container.

Check List

[ ] All tests pass. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/TESTING.MD
[x] New functionality includes testing.
[x] New functionality has been documented in the README if applicable
[x] The CLA has been signed. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/CONTRIBUTING.MD

I had some troubles with integration tests: docker won't installed to old Debian, Centos, and Ubuntu:
       [2016-07-14T02:41:51+00:00] ERROR: docker_installation_package[default] (docker_test::installation_package line 1) had an error: Mixlib::ShellOut::ShellCommandFailed: apt_package[docker-engine] (/tmp/kitchen/cache/cookbooks/docker/libraries/docker_installation_package.rb line 17) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '100'
       ---- Begin output of apt-get -q -y install docker-engine=1.7.1-0~wheezy ----
       STDOUT: Reading package lists...
       Building dependency tree...
       Reading state information...
       Some packages could not be installed. This may mean that you have
       requested an impossible situation or if you are using the unstable
       distribution that some required packages have not yet been created
       or been moved out of Incoming.
       The following information may help to resolve the situation:

       The following packages have unmet dependencies:
        docker-engine : Depends: init-system-helpers (>= 1.18~) but it is not installable
                 Recommends: aufs-tools but it is not going to be installed
                 Recommends: cgroupfs-mount but it is not installable or
                             cgroup-lite but it is not installable
                 Recommends: git but it is not going to be installed
       STDERR: E: Unable to correct problems, you have held broken packages.
       ---- End output of apt-get -q -y install docker-engine=1.7.1-0~wheezy ----
       Ran apt-get -q -y install docker-engine=1.7.1-0~wheezy returned 100
       [2016-07-14T02:41:53+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
-----> Destroying <installation-package-171-debian-710>...
       ==> default: Forcing shutdown of VM...
       ==> default: Destroying VM and associated drives...
       Vagrant instance <installation-package-171-debian-710> destroyed.

But it not seems related to current functionality.

released in v2.9.3

Thank you, Chase! :)


Doesn't work correctly on magnify the google chrome in android

Hi.
The slider does not work correctly in a state of magnify the google chrome in android.
Handle appears displaced to the right.
It would not be improved?

Do you have any screenshots, examples etc. or a better description of what happens exactly?

The site is demo site of rangeslider.js.
Browser is google chrome on android.
Do the following steps.

Pinch out and zoom browser.
Tap the handle of slider.

But I can not tap the handle and it displaced to right.

I alse met this problem, i'd like know how to resolve it really !


strike option

Hey, I can't seem to get the md syntax for strike
<strike></strike>

to render, is this inside flask-markdown or elsewhere?
Thanks!

Hi Colmoneill,
<strike> isn't an obsolete tag. You should use <del> instead.
That being said, ~~ for <del> isn't part of Python Markdown, and therefore it won't work in Flask-Markdown either. There is a whole list of extensions that you can use to extend Python Markdown's behavior.
The one I would recommend for you is tilde extension from the PyMdown extensions Bundle which has a lot of common extensions, including the <del> one you are looking for.
If you are looking to extend Python Markdown, Flask-Markdown let's you do so easily through the register_extension() method. You can see an example of a quick and dirty <del> extension in my fork of this project: https://github.com/brmullikin/flask-markdown.


glTF import for glTF export

It would like awesome to follow the nodes from glTF-Blender-Exporter here:
https://github.com/KhronosGroup/glTF-Blender-Exporter
The workflow: you export a model from substance painter in glTF, you import with your ksons/gltf-blender-importer, you animate the scene in blenber, and export with glTF-Blender-Exporter for ThreeJS, Unity or BabylonJS. Not need to replace the nodes.

Good idea @electroheadfx. What does prevent you from doing so?

it avoid to remove your node for setup with the glTF-Blender-Exporter's node from kronos-group. The workflow is for webGL

I think he means he'd like your importer to use the glTF-Blender-Exporter material node
. for example I just imported a huge GLTF but now to export it I would need to replace every single material node (lots of them) with the node glTF-Blender-Exporter needs.

So some history on this issue. In the past year

we switched to using glTF-Blender-Exporter's node groups
glTF-Blender-Exporter merged with julienduroure's importer to become glTF-Blender-IO, which has the explicit goal of round-tripping successfully
glTF-Blender-IO abandoned the node-group approach to materials in favor of using Principled BSDF nodes
we now also use Principled BSDF nodes

In simple cases (eg. Damaged Helmet) we are, as of this moment in v0.5.0, compatible with glTF-Blender-IO. In more complex cases (certainly involving texture transforms or wrapping modes, possibly alpha), we're not. Nothing we currently do could be compatible for wrapping modes since they aren't supported by glTF-Blender-IO atm for example. But our compatibility is quite good, much better than when this issue was opened and if you need compatibility you're probably just going to use the importer in glTF-Blender-IO anyway.


Functional interface inheritance

Is your feature request related to a problem? Please describe.
Data is allocated to one functional interface only
But same data could be reused for another functional interface in a different situation (ex : CAN communication with production bench in production situation and with distant ECUs in operational situation, where exchanged data could be reused)
Describe the solution you'd like

Add the following new command:

<Functional interface 1 name> inherits from <Functional interface 2 name>

Use the attribute derived to store the inheritance link between the two functional interfaces

Describe alternatives you've considered
None

To be tested on 1.3.2


Move version check warnings to tracing

Issue Description
Right now, we have version checks for old classes to prevent the need for users to troubleshoot classpath issues.
Those checks should be transparent and be moved to tracing so as not to confuse normal use.
Please describe our issue, along with:

expected behavior
encountered behavior

Version Information
Please indicate relevant versions, including, if relevant:

Deeplearning4j version latest version

Description from a duplicate of this issue:
org.nd4j.versioncheck.VersionCheck tries to make sure that some libraries are not present in old versions. To do so it tries to load classes of these libraries which leads to an error because the classes are (as desired) not on the classpath.
Error Messages:
org.nd4j.common.config.ND4JClassLoading.loadClassByName(ND4JClassLoading.java:64) - Cannot find class [org.nd4j.linalg.jblas.JblasBackend] of provided class-loader. - MDC[jobName=System Info Provider Job]
org.nd4j.common.config.ND4JClassLoading.loadClassByName(ND4JClassLoading.java:64) - Cannot find class [org.nd4j.linalg.jblas.JblasBackend] of provided class-loader. - MDC[jobName=System Info Provider Job]
Relevant Code Location:
/org/nd4j/versioncheck/VersionCheck.java:104
and
org/nd4j/common/config/ND4JClassLoading.java:64


Add metrics for account balance updates

This PR adds metrics to track the number of account balance updates that are happening per maintenance cycle.
The reason for this metric was brought up #967 where it wasn't immediately obvious to me how the subscription keys were getting cleaned up. This metric will give some confidence that the cleanup is happening. Either way, its good to know how many account balances are being fetched per update cycle.
Test Plan
Once new metric makes it to staging, add a graph in the dashboard.

Codecov Report

Merging #1060 (75278c8) into main (2f360cb) will decrease coverage by 0.07%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main    #1060      +/-   ##
==========================================
- Coverage   64.24%   64.17%   -0.08%
==========================================
  Files         123      123
  Lines       23925    23974      +49
==========================================
+ Hits        15371    15385      +14
- Misses       8554     8589      +35


Add dir verification support via bom validate -d

What type of PR is this?
/kind feature
What this PR does / why we need it:
We now can validate whole directories rather than just a set of files.
This can be used for example like this, if we assume that cri-o
contains the full tarball content (the package).
> bom validate -e cri-o.amd64.770ae3f4be46ba4fc731836eb274f365c6e9fd85.tar.gz.spdx -d cri-o

+-----------------------------------+-------+-----------------------------+----------------+
|             FILENAME              | VALID |           MESSAGE           | INVALID HASHES |
+-----------------------------------+-------+-----------------------------+----------------+
| LICENSE                           | OK    | File validated successfully | -              |
| Makefile                          | OK    | File validated successfully | -              |
| README.md                         | OK    | File validated successfully | -              |
| bin/conmon                        | OK    | File validated successfully | -              |
| bin/crictl                        | OK    | File validated successfully | -              |
| bin/crio                          | OK    | File validated successfully | -              |
| bin/crio-status                   | OK    | File validated successfully | -              |
| bin/crun                          | OK    | File validated successfully | -              |
| bin/pinns                         | OK    | File validated successfully | -              |
| bin/runc                          | OK    | File validated successfully | -              |
| cni-plugins/bandwidth             | OK    | File validated successfully | -              |
| cni-plugins/bridge                | OK    | File validated successfully | -              |
| cni-plugins/dhcp                  | OK    | File validated successfully | -              |
| cni-plugins/firewall              | OK    | File validated successfully | -              |
| cni-plugins/host-device           | OK    | File validated successfully | -              |
| cni-plugins/host-local            | OK    | File validated successfully | -              |
| cni-plugins/ipvlan                | OK    | File validated successfully | -              |
| cni-plugins/loopback              | OK    | File validated successfully | -              |
| cni-plugins/macvlan               | OK    | File validated successfully | -              |
| cni-plugins/portmap               | OK    | File validated successfully | -              |
| cni-plugins/ptp                   | OK    | File validated successfully | -              |
| cni-plugins/sbr                   | OK    | File validated successfully | -              |
| cni-plugins/static                | OK    | File validated successfully | -              |
| cni-plugins/tuning                | OK    | File validated successfully | -              |
| cni-plugins/vlan                  | OK    | File validated successfully | -              |
| cni-plugins/vrf                   | OK    | File validated successfully | -              |
| completions/bash/crio             | OK    | File validated successfully | -              |
| completions/bash/crio-status      | OK    | File validated successfully | -              |
| completions/fish/crio-status.fish | OK    | File validated successfully | -              |
| completions/fish/crio.fish        | OK    | File validated successfully | -              |
| completions/zsh/_crio             | OK    | File validated successfully | -              |
| completions/zsh/_crio-status      | OK    | File validated successfully | -              |
| contrib/10-crio-bridge.conf       | OK    | File validated successfully | -              |
| contrib/crio.service              | OK    | File validated successfully | -              |
| contrib/policy.json               | OK    | File validated successfully | -              |
| etc/10-crun.conf                  | OK    | File validated successfully | -              |
| etc/crictl.yaml                   | OK    | File validated successfully | -              |
| etc/crio-umount.conf              | OK    | File validated successfully | -              |
| etc/crio.conf                     | OK    | File validated successfully | -              |
| install                           | OK    | File validated successfully | -              |
| man/crio-status.8                 | OK    | File validated successfully | -              |
| man/crio.8                        | OK    | File validated successfully | -              |
| man/crio.conf.5                   | OK    | File validated successfully | -              |
| man/crio.conf.d.5                 | OK    | File validated successfully | -              |
+-----------------------------------+-------+-----------------------------+----------------+

The exit code behavior has been changed to print the table in any case.
This makes it easier to find which file failed the validation. We now
also collect the files from all packages of the spdx document, not only
the root of it.
Which issue(s) this PR fixes:
None
Special notes for your reviewer:
cc @kubernetes-sigs/release-engineering
Does this PR introduce a user-facing change?

Added support for verifying whole directories via `bom validate -d`.

@puerco PTAL

:tada:
/lgtm


undefined symbol: __clock_nanosleep, version GLIBC_PRIVATE in glibc-2.30

I am using rust nightly-2021-02-25 and bindgen 0.54 which uses libclang when generating artifacts during compilation.
Compilation fails with
thread 'main' panicked at 'Unable to find libclang: "the `libclang` shared library at /nix/store/6d4slfirzp70mgxl9vll3kyg7dyaqci1-clang-7.1.0-lib/lib/libclang.so.7.1 could not be opened:
 /nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/librt.so.1: undefined symbol: __clock_nanosleep, version GLIBC_PRIVATE"',  ~/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.54.0/src/lib.rs:1959:31

However this symbol exists
❯ objdump -TC /nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/librt.so.1 | grep  __clock_nanosleep
0000000000000000      DF *UND*<PHONE_NUMBER>000000  GLIBC_PRIVATE __clock_nanosleep

and libclang.so.7.1  uses glibc 2.30
ldd /nix/store/6d4slfirzp70mgxl9vll3kyg7dyaqci1-clang-7.1.0-lib/lib/libclang.so.7.1
        linux-vdso.so.1 (0x00007ffe5af9f000)
        libdl.so.2 => /nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libdl.so.2 (0x00007f869f36e000)
        libLLVM-7.1.so => /nix/store/hszh2d01d0j8jwinmnq4lz51rp25m6jd-llvm-7.1.0-lib/lib/libLLVM-7.1.so (0x00007f869af6c000)
        libpthread.so.0 => /nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libpthread.so.0 (0x00007f869af4b000)
        libstdc++.so.6 => /nix/store/danv012gh0aakh8xnk2b35vahklz72mk-gcc-9.2.0-lib/lib/libstdc++.so.6 (0x00007f869ad6b000)
        libm.so.6 => /nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libm.so.6 (0x00007f869ac2b000)
        libgcc_s.so.1 => /nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libgcc_s.so.1 (0x00007f869ac0f000)
        libc.so.6 => /nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libc.so.6 (0x00007f869aa50000)
        /nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib64/ld-linux-x86-64.so.2 (0x00007f86a127c000)
        libffi.so.7 => /nix/store/j2fdy70n25zaws892dc95yhj0gfhdxg6-libffi-3.3/lib/libffi.so.7 (0x00007f869aa43000)
        libz.so.1 => /nix/store/msp4hm62a75pdidlc3s2ymma2g5hsjjk-zlib-1.2.11/lib/libz.so.1 (0x00007f869aa26000)
        librt.so.1 => /nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/librt.so.1 (0x00007f869aa1a000)
        libncursesw.so.6 => /nix/store/xhhkr936b9q5sz88jp4l29wljbbcg39k-ncurses-6.1-20190112/lib/libncursesw.so.6 (0x00007f869a9a9000)
        libxml2.so.2 => /nix/store/s6i7i83zn655c7ba08c83yb2b6k73s5z-libxml2-2.9.10/lib/libxml2.so.2 (0x00007f869a841000)

The only thing I can think of is that glibc-2.32 which is also available is substituted somehow and that version does not have  __clock_nanosleep:
objdump -TC /nix/store/90illc73xfs933d06daq6d41njs8yh66-glibc-2.32-37/lib/librt.so.1 | grep __clock_nanosleep

The config is a bit complex but basically uses release-20.03 for nixpkgs. This config has previously worked on this computer and is working on other computers. I have tried to gc the store, completely re-install nix-shell, completely re-install the rust toolchain but to no avail.
What could be triggering this unexpected behavior ?

Fixed it.
This was due to leftovers in build caches that cargo clean would not remove (and without telling about it).
Leaving this there in case someone hits the same issue

@bgrieder
I stumbled upon the same error in completely different context, namely, nix-shell -p python3Packages.ipython  -p python3Packages.pyqt5 --run 'QT_DEBUG_PLUGINS=1  ipython --gui=qt' fails due to
...
QFactoryLoader::QFactoryLoader() looking at "/nix/store/1w243ivv23nsnvy7in8id0rasxx4gkwm-qtbase-5.12.7-bin/lib/qt-5.12.7/plugins/platforms/libqxcb.so"
Found metadata in lib /nix/store/1w243ivv23nsnvy7in8id0rasxx4gkwm-qtbase-5.12.7-bin/lib/qt-5.12.7/plugins/platforms/libqxcb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "xcb"
        ]
    },
    "archreq": 0,
    "className": "QXcbIntegrationPlugin",
    "debug": false,
    "version": 330752
}

Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/nix/store/d44wd6n98f93hjr6q1d1phhh1hw7a17d-python3-3.8.8/bin/platforms" ...
Cannot load library /nix/store/1w243ivv23nsnvy7in8id0rasxx4gkwm-qtbase-5.12.7-bin/lib/qt-5.12.7/plugins/platforms/libqxcb.so: (/nix/store/6m2k8kx8h216jlx9dg3lp4m90bz05yck-glibc-2.30/lib/librt.so.1: undefined symbol: __clock_nanosleep, version GLIBC_PRIVATE)
QLibraryPrivate::loadPlugin failed on "/nix/store/1w243ivv23nsnvy7in8id0rasxx4gkwm-qtbase-5.12.7-bin/lib/qt-5.12.7/plugins/platforms/libqxcb.so" : "Cannot load library /nix/store/1w243ivv23nsnvy7in8id0rasxx4gkwm-qtbase-5.12.7-bin/lib/qt-5.12.7/plugins/platforms/libqxcb.so: (/nix/store/6m2k8kx8h216jlx9dg3lp4m90bz05yck-glibc-2.30/lib/librt.so.1: undefined symbol: __clock_nanosleep, version GLIBC_PRIVATE)"
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.

Aborted (core dumped)

could you please elaborate a bit on your fix?

All I did was to clean all build caches I could find, to force a complete re-compilation based on the dependency trees and thus make sure the correct version of GLIBC is picked up.
I suspect this what your stacktrace is also suggesting to do:  "Reinstalling the application may fix this problem."

Well, I just ran a command under a fresh nix-shell so I have no ideas where caching could happen. There is a /nix/cache, obviously, but I believe it works correctly.

My cache issue was not linked to Nix but to cargo


[explore] moving the timer from a button to a label

can you make your timer change in another pr? it's a lot easier to track than adding on to my pr.

@ascott done!

thanks! 🚢


Add more Tutorials for media providers

Anyone who tries Owncast with their media generator (video mixing software, hardware stream boxes, you name it) is invited to publish their configuration, so other people can benefit.
If you are willing to write a chapter for our documentation, please reply in this issue - this way, we prevent that several people work on the same mixer.
There are some guidelines:

The text and all images should be only contain English text.
All images should be in /content/docs/img and have speaking names, in accordance with the images present. Please try to minify the images if they become too large.
Please include as many images as necessary and as few images as possible.
Add your text in /content/docs/broadcasting.md. If the file gets too large, we will split it up, but it should be fine for now.

This is a fantastic idea, thank you for coming up with it, Jannik!  I wonder if we should update our broadcasting docs page to point to this issue so when people are browsing the documentation about software configuration they know they can help improve it.


#[repr(C)] for structs?

Should the vector and matrix structs have #[repr(C)]? Without that, I suspect the compiler could rearrange the memory layout of the structs. That would cause weird and hard-to-debug errors when passing pointers to C APIs like OpenGL. E.g. when calling glBufferData or gluniformmatrix4fv.
I apologize if I'm mistaken about this. I'm new to Rust.

As far as I understand the code, the C ordering is intended and some unsafe parts of the implementation might even rely on it. So I am generally in favour. #97 even includes a fix for that.
cc @sebcrozet.

Yes, methods performing slice conversion assume the fields are ordered as they are declared. So I guess #[repr(C)] is needed. And I agree this is a must-have to ensure it would work well with e.g. opengl.

Fixed by #99.


Crash with Patchouli

https://bytebin.lucko.me/O9lleHQiLV

Hi ! some mod seems to have an issue with mixins,
which paintings ++ does not use !  uses one of, and it is called ScreenAccessor.
 It makes fabric crash logs a bit more readable, so I can determine what class that mixins is trying to be applied on.

org.spongepowered.asm.mixin.transformer.throwables.InvalidMixinException: The specified mixin 'net.fabricmc.example.mixin.ExampleMixin' was not found

Hi ! some mod seems to have an issue with mixins,
PGa uses a couple, but none of them are named 'net.fabricmc.example.mixin.ExampleMixin'
Are you positive PGA is the cause ?
would you mind installing Not Enough Crashes ? It makes fabric crash logs a bit more readable, so I can determine what class that mixins is trying to be applied on.

org.spongepowered.asm.mixin.transformer.throwables.InvalidMixinException: The specified mixin 'net.fabricmc.example.mixin.ExampleMixin' was not found

Its allready installed.

So it crashes right after starting client.

I might know where this is comming from. i'm going to investigate

crashes similar have been posted.
related to a mixin targeting class_310
currently removing tags for 1.18.2 on .1 files
I will be uploading a fabric mod compiled against 1.18.2 today
consider this issue fixed.
if any crash does happen again, do come back.
the local tests executed where inconclusive towards crashing


Dialog boxes inside same even scrolling instead of popping up

Is your feature request related to a problem? Please describe.
Change (possible to choose) the way dialog boxes appear. Right now each dialog box (added with a + to a sequence) hides and shows separately (without pause, unlike dialogs in separate events that have a visible pause between).
Describe the solution you'd like
Add a different display option, basically like Pokemon/Zelda series, where the dialogs do not hide and pop up, but if the text is extended with + inside and event, the dialog scrolls down shown the next panel.
Describe alternatives you've considered
Allow more lines of text and make 3 default and scroll the rest.
Additional context
Add any other context or screenshots about the feature request here.

Add any other context or screenshots about the feature request here.

Isn't that already the default behaviour? (I haven't checked in a while)

No, it isn't. Adding more text just produces a glitch.

Well, this is ALMOST it, but:
a) would be splendid to have it in non-color,
b) would be nice to be able to chose a number of lines to initially display (or at least choose 3 or 5 - 5 is too much for my liking)
c) but most importantly what I originally meant was it NOT scrolling on its own, but rather scrolling instead of popping the new window in A keystroke.
And generally c) option is something I would find cool if introduced (even if only in color mode). What it offers now is now what I'm looking for, TBH. At least in present shape with self-scrolling large amount of text.
But thanks for showing me this.

Agreed on being able to set the number of lines before scroll, to any number you want (up to 3/5).For example, in my game I am going for that Pokemon feel, so I want dialogues to be 2 lines high at max.


com.google.android.gms:play-services-gcm:+. Unable to build with VS2015 Apache Tools for Cordova / Ionic

The error:
Could not find any version that matches com.google.android.gms:play-services-gcm:+.
I have searched and found the solution is supposed to be ensuring Android Support Library, Android Support Repository, Google Repository and Google Play services should be installed with Android SDK manager. I have done that and my issue persists. The paths are correct for my Android/Java home. Any advice?
Here is a segment with a new project with only this plugin installed:
1>------ Rebuild All started: Project: IonicCordovaProject3, Configuration: Debug Android ------
1>  ANDROID_HOME=C:\Users\Carey\AppData\Local\Android\android-sdk
1>  JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_71
1>  Running: C:\SourceCode\IonicCordovaProject3\IonicCordovaProject3\platforms\android\gradlew clean -b C:\SourceCode\IonicCordovaProject3\IonicCordovaProject3\platforms\android\build.gradle -Dorg.gradle.daemon=true
1>
1>  FAILURE: Build failed with an exception.
1>
1>  * What went wrong:
1>  A problem occurred configuring root project 'android'.
1>  > Could not resolve all dependencies for configuration ':_debugCompile'.
1>     > Could not find any version that matches com.google.android.gms:play-services-gcm:+.
1>       Searched in the following locations:
1>           https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/maven-metadata.xml
1>           https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/
1>           file:/C:/Users/Carey/AppData/Local/Android/android-sdk/extras/android/m2repository/com/google/android/gms/play-services-gcm/maven-metadata.xml
1>           file:/C:/Users/Carey/AppData/Local/Android/android-sdk/extras/android/m2repository/com/google/android/gms/play-services-gcm/
1>       Required by:
1>           :android:unspecified
1>
1>  * Try:
1>  Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
1>
1>  BUILD FAILED
1>
1>  Total time: 2.74 secs
1>  Picked up _JAVA_OPTIONS: -Xmx512M
1>
1>  C:\SourceCode\IonicCordovaProject3\IonicCordovaProject3\platforms\android\cordova\node_modules\q\q.js:126
1>                      throw e;
1>                            ^
1>  Error code 1 for command: cmd with args: /s /c "C:\SourceCode\IonicCordovaProject3\IonicCordovaProject3\platforms\android\gradlew clean -b C:\SourceCode\IonicCordovaProject3\IonicCordovaProject3\platforms\android\build.gradle -Dorg.gradle.daemon=true"
1>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(354,5): error MSB3073: The command "platforms\android\cordova\clean.bat" exited with code 1.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

Just have to download the google repository from Android SDK manager

Which non-official cordova plugins do you have installed?

No other plugins, and I've already downloaded the Google Repository from the Android SDK manager :(
I can create a brand new project, install only this plugin and still have the same problem.

Cordova CLI 5.1.1

@codingbandit you might be better off asking over on the Visual Studio 2015 forum. It seems like VS can't find where your Android SDK's are installed. Often IDE's like VS will install their own copy of the Android tools.
Maybe @rakatyal can comment?

OK, Will do, thanks :)

I am all fixed up now. Just to let anyone know that may be experiencing this, there was an update posted yesterday for Visual Studio Tools for Apache Cordova (http://blogs.msdn.com/b/visualstudio/archive/2016/01/21/visual-studio-tools-for-apache-cordova-update-5.aspx) . I updated my tools, and selected the now supported CLI version 5.4.1 and it fixed my issue. I am now building and deploying without any issues.

I have almost the same problem....
1>  updated project successfully
1>  Executing "after_prepare"  hook for all plugins.
1>  ------ Copied C:\Users\frontend\Desktop\VSCordova\Smartbabypais\bin\Android\Release\VSBuildInfo.xml to platforms\android\assets\www\VSBuildInfo.xml
1>  ------ Building platform: android
1>  Release
1>  ------ Build configuration options: --release
1>  Executing "before_compile"  hook for all plugins.
1>  ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
1>  JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_55
1>  Reading build config file: C:\Users\frontend\Desktop\VSCordova\Smartbabypais\build.json
1>  Reading the keystore from: c:\smartbabypais.keystore
1>
1>MSBUILD : cordova-build error : FAILURE: Build failed with an exception.
1>  FAILURE: Build failed with an exception.
1>
1>MSBUILD : cordova-build error : * What went wrong:
1>  * What went wrong:
1>MSBUILD : cordova-build error : A problem occurred configuring root project 'android'.
1>  A problem occurred configuring root project 'android'.
1>MSBUILD : cordova-build error : > Could not resolve all dependencies for configuration ':_debugCompile'.
1>  > Could not resolve all dependencies for configuration ':_debugCompile'.
1>MSBUILD : cordova-build error :  > Could not find any version that matches com.google.android.gms:play-services-gcm:9.0.2+.
1>     > Could not find any version that matches com.google.android.gms:play-services-gcm:9.0.2+.
1>MSBUILD : cordova-build error :  Searched in the following locations:
1>       Searched in the following locations:
1>MSBUILD : cordova-build error :  https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/maven-metadata.xml
1>           https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/maven-metadata.xml
1>MSBUILD : cordova-build error :  https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/
1>           https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/
1>MSBUILD : cordova-build error :  file:/C:/Program Files (x86)/Android/android-sdk/extras/android/m2repository/com/google/android/gms/play-services-gcm/maven-metadata.xml
1>           file:/C:/Program Files (x86)/Android/android-sdk/extras/android/m2repository/com/google/android/gms/play-services-gcm/maven-metadata.xml
1>MSBUILD : cordova-build error :  Required by:
1>       Required by:
1>MSBUILD : cordova-build error :  :android:unspecified
1>           :android:unspecified
1>
1>
1>  BUILD FAILED
1>
1>  Total time: 3.695 secs
1>MSBUILD : cordova-build error : * Try:
1>  * Try:
1>MSBUILD : cordova-build error : Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
1>  Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

is there a fix for this?

I don't know, to changed to Android Studio and trying....

I was able to resolve the issue by installing "Google Repository” and “Play Services” SDK. Not sure why made this dependency

That's on the install instructions

You will need to ensure that you have installed the following items through the Android SDK Manager:
Android Support Library version 23 or greater
Local Maven repository for Support Libraries (formerly Android Support Repository) version 20 or greater
Google Play Services version 27 or greater
Google Repository version 22 or greater


try to fix the multi-node CI build

https://github.com/apache/incubator-pekko/blob/main/.github/workflows/multi-node.yml
This workflow is a copy of a Lightbend Akka workflow. It requires Google Cloud and a set of tokens to access it.
We need to decide if these tests could be run on alternative infrastructure.

The test is based on Kubernetes, so it should be portable. However, 30+ GiB of memory (10 pods and each takes 3 GiB) is required, while GitHub-hosted runners have 7 GB only.

We shouldn't make this a requirement for 1.0.0.
The multi-node tests mean that tests that are run as multi-jvm tests in the regular build are instead run distributed over multiple machines / VMs / containers to cover a more diverse set of working environments. The idea is that some race conditions might only turn up under more realistic environments than running on a single machine over localhost networking.
Since we will not change functionality for 1.0.0, there is no reason to expect any additional failures to turn up that would only show in multi-node tests (the very same tests are still run as multi-jvm tests as part of nightly builds).
They become more important when we start changing functionality and want to ensure changes that might change non-deterministic behavior are stable under a more diverse set of working conditions.


Stamp: Logging materials used.

Requested by /u/DixonButtz.
The amount of materials required for copies visible in the starbound log.
Requires:

Keeping track of material counts when populating the copy table.
Formatted log output for a variable list of materials.

Current workaround:
None.

Yeah, just encountered this problem as well. Seems to cause consistent crashing whenever the game tries to write to the log. Sad to say I can't even log in to my server at this point. A bit to ambitious with a large base haha

Sorry? This is a feature request. Could you check your starbound.log and share the error you're getting?

Added in commit 3c5e46963605d7760180ad615592fecdc87c6a1a.
The materials, matmods, objects and liquids are written to the starbound.log file whenever a copy is made with the Stamp or the Schematic Maker.


rename package com.kazurayam.materialstore.reporter -> report

to be in sync with other packages

map
reduce

done in v0.4.3


DSOUser API changes

Make required changes once https://github.com/DoSomething/northstar/pull/253 has been deployed.

Removing blocked label - this has been deployed and currently crashes app.

Handle crashes in #731

Was testing on a user without any signups.  I get a crash for a user who has activity:

Campaign 843: status == closed.
2016-01-12 12:16:18.299 Lets Do This[6681:1231873] -[NSNull objectForKeyedSubscript:]: unrecognized selector sent to instance 0x10a1a5af0
2016-01-12 12:16:18.325 Lets Do This[6681:1231873] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull objectForKeyedSubscript:]: unrecognized selector sent to instance 0x10a1a5af0'
*** First throw call stack:
(
0   CoreFoundation                      0x0000000109f80e65 __exceptionPreprocess + 165
1   libobjc.A.dylib                     0x00000001099f9deb objc_exception_throw + 48
2   CoreFoundation                      0x0000000109f8948d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3   CoreFoundation                      0x0000000109ed690a forwarding + 970
4   CoreFoundation                      0x0000000109ed64b8 _CF_forwarding_prep_0 + 120
5   Lets Do This                        0x00000001053baf65 -[DSOCampaign initWithDict:] + 981
6   Lets Do This                        0x000000010538518b -[DSOCampaignSignup initWithDict:] + 283
7   Lets Do This                        0x00000001053a4381 __68-[DSOAPI loadCampaignSignupsForUser:completionHandler:errorHandler:]_block_invoke + 497
8   Lets Do This                        0x00000001053c63c1 __84-[AFHTTPSessionManager dataTaskWithHTTPMethod:URLString:parameters:success:failure:]_block_invoke91 + 241
9   Lets Do This                        0x00000001053e960b __72-[AFURLSessionManagerTaskDelegate URLSession:task:didCompleteWithError:]_block_invoke_271 + 203
10  libdispatch.dylib                   0x000000010a6cbe5d _dispatch_call_block_and_release + 12
11  libdispatch.dylib                   0x000000010a6ec49b _dispatch_client_callout + 8
12  libdispatch.dylib                   0x000000010a6d42af _dispatch_main_queue_callback_4CF + 1738
13  CoreFoundation                      0x0000000109ee0d09 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 9
14  CoreFoundation                      0x0000000109ea22c9 __CFRunLoopRun + 2073
15  CoreFoundation                      0x0000000109ea1828 CFRunLoopRunSpecific + 488
16  GraphicsServices                    0x000000010b141ad2 GSEventRunModal + 161
17  UIKit                               0x0000000108344610 UIApplicationMain + 171
18  Lets Do This                        0x00000001053b376f main + 111
19  libdyld.dylib                       0x000000010a72092d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException


E475: Invalid argument: cannot have both a list and a "what" argument

Windows 10
Using ripgrep.
&grepprg = 'rg --column --no-heading --smart-case --follow --vimgrep'
Have also tried with none of the above flags as well as just '--vimgrep' flag.
Anyone else seen this error? Or can someone advise what is a "what" argument?

Yup I'm getting that error as well. Started happening after I built a new version of vim. This appears to be coming from the use of the vim function setqflist, or possibly setloclist, likely both. I suspect the call signature changed, or perhaps the way this plugin was using those functions was unintended and vim is just more vocal about an error that was always there.

Having the same issue.


V4.8.5: Audio encoder

Ohan,
Changing Audio channels to Mono / 5.1 / 7.1: ffmpeg fault, only Stereo no problem.

Hi
Oops, -profile:a aac_he_v2 was erroneously applied to non stereo configs for libfdk_aac.
Will include fix next release.
Regards

Hallo...
Fixed in latest commit
Will add back the aac_he and aac_he_v2 profiles for libfdk_aac with greater constraints.


Link to port not showing up

What I did

Open "Play with docker" webapp
pressed "Start"
added new instance

$ docker run -p 8080:80 -d nginx

What happend

container ID at stdout
container runs in background
port 8080 is mapped to local 80
no link to port pops up at the top

Question

How can I browse the webpage? Is there some specific URL-pattern or something similar?

Hello,
It has been the PWD, but it should be resolved.
Greetings. :)


[v2.7] KDM Update for K8s April 2024 patch release

KDM Updates
TO BE RELEASED: with Rancher v2.7.13

New Kubernetes Version
Min Rancher Version
Min RKE Version

1.27.13-rancher1-1
2.7.11-patch0
1.4.15-rc0

Rancher System Images & Add-ons
Note: Please update system images and add-ons in the template as needed.
TBD
Developer Changelog

Add templates for new K8s versions. If a template that hasn't been released yet already exists, update it in place.
Update the default K8s version, and add or update the version information (MinRancherVersion and MinRKEVersion) in k8s_version_info.go for new K8s versions if needed (Use table from above).
Confirm versions for system images, add-on templates are correct using versioning reference table from below (expand details to view the table). Update the table if new versions are introduced.
Confirm add-on template version constraints in template.go are correct using versioning reference table from below (expand details to view the table). Update the table if needed.

Versioning Reference

Expand for system images & add-on templates versioning table

Note: Truncated repository names with a * indicates there are multiple images with that prefix. All repository names that match a truncated prefix should be checked for the same version stated in the table.
For example: rancher/weave-* matches weaveworks/weave-kube and weaveworks/weave-npc, and they should both have the same version.
v1.27.13-rancher1-1

Repository
Tag

rancher/mirrored-coreos-etcd
v3.5.10

rancher/hyperkube
v1.27.13-rancher1

rancher/rke-tools
v0.1.96

rancher/mirrored-k8s-dns-*
1.22.28

rancher/mirrored-cluster-proportional-autoscaler
1.8.9

rancher/flannel-cni
v0.3.0-rancher8

rancher/mirrored-flannel-flannel
v0.21.4

rancher/mirrored-calico-*
v3.26.3

weaveworks/weave-*
2.8.1

noiro/* (All ACI images)
<IP_ADDRESS>.81c2369

rancher/mirrored-pause
3.7

rancher/nginx-ingress-controller
nginx-1.9.4-rancher1

rancher/mirrored-nginx-ingress-controller-defaultbackend
1.5-rancher1

rancher/mirrored-jettech-kube-webhook-certgen
v20231011-8b53cabe0

rancher/mirrored-metrics-server
v0.6.3

rancher/mirrored-coredns-coredns
1.10.1

rancher/mirrored-cluster-proportional-autoscaler
1.8.9

rancher/mirrored-k8s-dns-node-cache
1.22.28

Add-on Name
Add-on Template Version Constraint

Calico
calicov3261Rancher2

Canal
canalv3261Rancher2

Flannel
flannelv0214

CoreDNS
coreDnsv183Rancher2

KubeDNS
kubeDnsv116

MetricsServer
metricsServerv061

Weave
weavev122

Aci
aciv6032

NginxIngress
nginxIngressv194Rancher1

Nodelocal
nodelocalv121

Waiting on upstream release. Target - 4/17 per https://kubernetes.io/releases/patch-releases/#upcoming-monthly-releases.

RKE Checks passed with rke v1.4.18-rc1. Also, checked if images are getting pulled successfully.

Ran rke config --system-images
Pulled all the docker images manually.
Made sure all the images are getting pulled successfully.

Fresh install checks - PASS

On rancher version v2.7-head, KDM pointing to dev-v2.7 branch, cluster creation succeeds for v1.27.13-rancher1-1 on all network providers - canal/flannel/weave/calico
Network checks look good
Canal network checks look good

Upgrade checks - PASS

On rancher v2.7.12, KDM pointing to release-v2.7, cluster creation succeeds for k8s v1.27.12-rancher1-1 version with all network providers.
Pre-upgrade checks look good.
Upgraded rancher to v2.7-head.
Made sure the KDM points to dev-v2.7
Upgraded cluster to k8s version -  v1.27.13-rancher1-1
Post upgrade checks look good.

Minimum Rancher checks - PASS

On rancher version v2.7.11, KDM pointing to dev-v2.7 branch, cluster creation succeeds for v1.27.13-rancher1-1 on all network providers - canal/flannel/weave/calico
Network checks look good
Canal network checks look good

RKE default k8s version - PASS
dev-v2.7 should have the default as v1.27.13-rancher1-1
 "RKEDefaultK8sVersions": {
  "0.3": "v1.16.3-rancher1-1",
  "default": "v1.27.13-rancher1-1"
 }

All checks passed, hence closing the issue.


Added the backend django folder

I added all of my backend work here. If you have any questions about it, please feel free to ask.

I believe we need to use a .gitignore file here, as there are seemingly over 5000 files changed here. I assume some of them are just dependencies for dev environments that populate when you run in a dev environment. We don't have to close this yet, since I don't know what the problem or solution will be, but I just want people to refrain from merging this into main.

This is good but it doesn't take away the files. I'm gonna close this PR, but have you create a new one. I think I misunderstood the .gitignore so I am going to update our current .gitignore with what needs to be ignored on the Django/Python venv/env side. I will force push that .gitignore, and then when you pull from main again, the ignores should work.


Provide custom displayed text in EntityRefLinks

EntityRefLinks doesn't provide a possibility to apply custom "title" to each link.
Where "title" is actually a displayed text.
Now the only way is to provide through "linkProps" a title which will be the same for all links.
Signed-off-by: bnechyporenko<EMAIL_ADDRESS>Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[ ] All your commits have a Signed-off-by line in the message. (more info)

@Rugvip Please have a look now.
The failed test seems to be flaky, and not related to this change.

Thanks for approving!
Was good and valid points!


Container images with long names are truncated

If a container has a really long image name, it is truncated on the service page, making it hard to find the image tag.

Useful
Info

Versions
Rancher v1.6.5 Cattle: v0.182.1 UI: v1.6.9

Access
localauth admin

Orchestration
Cattle

Route
service.containers

The same is true for the Containers tab on the Host page. All my images are from a gitlab registry and therefore have really long prefixes which all are the same. A tooltip too see the full name would be very helpful here!

I noticed on the hosts page (where you see all hosts) the container names are truncated to show only the end which is more helpful than seeing the beginning.

added a tooltip

Available with v1.6.15-rc6

Version - v1.6.15-rc6
No tooltip is showing up for me.  Maybe not pushed?

@tfiduccia  Can you try again, please?
The tooltip is added in the image column. I didn't add it in container name column.

Version - v1.6.15-rc8
Verified fixed


dcos-4107 check that assets don't have same filename in package bundle

Looks good!

@jsancio updated

The two rename in this commit don't look right, no?

Looks like github doesn't distinguish between new binary file and replaced binary files. I don't think this commit should change this file:  cli/tests/data/package/cassandra.zip.

@jsancio updated. I also changed the marathon.json.mustache files in the test data with the new spec, which caused me to update cassandra.zip

Thanks. Looks good. I will merge once the tests pass.


wihic  License?

could  it  be used  in commercial programs?

MIT. I will update the LICENSE file.


Recovering a session does not fully validate that the JWT will work on the backend

Describe the bug
It seems that it's possible under a few specific conditions to have supabase_flutter restore a JWT from a persisted session which, while valid on its own, is not valid for the current supabase backend to which it is connected.
Conditions under which this can occur:

Switching between dev / staging / prod instances using env flags
Changing supabase URLs or Keys of the production instance and publishing an app update
Passing a manually stored persisted session string to the recoverSession() method

To Reproduce
Steps to reproduce the behavior:

Set up a local instance of supabase (via cli tool)
Use supabase_flutter according to the documentation to sign a user in and persist the session
Switch the env vars to point to a remote supabase instance instead of local
Relaunch the app and try to restore the session
Observe that the session appears to have successfully restored and the app is now attempting to nav to a protected page
Observe that once a request is made to the backend for data (like a db request, etc), it fails with a "PGRST301" error

Expected behavior
It should not be possible to restore a session from one supabase instance onto another without throwing an error.
I realize this is an event that is unlikely to happen in real world use but it is quite inconvenient as a dev. We frequently switch between building for local vs staging vs prod and having it throw auth errors every time I switch can be irritating.
It could also affect real world users if the devs choose to point an app at a new supabase instance (changing url or key) and don't realize they need to manually clear persisted strings when users launch the new version of the app.
Additionally, there is a potential security concern here in that if the app developer caches sensitive data locally and relies on an authenticated state to access that data, a valid but mismatched persistence token could allow a bad actor to access parts of the app that would normally require sign-in. (of course, anything cached locally or encoded into the app can only ever be so secure so this reasoning is limited)
Furthermore, since the current restoration happens completely offline, it seems that a user could make use of a revoked JWT as well but this risk is already well documented in supabase docs and likely out of scope for this ticket.
Possible Solutions

Keep existing behavior and require devs to wrap all backend calls with error handling that can detect this error and sign the user out (tedious for the dev and prone to error since exceptions can throw inside futures or streams across the api surface)
Require devs to perform a check to see if the env has changed (requires encoding env state into the persisted app state)
Make a call to the backend when a session is recovered in order to make sure the JWT is valid and not mismatched or revoked (requires an extra API call for every restoration)
Hash the supabase connection info (URL + Token) and store it as part of the persistence string. This way it can be checked on restore to make sure that persistence data belongs to the same server it is now being sent to and that the supabase access tokens have not been rotated. (secure + offline, allows an error to be thrown instantly)

I recommend the last approach be integrated into this library as default behavior. Additionally, a flag could be added to the restore method that allows an online backend validation to be requested/forced.
Additionally, once a session recovery fails, it may be a good idea to emit an AuthChangeEvent.signedOut as described here.
Version (please complete the following information):

OS: macOS Sonoma 14.1.2 (23B92)
Dart SDK version: 3.2.3

Flutter 3.16.3 • channel stable • https://github.com/flutter/flutter.git
Framework • revision b0366e0a3f (6 days ago) • 2023-12-05 19:46:39 -0800
Engine • revision 54a7145303
Tools • Dart 3.2.3 • DevTools 2.28.4

├── supabase_flutter 1.10.25
│   ├── supabase 1.11.11
│   │   ├── functions_client 1.3.2
│   │   ├── gotrue 1.12.6
│   │   ├── postgrest 1.5.2
│   │   ├── realtime_client 1.4.0
│   │   ├── storage_client 1.5.4

Additional context
This issues seems adjacent / related to #452

Thanks for opening this issue. This issue should be solved in coming up v2 of supabase_flutter as the session is stored with different local storage key for every supabase project.
You can check out the developer preview for v2 here, or there should be a stable v2 released very soon.
https://pub.dev/packages/supabase_flutter/versions/2.0.0-dev.4


Closes #99 - Update ALL headers

Feature/99 new update desktop header
This PR updates all headers to match designs.
Weird warning coming from tests (obj being returned from links)

Nice code

Nice code

Thanks


Update plugin to natively support Ugate, Pgate, and SXgate

The Ugate is the new Qiskit label for the U3gate

The Pgate corresponds to the PennyLane PhaseShift operation

The SXgate (sqrtX gate) is new, and currently does not have a PennyLane native equivalent.

Qiskit has deprecated the [u1, u2, u3] basis in favour of the new [p, sx] basis.

Once the above gates are natively available in PennyLane, we should update the plugin to use the newly available gates.

Hey! Is this issue still open? The SXgate is now supported and cant be used in the plugin too right? I understand Ugate and Pgate  have already been updated in the v0.23 update.

Hi @charmerDark, having a look at the Qiskit device's supported operations,
https://github.com/PennyLaneAI/pennylane-qiskit/blob/57934622ee0531212e032c6dd24271c5fd1b4d6d/pennylane_qiskit/qiskit_device.py#L36
it appears that SX is not yet listed. Further, ex.PhaseGate and ex.U3Gate currently in used by the plugin might be deprecated by Qiskit and could be in need of an update!
So I would say that this issue is still valid, yes.

Hey! Is this issue still open? The SXgate is now supported and cant be used in the plugin too right? I understand Ugate and Pgate have already been updated in the v0.23 update.

I'm sorry..I meant now that SX is available on pennylane, it could be added to the list of supported operations. the 'cant' was a typo :sweat_smile:

Ah I see, yes definitely @charmerDark!


Change client-egress-l7-tls tests to sequential because flaky

Testing to see if I can reproduce flakes.

/test

/test

/test ci-e2e-upgrade

/ci-e2e-upgrade


[Removal]: I have 2 panther hotspots on the denylist, I am not cheating, please remove from the deny list  ,my dear admin

Hotspot Name
Flat Grey Sidewinder
Beautiful Butter Cougar
Hotspot b58 Address
112gLaF8j4257niDPpuig5nJ4r46wnzAKA9LjHztbHpXEPzeUVLg
112VnovmiS1iAmZtDz7982Mq3tMF9a7Kv7p9scBFBkpetz2aCyN2
Discord Handle
yellowleg#8291
Hotspot Manufacturer
PantherX
Removal Reason
I didn't cheat, it's real deployment
Modifications
No
Extra forwarders
No
Extra antennas
Yes, I purchased the bobcat antenna to mount to the Panther hotspot, to extend the distance..
Additional Information
Today my 2 PantherX hotspots were blacklisted. I didn't cheat. They were all deployed in the houses of friends and relatives. They were all on high-rise buildings with good views. I installed them on the balcony. I paid them. Today, my 2 PantherX hotspots were added to the rejection list. I can’t understand whether it is because of the large-scale cheating of the Panther manufacturers that affected my hotspots. You must know that it is the problem of the project party and the manufacturer, it should not be affects product users. Please review and remove my 2 hotspots from the rejection   thanks
112gLaF8j4257niDPpuig5nJ4r46wnzAKA9LjHztbHpXEPzeUVLg
112VnovmiS1iAmZtDz7982Mq3tMF9a7Kv7p9scBFBkpetz2aCyN2

How to add images？

No community moderators respond to requests?

@abhay

@abhay @6Cornerdefender

Throw hot spots in the trash


Don't set default offset if autoCommit is disabled

this.autoCommit is disabled but committed when the offset in consumer.seek goes out of range.
(e.g. offset expired)

I was thinking about how to write a test for this to ensure that we don't introduce a regression in the future, but I can't think of what the expected behavior should be. I imagine a test similar to this one: https://github.com/tulios/kafkajs/blob/f8366f30d965214701393b31e1cc6eddae1fe9db/src/consumer/tests/seek.spec.js#L144-L166
But if the consumer doesn't reset the offset and it swallows the offset out of range error, the only thing that will happen is that it will retry fetching the same offset - which is still going to be out of range.
I see two alternatives, but I don't know which one is preferable. It would be a good idea to look into how the Java client behaves in this scenario:

Re-throw the error so that we get a crash that the userland code can act on.
The offset manager already knows if autoCommit is enabled or not, so if it isn't, setDefaultOffset could just set the resolved offset to be the default offset, instead of committing it. That way the high-level behavior is the same, whether autocommit is enabled or not, but we don't end up committing offsets.

But if the consumer doesn't reset the offset and it swallows the offset out of range error, the only thing that will happen is that it will retry fetching the same offset - which is still going to be out of range.

@Nevon I agree with you. This pr is closed


Update Kali Image to 2022 version

Kali 2019 has been deprecated in Azure Marketplace and needs to use the latest version.

@danielswart Thank you for the contribution. PR has been approved and accepted. Closing


Well Done!

Version 0.1.6 is actualy the best one at the moment, it's scanning super fast for me and i'm loving it! keep it up!

What scan radius are you using... I'm getting 1 scan circle every 4-5 seconds.

I would like to know as well, getting 1 scan circle every 4-6 seconds... Painfully slow

I reverted back to 0.1.3  myself. 0.1.6 looks great, however there was a change to the base scanner to make it scan one node at a time rather than chunks of 3. I can literally drive down the road and scan faster than the scanner in its current state and simply walking constantly resets it. Right now it is great for lure farming or gym battling. Anything where you dont move enough to trigger a location update and reset the scanner. The settings in 0.1.3 seem to still work as they did in terms of speed and accuracy. You can also still have multiple scanners setup however it seems now that you need to sign in with a different account for each one if you weren't already. After a few tests, the more areas you attempt to scan with one account, the less that show up in any of the scanned radius. I got 3 running and then with a 4th I scanned a small 6 block radius and saw literally nothing. I switched accounts and all sorts of things popped up.
It would seem that with this recent patch to the game they also made some tweaks to how it works itself. I've noticed that I have to go much slower for things to pop up on my screen now, I maybe just imagining it but it really feels like the speed to trigger a response has been set at a lower threshold.


Unified Provider Interface for Endpoint and Service Providers

Please describe the Improvement and/or Feature Request

A separate service provider was created in #3614 to enable multicluster functionality.
The mesh catalog is now aware of endpoint.Provider and service.Provider interfaces and we will like to collapse these two interfaces into one service.Provider.
Scope (please mark with X where applicable)

New Functionality          [X ]
Install                    [ ]
SMI Traffic Access Policy  [ ]
SMI Traffic Specs Policy   [ ]
SMI Traffic Split Policy   [ ]
Permissive Traffic Policy  [ ]
Ingress                    [ ]
Egress                     [ ]
Envoy Control Plane        [ ]
CLI Tool                   [ ]
Metrics                    [ ]
Certificate Management     [ ]
Sidecar Injection          [ ]
Logging                    [ ]
Debugging                  [ ]
Tests                      [ ]
CI System                  [ ]
Demo                       [ ]
Project Release            [ ]

Possible use cases

Multi Cluster Proposal Addendum

One other recommendation.. there's some duplication between the provider methods and the meshcatalog. You could do the following:

Create a single Provider interface and have a new field on the meshcatalog:

type MeshCatalog struct {
   ...
   provider Provider
   ...
}

as opposed to an array of providers. If you ever really needed multiple providers you could have
type AggregatedProvider struct {
providers []Provider
}
This would remove a good amount of code.

Following this train of thought, why not make the provider an embedded interface?
type MeshCatalog struct {
...
Provider
...
}

This will allow some of the xDS files to directly call these methods, removing some more boiler plate.


set model validity after loading form data

The Problem
I am using the same form for creating and editing a user profile. After I populate the form model for user edit. I set the validity of the form using
componentDidUpdate(prevProps) {
    if (this.props.userForm != prevProps.userForm)
      this.props.dispatch(actions.setValidity('userForm', true))
  }

It shows the form validity set to true but the models set to false? Even so shouldn't the valid property be set to true?
Here is a screenshot of my redux-dev-panel showing one of the input models valid set to false
http://i68.tinypic.com/71ibrr.png
And here is a screenshot of my  redux-dev-panel showing the form model showing it validity set to true
http://i63.tinypic.com/2ltke8o.png
Sample of the code
<Form model='userForm' onSubmit={v => this.props.handleSubmit(v)}>
<InputRedux
          required
          model='.first'
          label='First Name'
          messages={{ valueMissing: required('First Name') }} />
<InputRedux
          required
          model='.last'
          label='Last Name'
          messages={{ valueMissing: required('Last Name') }} />
</Form>

InputRedux Component
const InputRedux = props => (
  <div className={`form-group col-md-${props.col || '6'} ${props.className}`}>
    {props.label}

      <Control
        model={props.model}
        required={props.required}
        validators={props.validators}
        validateOn='blur'
        component={props.mask === 'phone' ? PhoneInput : TextInput}
      />
      <Errors
        className='errors'
        model={props.model}
        show='touched'
        messages={messageCheck(props.messages)}
      />

)

Reproducible Code Example
(please fork from this CodePen template)

I have the same issue..

What about using resetValidity instead?
this.props.dispatch(actions.resetValidity('userForm'));

This should work as expected.

it worked! thank you!

Awesome! Also, just for reference, when you setValidity() to a form, the intention is that you're setting form-specific validation on it. For example:
// Form is invalid even if models are valid
dispatch(actions.setValidity('user', { passwordsMatch: false }));

// Form-specific validity is valid, but overall validity
// depends on if models are valid or not
dispatch(actions.setValidity('user', { passwordsMatch: true }));


[New Game Added] : Squash your Enemy

PR Description 📜
The game involves a player and enemies. The player would be having projectiles with the help of which he/she has to squash the enemy.
The game uses HTML Canvas and JavaScript.
Fixes #634

Mark the task you have completed ✅

[✅] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[✅] I have performed a self-review of my own code or work.
[✅] I have commented my code, particularly in hard-to-understand areas.
[✅] My changes generates no new warnings.
[✅] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[✅] I have added screenshot for website preview in assets/images
[✅] I have added entries for my game in main README.md
[✅] I have added README.md in my folder
[✅] I have added working video of the game in README.md (optional)
[✅] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

Thank you @dishamodi0910 ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

Thank you  @dishamodi0910 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


JHLite: Spring Boot 3 - upgrade Mongock

Links:

https://github.com/jhipster/jhipster-lite/issues/3601
https://github.com/jhipster/jhipster-lite/pull/3832

You can use this branch: https://github.com/jhipster/jhipster-lite/tree/spring-boot-3 and submit a pull request against this branch
Related to this ticket https://github.com/mongock/mongock/issues/583
So the work should be done directly there, not here.
It means the bounty is for the one who proposed a PR in mongock repository.
The ticket is to track and test if it works fine, once the library is upgraded.

We have successfully created a POC to run Mongock on Spring boot 3 (Jdk17). There are a couple of things we need to update(not much).
We expect to have a release soon. Will keep you updated

you're awesome @dieppa !
thanks so much

I did some hacking and it seems pretty straight forward. @dieppa I have created a spring-data  v4 driver, adapted some api changes and changed the autoconfiguration from spring factories to autoconfiguration import mechanism. If you like a can provide the PR and we work together on this topic

Thanks @atomfrede .Yeah, creating the new v4 driver is the easy part(or less tedious part). Maybe I am wrong, but I think we don' even need to do any API changes. We need to see the best way to manage the multiple versions(Jdk, spring, springboot) as we still need to maintain Jdk8, spring5 and spring boot 2.
However, I would be very happy to review your PR for the driver 😃

Yes the version issues is something I also wondered how to tackle it. Regarding the change I needed to adapt MongockTemplate to the new api (maybe we can leave it out as it's deprecated already) and the method to get a databasefactory has changed, so quite small changes.
I will clean up a little and provide a PR.

Aaah you referred to the MongockTemplate. That's tricky. We were actually considering to remove it, but it has some consequences for old changeUnits, still using MongockTemplate, in projects that have upgraded to Spring data 4. They would need to change those old changeUnits, which we encourage not to. On the other hand, that could potentially happen using the normal MongoTemplate too. So we are considering if it's worth the effort to maintaining it :dizzy_face:
For now if it's not very hard, we would like to keep and really appreciate that PR. THANKS!

@atomfrede , if it helps, this is thequick poc branch  we built to asses the impact of the changes. As you see we just removed the MongockTempate, for the time being, just to see what other change we need.

@pascalgrimaud I tried to implement a workaround by adding the new autoconfiguration to the META-INF directory and use the v3 driver. Sadly it didn't work as the method to retrieve the database factory has been renamed. I think otherwise it would work, so we need the changes upstream at mongock.

@atomfrede , what workaround did you try? Can you raise a PR, just to see what you tried, pelase?
Unless you are using the MongockTemplate in JHipster(in which case, ti should be replaced with the normal MongoTemplate), you shouldn't have much problem on your end. I think we can have a release by tomorrow, maybe after tomorrow, that you can use.

I added the new autoconfiguration file so the V3 context is configured. That worked but the method to get the database factory in mongo template has been renamed so it failed creating it. Will push it to branch later for reference

Sorry, @atomfrede , I am confused. You are adding the org.springframework.boot.autoconfigure.AutoConfiguration.imports to sring-data-v3 driver?
I don't think that's needed as I believe that whoever is moving to springboot v3, will also move to spring-data v4.
That plus the mess with the version, makes the solution of creating a new repository for jdk7(with springboot-v3 and springdata-v4 in it). Please see this initial repository I created for it. You can add the springdata-v4 driver as a submodule

No I added org.springframework.boot.autoconfigure.AutoConfiguration.imports to jhipster lite with the v3 autoconfiguration to see if that would work for jhipster lite.

aah ok. You were trying a shortcut. 👍🏼
So I guess it would work if we provide the two modules specifically for that, without tricks, right? mongock-runner for springboot-v3 and mongock driver for springdata v4, Am I right? I think we can have it soon(today/tomorrow)

Yes shortcut is a better term :) Yes if we have two modules it would work just fine without any shortcut from what I can tell with my local experiments

It looks good with the updated boot-v3 and mongo-data-v4 driver

The work is done and tested. Thanks @atomfrede for your help, great work!
We expect to have a release by tomorrow.!:rocket:

awesome!

Hello everyone, I confirm Mongock supports now springboot 3.x and springdata 4. for MongoDB.
Please follow the instructions:

Update mongock bom to 5.1.7

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.mongock</groupId>
                <artifactId>mongock-bom</artifactId>
                <version>5.1.7</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
<!--...other dependencies-->
       </dependencies>
    </dependencyManagement>

If upgrading Mongock, remove runner and driver dependecies
Add springboot v3 runner and springdata v4 driver

<dependencies>
        <dependency>
            <groupId>io.mongock</groupId>
            <artifactId>mongock-springboot-v3</artifactId>
        </dependency>
        <dependency>
            <groupId>io.mongock</groupId>
            <artifactId>mongodb-springdata-v4-driver</artifactId>
        </dependency>
<!--...other dependencies-->
</dependencies>

Thanks to @jhipster team, @pascalgrimaud, @DanielFran, @mraible and specially @atomfrede for his great work contributing.

Thanks @dieppa for your support!

plz @atomfrede and @dieppa : as I can't put 2 x 500$, just each claim 1 bounty
Thanks a lot for your work here

that's awesome, didn't expect it! Really appreciate it, I will put in Mongock's open-collective for developments 😃
...but I don't really know how to claim a bounty 😅  ...I will do some digging
Thanks a lot!

@dieppa :

you can follow the guide here https://www.jhipster.tech/bug-bounties/#-bug-bounties
quick step:

go to https://opencollective.com/generator-jhipster
submit an expense
use the title $500 bug bounty claim for https://github.com/jhipster/jhipster-lite/issues/4067
fill the information
and at the end, don't forget to answer to this ticket with the open collective here

That's all :)
Thanks to you and the Mongock team !

Maybe this short overview helps https://www.jhipster.tech/bug-bounties/#how-to-get-the-money

Bounty claimed https://opencollective.com/generator-jhipster/expenses/104167

@atomfrede : approved

Bounty claimed here

@dieppa : approved


Unable to have multiple CesiumWidets on the same page in 3d-tiles branch

In this example, I'm creating a new CesiumWidget for each of 4 containers.  However, the globe doesn't render in two of them.  This example works in master.

Loading...

var widgets = [];
var rows = 2;
var cols = 2;
var table = document.getElementById('cesiumTable');
table.innerHTML = '';
for (var i = 0; i < rows; i++) {
    var tr = document.createElement('tr');
    table.appendChild(tr);
    for (var j = 0; j < cols; j++) {
        var td = document.createElement('td');
        tr.appendChild(td);
        var div = document.createElement('div');
        div.style.height = '200px';
        div.style.width = '400px';
        td.appendChild(div);
        widgets.push(new Cesium.CesiumWidget(div));
    }
}

This is a bug related to the RequestScheduler. The scheduler budgets are stored at global scope but the budgets are reset in Scene, which would get called four times and mess up the budgets. If there is a good way to call RequestScheduler.resetBudgets just once per frame outside of any cesium widgets, that would be the fix.

Also the request scheduler architecture has potential to change with @austinEng's HTTP2 testing.

This should be fixed before 3d-tiles is merged into master.

Already fixed in #5308?

Yes


Convert hash_tree into JSON

Is there any way to convert the hash_tree result into a properly formatted JSON.?

See http://ruby-doc.org/stdlib-2.4.2/libdoc/json/rdoc/JSON/GenericObject.html#method-c-dump


Privatize inlined functions

This avoids code generation for inlined functions and reduces program size slightly.

LGTM, note that @phischu planned to mark most operations as non-inline anyway and instead annotate them as allocation operations.


Subscriptions sometimes skips events

I have a funny problem with my setup that is running with the Postgresql EventStore (using npgsql 7) and MongoDB EventHandlers (using MongoDB.Entities) that are really simple - basically only upserting data without any weird data modification along the way.
However, sometimes when loading a bunch of data (fx from importing data from a legacy application) the checkpoint store has passed through a specific event but the EventHandler has never been run. If I then reset the checkpoint to a lower value and restart the application the EventHandlers run fine and everything is up to date.
Any ideas on how to debug this further is much appreciated - I am working on a PoC sample to see if it can be replicated outside our environment

Have you confirmed that the handler hasn't fired, like with logs or something?

Yes (sorta), I am logging every MongoDB call and the one to upsert the offending documents was never called
However, digging deeper into the logs I noticed my container was getting OOMKilled which might explain it, however that possibly raises another issue where the checkpoint is updated before the handlers have run?

This is a part of the handler that doesn't always run:
public class RegistrationProjections : EventHandler
{
    public RegistrationProjections()
    {
        On<V1.RegistrationReceived>(
            async ctx =>
                await new Registration
                {
                    ID = ctx.Message.Id.ToString(),
                    [... Other properties ...]
                }.SaveExceptAsync(x => new {x.Barcodes})
        );
    }
}

Barcodes are being updated in another event, which is why they are ignored here.
The handler is being registered like this:
services.AddSubscription<PostgresAllStreamSubscription, PostgresAllStreamSubscriptionOptions>(
    "RegistrationProjections",
    builder => builder.Configure(x => x.MaxPageSize = 256).AddEventHandler<RegistrationProjections>()
);

I tried lowering the MaxPageSize to 256 see if it had any effect, but that doesn't seem to have done anything

What if you try using Eventuous MongoDB tools for that upsert?

I understand, however that would require quite the refactor in my handlers.
I will try to add some more debug logging and try to dig deeper into it, and maybe create a simple handler using the Eventuous MongoDB tools to see if I can replicate it there.

I tried putting some more logging into the handler:
public class RegistrationProjections : EventHandler
{
    public RegistrationProjections(ILogger<RegistrationProjections> logger)
    {
        On<V1.RegistrationReceived>(
            async ctx =>
                {
                    logger.LogDebug(
                                    "Running projection for {EventType} with ID {RegistrationID}",
                                    typeof(V1.RegistrationReceived).FullName,
                                    ctx.Message.Id
                                );

                    await new Registration
                    {
                        ID = ctx.Message.Id.ToString(),
                        [... Other properties ...]
                    }.SaveExceptAsync(x => new {x.Barcodes});
                }
        );
    }
}

Most of the events log it fine, but some are skipped. The event streams does exist in the database and this time there were no OOM kills of the container

Can you add global position to the logs? Also, how do you produce these migration events?

I see that the global position appears out of order in the logs, do you partition the subscription?
For missing events, my suspicion is that it's the sequence issue. In case of frequent concurrent writes, in once service the sequence might get allocated before and commit later than in the other service. As the result, you can events with the lower sequence number committed after events with the higher sequence number. It results in the subscription receiving the events with higher number first and the next call will say "more than the one I have", and you have skipped events.
I know that only in theory as I am not an expert in Postgres, but I have read about it somewhere. Will try to find more about it, you can spend some time googling too...

Unexpected results might be obtained if a cache setting greater than one is used for a sequence object that will be used concurrently by multiple sessions. Each session will allocate and cache successive sequence values during one access to the sequence object and increase the sequence object's last_value accordingly. Then, the next cache-1 uses of nextval within that session simply return the preallocated values without touching the sequence object. So, any numbers allocated but not used within a session will be lost when that session ends, resulting in "holes" in the sequence.

Furthermore, although multiple sessions are guaranteed to allocate distinct sequence values, the values might be generated out of sequence when all the sessions are considered. For example, with a cache setting of 10, session A might reserve values 1..10 and return nextval=1, then session B might reserve values 11..20 and return nextval=11 before session A has generated nextval=2. Thus, with a cache setting of one it is safe to assume that nextval values are generated sequentially; with a cache setting greater than one you should only assume that the nextval values are all distinct, not that they are generated purely sequentially. Also, last_value will reflect the latest value reserved by any session, whether or not it has yet been returned by nextval.

As we don't use sequences explicitly, I am wondering what are the sequence settings for the unique auto incremented id...

do you partition the subscription?
Partitioning is not enabled

--
A quick search around suggests that the cache values are only really a thing for a sequence, not for the identity. I will try searching deeper

Ok, looks like I am spamming here, but still.
Basically, what I am trying to say is that the issue is not that the subscription skips events. It's most probably caused by events with higher global position being committed to the database before events with lower values in global position. I am not exactly sure how to solve it.
I thought of the following:

Don't use autogenerated id
Query the max id value after the transaction is opened
Assign incrementing values to global position when inserting
Commit the transaction
It might fail in case of optimistic concurrency, then retry

It will probably slow down the appends, but should solve the issue.

No worries about the spamming - It is actually a quite interesting problem to solve.
I digged around my postgres instance and found the following for the global position:

So it seems like the cache is already 1 for the autogenerated id.
I will try and dig deeper for a solution

Partitioning is not enabled

Ok, what about concurrency? I clearly see from your logs that events are being processed out of order, which should not happen if you have the default concurrency.

Ah, it's the screenshot from Seq, right? So, it's sorted by time and new entries are on the top? Then indeed it looks fine.

Exactly :) Sorry that wasn't clearer before

A small update:
I tried adding some logging in PostgresSubscriptionBase to output a list of GlobalPositions received back from the db call - and I think our suspicion is correct - some events are missing:

I am still working on the "why" part of it - since they are in the database when looking manually afterwards

I think it's what I wrote it is. Transactions competing for the sequence. The order of number allocation doesn't match with the commit order.

A small update from here:
I have tried a lot of various things, including trying to set a lock on the table when appending events (as it seems like that is the way MartenDB does it) - however that did not seem to do much of a difference.
It might be my pgbouncer that complicates things even further.
We have now decided to switch to EventStoreDB, and so far that seems like a much better choice. Our postgresql instance is also not getting slammed as much now.
I still think this issue should be kept open since it might be an issue for others

For anyone interested, the issue is well-known in frameworks that support Postgres as event store, such as Axon and Marten. They have a complex gap-detection process to resolve it. MessgeDB, on the other hand, locks the "category", but they avoid the concept of the global log (and do whatever it takes to defend this decision by throwing arguments).
I checked with Oskar, who maintains Marten, and he knows two solutions:

Gap detection and tumbstoning gaps
Checking against the minimum number of inflight transactions (ref https://event-driven.io/en/ordering_in_postgres_outbox/)

My proposal was a bit different. I thought in the append SP to do the following:

Get max(global_position)
Use it with +1 to assign to events in the batch
global_position should remain identity but not generated
Competing append committed in parallel would cause PK constraint violation
Detect it and retry the whole thing

I have no idea what the performance will be though, but it will guarantee that appends happen with incrementing global position, and the subscription issue should vanish.
If anyone is interested in implementing any of the approaches, please feel free to do so.


bug: Java.Lang.Exception: Failed to load all assets

Provide environment information
System:
OS: Linux 6.5 Zorin OS 17 17
CPU: (12) x64 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
Memory: 20.44 GB / 31.18 GB
Container: Yes
Shell: 5.8.1 - /usr/bin/zsh
Binaries:
Node: 20.11.0 - ~/.nvm/versions/node/v20.11.0/bin/node
Yarn: 1.22.21 - ~/.nvm/versions/node/v20.11.0/bin/yarn
npm: 10.2.4 - ~/.nvm/versions/node/v20.11.0/bin/npm
pnpm: 8.15.2 - ~/.nvm/versions/node/v20.11.0/bin/pnpm
Describe the bug
Hello everyone, everything good?
I've been trying to run the expo project on android emulator for two days and I haven't managed to do it yet. I tried several approaches, including creating a new expo project from scratch with no dependencies, but nothing worked. I'm getting a java.lang.Exception. Does anyone know how to solve it? Apparently he is getting lost in asset imports, but there is only one asset being imported and it is in the folder.
Link to reproduction
https://github.com/t3-oss/create-t3-turbo
To reproduce
Just import the project, run pnpm i, copy .env and try to run expo project on android emulator in linux.
Additional information
No response

Hi, I'm running an exact clone of the project on both android + ios, on Windows + Mac. Can you provide us a little bit more information on the version of android you are using, the sdk and the version of expo-go on the emulator? I can spawn a vm for linux to check later today.

@VaniaPopovic I'm hitting the same issue. I'm using the following versions:
Android version: 14.0 (U) - API 34
Android SDK Platform-Tools version: 35.0.0
Emulator version: 33.1.24-11237101

Same error running
pnpm 8.5.1, emulator version <IP_ADDRESS>, Android SDK platform-tools version: 34.0.4, Android version: 9
this is the command for future commenters to get all the versions above quickly:
$ echo "pnpm $(pnpm -v), emulator version $(emulator --version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+'), Android SDK platform-tools version: $(grep 'Pkg.Revision=' $ANDROID_HOME/platform-tools/source.properties | cut -d'=' -f2), Android version: $(adb shell getprop ro.build.version.release)"

Little debugging goes by, I find this in adb logcat
02-25 00:08:38.756 28276 31619 E Loader  : java.lang.Exception: Network request failed: {"originModulePath":"/mnt/projects/coding/js/fuckturbo/apps/expo/.","targetModuleName":"./node_modules/expo-router/entry"," message":"Unable to resolve module ./node_modules/expo-router/entry from /mnt/projects/coding/js/fuckturbo/apps/expo/.: \n\nNone of these files exist:\n  * node_modules/expo-router/entry(.android.ts|.native.ts|. ts|.android.tsx|.native.tsx|.tsx|.android.mjs|.native.mjs|.mjs|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json|.android.cjs|.native.cjs|.cjs|.android.scss|.native.scss|. scss|.android.sass|.native.sass|.sass|.android.css|.native.css|.css|.android.css|.native.css|.css)\n  * node_modules/expo-router/entry/index(.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.mjs| .native.mjs|.mjs|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json|.android.cjs|.native.cjs|.cjs|.android.scss|.native.scss|.scss|.android.sass|.native.sass|.sass|.android .css|.native.css|.css|.android.css|.native.css|.css)","cause":{"candidates":{"file":{"type":"sourceFile","filePathPrefix":"node_modules/expo-router/entry","candidateExts":["",".android.ts",".native.ts",".ts",".a ndroid.tsx",".native.tsx",".tsx",".android.mjs",".native.mjs",".mjs",".android.js",".native.js",".js",".android.jsx",".native.jsx",".jsx",".android.json",".native.json",".json",".android.cjs",".native.cjs",".cjs ",".android.scss",".native.scss",".scss",".android.sass",".native.sass",".sass",".android.css",".native.css",".css",".android.css",".native.css",".css"]},"dir":{"type":"sourceFile","filePathPrefix":"node_modules /expo-router/entry/index","candidateExts":["",".android.ts",".native.ts",".ts",".android.tsx",".native.tsx",".tsx",".android.mjs",".native.mjs",".mjs",".android.js",".native.js",".js",".android.jsx",".native.jsx ",".jsx",".android.json",".native.json",".json",".android.cjs",".native.cjs",".cjs",".android.scss",".native.scss",".scss",".android.sass",".native.sass",".sass",".android.css",".native.css",".css",".android.css ",".native.css",".css"]}},"name":"Error","message":"The module could not be resolved because none of these files exist:\n\n  * /mnt/projects/coding/js/fuckturbo/apps/expo/node_modules/expo-router/entry(.android. ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.mjs|.native.mjs|.mjs|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json|.android.cjs|.native.cjs|.cjs|.android.scss |.native.scss|.scss|.android.sass|.native.sass|.sass|.android.css|.native.css|.css|.android.css|.native.css|.css)\n  * /mnt/projects/coding/js/fuckturbo/apps/expo/node_modules/expo-router/entry/index(.android.ts |.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.mjs|.native.mjs|.mjs|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json|.android.cjs|.native.cjs|.cjs|.android.scss|. native.scss|.scss|.android.sass|.native.sass|.sass|.android.css|.native.css|.css|.android.css|.native.css|.css)","stack":"Error: The module could not be resolved because none of these files exist:\n\n  * /mnt/pr ojects/coding/js/fuckturbo/apps/expo/node_modules/expo-router/entry(.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.mjs|.native.mjs|.mjs|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx |.android.json|.native.json|.json|.android.cjs|.native.cjs|.cjs|.android.scss|.native.scss|.scss|.android.sass|.native.sass|.sass|.android.css|.native.css|.css|.android.css|.native.css|.css)\n  * /mnt/projects/c oding/js/fuckturbo/apps/expo/node_modules/expo-router/entry/index(.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.mjs|.native.mjs|.mjs|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|. android.json|.native.json|.json|.android.cjs|.native.cjs|.cjs|.android.scss|.native.scss|.scss|.android.sass|.native.sass|.sass|.android.css|.native.css|.css|.android.css|.native.css|.css)\n    at upstreamResolv eRequest (/mnt/projects/coding/js/fuckturbo/node_modules/metro

Which is basically stating that expo-router (apparently the first module to look for) does not exist in app/expo/node_modules
I go check app/expo/node_modules
nothing there, just a .cache folder
tried it with pnpm, npm, bun, LOST A TON OF DATA ON METERED CONNECTION, still at loss
any idea why could that be the issue? and what's the norm when it runs? I tried versions back to 1.11.0 and the same issue occurs
WHY
node -v = 21.6.1, npm -v = 10.4.0
imma try with a different version tomorrow, until then y'all have a good night/day

WITH DOPAMINE RUSHING THROUGH MY BRAIN I CAN HAPPILY TELL YOU
to solve the issue, we can create a symbolic link that links ./node_modules to apps/expo/node_modules
From project's root, run:
ln -s ./node_modules apps/expo/node_modules

and then it works 🥳🥳🥳
THANKS FOR THE AMAZING PROJECT, this will get me some sweet honey dolla dolla baby let's gooooooooooooooooooo

This one works for me. See https://github.com/t3-oss/create-t3-turbo/issues/741#issuecomment-1812454342.

Works as expected. Thank you. For those who are still not sure how to do it:

change the 'main' property inside of expo app package.json from
from:   "main": "expo-router/entry",
to:   "main": "index.js",
add needed index.js file next to the package.json file. In my case I created apps/expo/index.js file .
inside of the index.js file I added just 1 line:

import 'expo-router/entry'

save all files and restart the expo:android server

This should work as it did in my case.


v3.5.0 bug, updated document has duplicated update time attribute

the model i use is as follow:
class Event extends Model
{
protected $collection = 'event';
const CREATED_AT = 'create_time';
const UPDATED_AT = 'update_time';
}
when i update an exist document, the result is :
{
"_id": ObjectId("5c77ec4f48079835183e08c4"),
"update_time": ISODate("2019-02-28T14:12:31.000Z"),
"create_time": ISODate("2019-02-28T14:12:31.000Z"),
"event": {
"update_time": ISODate("2019-03-01T04:37:33.000Z")
}
}
there's an extra sub dcoument "event" with the new "update_time" attribute in the original document,
the problem appears in latest version v3.5.0

Can confirm, this happens to me too.

@rennokki, this problem fixed in commit sha and latest release of library will be work correctly

Guess this has to be closed?

@rennokki, i think yes

@tenstep @jenssegers Close this pls?


Chapter 1 in Portuguese

Added the chapter 1 in Portuguese.

Looks great. Thx. Sorry for delay. Was on Vacation and had to capture up with work

Will upload tonight.


iOS, sprite in assets

Hi all,
I'm working on a iOS app using Maplibre-gl-native  (version 5.12.2). it works like a charm. But i've a problem displaying icons.
with following line (in the style json file) all the icons are displayed perfectly
"sprite": "https://maputnik.github.io/osm-liberty/sprites/osm-liberty",
but if i change this line in order to use offline sprites, nothing is displayed, and no errors are raised.
"sprite": "asset://sprites/bright-v8",
I've checked twice that the files bright-v8.json and bright-v8.png are embedded and accessible in the bundle with the required path.
So I suspect that there is a problem accessing the sprites from the bundle.
I'm running out of solutions for this problem. is there a workaround to use local files rather than distant ones ?
best regards

finally achieved to make it work:

I downloaded osm-liberty sprites from https://maputnik.github.io/osm-liberty/sprites/osm-liberty
I embedded the files directly at the top of the bundle
everything works well now

it looks like the problem was simply with the bright-v8 files. can't figure out what's wrong with them (structure looks good, and the requested sprites looks OK too. )

Thanks for posting this solution. Let me close this issue since you seem to have found a fix...


Revert "Added GA API version (2021-07-01)"

Reverts Azure/azure-rest-api-specs#14937

The previous PR are not ready for public, so revert it .


Editor in Space Cannot Delete Tag on Dataset

The editor of a space cannot delete tags on datasets contained within that space.
To Reproduce

User A: Create space, add dataset to that space, and add a tag.
Add User B to space as editor.
User B: Delete tag, then refresh page.
User B: After refresh, tag re-appears.

Add and delete tag are listed as permissions for the Editor Role, so this is definitely a bug.

Could use some feedback about whether this is intended performance or not.
It looks like the removeTags method in api.Datasets is written so that only the user who added a tag can remove the tag. This occurs after checking the DeleteTag permission where a check is made whether the current user is the user who added the tag.
If that is how it should work, then it might make sense that the 'delete x' would only appear on tags added by the current user, so it's clear they can't delete other tags.
Either fix should be relatively easy, just wanted to ask.

finished. merged

future, if you add to the commit or PR that fixes #XYZ the issue will be closed when the PR is merged.


How to constrain TERMINATE in specific category

I have a termination point defined by "," as below, and I want it to only apply to the is_family category. However, after some testing, it seems to apply to all other categories too, e.g. is_hypothetical. Is this as intended?
    {
      "category": "FAMILY",
      "literal": ",",
      "direction": "TERMINATE"
    }

Currently, "TERMINATE" applies to all other modifier types. But this is an interesting idea and could be a good use case to address in the future, could definitely see this being useful in the future.
Will close this issue for now but will keep this idea in our backlog so we could potentially add a feature addressing this.


Add missing bounty focuses

21:46:14 [BountyOptimizer] getSuggestedActivities(): Focus not found for bounty; bountyHash=848944256
21:46:14 [BountyOptimizer] getSuggestedActivities(): Focus not found for bounty; bountyHash=848944258
21:46:14 [BountyOptimizer] getSuggestedActivities(): Focus not found for bounty; bountyHash=848944257

Discovered additional unregistered bounties:
[BountyOptimizer] getSuggestedActivities(): Focus not found for bounty; bountyHash=2930833972
[BountyOptimizer] getSuggestedActivities(): Focus not found for bounty; bountyHash=2930833973
[BountyOptimizer] getSuggestedActivities(): Focus not found for bounty; bountyHash=2930833975
[BountyOptimizer] getSuggestedActivities(): Focus not found for bounty; bountyHash=2930833968

Fixed as of https://github.com/rslifka/reckoner-app/commit/5a87e80f455f27e4b0888d004f0f56bdc2f2f980


Claim Certificates - Challenges - Text Rendering Issues

This is generic to all of the "Claim your XYZ Certificate" Pages.
/cc @hallaathrad

@raisedadead Could we maybe use something like Bootstrap Alerts for this, or just move the paragraph tag onto a new line?

I am not sure actually, I think the line should be contained within area on the right.

@raisedadead Oh, I see...