[Proposal]:  Use styleguide for examples

Instead of demo application, we may use styleguidist.
It allows to write markdown files with runnable examples.
To run it type
yarn start

in the directory with library.
If we agree to use it, I will convert the last example to md file and remove demo folder.

This looks really nice!
Did not use styleguidists before, but love similar tooling i.e in https://github.com/storybooks/storybook

It looks really good!
This implies that we will need to host the docs somewhere outside of github, right?

we can use github pages. styleguidist build can generate static version.

@bzz yep. Both project are mature and quite popular. The main difference in storybook you define stories as javascript. And with styleguide as markdown.
I have update the PR. The main changes.

Quckstart:

Code in the controlled example is documented

I decided not to port the last example from demo, but show only the one with text editor.

Demo is removed

thanks a lot for comments! Fixed.


EKS error can't get Postee and PosteeUI running at the same time because of the volumes

Description
I am getting errors because 2 services are deployed using the same volume and in EKS, the EBS volumes doesn't support ReadWriteMany
11m         Warning   FailedAttachVolume             pod/posteeui-55b747754c-wdsr6                         Multi-Attach error for volume "pvc-db7fb209-8020-42a6-995b-c9fa99242c43" Volume is already used by pod(s) postee-0, posteeui-67f5d465fc-bhklv
11m         Warning   FailedAttachVolume             pod/posteeui-55b747754c-wdsr6                         Multi-Attach error for volume "pvc-3e7f965a-dfb3-4121-82f1-0df05e30d046" Volume is already used by pod(s) postee-0, posteeui-67f5d465fc-bhklv
9m53s       Warning   FailedMount                    pod/posteeui-55b747754c-wdsr6                         Unable to attach or mount volumes: unmounted volumes=[postee-config postee-db], unattached volumes=[postee-config kube-api-access-mj9r9 aws-iam-token postee-db]: timed out waiting for the condition

Should the UI communicate to postee through an API? or use a DB?
What did you expect to happen?
Have 2 services running
What happened instead?
I can only have 1 service running
Postee Chart Version: v2.9.0

Hi @ichasco-heytrade  I will take a look! Thank you

Hi,
I've also encountered this error and worked around it by using the following podAffinity setting in the Helm Chart:
# BUG: postee-0 und posteeui both need access to the same PVC (database) so we need to ensure both run on the same node
affinity:
  podAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
    - labelSelector:
        matchExpressions:
        - key: app.kubernetes.io/instance
          operator: In
          values:
          - postee
      topologyKey: kubernetes.io/hostname

This way both the postee-ui and the postee service run on the same node and volume sharing works. This is not always possible, so either using a RWX volume or a dedicated database would be a better option.
Best regards,
Florian.

I had the same issue today running version 2.11.2 on a EKS cluster. We solved it using the approach described above after changing the requests CPU resources. I would say that it would be a good idea to recommend that setting in the documentation when running in managed EKS clusters.


Settings

Settings will make Nagatoro more customizable and allow guild owners to disable certain functions or block the bot from posting in channels they desire to remain bot-free.

[x] Disable all commands in certain channels
[ ] Disable level up messages
[ ] Disable channels from giving exp (like #spam or #bots)

The feature with disabling commands in channels might just be unnecessary. Everyone can just disable bot's access to any channel with channel permissions. Either drop this feature or consider updating channel permissions (I'm not sure if disabling your own permissions is possible) instead of keeping a disable list in the database.
When it comes to point 2, I'm thinking of removing level up messages entirely, because they don't really provide any useful information and 90% of bigger guilds would probably turn them off.
Point 3: This is already partly in place (Messages of 5 or less in length, valid commands, and messages in channels named '#spam' are ignored when counting exp), but will need to be replaced with a more custom solution once #3 is implemented.


Statusline change diagnostic signcolumn color

With the plugin, diagnostic signcolumn turns gray. Maybe conflicting color group ?

hmm  all the color group of diagnostic has prefix  Galaxy. and I think you should check problem with a minal config. can't reproduce your problem


Add git graph all to command palette

I think the default git graph command should not have --all arg applied.
I would prefer to have a new command git graph all to view all refs.

I'll make this globally configurable.  In the future, the graph view will be more interactive and allow the user to open and/or view selected commits and branches.  For that reason, the default will remain as-is.  But if you're willing to sacrifice that functionality, there's no reason why this can't be configurable on a per-user basis.

Thanks for clarifying!

This is done, can we close this one, @divmain?

Good point.  Thanks @stoivo!


_has parameter value is incorrectly interpreted as a Reference when the parameter is chained

Describe the bug
When submitting a search Patient?_has:Observation:subject:device.identifier=deviceID or Patient?_has:Observation:subject:device.identifier=urn:system|123 the results will be correctly returned.
Patient?_has:Observation:subject:device.identifier=http://hl7.org/fhir/NamingSystem/deviceIds|deviceID will cause an exception indicating that the chain is invalid.
If a system like http://hl7.org/fhir/NoResourceType/deviceIds is used, it will claim that the NoResourceType is an invalid resourceType.
To Reproduce
Execute the search Patient?_has:Observation:subject:device.identifier=http://hl7.org/fhir/NamingSystem/deviceIds|deviceID on a hapi-fhir-jpaserver and receive an exception instead of an empty bundle.
Expected behavior
I expect that the chained parameter is accepted and works, as it already works for systems starting with urn:, or for token parameters without a system.
Environment (please complete the following information):

HAPI FHIR Version: 6.7.11
OS: [e.g. iOS]: Any
Browser [e.g. chrome, safari]: Any

Hello @jamesagnew @tadgh @fil512,
Not sure if this issue is something that should be solved or if the chained parameter functionality is meant to be the way it is. Could you please take a look at the issue/PR and let me know?
Thanks!


boilr failing with time parsing errors

Just running a template that works for other members of my team, seems there is no date parsing that we are doing in these templates, and this is internal to boilr.
[✘] use: parsing time "Thu Dec 14 11:16 +0700 +07 2017" as "Mon Jan 2 15:04 -0700 MST 2006": cannot parse "+07 2017" as "MST"

updating boilr fixed it.


Remove RSpecRails/InferredSpecType

At the time this cop was added, it was noted that this was legacy behavior left as the default for people migrating to RSpec 3. Now RSpec 7.1.0 has removed this default to make it clear that this is deprecated / legacy behavior, let's delete this cop.
Replace this text with a summary of the changes in your PR. The more detailed you are, the better.

Before submitting the PR make sure the following are checked:

[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Updated documentation.
[x] Added an entry to the CHANGELOG.md if the new code introduces user-observable changes.
[x] The build (bundle exec rake) passes (be sure to run this locally, since it may produce updated documentation that you will need to commit).

@bquorning Ha! I haven't heard about BreakVer, and agree with its message. However, I'm slightly concerned of CI breakages - those people who explicitly enabled this cop in their configs (by default it's still pending) will have to remove a couple lines from their .rubocop.yml (an effort usually associated with a major version update). Not a big effort, low chance of making someone's CI red (for more than the gem update PR itself), unlikely reputational changes.
My worry here is the incompatibility of BreakVer and SemVer. I'd be totally happy if everyone in our ecosystem moved to BreakVer overnight, so there's no surprise. But this is impossible, not to say for older versions.
On the other hand, we can do a major release.
Along the way, there are quite some pending cops waiting to be enabled here, and also in rubocop-capybara and rubocop-factory_bot. I haven't seen major complaints from NewCops: enable early adopters. It's high time to release all that!

Fixed master CI config/docs failure, rebased.

Fixed master CI config/docs failure, rebased.

Thanks for updating this.


trouble crosscompiling with threads (and dependencies)

Hi,
thanks for your great toolchains and also howto-tutorials! It is very much appreciated.
I'm having some trouble crosscompiling a project that uses Boost::program_options and thread
I'm using the sbuild schroot setup (to get boost dependency) and have installed the needed packages:
sudo sbuild-apt rpizero-bullseye-armhf apt-get update
sudo sbuild-apt rpizero-bullseye-armhf apt-get install raspi-copies-and-fills libboost-program-options-dev

Then I try to compile with:
triple=armv8-rpi3-linux-gnueabihf         # Select the main toolchain
variant_triple=armv8-rpi4-linux-gnueabihf # Select a specific variant
# Configure
cmake -D CMAKE_BUILD_TYPE=Debug -D CMAKE_SYSROOT=/var/lib/schroot/chroots/rpizero-bullseye-armhf  -S . -B build-$variant_triple --toolchain ~/opt/x-tools/$triple/$variant_triple.toolchain.cmake
#                                             using the sbuild schroot sysroot - see above!!!
# Build
cmake --build build-$variant_triple -j

but get this error:
-- The CXX compiler identification is GNU 13.1.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/albert/opt/x-tools/armv8-rpi3-linux-gnueabihf/bin/armv8-rpi3-linux-gnueabihf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - no
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - not found
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Threads (missing: Threads_FOUND)
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.22/Modules/FindThreads.cmake:238 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:5 (find_package)

-- Configuring incomplete, errors occurred!

As you can see, there is a problem with the threads part.
The CMakeLists.txt contains this
#...
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_package(Threads REQUIRED)
#...

How does one go about, getting this to work? Is some package missing from the schroot? Or something else?
As initial investigation.... what is interesting is that the following
find ~/opt/x-tools/armv8-rpi3-linux-gnueabihf/armv8-rpi3-linux-gnueabihf/sysroot/ -name "*pthread*"

shows
/home/superman/opt/x-tools/armv8-rpi3-linux-gnueabihf/armv8-rpi3-linux-gnueabihf/sysroot/lib/libpthread.so.0
/home/superman/opt/x-tools/armv8-rpi3-linux-gnueabihf/armv8-rpi3-linux-gnueabihf/sysroot/lib/libpthread-2.27.so
/home/superman/opt/x-tools/armv8-rpi3-linux-gnueabihf/armv8-rpi3-linux-gnueabihf/sysroot/usr/lib/libpthread_nonshared.a
/home/superman/opt/x-tools/armv8-rpi3-linux-gnueabihf/armv8-rpi3-linux-gnueabihf/sysroot/usr/lib/libpthread.a
/home/superman/opt/x-tools/armv8-rpi3-linux-gnueabihf/armv8-rpi3-linux-gnueabihf/sysroot/usr/lib/libpthread.so
/home/superman/opt/x-tools/armv8-rpi3-linux-gnueabihf/armv8-rpi3-linux-gnueabihf/sysroot/usr/include/pthread.h
/home/superman/opt/x-tools/armv8-rpi3-linux-gnueabihf/armv8-rpi3-linux-gnueabihf/sysroot/usr/include/bits/pthreadtypes.h
/home/superman/opt/x-tools/armv8-rpi3-linux-gnueabihf/armv8-rpi3-linux-gnueabihf/sysroot/usr/include/bits/pthreadtypes-arch.h

so the sysroot in your toolchain seems to have the required pthread files.
But I am using the other sysroot in the schroot (/var/lib/schroot/chroots/rpizero-bullseye-armhf), because I have boost dependencies.
Checking the actually used sysroot (sbuild- schroot) for pthread:
sudo find /var/lib/schroot/chroots/rpizero-bullseye-armhf/  -name "*pthread*"

shows
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/lib/arm-linux-gnueabihf/libpthread.a
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/lib/arm-linux-gnueabihf/libpthread.so.0
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/lib/arm-linux-gnueabihf/libpthread-2.31.so
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/lib/arm-linux-gnueabihf/perl/5.32.1/bits/pthreadtypes-arch.ph
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/lib/arm-linux-gnueabihf/perl/5.32.1/bits/pthreadtypes.ph
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/lib/arm-linux-gnueabihf/libpthread.so
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/share/gdb/auto-load/lib/arm-linux-gnueabihf/libpthread-2.31.so-gdb.py
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/include/boost/thread/pthread
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/include/boost/thread/pthread/pthread_helpers.hpp
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/include/boost/thread/pthread/pthread_mutex_scoped_lock.hpp
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/include/boost/smart_ptr/detail/lwm_pthreads.hpp
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/include/boost/interprocess/sync/posix/pthread_helpers.hpp
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/include/boost/signals2/detail/lwm_pthreads.hpp
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h
/var/lib/schroot/chroots/rpizero-bullseye-armhf/usr/include/pthread.h

Seems it also has pthread. Hmmm....

Click here for code, that one can try and cross-compile
CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(go VERSION 0.1.0 LANGUAGES CXX)

set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_package(Threads REQUIRED)

find_package(Boost REQUIRED COMPONENTS program_options)

add_executable(go main.cpp)
target_link_libraries(go PRIVATE Boost::program_options Threads::Threads)

include(GNUInstallDirs)
install(TARGETS go
        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})

main.cpp
#include <boost/program_options.hpp>
namespace po = boost::program_options;
#include <iostream>
#include <thread>

int main(int argc, char *argv[]) {
    try {
        // Define and parse the command line arguments
        po::options_description desc("Options");
        desc.add_options() // clang-format off
            ("help", "Print usage information and exit")
            ("sec", po::value<unsigned>(), "The number of seconds to run a thread")
        ; // clang-format on
        po::variables_map vm;
        po::store(po::parse_command_line(argc, argv, desc), vm);
        po::notify(vm);

        // Print a usage message if the --help flag was specified
        if (vm.count("help")) {
            std::cout << "Usage: " << argv[0] << " [options]\n\n"
                      << "Run a thread for a particular number of seconds.\n\n"
                      << desc << "\n";
            return 0;
        }

        // If the --sec option was specified, use that, otherwise use 1 second
        unsigned sec = 1;
        if (vm.count("sec")) {
            sec = vm["sec"].as<unsigned>();
        }
        std::cout << "Running a thread for " << sec << " seconds" << std::endl;

        std::thread th([sec]() {
                         std::this_thread::sleep_for(std::chrono::seconds(sec));
                       });

        th.join();
    } catch (std::exception &e) {
        // Print any errors we may run into (e.g. unrecognized options)
        std::cerr << "error: " << e.what() << std::endl;
        return 1;
    }

    return 0;
}

By the way, if I go ahead an use ubuntu's own crosscompiler /usr/bin/arm-linux-gnueabihf-g++, I then the thread-stuff works and I get:
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- The CXX compiler identification is GNU 11.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/arm-linux-gnueabihf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
## ... etc ...

Also: If I use your toolchain, but not the sbuild schroot sysroot, calling like this:
triple=armv8-rpi3-linux-gnueabihf         # Select the main toolchain
variant_triple=armv8-rpi4-linux-gnueabihf # Select a specific variant
# Configure
cmake -D CMAKE_BUILD_TYPE=Debug `#-D CMAKE_SYSROOT=/var/lib/schroot/chroots/rpi-bullseye-armhf`  -S . -B
#                                    commenting out the schroot above!!!!!!!!!!!!!!
build-$variant_triple --toolchain ~/opt/x-tools/$triple/$variant_triple.toolchain.cmake
# Build
cmake --build build-$variant_triple -j13

then I get:
-- The CXX compiler identification is GNU 13.1.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/albert/opt/x-tools/armv8-rpi3-linux-gnueabihf/bin/armv8-rpi3-linux-gnueabihf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Boost (missing: Boost_INCLUDE_DIR program_options)
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.22/Modules/FindBoost.cmake:2360 (find_package_handle_standard_args)
  CMakeLists.txt:7 (find_package)

-- Configuring incomplete, errors occurred!

So then threads if found (yay!!), but then I have a problem with boost program options not being found.

See https://github.com/tttapa/RPi-Cross-Cpp-Development/issues/2#issuecomment-1431703892 for an explanation and a fix.

By the way, if I go ahead and use ubuntu's own crosscompiler /usr/bin/arm-linux-gnueabihf-g++, I then the thread-stuff works and I get:
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success

This is surprising to me. Which pthread library does it select? Does it link correctly?

See tttapa/RPi-Cross-Cpp-Development#2 (comment) for an explanation and a fix.

Thanks!
(Regarding ubuntu's own crosscompiler: Ah sorry, I was not clear: with ubuntu's own crosscompiler, I was not using the sbuild schroot sysroot. So it found it's own pthread, but the boost depencency failed.)

(Regarding ubuntu's own crosscompiler: Ah sorry, I was not clear: with ubuntu's own crosscompiler, I was not using the sbuild schroot sysroot. So it found it's own pthread, but the boost depencency failed.)

Ah okay, then it makes sense :)


Can't change settings on RootHide&Serotonin

I’ll elaborate; basically the tweak has to be patched by the RootHide patcher (this causes no issues for most tweaks, also may not be the problem here), and then when installed, it looks like you can change the settings at first, but when you change anything, as soon as you go up a menu level and then back in, the change reverts to the default. Cylinder Remade appears to work fine so it could be a difference in how settings work between the two tweaks if there are similarities?

Update: it looks like the preference file isn’t being created or read from (assuming it is /var/mobile/Library/Preferences/com.ryannair05.cask3.plist)
The file wasn’t there when I looked to begin with, and after having a shot at manually creating it with different settings and respringing, there was no change

ok

Yep,.. Doesn't work on roothide serotonin 🤔
Seems like the project has been abandoned 🫤

Seems like the project has been abandoned 🫤

Not abandoned, I'll update the tweak to fix this issue when I have the time to do so

Fixed in Version 1.0.3!


:sparkles: Add new exercise : Affine Cipher

Fix #886

You're on a roll! Are you on our maintainers list yet? Would you like to help out with v3?

You're on a roll! Are you on our maintainers list yet? Would you like to help out with v3?

Idk if I'm on the maintainers list yet, i guess not. I've already started a PR to help with v3 and I'll be glad to help more 👍


Notify user when server is undergoing update, resulting in 503 response

When the Node server is getting new data, it will return a 503 error code during some requests such as iterating through a search (see #435).  Since the interface becomes unresponsive as a result (and error codes appear in the JS console), it would be preferable if the client displays a subtle pop-up to let the user know that the server is temporarily unavailable because of data updates.

@nav-mohan noted that this would not be an issue if we used a database, see #433 (i.e., would not have to restart the node server) - note we would have a duplicate database, so there is always an intact DB available (node server would have to point to this one, somehow...)

We can use fs.watch for now to avoid restarting the node server when new data files are detected and then serve the 503 error

Looking into using PM2. If we run PM2 in cluster mode. it'll allow us to run multiple instances of our node server. If we use pm2 reload PM2 will restart these multiple instances one by one so it won't have downtime

would need to update INSTALL.md to include this as a dependency for running a local instance

@GopiGugan testing, reports that PM2 taking up about 7.2GB RAM

Fixed with PR #449

Hey Gopi, I'm running late for our meeting at 10:30. Could we reschedule
for 11:00 please?
On Thursday, February 16, 2023, Gopi Gugan @.***> wrote:

Closed #436 https://github.com/PoonLab/covizu/issues/436 as completed.
—
Reply to this email directly, view it on GitHub
https://github.com/PoonLab/covizu/issues/436#event-8542447039, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AQPFLZZLLMP7KYA37WY65ETWX3BTLANCNFSM6AAAAAASYHN44A
.
You are receiving this because you were mentioned.Message ID:
@.***>


Create it/tn/pavoniani.txt

Institution/School Name
{Istituto Pavoniano Artigianelli per le Arti grafiche di Trento}
Instiution/School Website
{pavoniani.tn.it}
Email Users
Please place an x between the square brackets if yes

[x] Students
[x] Academic/Teaching Staff
[ ] Other/Support Staff
[ ] Alumni

Education Levels
Please place an x between the square brackets if yes

[ ] Post-graduate research
[ ] Graduate School
[ ] College (University) or Undergraduate School or equivalent
[x] Community College or equivalent
[x] High School or equivalent
[ ] Elementary School or equivalent

Hi,
It would appear that you have opened a pull-request containing commits from JetBrains/swot which is a fork of this repository (leereilly/swot).
If you intended to create a pull request for JetBrains/swot, may I suggest you create a pull request there.
We cannot accept your pull request if it contains more than one institution, as is the case here.
If you want your institution to be included please follow the following steps:

Delete your fork of swot
Create a new fork of swot based upon this repository
Create the file (and directories if necessary) to add the institution to your fork
Open a new pull request against this repository to merge your fork.

I am closing this pull request, as it is for the wrong repository.


python vs pythonw headache

In Python 2, we currently run all GUIs with #!/usr/bin/env pythonw, which is required for Anaconda and works for other distributions of Python.
The problem is, not all versions of Python 3 include pythonw.  Continuing to use the same shebang line means that some version of pythonw from the $PATH will be grabbed, 3.0 or no.  Since OS X comes with Python 2 installed by default, you are going to get a pythonw 2.7 if you don't have a pythonw 3.0, which then results in a lot of syntax errors and everything breaks.
Now, there are a few possible ways for making a conditional shebang line, but it isn't pretty.
You can see some info about this in these stack overflow questions.
One very elegant solution.  Unfortunately our situation is a bit too complicated to implement in this way, as far as I can tell.
A solution that is more customizable and usable in our case
I've written a wrapper script that first checks if there is a pythonw that is 3.0.  If so, the script will use that pythonw to run the script name and args that follow.  If not, the script looks for a python that is 3.0., and tries to use that.  Usage looks like this:
wrapper.sh magic_gui.py -DM 3

It works with both Anaconda and with EDM Python 3.  I don't love this solution, but I'm not sure if there is a better way.
Thoughts?

You could possibly do the conditional sh bang option by using python -V to check python version. Something like:
if pythonw and 3 in pythonw -V then exec pythonw
if python and 3 in python -V then exec python
Trouble is trying to do that with shell code which is not ideal for such one line conditionals. This might be more trouble than it is worth though, and I think the wrapper a perfectly good solution for the time being.

I'll try this out, thanks.

Right, so the problem remains with the elegant solution that I can't figure out how to write it simply enough and without internal quotations so that it can live in a python script.  I'm not that experienced with bash, unfortunately.
@Caoimhinmg, any ideas about syntax for the above suggestion to make it fit?  Otherwise the wrapper may have to do.

I'm okay at bash at best, I mostly just use it to move large amounts of stuff around my file system. There is no way my bash voodoo is good enough for this. I can go see what the different Linux forums have on this kind of thing, but it might take more time than it's worth. I think for now we let this rest and re-examine this at the end if we can solve the other problems.

Ok, I'll consider this on hold.


Fix wandb API key export in finetuning template

What does this PR do?
This is a tiny PR to fix wandb key export in the finetuning template. Currently, we exported the key through an iPython shell command !export WANDB_API_KEY=xxx . This, however, does not actually accomplish what we want, because training is launched with a separate shell command !python main.py ... . Each shell command gets executed in a different subshell, which means WANDB_API_KEY does not transfer over to the training script env. This PR fixes the issue by exporting env var through os.

Looks like I missed the same command in our cookbook! Added this now. Other templates don't have this issue.


Tests

We need:

more unit tests
module tests
GUI tests
code coverage analysis
And a system that allows us / that executes the tests automatically in a regular interval

This remains to be implemented.


Changing MRTK folder paths results in problems with Controller Mapping

Overview
Moving the MRTK folders to another folder than Assets (My path was in this case Assets/Libs/MRTK/MixedRealityToolkit... etc) results in issues with Controller Mapping, as the EditorWindow (ControllerWindowPopup.cs) is hardcoded to open up directly from Assets folder.
Expected Behavior
My idea would be one or more of potential scenarios:

Controller Mapping working no matter where MRTK folders are placed
Easily readable LogErrors when attempting to open the ControllerMapping from wrong path
Highlighted in documentation that moving the project to a different folder creates issues (Like it is highlighted with changing the camera position)

Actual Behavior
NullPointerReference saying it couldn't close the window because it is null from the ControllerWindowPopup.cs
Steps to reproduce
-Download MRTK RC1
-Generate Custom Profiles (Particularly ControllerMapping profile)
-Move all folders into a new folder called MRTK
-Open any of the EditorWindows from the ControllerMapping profile
Unity Editor Version
2018.3.13f
MRTK Version
MRTK RC1

I thought that this might have been fixed recently because we did some work to make relative paths work (i.e. to support the MRTK being put in non-root-asset folder locations), but it looks like it didn't quite cover this case. We'll take a look here

A long time later, this got fixed.


reduce internal dependency on 0 terminated strings

The idea is to eventually find and fix them all, then switch to D style strings. But finding them all is hard.

This is strndup right?  Could you add xstrndup to root.rmem so we don't have to duplicate the memcpy + zero terminate pattern everywhere?

The 0 termination can be more than one byte long. And I want to get rid of the 0 termination anyway.

Yes, but this pattern:
+            depmsg = cast(char*)mem.xmalloc(se.len + 1);
+            memcpy(depmsg, se.string, se.len);
+            depmsg[se.len] = 0;

is repeated quite a few times.  And I assume there are more to come.
Another option would be to add a new member function to StringExp, which could be changed to return string when we're ready.

I don't like strndup - I have a hard time remembering just what it does, and it likely has not received the intensive optimizations that memcpy has. I see no advantage to it.
Another thing I want to do to StringExp is have it always store its data as UTF8, and then convert to wchar or dchar only on demand. I have noticed latent bugs in dmd where it is assumed to be UTF8. Always storing it as UTF8 will eliminate those bugs and will make the logic much simpler to work with.

But please pull this one first :-)

So what I see here is this pattern repeated three times:
namez = cast(char*)mem.xmalloc(se.len + 1);
memcpy(namez, se.string, cast(size_t)se.len);
namez[se.len] = 0;

This screams for being put in a function. Either call strndup or write your own, but please don't commit such code duplication. Thanks.

Could you add xstrndup to root.rmem so we don't have to duplicate the memcpy + zero terminate pattern everywhere?

Which reminds me, we can remove those x prefixes now it's in D.  Possible PR incoming...

This screams for being put in a function. Either call strndup or write your own, but please don't commit such code duplication.

I would concur here.

done

Thanks, this is much better.

@ibuclaw

Which reminds me, we can remove those x prefixes now it's in D. Possible PR incoming...

Don't they still need to be called from the glue layer?

Don't they still need to be called from the glue layer?

If I need to allocate memory, there's gcc gc.  The problem was that when you (or someone) changed around the Array implementation to Array, suddenly rmem.h was being pulled into places it wasn't welcome.
I reckon that the uses of rmem exposed aren't necessary if allocation is kept in the frontend.

Array still uses rmem, and is still used from the glue layer in dmd.

This pull request introduced a regression:
https://issues.dlang.org/show_bug.cgi?id=15369


✨[feature Request]: Revamp the Logo design

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description
Updating logo to enhance brand identity and better visual appeal.
Use Case
A well-designed logo creates a memorable first impression, showcasing professionalism and building trust from the get-go.
Benefits

Increased Brand Recognition
Professional Appearance

Add ScreenShots

Priority
High
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24EXTD contributor
[X] I have starred the repository

Would love to work on this too


unable to run in Tmux

Hello,
I didn't see anything on the wiki about this, please advise or close if this is a system-related issue, not actually a bug in the project.
I am using an unmodified config.toml file and have replicated the issue when using both termbox and the termbox2-git instsalled on my system.
When in a Tmux session, I run the command cointop and I receive the error:
termbox: error while reading terminfo data: termbox: unsupported terminal
Happy to provide system info as required.

in case anybody else is having this issue a simple TERM=screen-256color cointop should do the trick.
It is complaining that it does not recognize termbox so telling it to use another terminal emulator's terminfo should get it to run.


Legacy warning:  does not support changing 'store' on the fly

It seems, that this warning is no longer relevant.

This is confusing, and does not describe real issue - https://github.com/reactjs/redux/pull/667

If the wording needs improvement, a PR would be best. But the basic idea of not automatically accepting store hot reloads still applies.


Update installation instructions for Docker

Is your suggestion related to a missing or misleading document? Please describe.
Update [1] for IS 6.0.0.
[1] https://wso2.com/identity-and-access-management/install/docker/get-started/

Fixed with temporary solution.


Error in howto (line 121)

Dear Junior
Pleasem how do I resolve this.
Error in howto (line 121)
[obj{imod},postSims{imod}]=posterior_simulator(estim_models{imod},'mcmc_number_of_simulations',...

Hi I can't see what the problem is from your description.
J
On Mon, Dec 28, 2020, 18:18 addsam004<EMAIL_ADDRESS>wrote:

Dear Junior
Pleasem how do I resolve this.
Error in howto (line 121)
[obj{imod},postSims{imod}]=posterior_simulator(estim_models{imod},'mcmc_number_of_simulations',...
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jmaih/RISE_toolbox/issues/156, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AATKBTYLV6ICPEAKEVKCNOLSXC4VBANCNFSM4VMILMWQ
.

I  run the Tao Zha folder tutorial 3 and this bug reported.
On Mon, 28 Dec 2020, 6:28 pm Junior Maih<EMAIL_ADDRESS>wrote:

Hi I can't see what the problem is from your description.
J
On Mon, Dec 28, 2020, 18:18 addsam004<EMAIL_ADDRESS>wrote:

Dear Junior
Pleasem how do I resolve this.
Error in howto (line 121)

[obj{imod},postSims{imod}]=posterior_simulator(estim_models{imod},'mcmc_number_of_simulations',...

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jmaih/RISE_toolbox/issues/156, or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AATKBTYLV6ICPEAKEVKCNOLSXC4VBANCNFSM4VMILMWQ
.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jmaih/RISE_toolbox/issues/156#issuecomment-751820940,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFJXAKGNO5IXWAN2MEF764TSXDE6TANCNFSM4VMILMWQ
.

Please reopen the issue if you are still having a problem with this


[BUG] Blank application on Linux Mint 19.3 Xfce

Image :
https://serving.photos.photobox.com/298734121c2c71d54ca821248745eb0014b5f4be1f906179e7b89c2e0a21fb271f5669cc.jpg

Hey @elmunats Thanks for opening the issue. I need a bit more info about the commands you have ran to run the application.

Same here on Ubuntu 18.04 using latest git code.
external "events":1 Uncaught ReferenceError: require is not defined
    at Object.events (external "events":1)
    at __webpack_require__ (bootstrap:785)
    at fn (bootstrap:150)
    at Object../node_modules/webpack/hot/emitter.js (emitter.js:1)
    at __webpack_require__ (bootstrap:785)
    at fn (bootstrap:150)
    at Object../node_modules/webpack/hot/dev-server.js (dev-server.js:50)
    at __webpack_require__ (bootstrap:785)
    at fn (bootstrap:150)
    at Object.1 (global.scss?6d54:45)

Hey @knro can you post the commands you used to run the application?

The exact ones listed on the Github page. I first went via that route and install the Debian package on 18.04 and when I started it I got blank. Then I just went ahead to the instagram-live-streamer directory and type npm start and got this:
Compiled with warnings.

./src/Pages/Home/index.jsx
  Line 122:9:  img elements must have an alt prop, either with meaningful text, or an empty string for decorative images  jsx-a11y/alt-text

./src/components/Toggle/index.jsx
  Line 2:8:  'styles' is defined but never used  no-unused-vars

Search for the keywords to learn more about each warning.
To ignore, add // eslint-disable-next-line to the line before.

It opened a tab in Chrome and when I checked the console logs, I found the issue I reported above. I tried to see if it is some electron issue but it appears that npmIntegration is already set to true in electron.js

@knro instead of npm start try npm run electron dev

That works! and I can login as well. I haven't yet tested the live stream, but it's looking good!

The live stream worked, though the comments were disabled and I had to toggle a few times on/off to get it work. There is no way to watch the comments from the app?

There is a known bug with the comments switch. Viewing comments are not supported as of now. Hopefully in future releases we you will be able to view and add comments :+1:

Hey @elmunats Thanks for opening the issue. I need a bit more info about the commands you have ran to run the application.

thank you very much, it has been working well on linux mint.


Support of v4r2 addresses

Could you add support of v4r2 addresses?

Kinda busy at the moment. A refactoring of https://github.com/anomaly-guard/nft-deployer/blob/main/pyfift/wallet/wallet_v3_r2.py must work fine. Check and if you succeed I'll be happy to merge PR.


CASMCMS-7937 Convert repo to gitflow

Summary and Scope
Summarize what has changed. Explain why this PR is necessary. What is impacted? Is this a new feature, critical bug fix, etc?
Transition repo to gitflow using gitversion tool.
Is this change backwards incompatible, backwards compatible, or a backwards compatible bugfix?
backwards compatible
Issues and Related PRs
List and characterize relationship to Jira/Github issues and other pull requests. Be sure to list dependencies.

Resolves CASMCMS-7937

Testing
No code changes.
Pull Request Checklist

[x] Version number(s) incremented, if applicable
[x] Copyrights updated
[x] License file intact
[x] Target branch correct
[x] CHANGELOG.md updated
[x] Testing is appropriate and complete, if applicable
[x] HPC Product Announcement prepared, if applicable

License check is green, but showing as pending here. Not sure how to kick the system to get the right result shown.


Add QR Code for Crypto Deposity Address

Depends on https://github.com/opencollective/opencollective/issues/4484
We need to add the QR code in the last (checkout) section of the contribution flow for crypto contributions. In this issue we will not add any API related logic but rather the support to view the QR code based on a hard-coded url.
We already use the qrcode.react in our 2FA flow. We can use this to show the QR code.

[ ] Create the order on the api side when the user visits this section.
[x] Show the QR code based on a hard-coded url.

The figma design is given below:
https://www.figma.com/file/ZQBMWhnGGtRWeIZknFW1eP/[OC-Design]-Production-Ready-✅?node-id=13426%3A207907

The wallet address is not an URL, it's a string such as 13FBJasPZHeqwKqyGs6ACcLCArMK13MZaG.
In the design, we can see a logo in the middle of the QR code, how are you planning to handle this? Have you checked that is is technical correct?

The wallet address is not an URL, it's a string such as 13FBJasPZHeqwKqyGs6ACcLCArMK13MZaG.
In the design, we can see a logo in the middle of the QR code, how are you planning to handle this? Have you checked that is is technical correct?

@znarf : Sorry, yes, it's indeed a string. That's not a problem as the QR code generator will handle that as well; doesn't need to be a string.
As for the logo, I was going to post about this after a quick implementation (which is almost done now. 😉). This I think isn't feasible. Since a QR code will not be a QR code anymore if we place a logo in the middle. Simply put I don't think it's technically correct, and thus I think we should not have a logo in the middle of a QR code. The use already see the currency at several places (in the description above the QR code, as well as in the contribution summary on the right hand side), so my suggestion is not to include this kinda logo. 🤔
I am open to suggestions though. 😄
cc: @opencollective/design

So I've added the QR code generation screen in the following PR (still draft). There's some minor things to be done here in terms of making it consistent with the design which I'll do tomorrow, and also add the order creation. In the meantime, let me know if you see any issues. 🙂
https://github.com/opencollective/opencollective-frontend/pull/6719#issue-702672614

Since a QR code will not be a QR code anymore if we place a logo in the middle.

What is your research on that topic? How have you came to this conclusion?

Since a QR code will not be a QR code anymore if we place a logo in the middle.

What is your research on that topic? How have you came to this conclusion?

Hmm, let me search more. I was reading the about QR codes yesterday (mostly the wiki article; https://en.wikipedia.org/wiki/QR_code) and I thought this is impossible since QR codes are barcodes and by adding images in the middle we are changing the barcode in some way. 🤔

I personally googled "can I put a logo in the middle of a QR code" and ended up there. https://scanova.io/blog/how-to-make-a-custom-qr-code/

I personally googled "can I put a logo in the middle of a QR code" and ended up there. https://scanova.io/blog/how-to-make-a-custom-qr-code/
Anyway, if it's complex, it's a distraction and we should not spend too much time on this at this stage.

Oh, you are right. It seems one can remove the data layers in the middle and add the image. I have an idea on how we can do this. Let me add this one to the above PR as well. 🤔

Putting the logo in the middle is definitely not a must, we can move forward without it.
So it will be no QR code? @SudharakaP ?

Putting the logo in the middle is definitely not a must, we can move forward without it.
So it will be no QR code? @SudharakaP ?

No it was my misunderstanding. I initially thought it will mess up the QR code, but I am wrong and we can add the image. I already added the crypto image, so all good. 👍🏽

Is it a Bitcoin image in all cases or do you have an image for each crypto currency?

Is it a Bitcoin image in all cases or do you have an image for each crypto currency?

Nope, I added images for all crypto currencies; depending on what the user chose. 🙂

@znarf @Memo-Es : I am gonna add the success page (when the user click on finish) as part of this issue as well since I think it will be a simple change to slightly change our existing success page. The success page is given in the following design;
https://www.figma.com/file/ZQBMWhnGGtRWeIZknFW1eP/[OC-Design]-Production-Ready-✅?node-id=13426%3A207901
I have a few suggestions;

We should remove the post message box for at least now; since the user might have not completed the transaction yet.
We should change the description You are now supporting... to something else to indicate that they will be supporting once the transaction is reconciled. Or some kinda indication that they will receive a notice when the transaction is gone through?

WDYT? 🤔

@SudharakaP Please look at the experience for Manual Bank Transfers, it should be similar (uncompleted transaction).

@SudharakaP, I can go ahead and update the success page with the idea we had for the modal

If this makes sense, I'll need a couple of hours to update, but I can have it ready today

My thinking is we can use the @znarf's suggestion and use the same Bank transfer page with some minor tweaking. This way we have consistent design for all success pages within the contribution flow unless of course there's any other specific reason to use a different success page for crypto which I am okay with as well. It looks like this currently.

My suggestion is to remove the Payment Instructions part for now and I think we should be good. But I maybe wrong here. 🤔

For now I'll also remove the message posting ability since we are not exactly sure if the user did the transaction or not

I don't see why that's needed, it's the same for Manual Bank Transfers and no one ever complained about this.

For now I'll also remove the message posting ability since we are not exactly sure if the user did the transaction or not

I don't see why that's needed, it's the same for Manual Bank Transfers and no one ever complained about this.

ah, interesting. Okay we can leave it for now. I was just thinking this cause to me it didn't make sense to let the user post messages before a transaction is fully reconciled.

Once the transaction is completed you will receive a confirmation email with the details.

Are we?

What I thought was that when the user donates crypto they should receive an confirmation from their wallet service provider. This is why I added it there. Also after the API side is done and we receive the webhook event for transaction completion we can also sent a confirmation email right? Am I missing something here? Do you think we need to add something else? 🤔


This adds Neat Article Container

This looks to inspire from the simple, neat and clean medium design
This includes Header, Image and Content Element
PS: This is the best preview image i could provide .... if there is any updates required to preview image, please do the honours :smiling_imp:

@rafibomb @canterberrie @kball
Can anyone of you review on this ??
Thanks....

Wow - this is a really good one @IamManchanda - Can't wait till we can use Building Blocks inside of Building Blocks @kball ;)

The technical challenge for referencing building blocks inside of building blocks is actually pretty small - the bigger challenge is the design problem. How do we specify & display these dependencies? @jkfcheng

Also that color pallete PR matters a lot... I think we need to solve and close that soon @kball


Error 403: permission denied

I'm trying to push and commit changes in this repo through YAML script in github workflows, but getting Error 403.
Kindly, look in this issue in Actions, modify it.

I think the problem might be with the access tokens.

No..it's something else as I tried with tiken and without tiken also ..got same error 403

@rohan472000 Created PR https://github.com/rohan472000/reliance-stock-price-prediction-LSTM/pull/8 to fix this issue.
The documentation for git-auto-commit-action specifies this line.
You can find it here  https://github.com/stefanzweifel/git-auto-commit-action#:~:text=Set the contents-permission of the default GITHUB_TOKEN to true. (Required to push new commits to the repository)
#3

Kindly see the error in Actions - https://github.com/rohan472000/reliance-stock-price-prediction-LSTM/actions/runs/6364909352/job/17281520328

The error is due to protection policies on the main branch, direct commits are not allowed. Are you open to creating a PAT token with the required permissions to update the main branch ?

I dont have set any rules on main.

Can you confirm if the below setting is present ?

Show me path for it quickly

Settings -> General Actions

Dobe..now try again.

@joelmathewphilip
https://github.com/rohan472000/reliance-stock-price-prediction-LSTM/actions/runs/6368460411/job/17287830383

It failed. I am not sure what protection rules are triggering, as you said there is none setup. Can you create a PAT token with admin access and store it as a github secret ? Please share the secret name once you have created it.

ok...

@joelmathewphilip ADMIN_PAT

@joelmathewphilip kindly specify which access should be added to PAT as still access issue is there if I'm getting it correctly.

Now it says, even you don't have access to make changes. There is some other rule triggering in the backend

wait let me make it again.

@joelmathewphilip ADMIN_PAT, try again.

Hope the secret name is the same. Can you trigger the workflow manually ? I don't have access to do that. Otherwise, I will have to make some random unwanted PR.

ok...sure

It worked ! https://github.com/rohan472000/reliance-stock-price-prediction-LSTM/actions/runs/6368665366/job/17288325161

Thanks @joelmathewphilip for your contributions.
If interested then look other repo of mine, where workflows related or other potential issue is there, will appreciate your contributions.

Another issue exists though. Each commit is creating a chain of github actions, which shouldn't have happened, as per the documentation.

yeah ...not sure why this is happening.

Please review and approve https://github.com/rohan472000/reliance-stock-price-prediction-LSTM/pull/12.

Created another PR which should hopefully fix the error https://github.com/rohan472000/reliance-stock-price-prediction-LSTM/pull/13. Please review and approve

If possible, can you make a check that checks if code is doing what it expect to do without affecting main??

Can you elaborate on that ?

I want to see changes a PR do on main without merging.

okay, I think that can be done. Can you create a new issue for it ? As this issue is fixed right ?

Ya sure ..

@joelmathewphilip see #14


VPN on-demand like on ZeroTier Mobile App

Is your feature request related to a problem? Please describe.
Whenever my wifi connection gets lost and didn't reconnect immediately NetBird disconnects.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I would like to have this feature so that it would automatically reconnect when network changes are present or when I'm switching from WiFi to mobile data. This way I wouldn't need to manually go to the app and turn the VPN on again.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Like above.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
I don't know if the Android version of the app has this feature, but would be good to have this on my iPhone. If the android version doesn't have this feature it would be good for others to have this.
P.S.
Sorry for my English.

Yes, please. One of the reasons why I remain on WireGuard.


Multiple dotnet_* targets cannot exist in the same directory

MsBuild convention is that there is one csproj per directory. I believe msbuild will allow multiple targets in a csproj file, however, the build as implemented does not support multiple targets in the same directory.
The build declares obj as an output file, and multiple targets cannot emit the same output.
I could stop declaring obj as an output file, and leave it as an implementation detail, however the restore target emits  project.assets.json which is not named per target. All other files are named according to the target csproj being built.
PS C:\Users\sam\dev\my_rules_dotnet\tests> bazel build Transitive
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netstandard2.1/Lib.dll>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netstandard2.1/Lib.pdb>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netstandard2.1/Lib.deps.json>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netstandard2.1/TransitiveLib.dll>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netstandard2.1/TransitiveLib.pdb>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netstandard2.1/TransitiveLib.deps.json>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/obj>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/obj/netstandard2.1>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/obj>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/obj/netstandard2.1>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netcoreapp3.1/Transitive.exe>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netcoreapp3.1/Transitive.pdb>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netcoreapp3.1/Transitive.dll>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netcoreapp3.1/Transitive.runtimeconfig.dev.json>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netcoreapp3.1/Transitive.runtimeconfig.json>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netcoreapp3.1/Transitive.deps.json>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netcoreapp3.1/Lib.dll>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netcoreapp3.1/Lib.pdb>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netcoreapp3.1/TransitiveLib.dll>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/netcoreapp3.1/TransitiveLib.pdb>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/obj>
DEBUG: C:/users/sam/dev/my_rules_dotnet/dotnet/private/actions/assembly.bzl:48:14: <generated file tests/Transitive/obj/netcoreapp3.1>
ERROR: file 'tests/Transitive/obj' is generated by these conflicting actions:
Label: //tests/Transitive:TransitiveLib, //tests/Transitive:Transitive

This is not how project files behave, and shouldn't be how bazel build behaves. wotfix.


Adjust hiding of require() calls for react-native

The previous code worked when the app was build in for debugging but failed
when it was build for release. This makes sure the react-native packager
ignores the require calls in both cases.

I tested it with both build modes and everything seems fine.  Thanks for your patience!

Nice, it's actually a cleaner hack than the first one too! Please submit this to af/envalid and I'll merge it :)

I agree. This is a cleaner solution (especially with a comment :wink:)

Oups, I was actually trying to send this PR to af/envalid, but somehow got confused.

This one should be correct: https://github.com/af/envalid/pull/38


How do I take screenshots after zooming

How do I take screenshots after zooming

If you mean how to extract an image from the view, please check closed issues. Duplicate of #19, #57, #104, #196, #264, #276, #287.


[outtmpl] Perform replacement after the formatting conversions

Description of your pull request and other information

If a replacement is specified, the value is always formatted as a string. This fixes that by moving the replacement code after the formatting type conversion.
Fixes #7660.
Template

Before submitting a pull request make sure you have:

[x] At least skimmed through contributing guidelines including yt-dlp coding conventions
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8 and ran relevant tests

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check all of the following options that apply:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Fix or improvement to an extractor (Make sure to add/update tests)
[ ] New extractor (Piracy websites will not be accepted)
[x] Core bug fix/improvement
[ ] New feature (It is strongly recommended to open an issue first)

Copilot Summary

🤖 Generated by Copilot at 47296b3
Summary
🆕🧪🐛

Add a new feature for customizing the output template with format filters and replacement strings. Fix a bug in the logic of applying replacement strings to formatted values in YoutubeDL._format_str. Add a test case for the new feature in test_YoutubeDL.py.

A new feature for output templates
Lets you filter and replace elements
You can test it with ease
With a new test case, please
And fix the logic of _format_str's statements

Walkthrough

Implement a new feature for customizing the output template with format filters and replacement strings (link, link, link)

Add a test case to test/test_YoutubeDL.py to verify the output template formatting for a list of formats with a custom delimiter and a filter expression (link)
Modify the code in yt_dlp/YoutubeDL.py to apply the replacement string to the value before formatting it according to the format specifier and the flags (link)
Fix a bug in the previous modification that caused the replacement string to be ignored if the value was None or a numeric type (link)

The current behavior is expected since {} formatting is designed to be applied before the %() one. While I understand your motivation, your PR breaks cases like test('%(height&{:,d})S', '1,080'). I cannot merge this unless we can come up with an implementation that preserves this behavior.

How about using a single & before formatting conventions and a double && after? Or an asterisk *&? Or a question mark ?? Or some other character?

@Grub4K You were working on a rewrite that'd address this, no? I've forgotten the details. Could you remind me what was our decision?

The rewrite should enable us to fix these problems by applying a different order of operation depending on what conversion and format are used. We can also apply additional transformations before formatting or conversions, like converting to int or similar.
Currently a parsing operation creates a list of either strings or callables, like so:
>>> OutputTemplate.from_string('%%(width)06d.%(ext)s')
OutputTemplate(['%', '(width)06d.', Composer(Traverse(['ext']), StringFormatter('%s'), Defaulter('NA'), Sanitizer())])

The from_string function can add special cases and alter the order in which functions get composed. Maybe we can get some sort of functor pattern working for injection cases but I'm afraid I'm not quite there yet.
Evaluation gets done using
    def evaluate(self, data, sanitize=IDENTITY):
        return ''.join(
            part if isinstance(part, str) else part(data, sanitize)
            for part in self.parts)

which should hopefully provide a simple enough interface for API users as well. This way also enables us to easily debug outtmpl problems by inspecting it's repr output.
You can refer to https://github.com/yt-dlp/yt-dlp/compare/master...Grub4K:yt-dlp:feat/outtmpl-rewrite for more implementation details (though currently a mess).


fix(cli): Fix path rendering

:tada: This PR is included in version 3.0.2 :tada:
The release is available on:

v3.0.2
GitHub release

Your semantic-release bot :package::rocket:


Fix In-game Timer

The timer of the game freezes when a tile is clicked repeatedly.

[ ] Add/ Modify logic to fix this timer.

@HamdaanAliQuatil i would like to work on this. Can you please assign me to this issue ?


v0.4.1 - draft-11 compatible, builds on latest Rust

This PR backports the changes from v0.5 to voprf v0.4, to allow users of the draft-11 version to keep using this draft version on Rust 1.81+ without forced migration.
This is mostly so there can be a new release of opaque-ke v2 that compiles on newer Rust versions without requiring a breaking protocol migration without a graceful upgrade path (https://github.com/facebook/opaque-ke/issues/359).
The PR targets main branch, but should be merged as a new branch for 0.4 specifically. I can't do that (or ask to do that from GitHub) so I'm creating the PR on main instead 🫣

Wonderful! Do you mind pushing once more to this PR (with an empty commit or force-pushing with git commit --amend) to force the CI to run the usual checks? I think once I switched over to base this off of a v0.4 branch, the UI did not let me re-run the checks.
Thanks for doing this!


Fixed Chain.process_time_queue and added test

- What I did

Fixed Chain.process_time_queue(new_time=None). If we call Chain.process_time_queue(), the old code uses NoneType to compare the block timestamp and returns error in Python3:

TypeError: '<' not supported between instances of 'int' and 'NoneType'

IMO it's more efficient to use the updatedself.local_time to check if the block can be added.

- How I did it

Use the updated self.local_time to compare with time queue item
Add test_process_time_queue

- How to verify it
pytest ethereum/tests/test_chain.py::test_process_time_queue

- Description for the changelog
Fixed Chain.process_time_queue and added test
- Cute Animal Picture

Basically, the test works well. Just one comment. How about changing self.localtime to new_time?
     def process_time_queue(self, new_time=None):
          new_time = time.time() if new_time is None else new_time


Refs #33577 -- Used addCleanup() to remove .aux file in GDALBandTests.

Follow up to 970f5bf5035d8c99b0ff883f984b60cf531dddbe.

@smithdc1 Does it work for you?

Thanks! This works for me.
The tests now also pass with Proj version 9.x, so I'll go back to that PR (likely next week, now) and update the docs.


PKCS and X.509 selftests fail on big-endian PowerPC since 2.16.1

Description

Type: Bug
Priority: Major

Bug
OS
Mac OS X
mbed TLS build:
Version: 2.16.1
OS version: 10.4.11
Configuration: default config.h included with mbedtls
Compiler and options: GCC 4.0.1 (included with Xcode 2.5, the latest available for Mac OS X 10.4)
Additional environment information:  Running on a Power Mac G5 (contains big-endian PowerPC 970)
Expected behavior
programs/benchmark and programs/selftest should both pass (which they do in 2.16.0)
Actual behavior
In programs/benchmark the RSA-2048 and RSA-4096 benchmarks fail with BIGNUM - Bad input parameters to function
In programs/selftest the PKCS#1 and X.509 certificate load tests both fail.
Steps to reproduce
gmake -k ; programs/test/benchmark ; programs/test/selftest
I believe the issue is related to the mpi_bigendian_to_host() changes by @hanno-arm (f872007782fd166e2016fdbd0ba5d48232d55e35). After hard-coding the big-endian codepath (which does no byte-swapping), the tests and benchmarks complete successfully.
I think there's multiple issues to solve:

figure out why the default behavior/byteswapping isn't working correctly
add a compiler #warning when the system endianness cannot be detected at compile time
possibly add an MBEDTLS_ #define to specify endianness when it can't be detected. Defining __BYTE_ORDER__ to __ORDER_BIG_ENDIAN in my config.h seems to work without any problems but is not the cleanest solution

Hi @mrpippy,
thanks a lot for your report and initial analysis!
Could you check which code-path your system selects for mpi_uint_bigendian_to_host() in the faulty build? Does it use mpi_uint_bigendian_to_host_c()?
Kind regards,
Hanno

ARM Internal Ref: IOTSSL-2843

Yes it does use mpi_uint_bigendian_to_host_c(). I stepped through it a few times with gdb (with a -g3 -O0 build) and it is byte-swapping. For input of x=0x6fa98858, tmp=0x5888a96f is returned. x=0x10f2de12 results in tmp=0x12def210, etc.

Hi @mrpippy,
thanks, the function is indeed buggy (it's embarrassing, where shall the platform-specific difference in functional behaviour come from if the function only uses operations whose functional effect is fully specified? Anyway...). I'll open a PR for it.
Thanks again for your report!
Hanno


rename >tuple to array>tuple

Since >tuple is the opposite of tuple>array, I think we should rename it to array>tuple.
Technically it works on any sequence, but symmetry is important.

diff --git a/basis/inverse/inverse.factor b/basis/inverse/inverse.factor
index 8ba0289..9452084 100644
--- a/basis/inverse/inverse.factor
+++ b/basis/inverse/inverse.factor
@@ -146,7 +146,7 @@ MACRO: undo ( quot -- quot ) [undo] ;
 \ not define-involution
 \ >boolean [ dup { t f } member-eq? assure ] define-inverse

-\ tuple>array \ >tuple define-dual
+\ tuple>array \ array>tuple define-dual
 \ reverse define-involution

 \ undo 1 [ ] define-pop-inverse
diff --git a/basis/match/match.factor b/basis/match/match.factor
index 489fa83..279326b 100644
--- a/basis/match/match.factor
+++ b/basis/match/match.factor
@@ -63,7 +63,7 @@ GENERIC: replace-patterns ( object -- result )
 M: object replace-patterns ;
 M: match-var replace-patterns get ;
 M: sequence replace-patterns [ replace-patterns ] map ;
-M: tuple replace-patterns tuple>array replace-patterns >tuple ;
+M: tuple replace-patterns tuple>array replace-patterns array>tuple ;

 : match-replace ( object pattern1 pattern2 -- result )
     [ match [ "Pattern does not match" throw ] unless* ] dip swap
diff --git a/core/classes/tuple/tuple-docs.factor b/core/classes/tuple/tuple-docs.factor
index 1d879e4..c207a3d 100644
--- a/core/classes/tuple/tuple-docs.factor
+++ b/core/classes/tuple/tuple-docs.factor
@@ -13,7 +13,7 @@ ARTICLE: "slot-class-declaration" "Slot class declarations"
     { "The " { $link new } " word fills in slots with their initial values; the (per-class) initial values are required to satisfy the class predicate." }
     { "The " { $link boa } " word ensures that the values on the stack satisfy the class predicate." }
     { { $link "mirrors" } " ensure that the value passed to " { $link set-at } " satisfies the class predicate." }
-    { "The " { $link slots>tuple } " and " { $link >tuple } " words ensure that the values in the sequence satisfy the correct class predicates." }
+    { "The " { $link slots>tuple } " and " { $link array>tuple } " words ensure that the values in the sequence satisfy the correct class predicates." }
     { { $link "tuple-redefinition" } " fills in new slots with initial values and ensures that changes to existing declarations result in incompatible values being replaced with the initial value of their respective slots." }
 }
 { $subsections "slot-class-coercion" } ;
@@ -197,7 +197,7 @@ $nl
 ARTICLE: "tuple-introspection" "Tuple introspection"
 "In addition to the slot reader and writer words which " { $link POSTPONE: TUPLE: } " defines for every tuple class, it is possible to construct and take apart entire tuples in a generic way."
 { $subsections
-    >tuple
+    array>tuple
     tuple>array
     tuple-slots
 }
@@ -401,7 +401,7 @@ HELP: define-tuple-class

 { tuple-class define-tuple-class POSTPONE: TUPLE: } related-words

-HELP: >tuple
+HELP: array>tuple
 { $values { "seq" sequence } { "tuple" tuple } }
 { $description "Creates a tuple with slot values taken from a sequence. The first element of the sequence must be a tuple class word and the remainder the declared slots."
 $nl
diff --git a/core/classes/tuple/tuple-tests.factor b/core/classes/tuple/tuple-tests.factor
index ea1dead..49a2154 100644
--- a/core/classes/tuple/tuple-tests.factor
+++ b/core/classes/tuple/tuple-tests.factor
@@ -531,10 +531,10 @@ TUPLE: another-forget-accessors-test ;
 TUPLE: declared-types { n fixnum } { m string } ;

 { T{ declared-types f 0 "hi" } }
-[ { declared-types 0 "hi" } >tuple ]
+[ { declared-types 0 "hi" } array>tuple ]
 unit-test

-[ { declared-types "hi" 0 } >tuple ]
+[ { declared-types "hi" 0 } array>tuple ]
 [ T{ bad-slot-value f "hi" fixnum } = ]
 must-fail-with

diff --git a/core/classes/tuple/tuple.factor b/core/classes/tuple/tuple.factor
index 77993bb..f827cb7 100644
--- a/core/classes/tuple/tuple.factor
+++ b/core/classes/tuple/tuple.factor
@@ -106,7 +106,7 @@ M: tuple-class slots>tuple ( seq class -- tuple )
 : tuple>array ( tuple -- array )
     [ tuple-slots ] [ layout-of first prefix ] bi ;

-: >tuple ( seq -- tuple )
+: array>tuple ( seq -- tuple )
     unclip slots>tuple ;

 ERROR: bad-superclass class ;

Or maybe rename this to pack-tuple and unpack-tuple ?

Pack/unpack sounds good since array>tuple is imprecise.

Do you think tuple-slots should be tuple>slots to match slots>tuple?

(Not sure I like that idea)

Pushing off to 0.99.


OP ethylene generating.

Hello, why is Ethylene generating 6k rf/mb? It generates just 800 rf/mb in mek, but with 6k and for example F/A mixer you can create almost 8m rf (plus energy used for separating water, crushing wheat and compressing H2+Water+Wheat to Ethylene) from 2 water buckets and 5 wheat. Isn't it too op? Other than that, this is very cool mod! :)

Did you actually check that it produces 800rf/mb? Last time when i was tweaking the numbers i've looked at how much it produces in a gas generator from mekanism and used that as a baseline.
And yeah it's kinda OP, but it's the same level of OP in mekanism itself... so shrug (unless something changed since then).

It's still pretty high end compared to Mek and out of line with all other fuels for Adv Gens.
Mek upped their gas burners in 1.9 however to push out up to about 7.8K RF/t and the fuel usage is minimal as you can run a ton of them off one PRC setup.
Anyway, as you said Mek is OP in ways. Mek does use a crapload of power for things so it's not quite as bad but the gas burners are def OP.
Discarding that, as it's hard to compare mods to each other, the fuel rating for Adv Gen is pretty high. It is 6x what Syngas is and requires nearly the same setup except A full Syngas setup costs 50x more materials and produces less Syngas per tic than a Mek ethylene setup.
I would suggest upping the value of SynGas or at least halving the value on Ethylene from Mek.

So i've just ran a test with latest mek and a single bucket of Ethylene produces ~11.3M RF per bucket in their gas burning generator... so if anything i need to buff it in AG lol.
Honestly it's just OP by design and i can't fix this from my side. Even if i nerf or blacklist then people can just build an array of GBGs and get the OP power from there, with the added "bonus" of many more ticking tile entities.
And buffing syngas will make it just as OP (power creep anyone?).
As such i decide to not touch it in the default distribution. Pack makers and server admins that want to include Mek can fix it whichever way they want by custom configs.

Any chance you could change the config from BACON to a more... uh less intimidating form? At least for some basic balancing items like conversion factors between power types and how much power a bucket of x days, maybe a ratio? Like Syngas is 1.0 and Ethylene is 6.0 since it does 6k vs 1k?
Just a thought. Server admin always freaks when I suggest it because he doesn't want to learn your config language. :(

On Feb 13, 2017, at 3:06 PM, bdew<EMAIL_ADDRESS>wrote:
So i've just ran a test with latest mek and a single bucket of Ethylene produces ~11.3M RF per bucket in their gas burning generator... so if anything i need to buff it in AG lol.
Honestly it's just OP by design and i can't fix this from my side. Even if i nerf or blacklist then people can just build an array of GBGs and get the OP power from there, with the added "bonus" of many more ticking tile entities.
And buffing syngas will make it just as OP (power creep anyone?).
As such i decide to not touch it in the default distribution. Pack makers and server admins that want to include Mek can fix it whichever way they want by custom configs.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

What would i change it to? The forge config format is way to limited for the level of tweaking that i allow...
You can just copy this section, put it in a file in your config/AdvGenerators folder and edit the values.

Oh I know and your config is great, it's just intimidating for most.
Thanks

On Feb 15, 2017, at 3:35 PM, bdew<EMAIL_ADDRESS>wrote:
What would i change it to? The forge config format is way to limited for the level of tweaking that i allow...
You can just copy this section, put it in a file in your config/AdvGenerators folder and edit the values.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.


How to mock EventChannel in unit test?

I made a flutter media player plugin https://github.com/befovy/fijkplayer.
And used EventChannel and MethodChannel in it.
EventChannel('befovy.com/fijkplayer/event/$id' )
            .receiveBroadcastStream()
            .listen(_eventListener, onError: _errorListener);

receiveBroadcastStream is used in dart side to listen event post from android / iOS native side.
It works fine when running on device.
When I write unit test case, I noticed setMockMethodCallHandler can be used to mock method response from native side. But I can't find any way to mock event post ?
In Shortly,
I post event to dart size from android / iOS native side using EventChannel.EventSink FlutterEventSink . How to mock this in unit test ?
Thanks.

 flutter doctor summary
[✓] Flutter (Channel stable, v1.7.8+hotfix.4, on Mac OS X 10.14.3 18D109, locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 10.3)
[✓] iOS tools - develop for iOS devices
[✓] Android Studio (version 3.4)
[✓] Android Studio (version 3.5)
[✓] IntelliJ IDEA Ultimate Edition (version 2019.1.2)
[✓] VS Code (version 1.37.1)
[✓] Connected device (1 available)
• No issues found!

Not a great solution, but still a solution. here
EventChannel is backed using a MethodChannel... so do not worry about the link above creating a MethodChannel.
Flutter could have something similar to MethodChannel. setMockMethodCallHandler.

@BugsBunnyBR 👍 Your answer has resolved my problems. Thanks.
I known EventChannel is backed using a MethodChannel.
class EventChannel {
  Stream<dynamic> receiveBroadcastStream([ dynamic arguments ]) {
    final MethodChannel methodChannel = MethodChannel(name, codec);
    StreamController<dynamic> controller;
    controller = StreamController<dynamic>.broadcast(onListen: () async {
      defaultBinaryMessenger.setMessageHandler(name, (ByteData reply) async {
        if (reply == null) {
          controller.close();
        } else {
          try {
            controller.add(codec.decodeEnvelope(reply));
          } on PlatformException catch (e) {
            controller.addError(e);
          }
        }
        return null;
      });
  ...
}

The event Stream comes from MessageHandler set in receiveBroadcastStream.
I tried to send message by call defaultBinaryMessenger.send which is wrong.
Actually, defaultBinaryMessenger.handlePlatformMessage is right.


MATLAB is uppercase

https://github.com/ross-rotordynamics/ross/blob/master/paper/paper.md#L55
MATLAB is uppercase
cc https://github.com/openjournals/joss-reviews/issues/2120

This has been fixed on commit 16a0394.

fixed in https://github.com/ross-rotordynamics/ross/pull/504


Online Survey Creator Project (#28)

issue: #28
Online Survey Creator Project

[x] Using surveyjs to fetch the survey data.
[x]  surveyRender function to display the questions.
[x]  progress bar to keep track of the questions.
[x] thank you image after the completion of the survey.

Online Survey Creator Project

[x] Using surveyjs to fetch the survey data.

[x]  surveyRender function to display the questions.

[x]  progress bar to keep track of the questions.

[x] thank you image after the completion of the survey.

Online Survey Creator Project

[x] Using surveyjs to fetch the survey data.

[x]  surveyRender function to display the questions.

[x]  progress bar to keep track of the questions.

[x] thank you image after the completion of the survey.


TypeError when exiting from the conversation inside menu

Unknown error: TypeError: Cannot read properties of undefined (reading 'initConversation'.
at https://deno.Land/x/grammy_conversations@v1.1.1/conversation.ts:606:45

There is no way to investigate this without a repro. Feel free to reopen if this is still relevant, I'll close this.


feat: add support to specify region

Description of your changes

Adds support to specify the region of the NewRelic account. Defaults to US.
I have:

[x] Read and followed Crossplane's contribution process.
[ ] Run make reviewable test to ensure this PR is ready for review.

How has this code been tested

@woehrl01 - thank you so much for this!  can you please resolve the conflicts and review the comment?
Once it's ready to merge I will do some testing and cut a new release.

@smcavallo Just applied all the necessary changes and fixed the merge conflict.

Any progress on having this merged and made available in a new release?

@woehrl01 and @bainss - I merged support for region as part of https://github.com/crossplane-contrib/provider-newrelic/pull/65
Can you please try https://marketplace.upbound.io/providers/smcavallo/provider-newrelic/v0.1.7

closing in favor of https://github.com/crossplane-contrib/provider-newrelic/pull/65


feat: Devnet

This PR includes a few extra comments to the contracts, as well as exposing a utility function to the testnet operator for the devnets.
Summary

devnet contract updates
devnet contract deployment
devnet automation scripts
devnet relayer scripts
gnosis deployment scripts

This recent commit implements changes according to Danil's review.

there was a bug in the escape hatch deposit withdrawal method, mistakenly the deposit was sent to address(0) instead of refunded
comments improved
Danil pointed out a return type on the IAMB interface is incorrect. I updated all of the interfaces with comments pointing to a particular repo and commit for the interface source and I pruned the interface for the essential function stubs

Note I made a subtle change in the L2->L1 message authentication which I want to make sure we are in agreement about.
instead of storing an immutable inbox address and authenticating the l2 message sender by checking
IOutbox(inbox.bridge().activeOutbox()).l2tol1sender()
we simply store an immutable bridge address directly and authenticate
IOutbox(bridge.activeOutbox()).l2tol1sender()
This is the same as the OpenZeppelin implementation.
Rationale:
there are multiple inboxes and potentially multiple outboxes, however there is a single bridge contract. The bridge contract is the contract which holds > 1 million eth.
other implementations like MakerDao's token gateway use the inbox address as a source of truth.
It makes more sense to use the bridge as a source of truth since the bridge contract is unique. Moreover, in the MakerDao context, the inbox is used to also send messages to L2. In our case, we don't use the inbox for anything other than L2->L1 message authentication. Meaning the only reason we keep track of the inbox is to de-reference the inbox.bridge() address value. This doesn't make any sense since the inbox doesn't serve a function in vea for arbitrum -> eth or arbitrum -> gnosis message passing. Keeping track of the bridge directly is the simplest approach, and the same way Open Zeppelin implements the l2->l1 message sender authentication.
I also want to note that the IInbox, IOutbox, and other canonical Arbitrum contract interfaces were outdated from before nitro. I included direct references to specific repos and commits where the full interfaces can be found, but I conclude the simplest approach is to prune the interface to only keep the function stubs we actually use for simplicity and clarity for reviewers.
If we are on the same page about this, I can post the contracts fully in smart contract reviews.


Spike: Investigate client aggregation methods

Description
In some cases, a global domain of a simulation or workload is needed for analysis or training. When using the SmartRedis clients in an MPI application, each rank sends it's own data to the Orchestrator (redis/keydb) database. a method, Client.aggregate could be very useful in combining data back into a global field.
Justification
Online analysis is a primary use case here. For example, let's say we are running a weather simulation and would like to view a global snapshot of the domain every 50 timesteps. currently, one must create a helper function to retrieve data from all the ranks that sent data to the database and recombine it into a global field before it can be analyized.
Also, future methods like to_xarray become much more useful if a domain can be aggregated first.
Implementation Strategy
This ticket is meant to provide a place for feedback on this issue. The result of this ticket is a design document that will be shared with the community to collect feedback.
I've been ideating on this however, and I'm thinking something like the following method
from smartredis import Client

client = Client(cluster=True)
dataset = client.aggregate("hello_world_rank_*")

This example would collect all the tensors in the database the start with hello_world_rank_. Essentially this is like glob syntax for specifying which tensors to retrieve.
Open questions:

Does a simple concat of all tensors work for most use cases?
How does the user specify how the domain should be recombined in more complex cases? (unstructured mesh?)
Multiple fields in one dataset/aggregate call?
How can we use the metadata fields of the DataSet object to make this easier for users?

It's important that when we design this method, we keep in mind that the idea is to be able to quickly convert to something like an xarray dataset.
for example:
from smartredis import Client

client = Client(cluster=True)
dataset = client.aggregate("hello_world_rank_*").to_xarray()
dataset.plot() # use xarray methods now.

Acceptance Criteria

[ ] Create a design document with how this aggregation method will work (discussion should take place here)
[ ] Post link to the design document here
[ ] Incorporate feedback and open issue to implement Client.aggregate

Tagging some people who I think would provide good feedback on this issue.
@ashao @rabernat @mellis13 @nbren12

I've thought about this quite a a bit and it's a problem that I think is best handled on the model simulation side. Most model grids (especially the ones within the climate domain) do not necessarily lend themselves to a general solution and require knowledge of the specific grid topology, e.g. the tri-polar, cubed-sphere, and finite element-like grids. Even if you knew that a grid fell under one of these general types, you still likely need information that is unique to a given implementation. Lastly, I think in most cases it will likely be more performant to do it on the model side since most models which some kind of parallel decomposition already have optimized routines to do so.
One case that might be useful to handle is that of a rectangular topology, which are often used in idealized models and LES. That maps directly onto a normal n-dimensional tensor and we could setup a specific dataset structure to ensure that all the needed metadata exists for a reconstruction.
Perhaps more useful than a client aggregation of the raw model data is a way to generally treat the data as a scattered data and interpolate to a given grid (e.g. scipy.interpolate.griddata). In that case, all we need is the coordinate of every grid point associated with the data. It would dovetail quite nicely with xarray and xesmf and any future support of xarray Datasets in SmartRedis.

Just to parachute an item of relevance from #228
I agree with @Spartee that it's a good idea to have a base method that implements a good parallel strategy for retrieving the same field(s) that have been distributed.

How does the user specify how the domain should be recombined in more complex cases? (unstructured mesh?)

That question might then be left to the SmartRedis model-specific extension

Thanks. I 100% agree with the motivation of this issue, but I agree it might be tricky to find a naming scheme "rank_*" that works for all use-cases. Maybe exposing some lower-level redis data structures would leave the door open for folks to choose their own strategy. Is there any fortran redis client supporting the basic commands like GET/SET/LPUSH/LPOP etc?

That's a great point and definitely something we are considering.  Utilizing something like a redis list to store a collection of keys to be aggregated might be easier than relying on a naming convention.  We currently don't have direct support for other redis data types (e.g. LPUSH/LPOP/etc), but that's something we can easily build into existing client functionality or expose to the user.


Support for cookie based stickyness

This PR add support for cookie based sticky sessions.
relates to https://github.com/kontena/kontena/issues/799
Also adds custom test helper image to bring curl and etcdctl commands. I got frustrated with the big tutum image for curl and had some issues with etcd image as pure client. :/

Nice!


for topic of multiple partitions, sometimes not all partitions are consumed by highlevelconsumer

it happened quite a few times: i use highlevelconsumer to consume a topic of 4 partitions, but only 2 partitions were consumed, like:

Sometime reboot the consumer fixed it, sometimes not. why?

Does this issue happen in version 0.2.30 ?

@hyperlink： yes

I also encountered this situation。but in version 0.2.29 no this problem

@tomwang1013  and what tools do you use to see the partitions? thank you

@sensoroDj  are you sure that 0.2.29 not has this problem? i will revert to 0.2.29

Sorry . I use the 0.2.29 version!  my partitions and consumers are one-for-one !  I will let one consumer consume one partitions eg: 3 patitions to 3 consumers  !   but when i use 0.3.x highlevel api  will not work i want to be. I recommand you to use low version when you use highleve api. I found it cant work well in 0.3.x

@tomwang1013  can you give the output using kafka tools ?
Something like
/opt/kafka/kafka_2.11-<IP_ADDRESS>/bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --group kafka-node-group --zookeeper [ZKHOST:ZKPORT] --topic [TOPIC_NAME]
example:
/opt/kafka/kafka_2.11-<IP_ADDRESS>/bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --group kafka-node-group --zookeeper local.zookeeper.net:2181 --topic feedUpdates2
The only scenario I have been able to reproduce your issue is when you are only sending messages to a few partitions and you don'f have one consumer per partition, for example

Publishing  to partitions 0,1,2,3,4
Running 3 consumers

You will get something like:
Group           Topic                          Pid Offset          logSize         Lag             Owner kafka-node-group feedUpdates2                   0   170841          178521          7680            kafka-node-group_2a574686-29d6-4aaa-ad0d-812691bdf8b9 kafka-node-group feedUpdates2                   1   160526          167043          6517            kafka-node-group_2a574686-29d6-4aaa-ad0d-812691bdf8b9 kafka-node-group feedUpdates2                   2   171471          177998          6527            kafka-node-group_2a574686-29d6-4aaa-ad0d-812691bdf8b9 kafka-node-group feedUpdates2                   3   158815          166503          7688            kafka-node-group_2a574686-29d6-4aaa-ad0d-812691bdf8b9 kafka-node-group feedUpdates2                   4   159599          166138          6539            kafka-node-group_2a574686-29d6-4aaa-ad0d-812691bdf8b9 kafka-node-group feedUpdates2                   5   7537            7537            0               kafka-node-group_2a574686-29d6-4aaa-ad0d-812691bdf8b9 kafka-node-group feedUpdates2                   6   7537            7537            0               kafka-node-group_5cf5a5bf-2d45-4a2a-b108-3277f2c3e43a kafka-node-group feedUpdates2                   7   7537            7537            0               kafka-node-group_5cf5a5bf-2d45-4a2a-b108-3277f2c3e43a kafka-node-group feedUpdates2                   8   7536            7536            0               kafka-node-group_5cf5a5bf-2d45-4a2a-b108-3277f2c3e43a kafka-node-group feedUpdates2                   9   7534            7534            0               kafka-node-group_5cf5a5bf-2d45-4a2a-b108-3277f2c3e43a kafka-node-group feedUpdates2                   10  7534            7534            0               kafka-node-group_5cf5a5bf-2d45-4a2a-b108-3277f2c3e43a kafka-node-group feedUpdates2                   11  7533            7533            0               kafka-node-group_d694cb35-b334-4d67-a393-4e3c3de0588d kafka-node-group feedUpdates2                   12  7530            7530            0               kafka-node-group_d694cb35-b334-4d67-a393-4e3c3de0588d kafka-node-group feedUpdates2                   13  7530            7530            0               kafka-node-group_d694cb35-b334-4d67-a393-4e3c3de0588d kafka-node-group feedUpdates2                   14  7530            7530            0               kafka-node-group_d694cb35-b334-4d67-a393-4e3c3de0588d kafka-node-group feedUpdates2                   15  7529            7529            0               kafka-node-group_d694cb35-b334-4d67-a393-4e3c3de0588d
The distribution is basically  (partitions / consumers) + one consumer gets an additional for the fraction part
So you get:

1st consumer gets 6 partitions
2nd consumer gets 5 partitions
3rd consumer gets 5 partitions

So ONLY one consumer is getting messages since there are only messages on the first 5 partitions

@jbarreto in my case, there was only one consumer in this group, so it should consume all the partitions. But sometimes it did not as i show above.

@sensoroDj sorry, i was a little confused, you said:  "but when i use 0.3.x highlevel api will not work i want to be" and "I found it cant work well in 0.3.x". Should we use 0.3.x or 0.2.29 when using highlevel api?

I am seeing this same issue and am using 0.2.27
Group           Topic                          Pid Offset          logSize         Lag             Owner
mcps            alias_export                   0   129777          129777          0               mcps_8000d5a3-6f3f-4810-b550-9964b3399cb0
mcps            alias_export                   1   128295          128295          0               mcps_8000d5a3-6f3f-4810-b550-9964b3399cb0
mcps            alias_export                   2   132121          132121          0               mcps_8000d5a3-6f3f-4810-b550-9964b3399cb0
mcps            alias_export                   3   132676          132676          0               mcps_8000d5a3-6f3f-4810-b550-9964b3399cb0
mcps            alias_export                   4   139752          139752          0               mcps_8000d5a3-6f3f-4810-b550-9964b3399cb0
mcps            alias_export                   5   137116          137116          0               mcps_8000d5a3-6f3f-4810-b550-9964b3399cb0
mcps            alias_export                   6   147484          147484          0               mcps_ac3b93f7-a4c0-4d5b-ac2d-f2a448a7022d
mcps            alias_export                   7   125432          125432          0               mcps_ac3b93f7-a4c0-4d5b-ac2d-f2a448a7022d
mcps            alias_export                   8   131383          131383          0               mcps_ac3b93f7-a4c0-4d5b-ac2d-f2a448a7022d
mcps            alias_export                   9   129714          129714          0               mcps_ac3b93f7-a4c0-4d5b-ac2d-f2a448a7022d
mcps            alias_export                   10  158580          158580          0               mcps_ac3b93f7-a4c0-4d5b-ac2d-f2a448a7022d
mcps            alias_export                   11  149554          149554          0               mcps_fa6da3e1-8ea0-4521-bbf0-e418c97a09c6
mcps            alias_export                   12  144542          144542          0               mcps_fa6da3e1-8ea0-4521-bbf0-e418c97a09c6
mcps            alias_export                   13  136326          136326          0               mcps_fa6da3e1-8ea0-4521-bbf0-e418c97a09c6
mcps            alias_export                   14  122674          136842          14168           mcps_fa6da3e1-8ea0-4521-bbf0-e418c97a09c6
mcps            alias_export                   15  152034          152034          0               mcps_fa6da3e1-8ea0-4521-bbf0-e418c97a09c6

I have 3 consumers which should all be taking an equal share of the messages, but partition 14 is stuck. This was happening before and when a rebalance would occur (like when adding or removing a consumer to the group) the stuck partition would suddenly get drained and all the stuck messages would be processed several days late.
Can someone suggest which version, if any, this issue has been resolved in or how this can be remedied?

@tomwang1013  sorry ! my English is not well !  I mean sometimes it works well in 0.2.x ! I all met your problem ! one consumer for all paritions ! but it is not all partitions to be consumered! I fount it may caused by zookeeper ! kafka consumer not balanced ok!

This is a non-obvious part of Kafka node if you ask me.  Consumer starvation versus partition "warmup" with default partitioners can be confusing.  It can take several minutes for each partition to get messages (or longer)  ===  you should always produce with a partition #  or a keyed message IMO. Also after consumer count > partition count, any new consumers ALWAYS starve all the time......  This is proper operation by design.... but yet again confusing if you don't know the technical details around a rebalance operation.

0.2.29 also has this problem. i have given it up and use a client of another language.

I solved this issue! Maybe it isn't the same reason for others, but here is what is was...
I copied the fetchMaxBytes: 1024 * 10 line from the readme thinking this was standard. Apparently, this is a very small buffer. Leaving out this line will allow the default of 1024 * 1024 bytes.
So, what happened was a message was produced which was too big for my fetchMaxBytes setting. Since I couldn't consume the whole message, it just sat there in the partition waiting to be consumed. And since messages must be consumed in order, other messages going in to that partition just piled up behind it!
Once I removed my config and let the default do its thing, my stuck partitions all got consumed and everything is working perfectly.
Note: I am currently using version 0.2.27. Just before writing this I had 11 out of 15 partitions stuck.  All the options mirror the defaults except for fetchMaxBytes. And according to issue #192 there's a bit of tweaking to the options to get kafka-node to work with each use case.  This should also be documented. Interested in submitting a PR? :)

Noticed kafka console consumer will throw an error if the message being fetched exceeds maxBytes. It would be nice if kafka-node could do something like that instead of failing silently.
[2016-04-11 14:58:32,926] ERROR Error processing message, terminating consumer process:  (kafka.tools.ConsoleConsumer$)
kafka.common.MessageSizeTooLargeException: Found a message larger than the maximum fetch size of this consumer on topic ProducerConnectivityTest partition 1 at fetch offset 41. Increase the fetch size, or decrease the maximum message size the broker will allow.
	at kafka.consumer.ConsumerIterator.makeNext(ConsumerIterator.scala:90)
	at kafka.consumer.ConsumerIterator.makeNext(ConsumerIterator.scala:33)
	at kafka.utils.IteratorTemplate.maybeComputeNext(IteratorTemplate.scala:66)
	at kafka.utils.IteratorTemplate.hasNext(IteratorTemplate.scala:58)
	at kafka.consumer.OldConsumer.receive(BaseConsumer.scala:79)
	at kafka.tools.ConsoleConsumer$.process(ConsoleConsumer.scala:110)
	at kafka.tools.ConsoleConsumer$.run(ConsoleConsumer.scala:69)
	at kafka.tools.ConsoleConsumer$.main(ConsoleConsumer.scala:47)
	at kafka.tools.ConsoleConsumer.main(ConsoleConsumer.scala)
Processed a total of 1 messages

Facing the same issue with Kafka-node 1.6.2
kafka-node-group nc_delta                       0   34620           34620           0               none
kafka-node-group nc_delta                       1   34962           34968           6               none
kafka-node-group nc_delta                       2   34497           34497           0               none
kafka-node-group nc_delta                       3   34595           34595           0               none
kafka-node-group nc_delta                       4   35199           35199           0               kafka-node-group_84aa011e-ef75-429f-8378-533a25bd9064
kafka-node-group nc_delta                       5   34544           34544           0               kafka-node-group_84aa011e-ef75-429f-8378-533a25bd9064
kafka-node-group nc_delta                       6   34782           34782           0               kafka-node-group_84aa011e-ef75-429f-8378-533a25bd9064
kafka-node-group nc_delta                       7   33740           33740           0               kafka-node-group_84aa011e-ef75-429f-8378-533a25bd9064
kafka-node-group nc_delta                       8   34474           34474           0               kafka-node-group_84aa011e-ef75-429f-8378-533a25bd9064
kafka-node-group nc_delta                       9   34180           34180           0               kafka-node-group_84aa011e-ef75-429f-8378-533a25bd9064
kafka-node-group nc_delta                       10  34823           34823           0               kafka-node-group_84aa011e-ef75-429f-8378-533a25bd9064
kafka-node-group nc_delta                       11  34237           34237           0               kafka-node-group_84aa011e-ef75-429f-8378-533a25bd9064