Improved logging when capturing env vars

When kernels fail we'll knwo whether the env variables were extracted or not.

Codecov Report

Merging #11162 (facdea0) into main (5d776d5) will decrease coverage by 0%.
The diff coverage is 100%.

@@          Coverage Diff           @@
##            main   #11162   +/-   ##
======================================
- Coverage     63%      63%   -1%
======================================
  Files        485      485
  Lines      34118    34122    +4
  Branches    5563     5564    +1
======================================
- Hits       21616    21593   -23
- Misses     10445    10465   +20
- Partials    2057     2064    +7

Impacted Files
Coverage Δ

src/telemetry.ts
100% <ø> (ø)

.../kernels/raw/launcher/kernelEnvVarsService.node.ts
77% <100%> (+<1%)
:arrow_up:

src/kernels/telemetry/helper.ts
92% <100%> (+<1%)
:arrow_up:

...ommon/process/environmentActivationService.node.ts
70% <100%> (ø)

src/notebooks/outputs/tracebackFormatter.ts
93% <0%> (-7%)
:arrow_down:

src/platform/common/cancellation.ts
64% <0%> (-4%)
:arrow_down:

src/platform/common/process/baseDaemon.node.ts
50% <0%> (-4%)
:arrow_down:

src/kernels/raw/session/rawJupyterSession.node.ts
79% <0%> (-3%)
:arrow_down:

src/kernels/jupyter/baseKernelConnectionWrapper.ts
35% <0%> (-3%)
:arrow_down:

src/kernels/jupyter/jupyterKernelService.node.ts
74% <0%> (-2%)
:arrow_down:

... and 10 more


type 'Null' is not a subtype of type 'WidgetsLocalizations' in type cast

Is there an existing issue for this?

[X] I have searched the existing issues

Flutter Quill version
10.1.9
Steps to reproduce
Setup Quill with a language that is not supported in Flutter but in Quill like Kurdish, and run the app
Expected results
Show the Quill editor
Actual results
When i run my App that have a screen with Quill editor with a language like English it's showing the editor but for Kurdish language whereas the locale file available in Quill but it's giving the error above.
and this is the merge commit that I added the missing Kurdish phrases https://github.com/singerdmx/flutter-quill/pull/2029

Firstly, I am NOT an expert on localizations.
I note that you understand that Kurdish is not supported by Flutter. There is a lot of early startup code that checks to make sure that flutter apps have access to Localizations. I assume this is because flutter's internal operations have many dependencies, and flutter might not work correctly without this localization support.
On my windows desktop, the code seems to expect MaterialLocalizations will be present. Theme.of expects an instance of this class and is called frequently.
Localization support is provided in the startup code for your app:
            localizationsDelegates: const [
              GlobalMaterialLocalizations.delegate,
              GlobalWidgetsLocalizations.delegate,
              GlobalCupertinoLocalizations.delegate,
              // Uncomment this line to use provide flutter quill localizations
              // in your widgets app, otherwise the quill widgets will provide it
              // internally:
              // FlutterQuillLocalizations.delegate,
            ],

Uncommenting the last line does not provide the missing localization type.
I expect you are going to have to provide your own localizations delegate to bypass flutter's default behavior and provide the missing localization of type appropriate to your environment.
Can you contact the Flutter localization team to ask them to support Kurdish? This would make it easy to fix this problem.

@AtlasAutocode Thank you for helping, even though I have tried multiple times before without working, but this time after making sure I'm doing the right thing and doing a flutter clean it did work.
localizationsDelegates: const [
                    AppLocalizations.delegate,
                    GlobalMaterialLocalizations.delegate,
                    GlobalWidgetsLocalizations.delegate,
                    GlobalCupertinoLocalizations.delegate,
                    KuMaterialLocalizations.delegate,
                    KuCupertinoLocalizations.delegate,
                    KuWidgetLocalizations.delegate,
                    FlutterQuillLocalizations.delegate,
                  ],


Cleanup PR #1

Description of changes:
Address #151

[ ] Have you followed the guidelines in our Contributor's Guide?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[ ] Have you made sure that the pre-commit checks passed (#8 in Adding Notebooks Guide)?
[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you successfully tested your changes locally?

Note: In addition to the items mentioned in the related issue, I am updating our documentation to use the key_metrics example instead of the coupled_model example.

The ADF link in external_diag_packages seems to be working but the actual in-line plots are not showing up, so this needs to be further tested. Is this possibly related to the change @mnlevy1981 made in #154?

In the external_diag_packages directory, you'll need to modifyconfig.yml so adf_root points to the right place:
- adf_root: ../../external_diag_packages/ADF/
+ adf_root: ../../externals/external_diag_packages/ADF/

adf_root is relative to where the notebook is run, which used to be ${CUPID_ROOT}/externals/nblibrary/atm but is now ${CUPID_ROOT}/externals/nblibrary/atm

The ADF link in external_diag_packages seems to be working but the actual in-line plots are not showing up, so this needs to be further tested. Is this possibly related to the change @mnlevy1981 made in #154?

In the external_diag_packages directory, you'll need to modifyconfig.yml so adf_root points to the right place:
- adf_root: ../../external_diag_packages/ADF/
+ adf_root: ../../externals/external_diag_packages/ADF/

adf_root is relative to where the notebook is run, which used to be ${CUPID_ROOT}/externals/nblibrary/atm but is now ${CUPID_ROOT}/nblibrary/atm

Actually, you want
- adf_root: ../../external_diag_packages/ADF/
+ adf_root: ../../externals/external_diag_packages/ADF_output/

(In #141 I changed the location of the ADF output in build.py, and I guess I never deleted externals/external_diag_packages/ADF so my testing didn't catch the change in adf_root until I started working on #154)

I fixed the ADF path by setting the adf_root to ../../examples/external_diag_packages/ADF_output/.
I'll work on the rof notebooks outside this PR.
This is ready for review.

FYI, it looks like we never added the runoff notebooks to the Jupyter Book... config.yml will need
    - caption: River Runoff
      chapters:
        - file: rof/global_discharge_gauge_compare_obs
        - file: rof/global_discharge_ocean_compare_obs

Where the rest of the chapters are defined

FYI, it looks like we never added the runoff notebooks to the Jupyter Book... config.yml will need
    - caption: River Runoff
      chapters:
        - file: rof/global_discharge_gauge_compare_obs
        - file: rof/global_discharge_ocean_compare_obs

Where the rest of the chapters are defined

Ack, thanks for catching that! I remember looking at it so must have updated this in my own version somewhere... I'll follow up on that outside this PR.


Mod doesn't create config file in singleplayer

As the title says, but I don't know if this is intended. I usually set up my servers in single player first, as it is easier to do all the configs there, and then copy them to the server.
Thanks for this amazing port!
Kind regards,
Tia

The mod works by manipulating packets sent from the server to the client and therefor only works if installed on a server.
Kind regards,
Drex


pyocd flash gets an uncaught exception

Trying to use pyocd flash to program an STM32F072VB processor. pyocd gdb works with the same settings.
I've tried both python 2 and python 3.
pyocd -V reports "0.23.0"
pyocd.yaml:
# global options
debug.log_flm_info: true
frequency: 1000000
persist: true
enable_semihosting: false
vector_catch: all
target_override: stm32f051
chip_erase: chip

$ pyocd flash -v ui-build/UserInterface.elf
0000278:INFO:session:Using config settings for probe 0670FF505454887767051341
0000278:INFO:board:Target type is stm32f051
0000311:INFO:dap:DP IDR = 0x0bb11477 (v1 MINDP rev0)
0000432:INFO:ap:AP#0 IDR = 0x04770021 (AHB-AP var2 rev0)
0000473:INFO:rom_table:AP#0 ROM table #0 @ 0xe00ff000 (designer=020 part=440)
0000505:INFO:rom_table:[0]<e000e000:SCS-M0+ class=14 designer=43b part=008>
0000521:INFO:rom_table:[1]<e0001000:DWT-M0+ class=14 designer=43b part=00a>
0000533:INFO:rom_table:[2]<e0002000:BPU class=14 designer=43b part=00b>
0000544:INFO:cortex_m:CPU core #0 is Cortex-M0 r0p0
0000570:INFO:dwt:2 hardware watchpoints
0000580:INFO:fpb:4 hardware breakpoints, 0 literal comparators
0000615:CRITICAL:__main__:uncaught exception: local variable 'addr' referenced before assignment
Traceback (most recent call last):
  File "/home/ned/.local/lib/python2.7/site-packages/pyocd/__main__.py", line 343, in run
    self._COMMANDS[self._args.cmd](self)
  File "/home/ned/.local/lib/python2.7/site-packages/pyocd/__main__.py", line 480, in do_flash
    file_format=self._args.format)
  File "/home/ned/.local/lib/python2.7/site-packages/pyocd/flash/loader.py", line 159, in program
    self._format_handlers[file_format](file_obj, **kwargs)
  File "/home/ned/.local/lib/python2.7/site-packages/pyocd/flash/loader.py", line 212, in _program_elf
    LOG.debug("Skipping segment LMA:0x%08x, VMA:0x%08x, size %d", addr,
UnboundLocalError: local variable 'addr' referenced before assignment

I have also tried this with the correct target type (after loading the correct CMSIS pack) with the same result.

Hi @bikeNomad , this was thankfully already fixed on master in commit 149556e. Sorry for the inconvenience! I'll shortly release version 0.24.0 that includes this fix.

Closing with release of 0.24.0.


Feature: poc for boolean selectionKeyCode

Not necessarily the way maintainers of this library might want to do it, but I have a similar use case as #1001 and #964 and whipped up a proof of concept.
My use case is I'm basically trying to create a toolbar where instead of holding down a key, you would click a button to activate the "box drag select" state (think photoshop toolbarish sort of thing)
In this situation, I needed to be able to pass true and false instead of just simply something like null. I guess I could have just made the keycode something obscure but it feels clearer to have something that specifically disables the box select when desired to be disabled.

hey, @moklick, any chance of merging it? I am using react-flow in one of our products and had a similar requirement.

@r2dliu pretty nice solution I wonder what's stopping the merge of this PR

Hey @r2dliu
Thanks for your help here! I think it would be a great addition to be able have some different kind of controls. When I am right you want to be able to drag while a certain key is pressed and the selection is the default dragging action (like in Figma for example). Unfortunately it's not valid to call a hook conditionally. This breaks React. We would need to find another way. If you still want to contribute to this, please do a PR against the v10 branch.


Please create a new release for the "upload-artifact" option

On the current master, the upload-artifact option was added. Please create a new release that includes this change. Thank you!

As a workaround       - uses: flatpak/flatpak-github-actions/flatpak-builder@master


epicov: File transfer failing in batch.py script

[covizu@Paphlagon ~]$ tail batch.log
R[write to console]:  library ‘/usr/share/R/library’ contains no packages

ssh: connect to host filogeneti.ca port 22: Connection timed out
scp: Connection closed
Traceback (most recent call last):
  File "/home/covizu/covizu/batch.py", line 214, in <module>
    subprocess.check_call(['scp', nwk_file, '{}/timetree.nwk'.format(server_epicov)])
  File "/usr/lib64/python3.11/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['scp', 'data/timetree.2023-10-21T06:22:09.nwk', 'filogeneti.ca:/var/www/html/epicov/data/timetree.nwk']' returned non-zero exit status 255.

[covizu@Paphlagon covizu]$ python3
Python 3.11.3 (main, Apr  5 2023, 00:00:00) [GCC 12.2.1 20221121 (Red Hat 12.2.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.check_call(['scp', 'data/timetree.2023-10-21T06:22:09.nwk', 'filogeneti.ca:/var/www/html/epicov/data/timetree_test.nwk'])
timetree.2023-10-21T06:22:09.nwk                                                                                100%   69KB  29.5MB/s   00:00
0

Let's add time.sleep(5) commands between calls to scp in the local copy of batch.py temporarily until we switch from the VM webserver back to ccr5.


[Changed-m1.18.2-v0.13] Crash w\ BlockCarpentry

Hey, Dev of BlockCarpentry here. Someone reported a compatibility problem between Changed and BlockCarpentry, and I tried to find the issue, however the log does contain neither information about BlockCarpentry nor Changed. I guess, there is a mixin breaking something in BlockCarpentry, or vice versa. Here's the crash report and the log with some more information. Maybe you could fix the issue if it is caused by changed or point out the issue with BlockCarpentry, if this is the case.
crash-2024-02-08_21.09.52-client.txt
latest.log
To reproduce the issue, I installed only BlockCarpentry and Changed, and then the game crashes...
Thanks in advance,
PianoManu

It appears to happen when a block returns a null VoxelShape from block.getCollisionShape(...)

Strangely enough, I wrote a mixin that was supposed to catch null returns from that function

Alright I found the issue, although I do not really understand how and why your mod triggeres it. Never ever has my stateToCollisionShapeMap contained null values. The commented out part crashes the game...

But it seems like something with the mixin is not right as well? At least for what I see, it should prevent such cases and not make them crash the game. Maybe you could rethink that again? For now, I'm closing this issue. Thanks for your help!

Oh I know why, the Changed mod injects a block-state property into almost every block, and thus may invalidate your map. I'm not sure what you use to generate the collision shapes, but I'd recommend using StateDefinition.getPossibleStates() to generate entries for every block-state, rather than iterating each known property.
It could also be solved by having the map computeIfAbsent(state, s -> generateShape(s)) to generate the shapes if they don't exist already. Or you could leave it as getOrDefault(state, Shapes.block())
I can also blacklist the block manually, if you think this behavior shouldn't happen.

Ok thanks, I'm probably going to use the StateDefinition method. I didn't know it existed. I've made this mod in 1.15 and casually updated it up to 1.19, but I never checked whether there are any new methods or stuff like that. In any case, thank you!
Regards Manu


Add a new tool to add has_str flag to bugs with a STR

First implementation of #400.

Coverage decreased (-0.5%) to 29.462% when pulling 7c142fd18040eebe70fcec09ca8ce2611ea29d3f on calixteman:has_str into 531fe2684af075aee33d806fd56671be45fbc8bf on mozilla:master.

Needs rebasing and I don't want to give it a try :)

@calixteman ping?

seeing the bot get into action a couple of times now after this change is live, where it wasn't really enhancing the bug with helpful information  - i've left a comment in #400 about it.


Terminal periodically stops updating

After I've used Hyper for a while it will stop showing what I type, as I type it. This occurs from the plain vanilla windows command line. This also happens while running other shells in other environments. The only solution is to restart Hyper.
    <!-- Please succinctly describe your issue and steps to reproduce it. -->
    -
    Hyper 1.4.8
    Electron 1.7.8
    win32 x64 10.0.16299

I have several people at my company experiencing the same issue.

Hi! Can you try and see if the issue is also present in 2.x? see how to try it now at zeit.co/blog/canary

Ok. Testing 2.x today. Will let you know what I find. Thanks for responding.

Appears fixed in 2.x


Force a config volume to be mapped, and change how passwords are set

If you don't like these changes I can release my own image.

I'll try to check this out on the weekend!

Hey @coppit, Docker builds fine, but it doesn't appear to running xeoma properly, as I can't connect to it remotely.  Only started digging through your changes a bit, but couldn't see anything obvious.  Will keep having a look.  I tried just rebuilding my beta version (so it uses the latest Xeoma stable and beta binaries) and it seemed to build/run fine, so I don't believe it's anything to do with Xeoma changing anything.  One thing I did notice is you purposedly get the mac address and set a config, which I'm not sure is working for me.  Can you send me the docker run string you are starting it with?

Can you send me the docker run string you are starting it with?

See the gory details below. I'll take a look and see if there's anything special in there. I'm running it non-privileged, bridged networking, opening up port 8090.
/plugins/dynamix.docker.manager/scripts/docker create --name="Xeoma" --net="bridge" -e TZ="America/New_York" -e HOST_OS="unRAID" -p 8090:8090/tcp -v "/mnt/cache/appdata/xeoma":"/usr/local/Xeoma":rw -v "/mnt/disks/Hitachi_HDS5C3030ALA630_MJ1313YNG2450C/xeoma-archive":"/usr/local/Xeoma/XeomaArchive":rw coppit/xeoma-server

BTW, if the readme command doesn't work, we should figure out why:

One thing I did notice is you purposedly get the mac address and set a config

I save the MAC, but don't use it for anything. I'm just being overly cautious. I mention in the README that it might be necessary to set it, but it hasn't been necessary for me. I think that as long as you have an internet connection, Xeoma can validate your license just fine.
I'm not seeing any gotchas. Let me know if you're still having trouble after looking at my run command. Be sure that you're mapping /usr/local/Xeoma in the container to the same location that you have in the past.

Interesting, you are able to use bridge networking, where as I'm using host.  I do recall trying to get this to work with bridge, but none of the camera detection worked for me.  That may have changed now.  Will try to test it more later tonight.

Oh! I specified my cameras manually. Let me test some more and update the
readme about that.
We're you able to connect?
On Mon, Apr 3, 2017 at 6:48 AM Marcus Collier<EMAIL_ADDRESS>wrote:

Interesting, you are able to use bridge networking, where as I'm using
host. I do recall trying to get this to work with bridge, but none of the
camera detection worked for me. That may have changed now. Will try to test
it more later tonight.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jedimonkey/xeoma-docker/pull/2#issuecomment-291109348,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAe0WQr-1stcKQEK4OQhEB0T0_IRJ4_eks5rsM6JgaJpZM4MsdmR
.

I tried switching to host networking, and I got an error about licensing. I don't want to relicense just to test this, so I'll take your word that the cameras can't be found.
I pushed an update to the README to talk about the camera search issue, how to get relicensed if you choose to change the networking, and more. But for some reason it's not getting added to this pull request. I'm kinda a git noob about this stuff. If you want to grab it, it's here: https://github.com/coppit/docker-xeoma-server/blob/master/README.md

Hi Marcus/Coppit.  I am trying to get this docker running on my QNAP nas (running linux 3.4.6 under the hood) and having issues.  Is there anything either of you could offer me to try to get the initial settings configured to run it in Container Station?  I am too noob to do much under the command line, but I am very persistent... Scott


pulsar-client MultiTopicsConsumerImpl frequently fullgc

300 partitions topic 1200W/s,  pulsar-client 2.5.1
failover SubscriptionType, When using 150 2core 4G vm, fullgc frequently appears, the connection has been reconnected, and the consumption cannot be achieved at all.
Some parameter configuration:
receiverQueueSize = 1000
maxTotalReceiverQueueSizeAcrossPartitions = 60000
Instead of using 20 16core 32G VMs when consuming, the memory usage is relatively high at startup, and there will be reconnection, which can be consumed after a while, but the speed is only 3000ms / s per partition. The performance is far from enough,
when the receiverQueueSize=3000, fullgc will appear
When the specified partition is used for single consumption, the performance is normal. MultiTopicsConsumerImpl Multi-partition consumption is estimated to have performance problems

@yangwenjie88 Would you please have a try on use larger receiverQueueSize?

@yangwenjie88 Would you please have a try on use larger receiverQueueSize?

Have tried to increase the size, after the increase, the memory is insufficient, resulting in more frequent fullgc

This might be related to #8138.

https://github.com/apache/pulsar/issues/8138 has been resolved. This issue is stale and thus I'd like to close it as we cannot investigate the problem smoothly in an unmaintained version.
If it's still relevant to maintained versions, feel free to open a new issue.


Try interacting with ServiceRegistry on a test network

We can deploy ServiceRegistry on a testnet and try to interact with them.
Aim

to see whether the deposit amount moves in a reasonable way
to see whether the ServiceRegistry can run through some typical scenarios

Scope

the scope of this issue is still the dev using the contract alone
(handing it out to others can happen later).

Steps

choose scenarios
try a single scenario
try the other scenarios concurrently

This has been done as part of the Alderaan test process.


update image behavior ?

i'm trying to render some markdown document which contains image, but this is behaving weirdly.
As example, when rendering https://github.com/AvaloniaUI/Avalonia/wiki/Projects-that-are-using-Avalonia
The images are not fitting the current window with and it seems weird from user point of view :

thanks to report it.
I will modify to adjust the size to fit control width.

you're fast !!!

This modify is included in 0.9.0-a7 and 0.10.0-a7.

awesome ! works like a charm !


mysql-operator

Signed-off-by: Xueliang Yang<EMAIL_ADDRESS>
Description of your changes

How has this code been tested?

Checklist

I have:

[x] Title of the PR starts with type (e.g. [Addon] or [Trait]).
[x] Updated/Added any relevant [documentation] and [examples].
[x] Unit/E2E Tests added.

@wonderflow  Thanks for your review. I update the related files.

@wangyikewxgm I share a demo in README.md, it's clear and easy-to-go.

IMO the readme isn't a good place to show the demo, it will be showed in velaux addon's page, too large readme will bring a  bad user-experience. In fact we want put all addon usage in example dir. So I suggest move the demo there.

@wangyikewxgm  In fact ,as a user, the first wanted-thing is to show him directly how to get started as soon as quickly, and at the best, less docs are needed to search.

@wangyikewxgm In fact ,as a user, the first wanted-thing is to show him directly how to get started as soon as quickly, and at the best, less docs are needed to search.

The meaning of the example dir is that we can put more and more demos  in  for every addon in the future, a quick easy demo in readme is just fine.


Chinese readme file

Readme file in Chinese

@JakeLin I sent a PR (#39) with some updates to the Chinese README.

Thanks to @lexrus @ashchan


Use the new TypeVarTuple to implement a single Tensor type.

Using Unpack and TypeVarTuple from https://peps.python.org/pep-0646/#appendix-a-shape-typing-use-cases
You can make it work in older python versions by using the typing-extensions package that has backported the functionality all the way to python 3.7. (though you have to use Unpack[TypeTuple] instead of *TypeTuple since that required a grammar change).
I'd be glad to help with some of this if you wanted to point me at where to start.

We've actually deliberately decided not to use PEP 646 (yet), for compatibility reasons. There are two factors: a) concise syntax for PEP 646 is only available in Python 3.11 onwards, which not everyone can migrate to yet; and b) PEP 646 is (as of January 2022) only supported by Pyre and Pyright - not by Mypy or pytype, which are both popular.
Type checker support is the biggest thing - so once there is better support for PEP 646 in Mypy and pytype, we may revisit this question. Since I anticipate that taking a long time though - maybe ~years :( - for now I'll close this issue.


compatibility with OpenCV V.4

How can I change the cmake to accept opencv version 4?
currently showing this error:
CMake Error at CMakeLists.txt:66 (find_package):
Could not find a configuration file for package "OpenCV" that is compatible
with requested version "3.0.0".
The following configuration files were considered but not accepted:
/usr/local/lib/cmake/opencv4/OpenCVConfig.cmake, version: 4.0.0
-- Configuring incomplete, errors occurred!
See also "/home/nano/jetson-inference/build/CMakeFiles/CMakeOutput.log".
See also "/home/nano/jetson-inference/build/CMakeFiles/CMakeError.log".

Hi @silvermind20 , try changing 3.0.0 to 4.0.0 in CMakeLists.txt:72

Thanks. I changed the 2 CMakeLists.txt files manually to 4.0.0 and it worked fine. But is there anyway to do this in command line when running for example ./imagenet instead of manually change the CMakeLists files?

This is a build-time change, so needs to be done in the CMakeList file before compiling the imagenet programs.

BTW it is intended that the CMake find_package() would use any OpenCV >3.0.0, but unfortunately it detects 4.0.0 as an incompatible version for some reason.

Thanks a lot for your prompt replies.

Hi @silvermind20 , try changing 3.0.0 to 4.0.0 in CMakeLists.txt:72

after changing 3.0.0 to 4.0.0
my error is :
Could not find a configuration file for package "OpenCV" that is compatible
with requested version "4.0.0".
The following configuration files were considered but not accepted:
/usr/share/OpenCV/OpenCVConfig.cmake, version: <IP_ADDRESS>

-- Configuring incomplete, errors occurred!
See also "/home/unizen/jetson-inference/build/CMakeFiles/CMakeOutput.log".
See also "/home/unizen/jetson-inference/build/CMakeFiles/CMakeError.log".
could you please help me in this

@vihari1729 Resurrecting this thread to point out there is a second CMakeLists file located in tools/trt-console/CMakeLists.txt that needs to get edited along with the one in the project root


Implement exporter retry logic

Closes #31

I added max_backoff value that is now hardcoded to 2 minutes and modified the implementation so that instead of starting to export at full speed after first successful export, backoff is decreased on every successful delivery until it reaches to zero.
I also did some refactoring to split the logic in ExportScheduler to multiple smaller functions. I removed register method from ExportScheduler as well, because I'm not sure if/when we will support configuring multiple exporters so maybe it is better not to make changes for that in advance.


CI: Ubuntu builds fail due to outdated repo signatures

I tried to re-use the openbuildservice repo and it seems, that repo has now expired signatures.
As a consequence, also the TiGL CI fails.

I retriggered the openbuildservice build. This seems to have resolved the issue (I tested it in a clean Ubuntu 18.04 and 20.04 docker image). Could you please verify?

Awesome... it works again. Thanks :)


Azure CPI needs a new ways to deploy VMs

Versions (please add them if you have more releases for this issue)
CPI      Version:
BOSH     Version:
CF       Version:
Diego    Version:
Stemcell
Version: n/a
Distro:

[x] Ubuntu (focal)
[ ] CentOS

Environment

Azure Environment:

[ X ] Azure
[ ] AzureChinaCloud
[ ] AzureUSGovernment
[ ] AzureGermanCloud
[ ] AzureStack

Version: (e.g. 1712 update or build number 180106.1)

[ ] Others:

Location: (e.g. East US)
Subscription ID:
Resource Group Name:
[ ] Use Managed Disks

Issue Details
Bosh relies on this dead project, WalaAgent, to provision VMs. It looks like now azure wants you to use cloud init.
Logs (Please redact all sensitive information in your logs)
Error message: {
"startTime": "2021-11-04T20:24:26.4564949+00:00",
"endTime": "2021-11-04T21:04:10.359853+00:00",
"status": "Failed",
"error": {
"code": "OSProvisioningTimedOut",
"message": "OS Provisioning failure has reached terminal state and is non-recoverable for VM '2d7392a7-9a39-41cd-9aa7-b2c2e7c9c68d'. Consider deleting and recreating this virtual machine. Also, make sure the image has been properly prepared (generalized).\r\n * Instructions for Windows: https://azure.microsoft.com/documentation/articles/virtual-machines-windows-upload-image/ \r\n * Instructions for Linux: https://azure.microsoft.com/documentation/articles/virtual-machines-linux-capture-image/. \r\n \r\nAdditional Details: OS Provisioning for VM '2d7392a7-9a39-41cd-9aa7-b2c2e7c9c68d' did not finish in the allotted time. The VM may still finish provisioning successfully. Please check provisioning state later. Also, make sure the image has been properly prepared (generalized).\r\n * Instructions for Windows: https://azure.microsoft.com/documentation/articles/virtual-machines-windows-upload-image/ \r\n * Instructions for Linux: https://azure.microsoft.com/documentation/articles/virtual-machines-linux-capture-image/ \r\n * If you are deploying more than 20 Virtual Machines concurrently, consider moving your custom image to shared image gallery. Please refer to https://aka.ms/movetosig for the same."
},
Repro steps (if necessary, delete otherwise)
You can't build the focal image for azure (see focal/master with the latest Wala agent. It looks like azure cpi will need to support cloud-init for newer OSes.

Sorry, but focal/master is an experimental branch that is not supported.
Current work is focusing on the upcoming JJ with early experiments on Ubuntu Impish Indri going on these days. We still have a lot of refactoring and non-regression testing to do before a proper JJ Stemcell can be released next spring.
If you have resources for continuing the early work by @StefanWutz on Ubuntu Focal, that would be fantastic and for this, you're welcome to contribute to the bosh-linux-stemcell-builder repo! 👍
Right now, I'm just closing this issue, as the Azure CPI is definitely not concerned.

This should be valid also for the JJ stemcell. @metron2 as you found this could you please open an issue for the https://github.com/cloudfoundry/bosh-linux-stemcell-builder so that we have this on our radar.

Hi @metron2,
add this point as investigation for the jammy stemcell. I don't see that the WalaAgent is dead. I also couldn't find any indication from the Azure platform about that. There is only the described difference between the walaagent and cloud-init support in https://docs.microsoft.com/en-us/azure/virtual-machines/linux/using-cloud-init#what-is-the-difference-between-cloud-init-and-the-linux-agent-wala. Can you provide more information here?

It's been a while @beyhan but I got an error with focal that the distribution wasn't supported, so I tried bumping WalaAgent to a newer version but it still failed to configure the VM. The python stack ended in an error in distrubtion.py.
Cloud-init is pretty universal now. I was just thinking if you have to do something different anyway why not move to something that's universal (I had never heard of the wala-agent before). https://cloudinit.readthedocs.io/en/latest/

@metron2 thank you for bringing this up. I have added this point as something to be looked into when we work on the new Jammy based stemcell. I will close this issue because this is not the right place to track this.


Remove connect dependency

Like as connect-redis
https://github.com/visionmedia/connect-redis
Diff became large by having changed the indent. But the actually changed codes are some lines.

+1

+1

With release Connect 2.0 it very important issue. Please merge this.

+1 - Connect 2.0 breaks connect-mongo, and you have the connect dependency set to >=, so all fresh installs of connect-mongo are broken as of now. Please merge ASAP, I've either got to remove this package or check in my node_modules to get around this.

+1


[Question] RBAC Configuration Databridge - Missing Documentation

Describe the question
At first I like to ask, is RBAC implemented in the Databridge too?
If yes how is it configured?
I tried the following (analog to the other services), which isn't working:
basyx.cors.allowed-origins=*
basyx.cors.allowed-methods=GET,POST,PATCH,DELETE,PUT,OPTIONS,HEAD

basyx.feature.authorization.enabled = true
basyx.feature.authorization.type = rbac
basyx.feature.authorization.jwtBearerTokenProvider = keycloak
basyx.feature.authorization.rbac.file = file:/application/rbac_rules.json // linked in docker container
spring.security.oauth2.resourceserver.jwt.issuer-uri= http://<IP_ADDRESS>:9097/realms/BaSyx

basyx.databridge.authorization.preconfiguration.token-endpoint=http://<IP_ADDRESS>:9097/realms/BaSyx/protocol/openid-connect/token
basyx.databridge.authorization.preconfiguration.grant-type=CLIENT_CREDENTIALS
basyx.databridge.authorization.preconfiguration.client-id=databridge
basyx.databridge.authorization.preconfiguration.client-secret=mysupersaveclientsecretisetinkeycloak

Thank you for your help!

Hello @gerberm-at-msg,
there is no documentation for that because the DataBridge currently does not support RBAC.
I created a new ticket in our backlog. You can find it here: eclipse-basyx/basyx-databridge#316


Add Speech Synthesis model.

Hi, I'm Minh, creator of TensorflowTTS. This is a PR to add three TTS (Speech synthesis) models (Tacotron-2, FastSpeech2, Mb-Melgan) to the README. PTAL, thanks :D.

@dathudeptrai, thank you so much for the PR!
Could you update the word "Reference" to "Android" please, since you are linking to actual Android examples.


Increase highlight lenght

The Highlights that are recorded can max only be 2 minutes long. When I play a song that is longer than that it will just remove the beginning.
Can you increase the Highlight max lenght? Or is it impossible as the highlight lenght is set by GeForce Experience?

It seems to be working fine for me even over 2 minute mark.

Can you please check the maximum disk space that you have setup for highlights in GeForce overlay? Settings -> Highlights.

Oh, I just found the problem. In another tab the "video evidence" length (or whatever it is called in english - I have it in german) was set to 2 minutes...


Inference using unlabeled data

Hi,
Thank you for your work. It's really interesting! I have some questions. Can I test your pretrained models using unlabeled images/videos? Can I run your code on Windows? At the moment, I don't have Ubuntu already installed on my computer.
I look forward to your reply.
Best regards,
Monica Gruosso

Thank you :)

Yes, you can use my inference script for unlabeled data. However, you must create a virtual label for each image, e.g. it could be a simple segmentation map only containing zeros. Furthermore, you must create a corresponding txt-file, where each line consist of the following data:
<path2image/video>
Furthermore, you have to modify the pathes in src/datasets/*

I provide a virtual environment in this repo (singularity container). Look at the follwoing link, how to install singularity on windows: https://sylabs.io/guides/3.0/user-guide/installation.html

I hope that I could help you!

Thank you very much @Andreas-Pfeuffer! I will try asap.
Best regards,
Monica Gruosso


Bump react-palm

Bumps react-palm to the latest version

Your yarn.lock file is incorrect (for some reason), which is part of why CI is failing.

Cool, changed the yarn.lock and that made it pass

Can you squash the commits into one? @heshan0131 can you give this a look?
Thanks!

Oh also should there be a version bump / patch? Not sure how strictly Kepler follows semver.

Please also update the code example in README.md
change your./npmrc to registry = https://registry.yarnpkg.com/ then run yarn to update yarn.lock

@ericsoco @heshan0131 at least some of the yarn.lock files are not updated because of .gitignore.  Should I remove those lines in the .gitignore?

we only include 1 yarn.lock at the root, that's the only one need to be updated


Kernel method collision

Just a heads up, I think there's a collision with ruby facets on the Kernel _method_ patching.  If anybody gets a 1 for 0 argument error, chances are something is loading facets and patching Kernel after aws-s3 has been loaded up.

It took me hours to figure this out. Now to figure out how to fix it. Any thoughts?


Nav

@mixonic All the tests pass now. I'm going to make a rebased PR. Do not merge

closing in favor of #56


Cannot import some games from RetroAchievements

Some games couldn't be imported from RetroAchievements. The list of games is as follows:

Nintendo NES:

The Legend of Zelda

Nintendo 64:

The Legend of Zelda: Ocarina of Time
The Legend of Zelda: Majora's Mask

Nintendo Game Boy:

Pokémon Yellow

Nintendo Game Boy Color:

Pokémon Gold
Pokémon Silver
Pokémon Crystal
The Legend of Zelda: Link's Awakening DX
The Legend of Zelda: Oracle of Seasons
The Legend of Zelda: Oracle of Ages

Nintendo Game Boy Advance:

Pokémon Ruby
Pokémon Sapphire
Pokémon FireRed
The Legend of Zelda: A Link to the Past & Four Swords
The Legend of Zelda: The Minish Cap

Nintendo DS:

Pokémon HeartGold
Pokémon SoulSilver
Pokémon Black
Pokémon White
Pokémon White 2
The Legend of Zelda: Phantom Hourglass
The Legend of Zelda: Spirit Tracks

It's weird that games like Pokémon FireRed and Pokémon Black weren't found while Pokémon LeafGreen and Pokémon Platinum were.

Can you try with the last release?

The same error happens, even when the game has the same name as on RetroAchievements.

I too am having this issue but with TimeSplitters 2 for PS2. The logs say this.
15-03 18:38:35.517|INFO |SuccessStory#PluginDatabaseObject4:RefreshNoLoader(TimeSplitters 2 - 255a1ce5-16b0-42d8-ae27-6008c61ceba3)
15-03 18:38:35.517|INFO |SuccessStory#PluginDatabaseObject4:Used SuccessStory.Clients.RetroAchievements for TimeSplitters 2 - 255a1ce5-16b0-42d8-ae27-6008c61ceba3 15-03 18:38:35.560|WARN |SuccessStory#RetroAchievements:No game find for TimeSplitters 2 with Sony PlayStation 2 in 10 15-03 18:38:35.560|INFO |SuccessStory#PluginDatabaseObject4:No achievements find for TimeSplitters 2 - 255a1ce5-16b0-42d8-ae27-6008c61ceba3`

Actually right now, even on games that I already have it displaying retro achievements, refreshing the data gives the same "No game find" and "No achievements find" messages, so maybe their API is having issues currently?

Yeah, today without any changes the achievements are being imported fine.

Playstation 2 achievements are currently broken for me. Importing from RetroAchievements yields nothing, even if the game name is a perfect match. And as @NoShotz mentioned, even games which have previously imported correctly show "no achievements found" in the log if you refresh the data. However, achievements are recognized correctly if I refresh a game for any other system - so it's not just server issues or something along those lines.
I wish it was possible to manually tie RetroAchievements to a library entry using the page URL, for instances where automatic lookup is malfunctioning.

RetroAchievements using wrong gamecode #482

[Feature Request] Manually Set RetroAchievements Game ID #475


TLS origination via external PROXY

My Istio environment runs behind external Forwarding PROXY server.
I'd like TLS Origination for all external requests to be handled by Istio.
So it would be great if Istio itself could be configured to send external requests via PROXY. I couldn't find any information in the documentation on how to make it happen.
Example in the Documentation suggest I can do it by exposing PROXY itself into the mesh as ServiceEntry.
I don't want to do it because applications will have to be proxy-aware, instead I'd like Istio to do all traffic routing regardless if it's Internal or External.
Example:
As part of the Cloud Migration I have an External API ABC running on-prem, exposed via Internet and available from my Kubernetes/Istio cluster via External Squid Proxy.
When I migrate ABC API into the same Kubernetes Cluster I will need to re-deploy all API consumers without Proxy configuration - so they can access it directly inside the cluster.
I want to avoid this and remove the Routing logic away from the Application into Istio Mesh.

I believe this will become possible when envoyproxy/envoy#1451  is implemented


Remove yoga::bit_cast

Summary:
X-link: https://github.com/facebook/yoga/pull/1413
We can remove this now that we no longer have a >3 year old version of lib++ as the least common denominator.
Differential Revision: D49897176

Closing as abandoned internally


Updates required to ANF section

This is a reopen of now closed PR #78612.
This page requires few updates in the Azure NetApp Files section:

Under protocols it should read:
SMB 2.1, 3.x (including SMB Continuous Availability optionally)
NFSv3, NFSv4.1 (***note: this is the accurate version description)
Dual protocol access (NFSv3/SMB and NFSv4.1/SMB)

Under Region Availability
35+ regions

Under Identity-Based Authentication and Authorization
ADDS/LDAP integration (remove 'coming')
ADDS/LDAP integration with NFS extended groups (remove 'preview')
ADDS LDAP over TLS (aka LDAPS)

Under Access Options, add
standard network features

Under Data Protection, add
Azure NetApp Files backup

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 27132a89-4dee-aa95-1d0a-acb454b342c7
Version Independent ID: dc63897c-8280-d17b-7fdc-dd1f859e2574
Content: Azure Files and Azure NetApp Files Comparison
Content Source: articles/storage/files/storage-files-netapp-comparison.md
Service: storage
Sub-service: files
GitHub Login: @jeffpatt24
Microsoft Alias: jeffpatt

@gvanteylingen Thank you for the feedback. We are actively investigating and will get back to you soon.

Closing as addressed in https://github.com/MicrosoftDocs/azure-docs/issues/78612
#please-close


Datatypes and Units of Measure

CGMES datatype properties are defined like this:
cim:ACDCConverter.baseS a owl:FunctionalProperty , owl:DatatypeProperty ;
  rdfs:domain cim:ACDCConverter ;
  rdfs:range  cim:ApparentPower.

cim:ApparentPower a owl:Class ;
  rdfs:label "ApparentPower"@en ;
  eq:Package "Package_CoreEquipmentProfile" ;
  eq:isCIMDatatype "True" ;
  skos:definition "\nProduct of the RMS value of the voltage and the RMS value of the current.\n\n\t"@en .

cim:ApparentPower.multiplier
  a owl:FunctionalProperty , owl:DatatypeProperty ;
  rdf:value "M" ;
  rdfs:domain cim:ApparentPower ;
  rdfs:label "multiplier"@en ;
  rdfs:range cim:UnitMultiplier ;
  eq:isFixed "True " .

cim:ApparentPower.unit
  a owl:FunctionalProperty , owl:DatatypeProperty ;
  rdf:value "VA" ;
  rdfs:domain cim:ApparentPower ;
  rdfs:label "unit"@en ;
  rdfs:range cim:UnitSymbol ;
  eq:isFixed "True " .

cim:ApparentPower.value
 a owl:FunctionalProperty , owl:DatatypeProperty ;
 rdfs:domain cim:ApparentPower ;
 rdfs:label "value"@en ;
 rdfs:range xsd:float .

There are numerous problems:

cim:ApparentPower is a class, and datatype properties cannot point to a class
cim:ApparentPower is not used in any CGMES instance data
In CGMES instance data, ACDCConverter.baseS is a string, but should be marked as ^^xsd:float
The meta-properties eq:isCIMDatatype, eq:isFixed use profile dataspaces rather than cims
The key value "True " is spelled with a space for multiplier, unit

CIM defines a large set of units of measure, eg:
cim:UnitSymbol a owl:Class ;
  rdfs:label "UnitSymbol"@en ;
  eq:Package "Package_CoreEquipmentProfile" ;
  owl:oneOf (... cim:UnitSymbol.VA ...).
cim:UnitSymbol.VA a owl:NamedIndividual, owl:Thing ;
  rdfs:label "VA "@en ;
  eq:isenum "True" ;
  rdfs:domain cim:UnitSymbol ;
  skos:definition "Apparent power in volt amperes. See also real power and reactive power."@en .

cim:UnitMultiplier a owl:Class ;
  rdfs:label "UnitMultiplier"@en ;
  owl:oneOf (... cim:UnitMultiplier.M ...).
cim:UnitMultiplier.M a owl:NamedIndividual, owl:Thing ;
  rdfs:label "M "@en ;
  eq:isenum "True" ;
  rdfs:domain cim:UnitMultiplier ;
  skos:definition "Mega 10**6."@en .

But they are not used: eg cim:ApparentPower.unit says it has rdfs:range cim:UnitSymbol, but uses a string value "VA". Same for cim:ApparentPower.multiplier
cim:UnitSymbol.VA uses a different label rdfs:label "VA "@en, which has two mistakes:

Trailing space
lang tag @en (in fact it's a SI symbol that has no language)

cim:UnitSymbol.VA wrongly says a owl:Thing; rdfs:domain cim:UnitSymbol.

Instead it should say a cim:UnitSymbol.

Similar problems apply to cim:UnitMultiplier.M, and:

It doesn't express the multiplier as a number 1e6 but only as a string "Mega 10**6"

See sec ## Datatypes and Units of Measure for more analysis and a fixing plan .
But I only plan to fix datatype props: so we need to discuss whether to:

remove unit/multiplier/value props,
remove cim:UnitSymbol nodes that are not used

Fixed Units Representation
We want to fix the representation as follows,
and also connect to QUDT (see https://github.com/qudt/qudt-public-repo/issues/969) .
To be clear, this below is just a blueprint, which parts of it will be implemented and where is still for discussion.
First we correct the property: give a numeric range,
but also specify hasQuantityKind and hasUnit using qudt props.
We link to a global QUDT unit, but also give the multiplier and unitSymbol separately, using cims props:
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix unit: <http://qudt.org/vocab/unit/> .

cim:ACDCConverter.baseS a owl:FunctionalProperty , owl:DatatypeProperty ;
  rdfs:domain cim:ACDCConverter ;
  rdfs:range  xsd:float ;
  qudt:hasQuantityKind cim:ApparentPower;
  qudt:hasUnit    unit:MegaV-A;
  cims:multiplier cim:UnitMultiplier.M;
  cims:unitSymbol cim:UnitSymbol.VA.

Then we correct the QuantityKind and relate it to QUDT.

In QUDT, unit:MegaV-A applies to quantitykind:ComplexPower, but is this "nearly the same" as ApparentPower?
If you google "ApparentPower vs ComplexPower", you can find electrical textbooks that define them as follows:

ComplexPower is the vector sum of real power and reactive power.
ApparentPower is the magnitude of complex power.

But units don't apply to vectors, they apply to magnitudes
QUDT defines ComplexPower as "under sinusoidal conditions, is the product of the phasor U representing the voltage between the terminals of a linear two-terminal element or two-terminal circuit and the complex conjugate of the phasor I representing the electric current in the element or circuit"
Which to me (not being an electrical engineer), is "close enough' to the CIM definition of ApparentPower (see below)

@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix quantitykind: <http://qudt.org/vocab/quantitykind/> .

cim:ApparentPower a qudt:QuantityKind ;
  rdfs:label "ApparentPower"@en ;
  eq:Package "Package_CoreEquipmentProfile" ;
  eq:isCIMDatatype "True" ;
  qudt:applicableUnit cim:cim:UnitSymbol.VA;
  skos:broader quantitykind:ComplexPower;
  skos:definition "\nProduct of the RMS value of the voltage and the RMS value of the current.\n\n\t"@en .

We delete cim:ApparentPower.multiplier, cim:ApparentPower.unit
because they are replaced by universal props cims:multiplier, cims:unitSymbol respectively.
We delete cim:ApparentPower.value because the actual DatatypeProperty cim:ACDCConverter.baseS
now carries a number (xsd:float).
We correct CIM unit symbols and relate them to QUDT:
cim:UnitSymbol a owl:Class ;
  rdfs:label "UnitSymbol"@en ;
  owl:oneOf (... cim:UnitSymbol.VA ...);
  skos:exactMatch qudt:Unit.

cim:UnitSymbol.VA a cim:UnitSymbol ;
  rdfs:label "VA" ;
  cims:isenum "True" ;
  skos:definition "Apparent power in volt amperes. See also real power and reactive power."@en;
  qudt:hasQuantityKind cim:ApparentPower.

We correct CIM multipliers and relate them to QUDT (where they are called "prefixes"):
@prefix prefix: <http://qudt.org/vocab/prefix/> .

cim:UnitMultiplier a owl:Class ;
  rdfs:label "UnitMultiplier"@en ;
  owl:oneOf (... cim:UnitMultiplier.M ...);
  skos:exactMatch qudt:DecimalPrefix.

cim:UnitMultiplier.M a cim:UnitMultiplier;
  rdfs:label "M" ;
  cims:isenum "True" ;
  skos:definition "Mega 10**6."@en ;
  skos:exactMatch prefix:Mega.

I checked https://github.com/Sveino/Inst4CIM-KG/issues/29, and this issue is more comprehensive (so tagged that one as duplicate)
@Sveino can you check that https://github.com/3lbits/CIM4NoUtility/issues/338 doesn't have anything more than this one?

Yes, the direction would be to be more explicit with QUDT. we need to see if we need cim: properties in RDFS - maybe not as this will be result of transformation from UML to the RDFS

@griddigit-ci

we need to see if we need cim: properties in RDFS

This statement is rich since QUDT has all sort of info about MegaV-A:
cim:ACDCConverter.baseS qudt:hasUnit    unit:MegaV-A

including info what is its base unit, and what is its multiplier.
But @Sveino also suggested we keep props multiplier and unitSymbol for an easier transition
cim:ACDCConverter.baseS
  cims:multiplier cim:UnitMultiplier.M;
  cims:unitSymbol cim:UnitSymbol.VA.

(I eliminated the parasitic intermediate props cim:ApparentPower.multiplier, cim:ApparentPower.unit
and converted from strings to things.)

It looks like we have an agreement now to exchange in basic units i.e. no M but in form 1e6

We should keep an object to represent "Mega", not just the multiplication factor.
When we link multipliers to QUDT:
cim:UnitMultiplier.M a cim:UnitMultiplier;
  skos:exactMatch prefix:Mega.

people can get rich info:
prefix:Mega
  a qudt:DecimalPrefix ;
  a qudt:Prefix ;
  dcterms:description "'mega' is a decimal prefix for expressing a value with a scaling of \\(10^{6}\\)."^^qudt:LatexString ;
  qudt:dbpediaMatch "http://dbpedia.org/resource/Mega"^^xsd:anyURI ;
  qudt:informativeReference "http://en.wikipedia.org/wiki/Mega?oldid=494040441"^^xsd:anyURI ;
  qudt:prefixMultiplier 1.0E6 ;
  qudt:siExactMatch si-prefix:mega ;
  qudt:symbol "M" ;
  qudt:ucumCode "M" ;
  rdfs:isDefinedBy <http://qudt.org/2.1/vocab/prefix> ;
  rdfs:label "Mega"@en ;
.

Of course, we can copy selected info from QUDT, eg prefixMultiplier 1.0E6.
There is a lot richer info about units and quantity kinds.
But I was content to just link to QUDT.

This was a big one, the fix queries are:
fix05-units-76,77.ru
fix06-quantityKind-38.ru
fix07-dataProps-38.ru
fix08-remove-qkProps-38.ru
fix09-map-qkUnitsMultipliers-38.ru


Not able to override model connections in test config when model has overridden connection

In the documentation for config.models http://sailsjs.org/documentation/reference/configuration/sails-config-models#?properties it states that model.config.connection will override the default database connection on any given model will use without a configured override. This is useful in tests when you want to switch to a test db.
However, for models that already have an override (See below example), they ignore this setting. It should be possible to override these models connections too.
var User = module.exports = {
  connection: 'specialMongoServer',
  attributes: {}
};

If you want a particular model to have its connection be configurable, you can use a connection name specific to that model and override that connection config in your environment config file (or wherever). For example:
api/models/User.js:
var User = module.exports = {
  connection: 'userConnection',
  attributes: {}
};

config/env/test.js
  connections: {
    userConnection: {
      adapter: 'sails-disk',
      fileName: 'test.db'
    },
  }


Dependency conflicts due to older typing-extensions version

Hi Correl,
we are using your library in our project and it's really helpful, so thanks for the effort. But I am currently running into dependency conflicts with my postgres library, due to the version of typing-extensions you use here. Does it need to be restricted, or could it also be updated to use typing-extensions 4.3.0?

[tool.poetry.dependencies]
python = "^3.7"
tornado = "^4 || ^5 || ^6"
openapi-core = "^0.14.2"
ietfparse = "^1.8.0"
typing-extensions = "^4.0.1"

Cheers,
Judy

It looks like the version conflict was already fixed in ae0b8c09b4ddaf1bf651ec084b45326c6744f8bc. I confirmed the tornado-openapi3 master branch works in a project with typing-extensions 4.4.0, it just needs to be released.
(nudge @correl 👋)

Apologies, I definitely meant to release that. I've pushed up version 1.1.1 with that change.


Experience Obelisk desappear ?

What happens:
The experience obelisk desappear
What you expected to happen:
After the fight with the dragon, we use it to store our levels. When I use my pickaxe to take it, it got sucks by something and desappear. We were near the end exit.
Steps to reproduce:

kill the dragon
put the obelisk on the floor
retake it and watch.

Affected Versions (Do not use "latest"):

EnderIO: <IP_ADDRESS>4_beta
EnderCore: IDK
Minecraft: 1.7.10
Forge: IDK
In the modpack FTB infinity reloaded

Your most recent log file where the issue was present:
I don't have it, sorry, it was on a server.

You might want to read the instruction text before you delete it:
Issue Description:
Note: If this bug occurs in a modpack, please report this to the modpack author.


feature request: indicatracies

It'd be cool if projectityourself could overlay Tissot or Goldberg-Gott indicatrices on the renderings.
http://en.wikipedia.org/wiki/Tissot's_indicatrix
http://arxiv.org/abs/astro-ph/0608501

Happy to accept a PR implementing this feature, but I don't want to indicate that I'm working on it currently, so closing this issue!


Improvement (3pts): copy webcam input from neural retina

Points changed: I had to change it to pubsub-threaded format, rather than QT. Handling cameras is now one one line of code {cv_cam_pub_handler(0, frameHandler)}, and stopping a camera is also one line {pubsub.publish("cvcamhandlers."+str(camId)+".cmd", 'q')}.


Provide settings from environmental variables

Context

Enable users to add webhooks and other settings from environmental variables for easier deployments since websites like Render don't let you write custom commands to compose Dockerized projects.

Hi, thank you for this awesome app.
Could you please consider adding this functionality natively? Currently, I have to manually copy and paste the functions to retrieve environment variables. Additionally, it doesn't update automatically because I fork the project first and then make changes. As a result, the deployed version stops working after a major update.
Regards.


Introduce layer details modal

This introduces the LayerDetailsModal presenting asorted entries of the Capabilities document of the given layer as well as the internal SHOGun configuration object.

Please review @terrestris/devs.

Thanks for the review!

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Help needed

This FEN: 6k1/5ppp/8/8/8/8/5PPP/3R2K1 w - - 0 0
Shows that .game_over() = true and .in_draw() = true
Is it correct?

I think you should use ...0 1 like 6k1/5ppp/8/8/8/8/5PPP/3R2K1 w - - 0 0
The Fullmove clock starts at 1, so that might be a problem if it finds a 0, but I don't know mm..

Yep 6k1/5ppp/8/8/8/8/5PPP/3R2K1 w - - 0 1 should work.
I agree @ajax333221, there should be better errors when dealing with invalid FEN.  I'm working on a branch now that'll throw more meaningful exceptions in those cases.


The dark knight

New entry page and styling

Iteration: Godfather & Dark-knight

change the order of the questions
updated buttons in calculator
Created env variables, and placed it in backend + Netlify
Implemented loglevel and store all console.logs
Added a new entry page based on new designs
Resolved backdrop issues on different screen sizes
Organized vuex store files, css files
Fixed the number of steps to reflect which step # it is.
Fixed the logic for jumping questions on income


Add cost for gas / water

Just started using this great add-on and until now it works like a charm for electricity.
What I also would like is to measure gas and water cost. Both work with the utility meter function, but the costs are not calculated. Both are measured in m³
I also noticed for both gas and water, the unit of measurement is not shown

@Roving-Ronin Here in the Netherlands, all utility companies are billing based on m3. I'm using a P1 meter from https://www.homewizard.com/nl/  (fot the non-dutch speakers, this is a device that plugs into my utilitiy meter and is able to read the data).

@JohanEikelenboom (cc: @zeronounours )
You'll need to modify it to use m3 instead of MJ, but here's the configuration I just got working with energy_meter costings for daily, quarterly and yearly gas consumption. In Australia we are billed quarterly and the rate we pay per MJ is based on the MJ used in that period, with 3-5 (depending upon retailer) tarrif rates (gets cheaper as you use more). i.e. 0 to 1890 MJ, 1890 to 3750 MJ etc.
Stupidly are physical gas meters count in 0.010m3 (10L) increments, that they have a correction factor applied (think its changes depending upon gas density/pressure? and then we then apply a m3 to MJ multiplier (that sometimes changes according to quality of gas?) to get a final MJ figure. Anyhow I have all this configured in the ESP code, so I get a m3 (since last reboot/rest) and a MJ reading (since last reboot/reset), as per the prior screenshot.
Below code is using the 'Gas Meter - Reading (MJ)' data from the ESP to update HA.
Note: The gas_meter_readout sensor is just something I'm still playing with, trying to run a pulse_meter for the above, whilst also adding a pulse_counter (+ HA helper and automations) so I can hopefully also run a seperate sensor that I can align with the m3 reading on the physical gas meter, to compare readings on it to the bill.
If you can't work out how to convert to m3 usage, post me a info on how often you get billed and how they bill on m3 (i.e.  0-100m3, 101m3 - 500m3 or is it just a flat $0.0xxx per m3) and I can see about converting yaml when I have some time spare.
#  Version: 1.4 - Updated to use the energy_meter integration, and converted to using a gas_price sensor that automatically updates to reflect the current MJ cost
#                 as based upon total MJ consumed for the quarter.
#

template:
  - sensor:
    - name: "Gas - Price"
      unique_id: gas_price
      unit_of_measurement: "$/MJ"
      state: >
        {## Enter cost per MJ rates below ##}
        {% set rate1 = 0.03608 %}
        {% set rate2 = 0.03058 %}
        {% set rate3 = 0.02810 %}
        {% set rate4 = 0.02728 %}
        {% set rate5 = 0.02420 %}
        {% set gas_consumption = states('sensor.gas_consumed_quarterly_mj') | float %}
        {% if gas_consumption <= 1890 %} {{rate1}}
        {% elif gas_consumption <= 3750 %} {{rate2}}
        {% elif gas_consumption <= 8250 %} {{rate3}}
        {% elif gas_consumption <= 250500 %} {{rate4}}
        {% else %} {{rate5}}
        {% endif %}

# ---------------------------------------------------------------------------
#
# Derived sensor. Gas pulse counter uses an automation to increase 'counter.gas_meter' by 10(L) for each impulse.
# This counter by setting the minimum value to the readout on the physical meter, is sync'ed
# This reading however is taken as a full number, i.e. 05846314 is read as 5,846,314 instead of 05846.314 m3
# So this template sensor is needed to divide the number by 1,000
#
  - sensor:
    - name: "Gas Meter - Readout"
      unique_id: gas_meter_readout
      unit_of_measurement: "m³"
      device_class: "gas"
      state_class: total_increasing
      state: "{{ (states('counter.gas_meter') | int / 1000 | round(1)) }}"

# ---------------------------------------------------------------------------
#
#   Energy meter consumption totals in megajoules (mj), as converted from gas meter m3 reading,
#   with retailer correction factor applied.
#

energy_meter:

  gas_consumed_daily_mj:
    unique_id: gas_consumed_daily_mj
    name: Gas Consumed Daily mj
    source: sensor.kc868_1_gas_meter_reading_mj
    cycle: daily
    price_entity: &entity-price sensor.gas_price

  gas_consumed_monthly_mj:
    unique_id: gas_consumed_monthly_mj
    source: sensor.kc868_1_gas_meter_reading_mj
    name: Gas Consumed Monthly mj
    cycle: monthly
    price_entity: *entity-price

  gas_consumed_quarterly_mj:
    unique_id: gas_consumed_quarterly_mj
    source: sensor.kc868_1_gas_meter_reading_mj
    name: Gas Consumed Quarterly mj
    cycle: quarterly
    price_entity: *entity-price

  gas_consumed_yearly_mj:
    unique_id: gas_consumed_yearly_mj
    source: sensor.kc868_1_gas_meter_reading_mj
    name: Gas Consumed Yearly mj
    cycle: yearly
    price_entity: *entity-price

# ---------------------------------------------------------------------------

As this is using a sensor that is constantly working out the 'current' price of the gas, there are no tariffs or automations (to update the energy_meter sensors for daily/monthly etc) to get them to update the tariff that is active. So we end up with a sensor for daily/monthly etc that shows the combined price for that calendar period with no seperate rate1/2/3/4/5 tariff sensors, and then having to create a Group sensor to add them add together to get a sum total for the period.

@zeronounours running this (above) and works except with the Energy Dashboard. I have the Daily Gas MJ enttity selected and then for the track the cost, I have selected the Daily Gas MJ Cost entity, but whilst this entity is working correctly and shows $1.xxx the Energy Dashboard fails to show this figure, instead showing $0.00 for this entity.
BTW you never responded re, will you be looking to get this great work added into the base HA / added into utility_meter?


chore: allow usage of analyzer v6

Since more and more packages are gonna bump their analyzer to v6, I thought it would be wise to gracefully update the version using
analyzer: ">=5.1.0 <7.0.0"

This won't break older apps and will allow newer ones to use the package without any issues.

@techouse Can you fix the merge conflict then we can merge? Also, I invited you as a collaborator. I've been really busy and don't want this repo to get neglected, so it'd be nice to get your help if you are interested.

Done :)


Add back functionality to navigate route

This adds the ability to go back to a previously visited route. It uses the window.history.go API.
Resolve #44

@doasync in https://github.com/reach/router/issues/44#issuecomment-403968641 said:

Using window.history.back() users can leave the app, navigate(-1) should prevent that

Should that be handled?

Are there any updates on this? And will the app be exited as @millette stated?

Same, would love to see this in the repo.
But: I guess the PR could use a test 🤔

@themostcolm actually, when looking at the code... yes currently the user would still leave the app. It needs a check if user already navigated to the first route

This code doesn't even work, my bad.


It's not working for me. Thrown error: Expected a class but got undefined

I did tried 2 ways:
CancelSvg.js
import React from 'react'
import Svg, { Line } from 'react-native-svg'

export default class CancelSvg extends React.Component {
  render () {
    return (
      <Svg height='50' width='50'>
        <Line x1={37.5} x2={12.5} y1={12.5} y2={37.5} strokeWidth='2.5' stroke={'#fff'} />
        <Line x1={12.5} x2={37.5} y1={12.5} y2={37.5} strokeWidth='2.5' stroke={'#fff'} />
      </Svg>
    )
  }
}

MenuSvg.js
import React from 'react'
import Svg, { Line } from 'react-native-svg'

export default class MenuSvg extends React.Component {
  render () {
    return (
      <Svg height='50' width='50'>
        <Line x1={10} x2={40} y1={15} y2={15} strokeWidth='2.5' stroke={'#fff'} />
        <Line x1={10} x2={40} y1={25} y2={25} strokeWidth='2.5' stroke={'#fff'} />
        <Line x1={10} x2={40} y1={35} y2={35} strokeWidth='2.5' stroke={'#fff'} />
      </Svg>
    )
  }
}

Main.js
                <MorphReplaceNative width={60} height={60}>
                  {
                    this.state.showMenu ? <MenuSvg /> : <CancelSvg />
                  }
                </MorphReplaceNative>

Error: Expected a class but got undefined. You likely forgot to export your Component from the file it's defined.
But I did export it. I also tried replacing  with  in MenuSvg.js and CancelSvg.js but it's not working.

Did you imported MenuSvg and CancelSvg in your Main.js?


Add Kitra Support

This depends on a submodule:
connect https://github.com/resin-os/meta-artik710/pull/14

Can one of the admins verify this patch?

Can one of the admins verify this patch?

add to whitelist


Highlight wallet pill when transactions pending

Fixes #308
Biggest part of this PR is subjective about whether the animation is ok/correct. Note that this uses a pseudo element with a box shadow that is being translated around underneath the button element so performance is not an issue as it was with the blur filter on the SwapWidget.
Here's a video. The glow also fades in when the transaction starts, but the toast and metamask popup block those most of the time...
An alternative could be a simple pulse (i.e. scale up and down on loop), but personally I liked the movement.
https://user-images.githubusercontent.com/82473383/140434055-8262defc-c7c6-4ff5-84e3-a5091302b706.mov

It does look a bit exaggarated on light mode


Issue with SSM and OpenIDConnect provider on version 4.1.0+

Hey.
Below issue does not occur on version 4.0.0. This error occurs only on 4.1.0+
External secret definition:
apiVersion: kubernetes-client.io/v1
kind: ExternalSecret
metadata:
  namespace: <my-namespace>
  name: <my-key>
spec:
  backendType: systemManager
  roleArn: <ARN-of-the-role-I-use-to-query-SSM>
  data:
    - key: <my-SSM-path>
      name: <my-target-key>

Error in external secrets pod:
{"level":50,"time":1594992337968,"pid":17,"hostname":"external-secrets-release-kubernetes-external-secrets-f4c46hkk6p","message":"No OpenIDConnect provider found in your account for https://oidc.eks.us-ea │
│ st-1.amazonaws.com/id/<removed-GUID>","code":"InvalidIdentityToken","time":"2020-07-17T13:25:37.968Z","requestId":"<removed-GUID>","statusCode":400,"retryable":false, "retryDelay":6.0951075243333985,"stack":"InvalidIdentityToken: No OpenIDConnect provider found in your account for https://oidc.eks.us-east-1.amazonaws.com/id/<removed-GUID>\n    at Re │
│ quest.extractError (/app/node_modules/aws-sdk/lib/protocol/query.js:50:29)\n    at Request.callListeners (/app/node_modules/aws-sdk/lib/sequential_executor.js:106:20)\n    at Request.emit (/app/node_modul │
│ es/aws-sdk/lib/sequential_executor.js:78:10)\n    at Request.emit (/app/node_modules/aws-sdk/lib/request.js:683:14)\n    at Request.transition (/app/node_modules/aws-sdk/lib/request.js:22:10)\n    at Acce │
│ ptorStateMachine.runTo (/app/node_modules/aws-sdk/lib/state_machine.js:14:12)\n    at /app/node_modules/aws-sdk/lib/state_machine.js:26:10\n    at Request.<anonymous> (/app/node_modules/aws-sdk/lib/reques │
│ t.js:38:9)\n    at Request.<anonymous> (/app/node_modules/aws-sdk/lib/request.js:685:12)\n    at Request.callListeners (/app/node_modules/aws-sdk/lib/sequential_executor.js:116:18)","type":"Error","msg":" │
│ failure while polling the secret <my-secret>"}

Are you using IRSA/IAM roles for service account?
There was a fix that should cause those uses to assume role correctly. Most likely they shouldn't have worked before, at least not in the intended way.
Related changes:
https://github.com/godaddy/kubernetes-external-secrets/issues/416
https://github.com/godaddy/kubernetes-external-secrets/issues/417

@Flydiverny thanks for the fast response.
Yes, I am using IAM role.
Moreover my case is a bit more complex. IAM role assigned to the Service Account is used to assume role mentioned in the ExternalSecret. And it worked perfectly before 🤨

Hmm.. so I take it the old code worked as well (obviously).
If I understand correctly, before there was a need for the pod's iam role to have a trust relation ship with AssumeRole action to assume the secret specific role. Which is the behavior that I thought wasn't working at all before. Kind of like the example here https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts-technical-overview.html#cross-account-access
While now the trust relationship would need to be from OIDC with sts:AssumeRoleWithWebIdentity action.
There was some discussion in #254 for fargate support which seemed to have extra needs for the changes introduced.
But reading back and digging thru the main concern there seemed to be that fargate usage didn't load the service account role to begin with. At least the gist here https://gist.github.com/lukaszbudnik/f1f42bd5a57430e3c25034200ba44c2e doesn't try to assume a different role for the external secret.
@lukaszbudnik @dalgibbard any thoughts?

This was kinda why I originally put it behind a Fargate flag / envvar, in case this usage breaks other edge cases.
I'd suggest we should do that :)

Yeah! Have to say that now I'm confused why fargate needed this change to begin with!
Are you setting roleArn in external secrets to assume other roles @dalgibbard? Or is it just for the role used by the deployment?

Ermm I'd have to check the code to give a comment with all the right terminology 😅 but i created a service account with the role needed as per the helm chart, and then deployed external-secrets without it creating the service account etc.
Fargate only EKS is OIDC with WebIdentity; and that's about all I know right now :)

I allowed myself to dig a bit and it looks like this statement may be wrong (cc: @lukaszbudnik).
The problem is that for non-Fargate EKS, the env var AWS_WEB_IDENTITY_TOKEN_FILE is set as well for pod. It means, for the non-Fargate cluster we still call AWS.STS.assumeRoleWithWebIdentity instead of AWS.STS.assumeRole in the current implementation.
At this point, I'm not sure what's the best solution. I believe that trying to distinguish if we run Fargate vs EC2 worker node may be a bad idea (I'm even not sure if it's possible right now). I think (this)[https://aws.amazon.com/blogs/opensource/introducing-fine-grained-iam-roles-service-accounts/] wall of text may be useful.

Yeap that sounds right. This is why I'm not convinced that the current implementation (if Web Identity is present, use it always) is the right way to do it.
I don't have an EKS Fargate cluster to hand at the moment, but if we can identify it is Fargate, we can use that, or allow using WebIdentity using a flag...
Or it's also rumoured that the AWS SDK should actually work all this out automatically, but I don't know JS anywhere near well enough to even take a stab at that.

I'll see if I can get a test cluster up using fargate if I get some time on my hands.

i'd like to chime in here as i'm struggling with the same thing (or at least something closely related).
i'm using external-secrets 4.2.0 on a cluster with irsa.
i have a ServiceAccount annotation that lets external-secrets pods assume the role arn:aws:iam::111111111111:role/external-secrets:
    eks.amazonaws.com/role-arn: arn:aws:iam::111111111111:role/external-secrets

in my ExternalSecret manifest i tried to use:
  assumeRole: arn:aws:iam::222222222222:role/secret-reader

but doing that lead to:
{"level":50,"time":1595648005611,"pid":17,"hostname":"external-secrets-c79f97985-gvw9q","message":"Not authorized to perform sts:AssumeRoleWithWebIdentity","code":"AccessDenied","time":"2020-07-25T03:33:25.611Z","requestId":"5f8c8963-885c-4318-b6b1-556a3f9abd05","statusCode":403,"retryable":false,"retryDelay":65.78212229463618,"stack":"AccessDenied: Not authorized to perform sts:AssumeRoleWithWebIdentity\n    at Request.extractError (/app/node_modules/aws-sdk/lib/protocol/query.js:50:29)\n    at Request.callListeners (/app/node_modules/aws-sdk/lib/sequential_executor.js:106:20)\n    at Request.emit (/app/node_modules/aws-sdk/lib/sequential_executor.js:78:10)\n    at Request.emit (/app/node_modules/aws-sdk/lib/request.js:683:14)\n    at Request.transition (/app/node_modules/aws-sdk/lib/request.js:22:10)\n    at AcceptorStateMachine.runTo (/app/node_modules/aws-sdk/lib/state_machine.js:14:12)\n    at /app/node_modules/aws-sdk/lib/state_machine.js:26:10\n    at Request.<anonymous> (/app/node_modules/aws-sdk/lib/request.js:38:9)\n    at Request.<anonymous> (/app/node_modules/aws-sdk/lib/request.js:685:12)\n    at Request.callListeners (/app/node_modules/aws-sdk/lib/sequential_executor.js:116:18)","type":"Error","msg":"failure while polling the secret default/secretsmanager-example"}

i have all the iam wiring set up for irsa to work and to allow arn:aws:iam::111111111111:role/external-secrets to assume the role arn:aws:iam::222222222222:role/secret-reader (in both accounts - this is not an iam issue, i have this exact same setup working in the same cluster with grafana assuming roles in different accounts to access cloudwatch logs).
so external-secrets seems to try to assumeRoleWithWebIdentity the arn:aws:iam::222222222222:role/secret-reader role. that logic seems incorrect.
as i understand it, external-secrets should assumeRoleWithWebIdentity the irsa role for the deployment itself (arn:aws:iam::111111111111:role/external-secrets) and then use that to do a regular assumeRole to the arn:aws:iam::222222222222:role/secret-reader role.
fwiw, the irsa part totally works: as long as i don't add assumeRole to my ExternalSecret, everything works as expected. but it appears that things got muddled up between the base identity and the assumeRole part.
just for giggles i also tried adding the eks oidc provider to the target account and using an assume role policy that would allow a straight-up irsa-style assumeRoleWithWebIdentity into the target role.
but since external-secrets is using the web token that belongs to the base role (arn:aws:iam::111111111111:role/external-secrets) to assumeRoleWithWebIdentity a role in another account (arn:aws:iam::222222222222:role/secret-reader), that also doesn't work.

@sdickhoven Yepp! Sounds right :)
Work around is to use 4.0.0 for the time being.

Is it fair to agree that we should push the WebIdentity option behind an environment variable / parameter?
AWS_WEBIDENTITY=true or something?

Work around is to use 4.0.0 for the time being.

...just to confirm: v4.0.0 fixes the problem and cross-account sts:AssumeRole in conjunction with irsa works as expected.
(no securityContext.fsGroup: 65534 required)

@dalgibbard I think I'll need some more insight in your setup.
I've now done some trial runs using EKS Fargate.
First following the gist mentioned earlier ( https://gist.github.com/lukaszbudnik/f1f42bd5a57430e3c25034200ba44c2e )
That gives you a new eks cluster using fargate, as well as setting up a role for OIDC which can be used by your service account, in my case the role arn:aws:iam::111111111:role/eksctl-fargate-test-kes-iamserviceaccount-role.
Then I also tried in combination with setting roleArn on an external secret.
Creating a new IAM role arn:aws:iam::1111111111:role/assume-this-role with a trust relationship to the role assumed by the service account:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111111111:role/eksctl-fargate-test-kes-iamserviceaccount-role"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

the secret that needs an alternative role:
apiVersion: 'kubernetes-client.io/v1'
kind: ExternalSecret
metadata:
  name: hello-service-with-role
spec:
  backendType: secretsManager
  roleArn: arn:aws:iam::1111111111:role/assume-this-role
  data:
    - key: hello-service/password
      name: password

This gives me the correct expected output:
[1595814400855] DEBUG : spinning up poller for default/hello-service-with-role
[1595814400857] INFO  : starting poller for default/hello-service-with-role
[1595814401023] DEBUG : next poll for default/hello-service-with-role in 0 ms
[1595814401023] INFO  : running poll on the secret default/hello-service-with-role
[1595814401193] INFO  : fetching secret property hello-service/password with role: arn:aws:iam::111111111:role/assume-this-role
[1595814402799] INFO  : upserting secret default/hello-service-with-role
[1595814402969] DEBUG : updating status for default/hello-service-with-role to: SUCCESS

#453 restores the old behavior
I've pushed a docker image for testing here flydiverny/kuberenetes-external-secrets:pr-453
And tested it with the helm chart values:
env:
  AWS_REGION: eu-west-1
  AWS_DEFAULT_REGION: eu-west-1
  DISABLE_POLLING: true
  LOG_LEVEL: debug

serviceAccount:
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::111111111:role/eksctl-fargate-test-kes-iamserviceaccount-role

image:
  repository: flydiverny/kuberenetes-external-secrets
  tag: pr-453

securityContext:
  fsGroup: 65534

That is curious tbh.
I've dropped EKS Fargate from our project due to lacking centralised logging options.
I probably can't share the terraform directly for compliance reasons, so at this point we can probably assume I've done something wrong, and revert the two changes?


Add a test for large asset amount

Codecov Report

Merging #552 (05e04bf) into develop (88bce71) will increase coverage by 1.91%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop     #552      +/-   ##
===========================================
+ Coverage    36.95%   38.86%   +1.91%
===========================================
  Files           24       24
  Lines         4863     4863
===========================================
+ Hits          1797     1890      +93
+ Misses        2805     2696     -109
- Partials       261      277      +16

Impacted Files
Coverage Δ

idb/postgres/postgres.go
40.01% <0.00%> (+4.96%)
:arrow_up:

Continue to review full report at Codecov.

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


remove python 2.7 from install.rst

Pull Request Description
Remove python 2.7 from documentation.

After creating the pull request: in order to pass the changelog_updated check you will need to update the "Future Release" section of docs/source/changelog.rst to include this pull request.

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

Hi @systemshift, thanks for putting this PR!
Github isn't associating your commit with your Github account.  This is probably because the email on the commit doesn't match you Github account email.  See this help page.
In order to get the automated tests to pass you will also need to add this PR to changelog and  your username to the contributors list.


Setting default value on a field

Assuming I have a json where for the mean time it doesn't have that specific key (given it is not yet given by backend since it doesn't have a value yet), and displays once it gets a value. In my mappable class, is there a way for me to set a default value on that key or field?
Here's a sample JSON
{
  "productType": "product",
  "productId": "product-id",
  "bankId": 'some value'
}

My Mappable class
@MappableClass
class ProductDetails {
  @MappableField(key: 'id')
  final String id; /// I want to set a default value here, just in case the JSON doesn't have this key
  @MappableField(key: 'productType')
  final String productType;
  @MappableField(key: 'productId')
  final String productId;
  @MappableField(key: 'bankId')
  final String bankId;
}

You can use normal default values when defining your constructor parameters.
See https://pub.dev/documentation/dart_mappable/latest/topics/Models-topic.html#utilizing-constructors

You can use normal default values when defining your constructor parameters.
See https://pub.dev/documentation/dart_mappable/latest/topics/Models-topic.html#utilizing-constructors
e.g.
ProductDetails({this.id = 'mydefaultid', required this productType, ...})

Thank you!

I understand this solution but sometime, I need to make the new var required to construct the class to ensure that in all my apps, I won't forget to initialize. But it should not crash on deserializing.
In my use case, it is a cache management. So I store data in caches but if I modify the model, I can just replace with for string, an empty value, it won't cause an error and on the next reload without cache, it will be substituted with a real value (that I don't forget because of the required).
here is my class :
@MappableClass(uniqueId: "TeachingUnitElement")
class TeachingUnitElement with TeachingUnitElementMappable {
  @MappableField(key: "title")
  late final String title;
  @MappableField(key: "author")
  late final String author;
  @MappableField(key: "date")
  late final DateTime? date;
  @MappableField(key: "position")
  late final double position;

  TeachingUnitElement({
    required this.title,
    required this.author,
    required this.date,
    required this.position,
  });

You can create a second constructor and annotate it with @MappableConstructor. Then that is used for codegen while you can use the default one in your code.

Yes, but it does not really look great because my complete example is an abstract class and an extended class
abstract class:
part 'teaching_unit_element.mapper.dart';

@MappableClass(uniqueId: "TeachingUnitElement", discriminatorKey: "type")
abstract class TeachingUnitElement with TeachingUnitElementMappable {
  @MappableField(key: "title")
  late final String title;
  @MappableField(key: "author")
  late final String author;
  @MappableField(key: "date")
  late final DateTime? date;
  @MappableField(key: "position")
  late final double position;

  @MappableConstructor()
  TeachingUnitElement.mappableConstruct({
    this.title = "",
    this.author = "",
    this.date,
    this.position = 0,
  });

  TeachingUnitElement({
    required this.title,
    required this.author,
    required this.date,
    required this.position,
  });

  TeachingUnitElement.fromTomussJson(
      var id, var json, var stats, var line, var column, String user) {
    // title = json['title'] ?? "";
    author = json['author'] ?? "";
    if (line[id].length > 2) {
      String dateString = line[id][2].toString();
      date = dateString.toDateTime();
    } else {
      date = null;
    }
    position = json['position'].toDouble() ?? 0;
  }

// bool get isVisible;
}

one extended class
import 'package:dart_mappable/dart_mappable.dart';
import 'package:lyon1tomussclient/src/constant/constants.dart';
import 'package:lyon1tomussclient/src/model/teaching_unit_element.dart';
import 'package:requests_plus/requests_plus.dart';

part 'enumeration.mapper.dart';

@MappableClass(uniqueId: "Enumeration", discriminatorKey: "Enumeration")
class Enumeration extends TeachingUnitElement with EnumerationMappable {
  @MappableField(
    key: "value",
  )
  late final String? value;
  @MappableField(key: "values")
  late final List<String> values;
  @MappableField(key: "comment")
  late final String comment;

  @MappableField(key: "theId")
  late final String theId;

  @MappableField(key: "lineId")
  late final String lineId;
  @MappableField(key: "ue")
  late final String ue;
  @MappableField(key: "semester")
  late final String semester;
  @MappableField(key: "year")
  late final String year;
  @MappableField(key: "modifiable")
  late final bool modifiable;

  Enumeration.fromJSON(
      var id, var json, var stats, var line, var column, String user)
      : super.fromTomussJson(id, json, stats, line, column, user) {
    comment = json['comment'] ?? "";
    if (json["type"] == "Bool") {
      values = ['OUI', 'NON'];
    } else {
      List<String> tmpValues = [];
      //if the elements are a list do something else do something else
      for (var i in stats[json['the_id']]['enumeration'] ?? []) {
        if (i is List && i.length == 2) {
          String secondElement = "";
          if (i[1] is int) {
            secondElement = "(${i[1]} disponibles)";
          } else {
            secondElement = "(${i[1]})";
          }
          tmpValues.add("${i[0]} $secondElement");
        } else {
          tmpValues.add(i.toString());
        }
      }
      values = List<String>.from(tmpValues);
    }

    if (line[id] is List && line[id].isNotEmpty) {
      value = line[id][0];
    } else if (json.keys.contains("empty_is")) {
      value = json["empty_is"];
    } else {
      if (json["type"] == "Bool") {
        value = json["empty_is"];
      } else {
        value = null;
      }
    }
    modifiable = json.keys.contains("modifiable") &&
        json["modifiable"] == 2 &&
        ((line[id].length > 1 && line[id][1] == user) || line[id].length <= 1);
    theId = json['the_id'] ?? "";
    lineId = column['line_id'] ?? "";
    ue = column['ue'] ?? "";
    semester = column['semester'] ?? "";
    year = (column['year'] ?? "").toString();
  }

  Enumeration(
      {required super.title,
      required super.author,
      required super.date,
      required super.position,
      required this.value,
      required this.values,
      required this.comment,
      required this.theId,
      required this.lineId,
      required this.ue,
      required this.semester,
      required this.year,
      required this.modifiable});

  Future<Enumeration> updateValue(String value, String ticket) async {
    try {
      var response = await RequestsPlus.post(
        "${Constants.tomuss}/POST",
        body: {
          'content':
              "/$year/$semester/$ue/cell/$theId/$lineId/$value?%E2%9C%80_________________________________________________________________$ticket"
        },
        bodyEncoding: RequestBodyEncoding.FormData,
      );
      if (response.statusCode != 200 || response.body != "OK!") {
        throw Exception("Error while updating value");
      }
    } catch (e) {
      rethrow;
    }
    return copyWith(value: value);
  }

  @MappableConstructor()
  Enumeration.mappableConsctruct({
    super.title = "", //here nee to define default value on each extended class
    super.author = "",
    super.date,
    super.position = 0,
    this.value,
    this.values = const [],
    this.comment = "",
    this.theId = "",
    this.lineId = "",
    this.ue = "",
    this.semester = "",
    this.year = "",
    this.modifiable = true,
  });

// @override
// bool get isVisible => true;
//
// @override
// List<Object?> get customProps => [values, comment, modifiable, value];
}

I don't think this works quite like I would expect from other serialization packages. I need to specify a deserialization default value if a field is null. This allows me to add fields in the future when backing data from a database or persistent cache doesn't have data for this field key. But I also expect the constructor field to be required. I also don't expect to use a custom constructor just for serialization. Typically this would be handled with a default: field on @MappableField

I don't think this works quite like I would expect from other serialization packages. I need to specify a deserialization default value if a field is null. This allows me to add fields in the future when backing data from a database or persistent cache doesn't have data for this field key. But I also expect the constructor field to be required. I also don't expect to use a custom constructor just for serialization because it starts to add too much boilerplate. Typically this would be handled with a default: field on @MappableField

Totally agree here. It would be great if we can handle this using default field on @MappableField
Currently, I'm using a hook on MappableClass to add a default value when it's null.


Validate API requests against workspaceTemplate parameters

Description
As a TRE workspace owner
I want to have the new workspace service request parameters validated
So that I can create new workspace services with confidence, getting quick feedback on whether my request will be accepted or not.
Acceptance criteria

[ ] workspaceTemplate name and version are validated
[ ] Request parameters validated against the parameter definitions on the specified workspaceTemplate.
[ ] In case of validation errors, HTTP 400 Bad Request is returned with a message describing which parameter(s) that failed the validation.

Examples
Given that a workspace bundle is registered with the following resourceSpec:
{
    "name": "tre-workspace-vanilla",
    "version": "0.1.0",
    "parameters" : [
    {
        "name": "location",
        "type": "string",
        "default": null,
        "applyTo": "All Actions",
        "description": "Azure location (region) to deploy to",
        "required": true
      },
      {
        "name": "address_space",
        "type": "string",
        "default": "<IP_ADDRESS>/24",
        "applyTo": "All Actions",
        "description": "VNet address space for the workspace services",
        "required": false
      }
    ]
}

When a request is made to /workspaces to create a new workspace with the below request body:
{
    "resourceSpec": {
       "name": "tre-workspace-vanilla",
       "version": "0.1.0"
    },
    "parameters": {
       "address_space": "<IP_ADDRESS>/24"
    },
    "name": "my first workspace"
}

Then a HTTP 400 Bad Request is returned with a message saying that the parameter "location" is missing or incorrect:
HTTP 400 Bad Request

{
    "resourceSpec": {
       "name": "tre-workspace-vanilla",
       "version": "0.1.0"
    },
    "validationErrors": [
        "Parameter name `location` is required"
    ]
}

As part of implementing this, let's think about how to add more granular validation rules, like allowed locations etc.

Me and @marrobi have started thinking about this a little bit - we may extract the json schema on the porter bundle and validate directly against it with pydantic (maybe) -- but we should create anther story with a deeper investigation there after this basic validation

@TessFerrandez I've done some research around this, and believe storing a standards compliant JSON Schema (as with a past implementation) within the Resource Template rather than a set of Porter parameters would be a good solution.
That validation can be done by a package such as https://python-jsonschema.readthedocs.io/en/stable/ - we can add our own checks for custom data types using: https://python-jsonschema.readthedocs.io/en/stable/validate/#jsonschema.FormatChecker.checks
Then when a UI requests a Workspace Template they get the schema, and can generate a UI using libraries such as https://jsonforms.io/ .
Let me know if want to talk further.


chore: fix template to older version

Unblock Insiders

Verification build: https://dev.azure.com/monacotools/Monaco/_build/results?buildId=298274&view=results
(The build starting means it passed)


django.db.utils.DataError: integer out of range

I suppose this issue is a duplicate of https://github.com/gizmag/django-fsm-log/issues/34


Update gulpfile.js

Prior to filing a PR, please:

open an issue to discuss your proposed change.
ensure that gulp build && gulp lint test passes locally.

R: @jeffposnick @tropicadri
Fixes #issue number
Description of what's changed/fixed.

I'm sorry, but these changes go against Prettier's automatic formatting. I'm not entirely sure what motivated this PR.
If there's a related change that you'd like to contribute, please let us know, ideally by opening a GitHub issue first describing the proposed addition.


Helper tags (CSRF, Vite) are missing from page source.

Related to #152
I'm experiencing the same issue when running on Phlex 2.0 beta

# frozen_string_literal: true

class Views::Base < Phlex::HTML
  include Phlex::Rails::Helpers::Routes
  include Phlex::Rails::Helpers::LinkTo
  include Phlex::Rails::Helpers::ContentFor
  include Phlex::Rails::Helpers::CSRFMetaTags
  include Phlex::Rails::Helpers::CSPMetaTag
  include ActionView::Helpers
  include ViteRails::TagHelpers

  register_value_helper :vite_asset_path
  register_output_helper :vite_client_tag
  register_output_helper :vite_javascript_tag
  register_output_helper :vite_stylesheet_tag

  def around_template
    doctype
    html lang: "en" do
      head
      body do
        main do
          div class: "relative isolate mt-32 sm:mt-56 sm:pt-32" do
            div class: "mx-auto max-w-7xl px-6 lg:px-8" do
              div class: "mx-auto max-w-xl sm:text-center" do
                yield
              end
            end
          end
        end
      end
    end
  end

  private

  def head
    meta charset: "utf-8"
    meta name: "viewport", content: "width=device-width,initial-scale=1"
    meta name: "apple-mobile-web-app-capable", content: "yes"
    meta name: "mobile-web-app-capable", content: "yes"
    helpers.csrf_meta_tags
    # csp_meta_tag
    # content_for :head
    link rel: "icon", type: "image/png", href: "/icon.png"
    link rel: "icon", type: "image/svg+xml", href: "/icon.svg"
    link rel: "apple-touch-icon", href: "/icon.png"
    debugger if Rails.env.development?
    helpers.vite_client_tag
    helpers.vite_stylesheet_tag "application", data: { "turbo-track": "reload" }
    helpers.vite_javascript_tag "application", "data-turbo-track": "reload"
  end
end

So meta tags are showing up in my page source , but vite or csrf do not.
Notice that debugger statement - when I just check the return value of all of those helpers - they actually return values. THey are just missing from final output.
I tried, raw, unsafe_raw, with a helper prefix or not . They are just getting omitted from the buffer
    50|     # csp_meta_tag
    51|     # content_for :head
    52|     link rel: "icon", type: "image/png", href: "/icon.png"
    53|     link rel: "icon", type: "image/svg+xml", href: "/icon.svg"
    54|     link rel: "apple-touch-icon", href: "/icon.png"
=>  55|     debugger if Rails.env.development?
    56|     raw helpers.vite_client_tag
    57|     raw helpers.vite_stylesheet_tag "application", data: { "turbo-track": "reload" }
    58|     raw helpers.vite_javascript_tag "application", "data-turbo-track": "reload"
    59|   end
  # and 113 frames (use `bt' command for all frames)
(ruby)  raw helpers.vite_client_tag
"<script src=\"/vite-dev/@vite/client\" crossorigin=\"anonymous\" type=\"module\"></script>"

I think I figured it out.
The problem was me trying to "cheat" the system and including everything from  include ActionView::Helpers, who would have thunk it would cause issues (:sarcasm: )
Which also means my template was using raw from
require "active_support/core_ext/string/output_safety"

module ActionView # :nodoc:
  module Helpers # :nodoc:
    # = Action View Raw Output \Helpers
    module OutputSafetyHelper
      # This method outputs without escaping a string. Since escaping tags is
      # now default, this can be used when you don't want \Rails to automatically
      # escape tags. This is not recommended if the data is coming from the user's
      # input.
      #
      # For example:
      #
      #   raw @user.name
      #   # => 'Jimmy <alert>Tables</alert>'
      def raw(stringish)
        stringish.to_s.html_safe
      end

Instead of Phlex's implementation, leading to very unexpected results .
Come to think of it, I actually don't need to use raw anymore, since it's hangled by actual registered helpers now.
Here is a working version for reference:

# frozen_string_literal: true

class Views::Base < Phlex::HTML
  include Phlex::Rails::Helpers::Routes
  include Phlex::Rails::Helpers::LinkTo
  include Phlex::Rails::Helpers::ContentFor
  include Phlex::Rails::Helpers::CSRFMetaTags
  include Phlex::Rails::Helpers::CSPMetaTag
  include Phlex::Rails::Helpers::JavascriptIncludeTag
  include Phlex::Rails::Helpers::StylesheetLinkTag
  include Phlex::Rails::Helpers::PathToAsset
  # include ActionView::Helpers - removing the culprit, and adding individual helpers - 3 lines above.
  include ViteRails::TagHelpers

  register_value_helper :vite_asset_path
  register_output_helper :vite_client_tag
  register_output_helper :vite_javascript_tag
  register_output_helper :vite_stylesheet_tag

  def around_template
    doctype
    html lang: "en" do
      head
      body do

        main do
          div class: "relative isolate mt-32 sm:mt-56 sm:pt-32" do
            background_svg
            decorative_elements
            div class: "mx-auto max-w-7xl px-6 lg:px-8" do
              div class: "mx-auto max-w-xl sm:text-center" do
                super
              end
            end
          end
        end

      end
    end
  end

  private

  def head
    meta charset: "utf-8"
    title { page_title || "App" }
    meta name: "viewport", content: "width=device-width,initial-scale=1"
    meta name: "apple-mobile-web-app-capable", content: "yes"
    meta name: "mobile-web-app-capable", content: "yes"

    # Icons
    link rel: "icon", type: "image/png", href: "/icon.png"
    link rel: "icon", type: "image/svg+xml", href: "/icon.svg"
    link rel: "apple-touch-icon", href: "/icon.png"

    # CSRF
    csrf_meta_tags
    csp_meta_tag

    # Vite tags
    vite_client_tag
    vite_stylesheet_tag("application", data: { "turbo-track": "reload" })
    vite_javascript_tag("application", "data-turbo-track": "reload")
  end
end

I think the problem was also that helpers.vite_client_tag was being used instead just vite_client_tag. Because using helpers.vite_client_tag you were using the rails helper and not the "phlex" method that outputs things to buffer.

@stephannv  - sorry, that' was me pasting the wrong example. I was trying to follow an older thread on the forum, where somebody suggested that , and trying to figure out where that's being called from.
Ultimately, the issue was me "over-including" action view  modules 🤦♂🤦♂🤦♂

The problem is all these helpers are designed to return HTML safe strings. So in Phlex those strings just do nothing because they’re not pushed to the output buffer. The built in adapters and register_output_helper are essentially just doing raw helpers.foo_bar to push the values out as HTML.