v1.0.0 import broken

Hi folks,
v1.0.0 package has some import issues. Here is a simple test on a completely fresh install that works just fine with 0.0.44
import os

from dotenv import load_dotenv
from method import Method

def test_method_init() -> None:
    load_dotenv()
    api_key = os.environ["METHOD_API_KEY"]
    client = Method({"api_key": api_key, "env": "dev"})
    response = client.ping()
    assert response["success"] is True
    assert response["message"] == "pong"

With 1.0.0, it throws import errors:
(method-test-py3.12) ➜  method-test just test
====================== test session starts ======================
platform darwin -- Python 3.12.4, pytest-8.3.2, pluggy-1.5.0
rootdir: /Users/rushabh/method-test
configfile: pyproject.toml
collected 0 items / 1 error
run-last-failure: 1 known failures not in selected tests

============================ ERRORS =============================
_____________ ERROR collecting tests/test_method.py _____________
ImportError while importing test module '/Users/rushabh/method-test/tests/test_method.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/homebrew/Cellar/python@3.12/3.12.4/Frameworks/Python.framework/Versions/3.12/lib/python3.12/importlib/__init__.py:90: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests/test_method.py:4: in <module>
    from method import Method
../Library/Caches/pypoetry/virtualenvs/method-test-OL8MtMow-py3.12/lib/python3.12/site-packages/method/__init__.py:1: in <module>
    from method.method import Method
../Library/Caches/pypoetry/virtualenvs/method-test-OL8MtMow-py3.12/lib/python3.12/site-packages/method/method.py:2: in <module>
    from method.resources.Accounts import AccountResource
E   ModuleNotFoundError: No module named 'method.resources'
==================== short test summary info ====================
ERROR tests/test_method.py
!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!
======================= 1 error in 0.04s ========================
error: Recipe `test` failed on line 5 with exit code 2

Looking through the wheel, it seems resources gets skipped when building the package.
LMK if you'd prefer to have a small test repo that you can exercise this with.
Thanks!

Hey Radoshi, thanks for pointing this out. We'll look into this and push out a fix as soon as possible!

We just pushed out a fix for this, Python should recognize method.resources as a module now. Latest release version: v1.0.2


Query: Improve detection of composible FromSql queries

Resolves #7005

@maumar - Updated.
Manually verified behavior with \t


K8SPS-63: add haproxy, toolkit fields to version service

https://jira.percona.com/browse/K8SPS-63
DESCRIPTION
Problem:
haproxy and toolkit images were not updated
Cause:
Version service matrix didn't have these fields
Solution:
Add these fields to version service and use them to update images.
Link to corresponding PR: https://github.com/Percona-Lab/percona-version-service/pull/130
CHECKLIST
Jira

[x] Is the Jira ticket created and referenced properly?
[x] Does the Jira ticket have the proper statuses for documentation (Needs Doc) and QA (Needs QA)?
[x] Does the Jira ticket link to the proper milestone (Fix Version field)?

Tests

[ ] Is an E2E test/test case added for the new feature/change?
[ ] Are unit tests added where appropriate?

Config/Logging/Testability

[ ] Are all needed new/changed options added to default YAML files?
[ ] Are the manifests (crd/bundle) regenerated if needed?
[ ] Did we add proper logging messages for operator actions?
[ ] Did we ensure compatibility with the previous version or cluster upgrade process?
[ ] Does the change support oldest and newest supported PS version?
[ ] Does the change support oldest and newest supported Kubernetes version?

Test name
Status

async-ignore-annotations
failure

auto-config
passed

config
passed

config-router
passed

demand-backup
passed

gr-demand-backup
passed

gr-ignore-annotations
failure

gr-init-deploy
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring
failure

one-pod
passed

scaling
passed

semi-sync
passed

service-per-pod
failure

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
failure

We run 22 out of 22

commit: https://github.com/percona/percona-server-mysql-operator/pull/325/commits/4ce58431a8292775910a094e5b2518f1befc958a
image: perconalab/percona-server-mysql-operator:PR-325-4ce5843

Test name
Status

async-ignore-annotations
passed

auto-config
passed

config
passed

config-router
passed

demand-backup
passed

gr-demand-backup
passed

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

scaling
passed

semi-sync
passed

service-per-pod
passed

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
failure

We run 22 out of 22

commit: https://github.com/percona/percona-server-mysql-operator/pull/325/commits/b02cd7c2c9f1ecdf9285365148a35149eff3ed86
image: perconalab/percona-server-mysql-operator:PR-325-b02cd7c

Test name
Status

async-ignore-annotations
passed

auto-config
passed

config
passed

config-router
passed

demand-backup
failure

gr-demand-backup
passed

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

scaling
passed

semi-sync
passed

service-per-pod
passed

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
passed

We run 23 out of 23

commit: https://github.com/percona/percona-server-mysql-operator/pull/325/commits/feb08d4c07dc9cbe825acce7c1ac1a96863b4583
image: perconalab/percona-server-mysql-operator:PR-325-feb08d4


Scrolbar button is not always visible in long menus

When scrolling long lists the scrollbar button is only visible in at certain positions in the list.
See this example from xonsh:

That's a bug. Thanks for reporting!
Jonathan


SiaFund import into wallet error

The error it's giving is that the slice is too large. Please see the linked threadpost with more relevant information.
https://forum.sia.tech/topic/1682/siafund-from-2015-may

load 033x is for loading old wallet.dat files. To load a siag key, you need to use the command siac load siag [keyfile].

No response from OP.
Recommendation to Devs: Close


chore: Add github action to update discovery artifacts

This PR adds a Github Actions script to copy the discovery artifacts from googleapis/discovery-artifact-manager and create a PR which summarizes the changes.
PR #1286 contains the scripts that the Github Action will use.

@tswast @busunkim96 This is ready for review. Please can you take a look?

LGTM. What decision was made regarding detecting breaking changes?

After discussion with @danoscarmike, there will be no changes to the semver major version for this PR as we cannot definitively determine breaking changes. This PR only provides a summary of the changes that occurred in terms of key/value pairs. Any new keys will trigger a minor bump as the commit messages will still have feat(<api>): for new keys and fix(<api>): when there are changes to existing keys.

@busunkim96 @tswast @SurferJeffAtGoogle @JustinBeckwith  This is ready for review.  PTAL

@bcoe PTAL


updating pulumi config

updated infra to

create platform secret
fix issue with nat gateway

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#251  👈
#243 : 1 other dependent PR (#244 )
#238
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @chrisaddy and the rest of your teammates on  Graphite

Merge activity

Jul 8, 8:33 PM EDT: Graphite couldn't merge this PR because it had conflicts with the trunk branch.


zip: new package at 3.0

Description of package
Since the zip package from the main repository was dropped and lots of software here still depends on it I think it would be a good idea to bring it into community.
Installed manifest of package
(kiss manifest <pkg>)
/var/db/kiss/installed/zip/version
/var/db/kiss/installed/zip/sources
/var/db/kiss/installed/zip/manifest
/var/db/kiss/installed/zip/depends
/var/db/kiss/installed/zip/checksums
/var/db/kiss/installed/zip/build
/var/db/kiss/installed/zip/
/var/db/kiss/installed/
/var/db/kiss/
/var/db/
/var/
/usr/share/man/man1/zipsplit.1
/usr/share/man/man1/zipnote.1
/usr/share/man/man1/zipcloak.1
/usr/share/man/man1/zip.1
/usr/share/man/man1/
/usr/share/man/
/usr/share/
/usr/bin/zipsplit
/usr/bin/zipnote
/usr/bin/zipcloak
/usr/bin/zip
/usr/bin/
/usr/

New package

[X] Latest upstream version.
[X] I agree to maintain this package.
[X] I agree to notify the @kiss-community maintainers if I can no longer maintain this package.

Thanks, you beat me to it, on that notion, would you also package unzip ?

We have busybox's unzip utility that should be enough for most things. Although if you ever need any features from info-ZIP's unzip then I'd be glad to package it :)

Well few days ago I had to extract some 10GB zip and busybox unzip failed, because it is bugged. I asked testuser for alternatives and infozip seemed to be the best choice. If you package it, I'll be neat. I wanted to do it myself afterall.

Alright! I'll package it and make a new pr for that.

@kyx0r #634


Snippets manager text legibility on dark themes

Hi,
I am trying your extension and its brand new snippets manager!
I would just point out that the text shadows in the manager reduce legibility on dark themes (see attached image :wink:)

Thanks for trying and bringing it up!
I didn't notice that since I never use the dark theme, so I would try to make it perfect on dark theme in next release. XD

Thanks! :smile:


[PORT] [Declarative] Resource IDs: Update resource ID best-effort assignment to be consistent for debugging experience

Port this change from botbuilder-dotnet/master branch:
https://github.com/microsoft/botbuilder-dotnet/pull/4390

The AutoAssignId function was adding an entry with 'id': '<id>', but since it was adding a line, the token ranges computed by SourceRange were off.
Here we

Recompute the range after assigning id
Remove double assignment that was happening before
Improve stack manipulation logic for corner cases (remove bottom of the call stack since it is a duplicate entry always)
Re-enable cycle detection test

Changed projects

Microsoft.Bot.Builder.Dialogs.Declarative
Microsoft.Bot.Builder.Dialogs.Declarative.Tests

[P0]

@luhan2017 what is this blocked on?


Accessing the duration of an animation

model-viewer includes some very useful animation properties and methods including:

play()
pause()
currentTime

A notable absence seems to be animationDuration - i.e. the total time taken by an animation.
I am working on a 'player' interface where a user can scrub to a particular moment in the animation, but will need to use a hard coded value for the duration of the animation, rather than reading it from the interface. I suspect the animation duration would be used somewhere internally - it would be very useful if it were made available via a property on the model-viewer in the same way that currentTime is.

True, and that should be pretty easy to expose. Any interest in submitting a PR?

Absolutely, I will have a go.

There is a way to access Threejs library from Model Viewer.
`
`
Its a hacky way though, I like your proposal on adding those functionalities in core Model Viewer itself.

PR now available here: https://github.com/google/model-viewer/pull/1742


A mod Compatibility (ZYcraft)

Is your feature request related to a problem? Please describe.
A mod compatibility for ZYCraft For Version 1.16.4. (Soil)
Describe the solution you'd like
So the Soil from ZYcraft is not found as a plant able for the Sower

This already works


Canvas doesn't load while on windows

I don't know why but when I compile my code on a linux machine, the canvas load correctly, but when I compile the same code on a windows machine and try to run it, the canvas doen't load! I tryed to use wine but same problem here.
Is it just me having this issue ?

Can you please provide an example program? Or did you try example_10_drawing.nim?

I base my code on the exemple 10
import nigui, nigui/msgbox, browsers
app.init()

var w = newWindow("Joyeux ANNIVERSAIR!!!!!")
w.width = 512.scaleToDpi
w.height = 550.scaleToDpi

w.iconPath = "logo.png"

let image = newImage()
image.loadFromFile("kdo.png")
var ctrl = newControl()
w.add(ctrl)
let label = "Click pour l'ouvrir!"
ctrl.onDraw = proc (event: DrawEvent) =

    let c = event.control.canvas
    c.drawImage(image)
    c.textColor = rgb(255, 77, 255)
    c.fontSize = 30
    c.drawText(label, 128, 512)

ctrl.onMouseButtonDown = proc (event: MouseEvent) =

    let res = w.msgBox("Est tu avec to frère ?", "???????????", "OUI", "NOPE!")
    if $res == "1":

        openDefaultBrowser("https://youtu.be/dQw4w9WgXcQ")
        app.quit()

    else:
        discard

w.show()
app.run()


Update deployment-prep-active-directory.md

Added a not around enforced GPO's still being applied when GPO inheritance is blocked, and links to using WMI Filters or security groups.

@alkohli

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@steveswalwell please see the suggested changes above. Thanks!

Pulled into this PR: https://github.com/MicrosoftDocs/azure-stack-docs-pr/pull/14688. Once the PR builds, I will sign-off.


Search : different problems

I published a dataset with Title "untitre" and   following "Categorie" and "Organisation", as Draft.

According to the documentation the search functionality includes these cube fields in its scope:
Title: schema:name : ok
Description: schema:description : ok
Publisher: dcterms:publisher : ok
Organisation label: dcterms:creator/schema:name : ok
Theme label: dcat:theme/schema:name (tested with "Crime, criminal justice" and "Trade")
-> No result with "Trade"
-> 1 result with "Crime" or "criminal justice" : ok
If I search all drafts I do not find the dataset and the categories "Crime, criminal justice" and "Trade", as well as the Organisation "Swiss post" are not displayed in the left panel.

If I search "crime", I find the dataset and the categories "Crime, criminal justice" and "Trade" are displayed in the left panel.

Environment (please complete the following information):

Visualize environment and version: v3.9.2 ([3fc980f]
Browser and version: Edge

@ortnever we will try to tackle this issue this week, so it can be tested before we deploy to production next week.

@ortnever the bug has been resolved and can be reviewed and tested on int.visualize.admin.ch


audit link not working

This PR:
Fixes a broken link in the documentation by correcting the file path for the HotShot audit report.
This PR does not:
Introduce any other changes.
Key places to review:
Verify the updated link in the documentation table points to EspressoHotshot-2024internal.pdf.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.


thresholding options:  transparent (or "alpha") thresholding, and boxing

Standard thresholding does the following:

Given a threshold value X, go to each voxel in the "threshold dataset" decide whether to display color there based on whether the voxel value is V>= X (hence, show the color) or V < X (hence, hide it away).  From an RGBA color schema, this means let the opacity channel be A=1 if the voxel value is V>=X, and let A=0 if it is V<X.

Consider instead the following for transparent (or "alpha") thresholding, sticking with the RGBA schema:

let A=1 if the voxel value is V>=X.
If V<X, instead of just flooring the opacity, consider making A = V/X, so that the value because more transparent linearly.  Or perhaps A = (V/X)**2, so the dropoff is quadratic.  That way, thresholding still applies, but visualization is less sensitive to the specific threshold (which is often semi-arbitrary and essentially a guide or reference).

For "boxing":

The transparency is useful, but to highlight where the boundary is, putting a "box" or line around the suprathreshold values might be useful.

This kind of functionality has been quite useful in AFNI.  It was described and promoted in:

Allen et al. (2012) https://www.sciencedirect.com/science/article/pii/S089662731200428X
Taylor et al. (2022) https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>3929v2

For the boxing, you can use dFdx and dFdy functions. Here is a nice online demo.

@mrneont I have added experimental support for alpha thresholding that you can test out:
git clone --branch thresholding https://github.com/niivue/niivue.git
cd niivue
npm install
npm run dev

It might be worth having a Zoom meeting to discuss your vision and implementation details. Here is classic binary threshold:

And the same image with your suggested A = (V/X)** formula:

Note that the colorbar in this mode shows an extended tick-mark at the statistical threshold. One issue is that the dynamic range for the colorbar gets diluted: in this example the red-yellow range spans z = 3..6 in the classic mode but must cover 0..6 in the alpha thresholding mode. So even though alpha blending is applied, the distinction of below and above threshold is hard to observe. This makes less extreme z-scores look much more salient than one might expect. Given that the false alarm rate grows non-linearly as Z approaches zero, I worry that we end up emphasizing noise. Since neuroimaging data is typically subjected to a Gaussian blur, it necessarily follows that statistically significant regions will be necessarily surrounded by near-threshold regions, so the opportunity for bloom seems extremely high.
I do like the idea of the boxing, but doing this efficiently on a screen-pixel (not image voxel) precision with a WebGL shader is harder than I imagined. The issue is that due to block alignment we do not know if dFdx() samples the neighbor to its left or its right. This is precisely the issue described here.  My commit includes commented out shader code that makes a box for precisely half the edges.  Effectively, the algorithm I am an edge if I have Alpha of 1 and a non-zero derivative  finds half the edges.
I did try one experimental solution to this problem. Here I use both alpha blending and removal of the green component to indicate that a voxel is sub-threshold. Since both the warm and winter are common in ramping green with intensity, this does highlight surviving voxels. However, this method seems very specific to the color schemes used. This discussion reminds me of the work by @CPernet on brain_colours and the benefit of schemes that work with colorblindness.
.

My latest version does use the shader to enable the outline box. With the npm run dev demo the box is controlled by the Outline checkbox that turns the line on (1) or off (0), though note in reality this is a numeric value so you could set other values, e.g. overlayOutlineWidth = 2.5. The one caveat is that this approach does not work well with trilinear interpolation, where the inherent smoothing means that the outline ends up being conservative. To see this, try selecting the smooth checkbox in the demo. I am open to suggestions on how to handle this.

@neurolabusc : That looks (awesome)**2, given both the transparent thresholding and outlining.  I like the extended tick in the colorbar showing the location of the threshold value, too.
In general, I don't like smoothing the visualized data---I like the visualization when "smooth" is off (or what in AFNI would be applying NN interpolation within the image viewers, rather than linear, cubic, etc.).  It doesn't bother me to see pixelated data---that is what the datasets are.  So, this seems quite good, thanks!
I will email you about chatting more, too.


add thread-pool-ref in xsd

Pull Request Test Coverage Report for Build 102

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.01%) to 27.858%

Totals

Change from base Build 101:
-0.01%

Covered Lines:
502

Relevant Lines:
1802

💛  - Coveralls

@NeGnail @ujjboy 覆盖的能够只统计 Java 代码吗？否则改了 XML 都跌覆盖率。


[LCS-403] - Amend start content markdown

Now that hof is using showdown, it appears that the markdown was not displaying fully. I had to rewrite the bold part for it to display.  It appears that the current text has something that is not making it display
However, it's helpful to be able to put in html in the markdown.  It makes it more flexible

Go to https://github.com/showdownjs/showdown#valid-options and scroll to the simpleLineBreaks option. It suggests that you'll get the affect by adding two-spaces to the end of the heading. However, the opening comment of this issue suggests it works as our markdown was originally formatted. Please can you try adding a newline or two between the heading and the paragraph in order to get the affect you want rather than adding html for breaks?

Thanks @JoeChapman the two spaces did the trick


Font ligatures for terminal

VSCode Version: 1.51.1
OS Version: Windows 10 2004 (19041.610)

Steps to Reproduce:

Select a font family that has ligatures.
Open settings.json and enter editor.fontLigatures: <some ligatures>.
The ligatures are implemented in the editor, but not the terminal.

Does this issue occur when all extensions are disabled?: Yes

It seems that it's only for editors because of editor., but it should be able to implement it for terminals, either something like terminal.fontLigatures or include it in the original setting.

Duplicate of #34103


suggested improvements

see https://github.com/msiemens/tinydb/issues/319#issuecomment-744789790

only updating the timestamps isn't sufficient for some cases so for simplicity sake this optimization is left out


Ability to spoof IP address when registering server

When running the lobby server in debug mode, the following warning is shown:
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
This essentially means it's possible to spoof your IP address when communicating with lobby, by sending headers that are commonly used by proxy servers, such as X-Forwarded-For. The spoofed IP address is then used to register a server.
I can think of 2 possible consequences of this behavior:

Random people overriding someone else's servers, leading to confusion. For instance, you could alter someone else's server name, or make it look like there are 0 players online
Unlimited server registration, leading to huge memory usage, which will eventually end up with the lobby process getting killed by your OS. In theory, a single IP address should be able to register at most 65535 servers, since the port field sent through JSON is of type uint16. This limitation is no longer effective when you can imitate any IP address.

When it comes to remediation, refer to Gin docs. It boils down to deciding if you're going to have a reverse proxy in front of your lobby server, and configuring Gin accordingly. Without a reverse proxy, calling server.SetTrustedProxies(nil) in main.go should do the trick.
Here's a python script to reproduce the issue:
import requests

data = {
    "advanced": False,
    "anti_cheat_on": False,
    "bonus_frequency": 0,
    "country": "US",
    "current_map": "ctf_Ash",
    "game_style": "CTF",
    "info": "test",
    "max_players": 666,
    "name": "soldank-pepehands",
    "num_bots": 0,
    "os": "no",
    "players": [],
    "port": 12345,
    "private": False,
    "realistic": False,
    "respawn": 5,
    "survival": False,
    "version": "1.0",
    "wm": False
}

headers = {
    "X-Forwarded-For": "<IP_ADDRESS>"
}

response = requests.post("http://<IP_ADDRESS>:8000/servers", json=data, headers=headers)
print(response.text)

Run with python3, then check the list of servers - IP of the server is set to <IP_ADDRESS>, as provided in the X-Forwarded-For header.

@rzaba0 Thank you for reporting it! Good catch. I'm currently on holidays so I can't immediately check/fix it but it makes sense to me. If you have time and you're willing to help, feel free to make a pull request. It looks like you also have figured out the fix for it.
However, I won't be able to review until mid-January


Revisions for eLife

Reviews are back from the journal eLife, where three peer reviewers provided a single consolidated feedback (see https://github.com/greenelab/scihub-manuscript/pull/32). The Feature Editor, Dr. Peter Rodgers, writes:

Overall the reviewers were positive about the article, but they had a small number of concerns (see below). We therefore invite you to prepare a revised submission that addresses these concerns. I will also contact you separately about some editorial issues that you will need to address regarding the abstract and references.

This issue will track our progress addressing the reviewer feedback. In addition, we should complete the outstanding issues in the preprint-v3 milestone. @publicus, we will also include the Penn Library comparison analysis. And @arielsvn the updates from https://github.com/greenelab/scihub/issues/44.

See also https://github.com/greenelab/scihub-manuscript/issues/34 with editorial suggestions from Dr. Rodgers.


Fix bug in creating shared network

Description
Sometimes creating shared network fails because the physical network
data is null and redereferencing it causes NPE.
Wait till the physical network data is available before accessing it
Fixes https://github.com/apache/cloudstack/issues/4664

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[X] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[X] Major
[ ] Minor

Bug Severity

[ ] BLOCKER
[X] Critical
[ ] Major
[ ] Minor
[ ] Trivial

Screenshots (if appropriate):
How Has This Been Tested?

@ravening Also, if there is an issue with the form it should be fixed in 4.15.1

@ravening Also, if there is an issue with the form it should be fixed in 4.15.1

@shwstppr I have made some changes. please review again.
If the traffic type is not guest, then you are not pushing it into array and its calling another function with index 0. since array is empty, it will be null and hence we see this error

I can reproduce the issue #4664  if there are two physical networks.
for example in settings below
physical network 1: MGT, contains traffic type: Guest/Management/Storage
physical network 2: PUB, contains traffic type: Public

An issue also seems to crept in when creating guest networks from Infrastructure > Zones > Zone detail > Physical Networks > Physical Network > Traffic types > Guest

ping @ravening @shwstppr @weizhouapache what are the next steps?

Thanks @weizhouapache
Okay, I'll wait until this is ready for testing again @ravening

@weizhouapache @shwstppr I have pushed one commit. This change seems to work. can you guys test as well?

@ravening can you address review comments?

@ravening any update on this?
I was able to not see mentioned issue with this,
diff --git a/ui/src/views/network/CreateSharedNetworkForm.vue b/ui/src/views/network/CreateSharedNetworkForm.vue
index e91a5631c4..eaaa38c083 100644
--- a/ui/src/views/network/CreateSharedNetworkForm.vue
+++ b/ui/src/views/network/CreateSharedNetworkForm.vue
@@ -567,7 +567,7 @@ export default {
           var networks = json.listphysicalnetworksresponse.physicalnetwork
           if (this.arrayHasItems(networks)) {
             for (const i in networks) {
-              this.addPhysicalNetworkForGuestTrafficType(networks[i], i * 1 === networks.length - 1)
+              this.addPhysicalNetworkForGuestTrafficType(networks[i])
             }
           } else {
             this.formPhysicalNetworkLoading = false
@@ -576,7 +576,7 @@ export default {
         })
       }
     },
-    addPhysicalNetworkForGuestTrafficType (physicalNetwork, isLastNetwork) {
+    addPhysicalNetworkForGuestTrafficType (physicalNetwork) {
       const params = {}
       params.physicalnetworkid = physicalNetwork.id
       api('listTrafficTypes', params).then(json => {
@@ -592,7 +592,7 @@ export default {
           this.formPhysicalNetworkLoading = false
         }
       }).finally(() => {
-        if (isLastNetwork) {
+        if (this.formPhysicalNetworks.length > 0 && this.isObjectEmpty(this.formSelectedPhysicalNetwork)) {
           this.form.setFieldsValue({
             physicalnetworkid: 0
           })
@@ -736,6 +736,7 @@ export default {
             message: this.$t('message.request.failed'),
             description: this.$t('message.error.add.guest.network')
           })
+          return
         }
         this.actionLoading = true
         var params = {

Ping @ravening - can you address the review comments? Thanks.

@shwstppr @rhtyd updated code

@blueorangutan ui

@shwstppr a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

@blueorangutan ui

@rhtyd a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

@blueorangutan ui

@shwstppr a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

@blueorangutan ui

@davidjumani a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_multiplication_x:
(SL-JID-75)

Might be a bit late to the party, but I think this can be solved better by appending the API result of addPhysicalNetworkForGuestTrafficType promise array, and then running a Promise.all().then()
Ref https://github.com/apache/cloudstack/blob/master/ui/src/components/view/SearchView.vue#L262
This way all the apis get resolved and finally in the Promise.all().then() the physicalnetwork can be set in the form. This takes care of any async issues that crop up

@ravening can you address review comments
@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_multiplication_x: centos7 :heavy_multiplication_x: centos8 :heavy_multiplication_x: debian. SL-JID 275

@blueorangutan ui

@rhtyd a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_check_mark:
Live QA URL: http://qa.cloudstack.cloud:8080/client/pr/4666 (SL-JID-83)

@davidjumani are you lgtm on merging this?
@blueorangutan ui

@rhtyd a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_check_mark:
Live QA URL: http://qa.cloudstack.cloud:8080/client/pr/4666 (SL-JID-87)

@davidjumani for further enhancement, feel free to raise a new PR


Leverage file system ACLs for copied files

As a user
I want to create files in an existing subdirectory
in order to compile Java classes in packages.

As an administrator, I have the following requirements:

[ ] Copied files should neither be writable nor deletable by non-privileged users (but privileged users)
[ ] Folders (and the original workspace) created during the copy operation should allow the creation of new files by non-privileged users (even when the folder was created by a privileged user)

We could think of either using the immutable flag (chattr +i, requires LINUX_IMMUTABLE for the container) or ACLs (setfacl, requires file system and kernel support).
I would start by looking into ACLs if possible, but am also open to any other suggestion.
Based on / Part of #226

The ACLs look good but what is about the sticky bit?

For directories, when a directory's sticky bit is set, the filesystem treats the files in such directories in a special way so only the file's owner, the directory's owner, or root user can rename or delete the file. Without the sticky bit set, any user with write and execute permissions for the directory can rename or delete contained files, regardless of the file's owner. Typically this is set on the /tmp directory to prevent ordinary users from deleting or moving other users' files.

Could we just set the sticky bit (1777) for all folders (within /workspace (Poseidon has no clue about this folder by now))?
As an alternative, we can implement #226 and additionally extend the route schema for an isDirectory flag. This way CodeOcean could send all folders with privileged=false that would result in the sticky bit set?!

Awesome, that's a really good finding! I just tested various scenarios with the sticky bit and think it might address all our requirements (without using the much more complicated ACLs or immutable bit). I'd say: Go for it 🏁

This way CodeOcean could send all folders with privileged=false that would result in the sticky bit set?!

For me this question remains: CodeOcean already parses the directories from the paths provided by the files/teachers. Should Poseidon also parse (/split) the directories from the paths of the provided files or should CodeOcean send the required directories (by a following /)? By now, CodeOcean only sends the files (not the directories).

This way CodeOcean could send all folders with privileged=false that would result in the sticky bit set?!

For me this question remains: CodeOcean already parses the directories from the paths provided by the files/teachers. Should Poseidon also parse (/split) the directories from the paths of the provided files or should CodeOcean send the required directories (by a following /)? By now, CodeOcean only sends the files (not the directories).

Sure, I think this is not an issue. I created https://github.com/openHPI/codeocean/pull/1410 to copy the directories first, in conjunction with your newest PR.


Docker-compose ?

Hello, this repo seems to be a good template !
Are there plans to create a docker-compose, which could install a container for the bot and a container for the database, so that you can start developing with a single command?

I no longer need this, closing.
Feel free to reopen


Q: when should I use EffectsSubscription?

The API reference shows an example of manually unsubscribing from effects.
class MyComponent {
  constructor(private subscription: EffectsSubscription) { }

  ngOnDestroy() {
    this.subscription.unsubscribe();
  }
}

Can someone give an example of when this is useful? Also, is it ever necessary to write code like this?

I think the only place it's really useful is when you want to stop side effects from firing

Does anyone have a real world example of this?

I think I have a use case for EffectsSubscription.
My app has many different types of LOAD actions for many different slices of state. A change to one slice of state can invalidate all the other slices of state. User management is a typical crosscutting concern that has this effect on an application. When a user logs in, there are many views that need to be updated to display the data for the user.
In terms of ngrx effects:
when action is of type USER_LOGON, dispatch LOAD_A, dispatch LOAD_B, dispatch LOAD_C, ..., dispatch LOAD_Z.
My problem with this is that I don't want to load all the data as soon as the user logs on. Instead, I want to dispatch only the load actions for data that is required by components on the current route.
My solution to this problem right now is to let components be in charge of when to dispatch load actions. When components are destroyed, they stop dispatching load actions. This ensures that data is not loaded until it's really needed.
Instead, I'd like to let ngrx effects dispatch load actions when a user logs on, but ONLY for data that is really needed on the current route.
Is this something that I can accomplish by manually subscribing/unsubscribing from effects?

@MikeRyanDev what do you mean by fixed in 4.0? I was just asking for more information / example code.

@StevenLiekens Sorry, I was labelling issues that will not be relevant in 4.0 or were fixed. The EffectsSubscription class has been removed and there's a much better API for controlling when an effect is running or not.

Cool. Is it already documented somewhere?


Suggestions regarding typescript + export = FormData

One of our users ran into a problem due to the typing of form-data :( Specifically the error:
tsc --outDir lib

node_modules/gitlab/dist/infrastructure/index.d.ts:2:8 - error TS1259: Module '"D:/my-project/node_modules/@types/form-data/index"' can only be default-imported using the 'esModuleInterop' flag

2 import FormData from 'form-data';
         ~~~~~~~~

  node_modules/@types/form-data/index.d.ts:15:1
    15 export = FormData;
       ~~~~~~~~~~~~~~~~~~
    This module is declared with using 'export =', and can only be used with a default import when using the 'esModuleInterop' flag.

In the node-gitlab library, the lines that reference form-data are:
import FormData from 'form-data';
...
export interface DefaultRequestOptions extends Sudo {
  body?: object | FormData;
  query?: object;
}

And I have esModuleInterlop set in my tsconfig.
I'm not really sure how to go about solving this problem, any suggestions ? :/

May I ask which version do you guys use? Could you provide a minimal reproduce case/repo, so that I can dig what happened.

Cannot repro.
We are consuming form-data via request:
├─┬<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ ├─┬<EMAIL_ADDRESS>│ │ │ ├──<EMAIL_ADDRESS>│ │ │ ├──<EMAIL_ADDRESS>│ │ │ └─┬<EMAIL_ADDRESS>│ │ │   └──<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ ├──<EMAIL_ADDRESS>│ │ ├─┬<EMAIL_ADDRESS>│ │ │ ├──<EMAIL_ADDRESS>│ │ │ ├──<EMAIL_ADDRESS>│ │ │ └──<EMAIL_ADDRESS>│ │ └─┬<EMAIL_ADDRESS>│ │   ├──<EMAIL_ADDRESS>│ │   ├──<EMAIL_ADDRESS>│ │   ├──<EMAIL_ADDRESS>│ │   ├──<EMAIL_ADDRESS>│ │   ├──<EMAIL_ADDRESS>│ │   ├──<EMAIL_ADDRESS>│ │   └──<EMAIL_ADDRESS>
But making a small repro project, installing request and using TypeScript 3.5.3 does not recreate the problem.   Sorry I can't help more.

@netaisllc In the same boat here. Not sure how to recreate it with a small example :(

More information. So compiling in ts with the esModuleInterlop and declarations = true creates errorless code. BUT if this code is then referenced by another node (typescript) program and that program's config does not have the esModuleInterlop = true, it will throw an error pointing to the files in the dependency library. lol kind of confusing, tell me if I need to explain it further.
@netaisllc Whats your ts config look like in your example project?

I checked out my project. Maybe import * as FromData from "form-data" is the right way to use.
@jdalrymple could you please try it out and see what happening?

ping @jdalrymple @netaisllc

https://github.com/jdalrymple/node-gitlab/issues/417#issuecomment-526574251 Our solution was changing the import for this one ts file:
https://github.com/jdalrymple/node-gitlab/commit/91cfbf27379be535ed90872ce0ea37b29e206d5c

Any update on this :( ?

Ping :(

FYI -  import FormData = require('form-data'); works for me (I do not have esModuleInterop enabled, I do not know if it works with it `enabled).

Same problem here. Importing it using import * as FormData from 'form-data' gives this warning:

Could not find a declaration file for module 'form-data'.

Setting esModuleInterop to true in tsconfig.json and importing as import FormData from 'form-data' or as import { FormData } from 'form-data' doesn't work on runtime:

form_data_1.FormData is not a constructor

Using<EMAIL_ADDRESS>and NestJS.

FYI -  import FormData = require('form-data'); works for me (I do not have esModuleInterop enabled, I do not know if it works with it `enabled).

It works when enabled when doing import FormData from 'form-data'

Bump, still happens. I keep getting TypeError: form_data_1.default is not a constructor in browser


Moonbeam launch v2

convert all files to TS
sync with main polkadot-launch branch

Why do we keep the dist folder ?

I can't figure out why yet, but if I don't, the imported module in moonbeam does find the built dist folder. working on it...

@crystalin it seems like it's not possible to not have the dist folder when using a local branch? I can't figure out how to remove dist and have it work within the moonbeam repo

works with moonbeam script so Im merging


Tooltip: Incorrect Tailwind classes -m-t-1 and -m-l-1 in lara preset

Describe the bug
The lara preset for the Tooltip component uses non-existent Tailwind classes -m-t-1 and -m-l-1. It should be -mt-1 and -ml-1 instead. Due to this error, the arrow of the tooltip is not positioned perfectly centered (it is slightly off-center) as can be seen in the reproducer.
    arrow: ({ context, props }) => ({
        class: [
            // [...]

            // Spacing
            {
                '-m-t-1 ': context?.right || (!context?.right && !context?.left && !context?.top && !context?.bottom),
                '-m-t-1': context?.left,
                '-m-l-1': context?.top || context?.bottom
            }
        ]
    }),
};

Reproducer
https://stackblitz.com/edit/vitejs-vite-3heujr?file=src%2FApp.vue
Steps to reproduce the behavior
Hover over the element with the tooltip. In the reproducer it's the text Hover to see the tooltip. The arrow of the tooltip is not perfectly centered.
Expected behavior
The arrow of the tooltip should be perfectly centered.

btw, I don't recommend using ml or mr anyways, rather use logicals such as ms and me

Hi, thank you for your PR. I merged it now🚀


invoke function in dart2wasm's JS runtime should return a promise

dart2wasm's generated JS runtime has an invoke function for the main entry point of the program. However, this basically returns immediately, even if there is more asynchronous work to be done. We should have this function return a promise, which should attempt to match the behavior of the VM command line. That is to say, the promise should be resolved when there are no more asynchronous or pending tasks to run, and it should reject if there is an uncaught exception during execution (synchronous or asynchronous).

This is causing test failures to be not detected when running in Chrome, because the test controller declares success if main doesn't throw: https://github.com/dart-lang/sdk/blob/2534859b418898024576014b2ca99d379c3ccc3a/pkg/test_runner/lib/src/test_controller.js#L316-L339
This is not a problem when running in d8 because we implement our own microtask scheduler in d8, and the same "run Dart main" function in d8 waits for the tasks before returning: https://github.com/dart-lang/sdk/blob/2534859b418898024576014b2ca99d379c3ccc3a/pkg/dart2wasm/bin/run_wasm.js#L293-L297


Scan with Camera Captures Multiple Scans at A Time

When using the SoftScan ( with camera), it captures multiple scans at a time. We need to only allow one reading at a time.

This issue has been fixed in Capture version 1.0.117. available in cocoapods.org.


Dev logqp

logqp backwards compatibility.

It would be nice to add a test that verifies that logqp is computing the thing it claims to be.
Other than that, this looks pretty good.

This would be a little difficult to check. Given that the augmentation is quite simple, I think that the chances of there being a bug is quite low.
I'll run the example with this logqp argument to check if the model still trains, but I don't think it's natural to include this in a test suite.


Fix convolution for negative multiplication

This fixes a really bad error I didn't know we don't have an issue for
-1 * toPointSet(normal(5, 2)) returns an upside down distribution! This is because whoever wrote the convolution code forget the absolute sign in the product of random variables formula:

Would like to work out how to write tests for these types of issues.

Codecov Report

Merging #358 (8cb138b) into develop (296bc44) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           develop     #358      +/-   ##
===========================================
+ Coverage    39.54%   39.55%   +0.01%
===========================================
  Files           24       24
  Lines         1750     1747       -3
===========================================
- Hits           692      691       -1
+ Misses        1058     1056       -2

Impacted Files
Coverage Δ

...butions/PointSetDist/AlgebraicShapeCombination.res
24.13% <100.00%> (-1.92%)
:arrow_down:

...ges/squiggle-lang/src/rescript/Utility/XYShape.res
43.57% <0.00%> (+1.11%)
: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 296bc44...8cb138b. Read the comment docs.

Great find! Looks good to me, @NunoSempere might want to be aware.

Can confirm visually: This was broken before.


make jvm heap usage a dynamic setting

Description
make jvm heap usage a dynamic setting
Issues Resolved
https://github.com/opensearch-project/anomaly-detection/issues/1213
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Will wait for you to do an e2e testing.

Will do an e2d test when both 2.15 changes are done. Tracking it here - https://github.com/opensearch-project/anomaly-detection/issues/1213

did e2e testing and verified result with Kaituo offline


UofT-DSI | sql - Homework

homework_1.pdf
What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
What did you learn from the changes you have made?
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
How were these changes tested?
A reference to a related issue in your repository (if applicable)
Checklist

[ ] I can confirm that my changes are working as intended

Hello, I had attached it with the pull request as a pdf (link in first line of my comment). Here it is again:
homework_1.pdf


[Arc]...

Extension
https://raycast.com/the-browser-company/arc
Description
Error:
SyntaxError: Unexpected token s in JSON at position 10412
    at JSON.parse (<anonymous>)
    at Object.b5 [as current] (/Users/wahab/.config/raycast/extensions/606e26d8-b3c5-4760-8001-dccce1b872c4/search-tabs.js:87:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Steps To Reproduce
No response
Current Behaviour
No response
Expected Behaviour
No response

Mmh weird... Could you share a list of open tabs that you have? Their titles might include some characters than need further encoding.


VRF loopback IP on device or dummy iface ?

from slack
VRF loopback IP by @venkatmahalingam https://github.com/opiproject/opi-evpn-bridge/blob/main/docker-compose.yml#L67-L71
ip link add green type vrf table 1001 && \
ip link set green up && \
ip link add name lo2 type dummy && \
ip link set lo2 master green up && \
ip address add <IP_ADDRESS>/32 dev lo2 && \

vs by @mardim91 and @JanScheurich
ip link add green type vrf table 1001
ip link set green up
ip address add <IP_ADDRESS> dev green

which one is correct ?

Jan Scheurich
9 hours ago
Assigning an IP address to the vrf interface is perfectly working in Linux. It is pingable and everything. There is no need to create an extra dummy interface inside a vrf to configure a loopback IP address. Of course both approaches are technically OK, but I'd argue we should pick the simpler one without extra dummy loopback interface.

@glimchb I'll make the changes to fix this in the docker-compose file.


Make lexer produce only single character puncts

As discussed in Zulip, this PR change lexer to produce only single char punct.

Remove producing DOTDOTDOT, DOTDOTEQ, DOTDOT, COLONCOLON, EQEQ, FAT_ARROW, NEQ, THIN_ARROW in lexer.
Add required code in parser to make sure everythings works fine.
Change some tests (Mainly because the ast::token_tree is different)

Note: i think the use of COLON in rust is too overloaded :)

It is much simply now. The idea is handinge all conversion in Parser::nth and Parser::bump. And because we want ast::token_tree use single char punct, so a bump_raw is added in that case.

bors r+
The new approach is indeed much simpler!


book: sdk usage correction

Hi,
I was playing with the vm, and following the book, I realized that the fix 4250ce882f1290902de163efd279330c87ba163f did not updated the documentation for the sdk.
I leave here the repo to the sdk working example: https://github.com/openvm-org/openvm-example-fibonacci

Thanks for this catch! Leaving @Golovanov399 to review


GH-11: Add generic is type guard

Thank you for creating this PR. I'll check your code later.

We are still considering whether there are alternative names to is in #11. If there is no better alternative, I think we stick with is and then I check the implementation.

If we add is, we should also add isAsync

I'll revise your code in a moment and then merge it.

If we add is, we should also add isAsync

This does not seem to be technically possible at the moment: https://github.com/microsoft/TypeScript/issues/37681


Doesn't work on nested resources

Does refile works on nested resources? I don't think so.
I'm able to update every single normal field, but not the refile images.
One detail is that if I debug, I can see that @page.update_attributes(permitted_params) does NOT update refile images, so @page.studio.profile_image_id is still nil after that. But @page.studio.profile_image actually returns a refile object during the debugging section. After the debugging, the object is not there anymore, neither profile_image_id is set.
And if I do something like @page.studio.update_attributes(permitted_params[:studio_attributes]), during the debugging section, it does persist the image and the profile_image_id!
Here is the code:
page.rb
class Page < ActiveRecord::Base
  has_one :studio
  accepts_nested_attributes_for :studio
end

studio.rb
class Studio < ActiveRecord::Base
  belongs_to :page

  attachment :profile_image
  attachment :background_image
end

pages_controller.rb
PagesController < ApplicationController
  prepend_before_filter :load_object, only: [:edit, :update]

  def edit
  end

  def update
    if @page.update_attributes(permitted_params)
      redirect_to account_path
    else
      render 'edit'
    end
  end

  private
  def load_object
    @page = Page.find(params[:id])
    @page.build_studio if @page.studio.nil?
  end
  def permitted_params
    params.require(:page).permit(
      :slug,
      studio_attributes: [:id, :name, :profile_image, :remove_profile_image, :background_image, :remove_background_image])
  end
end

views/pages/edit.html.erb
<%= form_for @page do |f| %>
  <%= f.fields_for :studio do |studio_form| %>

      <%= studio_form.label :name, t('studio.name') %>
      <%= studio_form.text_field :name, :class => 'form-control' %>

      <%= studio_form.label :profile_image, t(:profile_image) %>
      <% if studio_form.object.profile_image_id? %>

          <%= attachment_image_tag(studio_form.object, :profile_image, :fill, 100, 100) %>
          <%= studio_form.check_box :remove_profile_image %>
          <%= studio_form.label :remove_profile_image %>

      <% end %>
      <%= studio_form.attachment_field :profile_image, direct: true, presigned: true, :class => 'form-control' %>

      <%= studio_form.label :background_image, t(:background_image) %>
      <% if studio_form.object.background_image_id? %>

          <%= attachment_image_tag(studio_form.object, :background_image, :fill, 100, 100) %>

      <% end %>
      <%= studio_form.attachment_field :background_image, direct: true, presigned: true, :class => 'form-control' %>

  <% end %>

    <%= f.label :slug, t('studio.slug') %>
    <%= f.text_field :slug, :class => 'form-control' %>

    <%= f.submit t('update'), class: 'btn btn-primary' %>
    <%= t(:or) %>
    <%= link_to t('actions.cancel'), account_path, class: 'btn btn-default' %>

<% end %>

Gemfile
(...)
gem "mini_magick"
gem "refile", require: ["refile/rails", "refile/image_processing"]
gem "aws-sdk"

I had a similar issue; tried removing the javascript, and mine works fine. Wondering if there's something wonky happening with the cache_id getting translated over on save for nested resources?

I fixed with a before filter that saves only the nested resource first (argh! ugly!).

Ugh I'm getting a case of déjà vu :( I have a feeling we ran into this exact problem with CarrierWave at some point. There's something weird and wonky going on with Callbacks and nested forms that I can't quite remember. I'm sure this is fixable somehow. I'd appreciate any help in tracking this down, I don't tend to use nested_forms that often myself.

I'm not able to reproduce this problem. The following works for me on ActiveRecord 4.1.10.
require "active_record"
require "sqlite3"
require "refile"
require "refile/attachment/active_record"
require "tmpdir"

Refile.cache = Refile.store = Refile::Backend::FileSystem.new(Dir.tmpdir)

ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: "nested.db")
ActiveRecord::Migration.verbose = false

ActiveRecord::Migration.class_eval do
  create_table :pages, force: true
  create_table :studios, force: true do |t|
    t.integer :page_id
    t.string :profile_image_id
    t.string :background_image_id
  end
end

class Page < ActiveRecord::Base
  has_one :studio
  accepts_nested_attributes_for :studio
end

class Studio < ActiveRecord::Base
  belongs_to :page

  include Refile::ActiveRecord::Attachment
  attachment :profile_image
  attachment :background_image
end

image = File.open(__FILE__)
page = Page.create
page.build_studio

page.update(studio_attributes: {profile_image: image, background_image: image})

puts page.studio.profile_image_id
puts page.studio.background_image_id

page.update(studio_attributes: {profile_image: image, background_image: image})

puts page.studio.profile_image_id    # different id
puts page.studio.background_image_id # different id

@janko-m I think it has something to do with the javascript layer, as @jcutrell said. That's why your script works. Try to reproduce via form completion, I wrote an edit.html.erb example on my previous post.

After you attach the image, and it gets uploaded directly or presigned (btw, does it fail both with directly and presigned, or only one of those two?), what image attributes get sent in the params?

It fails anyway, directly, presigned, or without those options.
The attributes are perfect just as a normal accepts_nested_attributes_for, I've checked myself before posting the issue, so I know the problem isn't there. If you really need this exact information (ctrl-c ctrl-v), I will need more time. My project doesn't use nested images anymore since I wasn't able to get it to work.

Ok, don't bother, I thought you still had the code, I will try to reproduce it myself.

Still can't reproduce:

rails new my_app
added gem "refile", require: ["refile/rails"]
created both models and migrations
pasted in your PagesController
added resources :pages, root to: ->(env) { [200, {}, []] } to config/routes.rb
swapped out account_path with root_path
added //=require refile to app/assets/javascripts/application.js
both attachments successfully upload in the background, and after submission studio's <attachment>_id columns are filled in

weird...I will create a repository to reproduce it...in the meantime, you can close this issue

I'm experiencing a similar issue. I noticed the bug is caused by Active Record dirty tracking which isn't able to label the attachment-attribute as dirty. The result is that nested fields will work fine as long as other attributes are labeled as dirty (or if it's a new record).
@alexandremcosta To confirm this, perhaps you could try saving the the form with and without changing the studio-name attribute.

Hi all,
Looks like it is still broken.
I'm using this to workaround it:

if theme_params[:quote_attributes].key?(:image) || theme_params[:quote_attributes].key?(:remove_image)
  @theme.quote.image_id_will_change!
end

 if theme_params[:fact_attributes].key?(:icon) || theme_params[:fact_attributes].key?(:remove_icon)
   @theme.fact.icon_id_will_change!
 end

i hope this will help to identify the problem.
I will try to create pull request with fix, but have not much time to do it now. :(

Also,
it works if you do it from the console (like @janko-m) but doesnt work from rails itself. Very weird.

I think this fix is still in master only, are you pulling from there?

@janko-m yes, i tried from master.

@janko-m @kirillsalykin I was just bitten by this bug. I can verify that it is fixed in master.
I've created a branch that back-ports the fix to the stable-0.5 brach.  I'm going to reference this branch immediately in my production app.
I'd be happy to submit a pull-request with the back-port so the fix could be released right away. Please let me know if this is something you'd be willing to merge. It's a bummer that this was fixed a month ago in #201 but isn't in a stable release yet.

@balexand @janko-m i confirm, upload works on master. But image removal doesnt :)
eg remove_icon: true - not triggered
Can you please check?

@balexand a month is not a long time in the context of an open-source project. I'd be okay with merging a backport if you submit a PR for it.

@jnicklas could you make a minor release with this? Surprised it's not in stable... To the point when I've actually invested a ton into my code after seeing this is obviously fixed :) Funny thing, my fault, but guess you get my point.


Add template of Minimal Working Example program [ci skip]

Description
For users and contributors convenience, CMake configuration
generates basic example, ready to compile.
Apply minor fixes to some CMakeLists.txt files.
Tasklist

[ ] Review
[ ] Adjust for comments

@stefanseefeld This is not a high priority but I think it would be good to let it released with Boost 1.68

Why do you add this as a .cpp.in file ? Why not a .cpp directly ? I don't see anything in the file that's generated.

This file is supposed to be edited/modified by a user/contributor.
There is no content to be generated.
If this file was in repository as regular .cpp and if one modifies it then it would lead to dirty status of GIL clone. Using this .cpp.in trick, keeps the example out of git scope.

Ah. In that case I would just add it as-is (as a file that does almost nothing but compiles and runs without errors), documenting in the tutorial how this could be modified incrementally (i.e., step-by-step) to do various things.
I agree such an example would be valuable, but I also think that putting the documentation together that provides enough context / meaning to make this really useful is likely out of scope for the upcoming release.

I've just realised, example/Jamfile is actually empty and does not build anything
https://github.com/boostorg/gil/blob/ea9fb1581f1e1aac25bdccd2ee707d8378868a21/example/Jamfile#L10-L14
So, I think having the minimal_working_example.cpp copied by CMake only for now is fine. What you think?

OK, so we want to give users a minimal demo file that he can use as base for exploring GIL.
In that case, I'd expect the user to copy the source file and compile it using his own build system (which could be b2, cmake, faber, or anything else.
But there is strictly nothing to do for the Boost.GIL build system, at least not in a build step. (There is something to do in the install and package steps, though. But I still fail to understand why you want to generate the source from a .in "template" file. There are many examples of Boost libraries that ship with example files, none of which are generated.
But all those technical details aside, I think the main task remains to augment the (existing) docs so the example file somehow fits into the narrative of the tutorial. And while I think this would be very useful indeed, I don't think we should rush this into the upcoming release. Remember, we are in post-beta mode where only (critical) bug fixes should be added.

I still fail to understand why you want to generate the source from a .in "template" file

Simply, convenience.
This approach works well for plain CMake-based projects: e.cpp.in is copied to e.cpp during configuration phase, automatically added as target/project to workspaces available in an IDE, ready to fill with user-defined code, ready to compile, run and debug.


Donate Metadata Editor to Lab

This is a planning / discussion issue for donating the metadata editor to JupyterLab.
Context

Use it to implement new Settings UI (https://github.com/jupyterlab/jupyterlab/issues/8148)
Design already done, but needs implementation
Potential connection: thinking about leveraging the metadata editor / contributing that code
Existing settings editor: https://github.com/jupyterlab/jupyterlab/blob/master/packages/settingeditor/src/settingeditor.tsx
Existing (currently not maintained) metadata service extension: https://github.com/jupyterlab/jupyterlab-metadata-service

Phases of Donation:
Backend:

Move metadata services into jupyter server

Frontend:

Move metadata editor "as is" into core (can be done in parallel with backend move)
Updated metadata editor to work with donated backend
Update settings editor to use metadata editor instead of json editor
Update settings editor to look and work more like wireframe
Update Elyra to leverage donated metadata code

Hmm - this is a bit of a surprise since it sounds like a ton of UI work was done by the UCI team and Alex had even volunteered to help get it into core.  Are we duplicating effort and/or stepping on toes?
Regarding the backend, I believe we need to support Bring-your-own-schemas and promote Namespaces (and BYO Namespaces) prior to any move to core.  Currently, namespaces are just string-valued attributes on schemas and schemas are static.

Hmm - this is a bit of a surprise since it sounds like a ton of UI work was done by the UCI team and Alex had even volunteered to help get it into core. Are we duplicating effort and/or stepping on toes?

The work done so far was all design, no implementation, and based on their design our thinking was that since we were already planning on donating the Metadata Editor to core then we should leverage it for the implementation of the setting UI which we also volunteered to work on.
As for the donation in general, we did discuss the idea that if the Setting UI work is ready before the backend metadata service is donated then we can submit only the metadata code that is leveraged by the settings ui and leave the remaining UI code tied to the service as a draft until the backend is committed

Just stumbled upon this comment which essentially reiterates the tasks I mentioned previously relative to the server effort: https://github.com/elyra-ai/elyra/issues/701#issuecomment-716888388
If the server portion was implemented as a server extension, does that preclude the metadata editor from being placed in core?

If the server portion was implemented as a server extension, does that preclude the metadata editor from being placed in core?

Yes and no, the metadata editor can be partially donated without the backend if we leave any code related to calling the service in Elyra and only move the actual editor (this is essentially the case I described above if the setting UI is ready before the server extension). Also the "server extension" would need to be included in core jupyterlab, either as part of jupyterserver or in jupyterlab itself, if we leave it as a "3rd party" extension then we would not be able to put code in core that relies on it.

Ok.  So, without the server piece in the backend core, you'd essentially be donating a general editor that drives itself from JSON schema?  This could be used for settings and even the soon-to-be-needed kernel parameter editor that captures parameters prior to a kernel's startup. I.e., instances whose retrieval and persistence are not reliant on the "metadata service".  But using that same editor to persist Elyra metadata instances (where retrieval/persistence occurs via the "metadata service" - baked into the server or as an extension) could not occur - correct?

IIUC that is accurate

Due to changes on the JupyterLab side from https://github.com/jupyterlab/jupyterlab/pull/11079, we won't be donating the metadata editor anymore - we're updating the metadata editor on our side to reuse these changes in https://github.com/elyra-ai/elyra/pull/2464.


Always Crashes on iPhone

Issue
It crashes very frequently when used on iPhone.
Here is the stack message at the time of the crash
Stack message
Runner(35676,0x16cd6f000) malloc: *** error for object 0xffffffffffffffff: pointer being freed was not allocated
Runner(35676,0x16cd6f000) malloc: *** set a breakpoint in malloc_error_break to debug
* thread #27, name = 'isarworker', stop reason = signal SIGABRT
    frame #0: 0x00000001fb6d02f4 libsystem_kernel.dylib`__pthread_kill + 8
libsystem_kernel.dylib`:
->  0x1fb6d02f4 <+8>:  b.lo   0x1fb6d0310               ; <+36>
    0x1fb6d02f8 <+12>: stp    x29, x30, [sp, #-0x10]!
    0x1fb6d02fc <+16>: mov    x29, sp
    0x1fb6d0300 <+20>: bl     0x1fb6cbcd4               ; cerror_nocancel
Target 0: (Runner) stopped.
Lost connection to device.

Details

Platform: iPhone 8 etc.
Flutter version: [e.g. 3.3.10]
Isar version: [e.g. 3.0.5]

Duplicate of #915


Update amazon-linux-2.md

added minor changes to help with our support for Postgres 10+

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: tlblessing:x: marcoamYou have signed the CLA already but the status is still pending? Let us recheck it.

Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.
✅ tlblessing
❌ marcoam
You have signed the CLA already but the status is still pending? Let us recheck it.

@marcoam this CLA sign request showed up today.


Migrate notebooks to Quarto

This PR migrates our notebooks to Quarto.
:memo: Reviewer Checklist
Review this pull request commit-by-commit, as there is some poetry churn. Ensure the following items:

[ ] Make sure that make or yarn start run fine in web/

I couldn't run make in web/ because of an R dependency issue:
Installing dependencies from lock file

No dependencies to install or update
Installing IPython kernel spec
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
trying URL 'http://cran.us.r-project.org/src/contrib/pak_0.3.1.tar.gz'
Content type 'application/x-gzip' length 120022 bytes (117 KB)
==================================================
downloaded 117 KB

* installing *source* package ‘pak’ ...
** package ‘pak’ successfully unpacked and MD5 sums checked
** using staged installation
** R
** data
*** moving datasets to lazyload DB
**** building pak dependency data, this can take several minutes
**** deps data (23): ..........10..........20...23
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
*** copying figures
** building package indices
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (pak)

The downloaded source packages are in
        ‘/tmp/RtmpxXRd0e/downloaded_packages’
Loading required package: pak
Error:
! error in pak subprocess
Caused by error in `loadNamespace(x)`:
! there is no package called ‘pkgdepends’
---
Backtrace:
1. pak::local_install_dev_deps(upgrade = FALSE)
2. pak:::remote(function(...) { …
3. err$throw(res$error)
---
Subprocess backtrace:
1. base::withCallingHandlers(cli_message = function(msg) { …
2. get("local_install_dev_deps_make_plan", asNamespace("pak"))(...)
3. base::loadNamespace(x)
4. base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
5. base::withOneRestart(expr, restarts[[1L]])
6. base::doWithOneRestart(return(expr), restart)
7. base::stop(cond)
8. global (function (e) …
Execution halted

Unfortunately I can't reproduce this. Can you provide some info about your platform?

Black tried to lint the .Renviron file:
--- a/web/.Renviron
+++ b/web/.Renviron
@@ -1 +1 @@
-R_LIBS=".rlib"
+R_LIBS = ".rlib"

We do this in CI:
          git diff --name-only --no-color --diff-filter=ACM $(git merge-base origin/master HEAD) |
            grep -v '\(\.json\|\.csv\|\.ipynb\|\.hpp\.in\|\.ref\|\.example\|\.txt\|\.lock\|\.js\)$' |
            2>/dev/null xargs black || true

Any ideas how to add that file there? Just put the string Renviron in there?


Calling activity starter with no info gives a permissions error

If you call the activity starter and do not provide and information it looks like the intent resolution mechanism picks an activity to launch that leads to a permissions error.
See
https://groups.google.com/forum/#!topic/mitappinventortest/-e4mNygdEoQ
José suggests:
When using Implicit intents[1], the system figures out what you are trying to do from the information provided. 'No information' seems to point to that particular one, as Hal mentioned, no idea why, but the 'FIX' here may be validating the data before running the intent, instead of catching an error. In the method 'buildActivityIntent', redirect to a Form.dispatchErrorOccurred if there's no info about the action.

See also the original forum thread
https://groups.google.com/forum/#!topic/mitappinventortest/tq0IysLiIs4

#816 is merged


Getting StackOverflowException when trying to implement a new ConfigurationBuilder based on AmazonSecretsManagerClient

From .Net Framework 4.7.1 on we have the ability to inject configuration into legacy .Net Framework projects from many different sources (as already happens in .NET Core and .NET 6) using ConfigurationBuilders - Github Source here.
I tried implementing a ConfigurationBuilder based on the ConfigurationBuilders base class which provides a few different options for initialization (Constructor, Initialize() and LazyInitialize()).
The framework reads this class very early when the app starts running and the issue is that instantiating a new AmazonSecretsManagerClient will cause a StackOverflowException, apparently because the SDK tries to access ConfigurationManager which in turn tries to instantiate a new ConfigurationBuilder in an infinite cycle.
No matter where you try to instantiate the client I get StackOverflowException. In order to support ConfigurationBuilder it seems we need to some sort of skipping access ConfigurationManager.
Steps to Reproduce
The ConfigurationBuilder
public class AWSSecretsManagerConfigurationBuilder : Microsoft.Configuration.ConfigurationBuilders.KeyValueConfigBuilder
{
    public const string secretArnTag = "secretArn";

    private string _secretArn;
    private IAmazonSecretsManager secretsManager;
    private SecretsManagerCache cache;

    public override void Initialize(string name, NameValueCollection config)
    {
        Debug.WriteLine("AWSSecretsManagerConfigurationBuilder Initialize executed");
        base.Initialize(name, config);

        _secretArn = UpdateConfigSettingWithAppSettings(secretArnTag);

        // this will try to use ConfigurationManager creating an infinite loop that eventually end in a StackOverflowException
        secretsManager = new AmazonSecretsManagerClient();
        cache = new SecretsManagerCache(this.secretsManager);
    }

    public override ICollection<KeyValuePair<string, string>> GetAllValues(string prefix)
    {
        return GetAllSettings().Where(ev => ev.Key.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)).ToList();
    }

    public override string GetValue(string key)
    {
        string value;
        return GetAllSettings().TryGetValue(key, out value) ? value : null;
    }

    private Dictionary<string, string> GetAllSettings()
    {
        return Task.Run(async () => { return await DummyGetSettingsFromSecretManager(); }).Result;
    }

    private Task<Dictionary<string, string>> DummyGetSettingsFromSecretManager()
    {
        return Task.FromResult(new Dictionary<string, string>
        {
            { "AppSettings_SomeDummySetting", "123" }
        });
    }
}

And then in the web.config of a .Net Framework Web Application
<configuration>
  <configSections>
    <section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false" />
  </configSections>
  <configBuilders>
    <builders>
      <!-- I've placed the custom class in a class library -->
      <add name="AppSettingsFromSecretsManager" prefix="AppSettings_" stripPrefix="true" mode="Greedy" secretArn="arn:aws:secretsmanager:us-east-1:SOME_SECRET_ARN" type="ConfigurationBuilders.AwsSecretsManager.AWSSecretsManagerConfigurationBuilder, ConfigurationBuilders.AwsSecretsManager" />
    </builders>
  </configBuilders>
  <appSettings configBuilders="AppSettingsFromSecretsManager">
    <!-- ommitted -->
  </appSettings>

This results in a StackOverflowException wihout a StackTrace. You can see on the debug log that it tries to initialize the class multiple times.
I wanted to instantiate the client without any parameters so that it could eventually reach to the default profile defined at the machine level. This way I don't have to provide credentials and all secrets can be provided to the application without being previously on config files with the rest of the app's code.
However, in a desperate attempt, I wanted to see what would happen if I provided credentials directly (trying to avoid the SDK to go look into ConfigurationManager).
I changed the code (as a test) to:
var credentials = new BasicAWSCredentials("MY_KEY", "MY_SECRET");
secretsManager = new AmazonSecretsManagerClient(credentials);
cache = new SecretsManagerCache(this.secretsManager);

And that gives me NullReferenceException with the following StackTrace:
at Amazon.Runtime.ClientConfig..ctor()
at Amazon.SecretsManager.AmazonSecretsManagerConfig..ctor()
at Amazon.SecretsManager.AmazonSecretsManagerClient..ctor(AWSCredentials credentials)
at ConfigurationBuilders.AwsSecretsManager.AWSSecretsManagerConfigurationBuilder.Initialize(String name, NameValueCollection config) in E:\ConfigurationBuilders\ConfigurationBuilders.AwsSecretsManager\AWSSecretsManagerConfigurationBuilder.cs:line 31

So, I guess what I wanted to ask is for some guidance. Is there anyway to have the SDK not going into the ConfigurationManager? Or to avoid these issues by any other known ways?
Environment

SDK Version:

AWSSDK.Core <IP_ADDRESS>
AWSSDK.SecretsManager <IP_ADDRESS>
AWSSDK.SecretsManager.Caching 1.0.3

OS Info: Windows 10
Build Environment Visual Studio 2022 Community
Targeted .NET Platform:  .Net Framework 4.7.X and .Net Framework 4.8

FWI I created something similar to what you are trying to achieve. Have you tried it? https://github.com/Kralizek/AWSSecretsManagerConfigurationExtensions

Thanks, I actually have tried your library in a PoC with .Net Core.
But it doesn't seem to plug right away into .Net Framework's (not Core's)
ConfigurationBuilder system. Or at least not that I could find one. I'm
trying to find a way to plug settings from AWS SecretsManager with little
to no change in a large legacy codebase.
Em sex., 31 de dez. de 2021 às 20:44, Renato Golia @.***>
escreveu:

FWI I created something similar to what you are trying to achieve. Have
you tried it?
https://github.com/Kralizek/AWSSecretsManagerConfigurationExtensions
—
Reply to this email directly, view it on GitHub
https://github.com/aws/aws-sdk-net/issues/1964#issuecomment-1003466628,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACEO3MMPPFKTVX7ZKNCFCCTUTY56RANCNFSM5LBTO43A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

Thanks, I actually have tried your library in a PoC with .Net Core.
But it doesn't seem to plug right away into .Net Framework's (not Core's)
ConfigurationBuilder system. Or at least not that I could find one. I'm
trying to find a way to plug settings from AWS SecretsManager with little
to no change in a large legacy codebase.
Em sex., 31 de dez. de 2021 às 20:44, Renato Golia @.***>
escreveu:

FWI I created something similar to what you are trying to achieve. Have
you tried it?
https://github.com/Kralizek/AWSSecretsManagerConfigurationExtensions
—
Reply to this email directly, view it on GitHub
https://github.com/aws/aws-sdk-net/issues/1964#issuecomment-1003466628,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACEO3MMPPFKTVX7ZKNCFCCTUTY56RANCNFSM5LBTO43A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

Yep. I read your issue too hastily. That's why I then deleted my comment :)

Yep. I read your issue too hastily. That's why I then deleted my comment :)

Hi @rodrigolira,
Good morning.
Thanks for posting guidance question. I'm not sure if this is an issue with the AmazonSecretsManagerClient. The AmazonSecretsManagerClient for BCL45 is autogenerated and doesn't appear to call ConfigurationBuilder class.
Could you please clarify the following:

The logic for SecretsManagerCache class.
How are you using your custom AWSSecretsManagerConfigurationBuilder class? What is your application type? Is it possible to share sample code?

Thanks,
Ashish

Hello!
I came up with a sample code: https://github.com/rodrigolira/poc-custom-configuration-builders
The README.md describes the pieces of the project and how to see the error happening.
I think the problem might be specific to the workflow of ConfigurationBuilders. In my sample you can see that attempting to instantiate AWS Secrets Manager Client within that context causes the framework to attempt to reinstante it (I just assumed it's Secrets Manager trying to get credentials from the configuration).

https://github.com/rodrigolira/poc-custom-configuration-builders

@rodrigolira Could you please try returning some value/values(s) in GetValue()/GetAllValues()as shown in https://github.com/aspnet/MicrosoftConfigurationBuilders#implementing-more-keyvalue-config-builders? Also, could you also try wrapping logic in ConfigurationBuilderUsingSecretsManager() in try{}catch{} block, just to rule out if AmazonSecretsManagerClient() constructor is unable to fetch valid credentials in any of the default locations. This issue doesn't appear to be related to AWS SDK since as mentioned earlier, AmazonSecretsManagerClient is auto-generated and is just a wrapper for making service API calls. It is not specific to any front-end/back-end technology and is unaware of the concept of ConfigurationBuilders.


nothing happening on Mac

I tried doing alt+m down and other variations and I can't get that conflicts file to show up. The console didn't yield any errors or warnings.

Atom version 1.0.2.
merge-conflicts version 1.3.3

It's alt-m d to detect conflicts. You can also run "Merge Conflicts: Detect" from the command palette, or check the keybinding resolver to see if something is conflicting - I just shuffled them from ctrl-m chords in #157 because those conflicted.

got it. i'll close for now. i didn't realize i had to run a command although i'm pretty sure i tried alt+m d. thanks for the response!


Add lifecycle events for hiding / showing views before / after nav transitions

Found myself wanting predictable lifecycle events in my views, rather than sprinkling code into onComplete callbacks e.g. kicking off animations. The componentDidMount event is often not appropriate to initiate certain things on the view since it's still animating the transition at that point.
Added the following lifecycle events:
navigationControllerWillHideView
navigationControllerWillShowView
navigationControllerDidHideView
navigationControllerDidShowView

@programmarchy Thanks for the PR — would you mind merging master (I fixed an issue that was causing tests to not run) and then add a few tests?

Ok, merged in upstream master and writing some tests.
I'm new to karma and running into a little trouble. Here's how I'm trying to test a lifecycle event:
    it('calls lifecycle events', (done) => {
      const didShowViewSpy = sinon.spy();
      const didHideViewSpy = sinon.spy();
      controller.__pushView(<ViewB />, {
        transition: Transition.type.NONE
      });
      controller.forceUpdate(() => {
        let prevView = controller.refs['view-0'];
        let nextView = controller.refs['view-1'];
        prevView.navigationControllerDidHideView = didHideViewSpy;
        nextView.navigationControllerDidShowView = didShowViewSpy;
        requestAnimationFrame(() => {
          expect(didHideViewSpy.calledOnce).to.be.true;
          expect(didShowViewSpy.calledOnce).to.be.true;
          done();
        });
      });
    });

I found that I had to call forceUpdate because the view refs are not set up until the setState callback in __pushView. This seems a little bit hacky, though. Is there a better way to do this?

Found a better way to test by stubbing __transitionViews and setting up the spies there. Will generalize this test case so it covers more cases than just pushView.

This is looking great — would you mind adding some info about the lifecycle events in the README?

Ok, added a few tests and updated the README.

@programmarchy Thanks again for the PR!


Main dbt tutorial template release

@jordanrburger can you please approve this PR, please? Thank you. :-) I'll merge it on my own. Thank you :-)


what is the difference between mGTE？

https://arxiv.org/abs/2407.19669

mGTE is a multilingual model that introduced some of the improvements we also introduced in ModernBERT.
They also trained an English version, to which we compare (gte-en-MLM).
We introduce further improvements (e.g alternating attention) and train on a way bigger and diverse dataset than them, which allows ModernBERT to be faster and achieve better results on almost every tasks.
Please refer to the paper for more comparison.


Raycast2D's get_collider returns null when is_colliding returns true

Godot version:

3.0.2
OS/device including version:

Win10
Issue description:

When shooting an enemy, I check if Raycast2D is_colliding before using get_collider. However once I kill the enemy, is_colliding remains true while get_collider now returns null, just once, before is_colliding is set to false.
is_colliding is true but get_collider is null. If get_collider is ever null, is_colliding should be true
https://godotengine.org/qa/24987/get_collider-returns-object-freed-later-instance-avoid-script?show=24987#q24987
https://godotengine.org/qa/28264/possible-to-detect-multiple-collisions-with-raycast2d?show=28264#q28264
https://godotengine.org/qa/21861/raycast2d-detecting-collisions-when-it-shouldnt?show=21861#q21861
Steps to reproduce:
queue_free an object that is colliding with a RayCast2D.
Minimal reproduction project:

New Game Project3.zip

I cannot reproduce this with your example code (linux compiled version with 3678762).

What happens? Have you checked the command line debugger? It worked for me yesterday, and when I checked today nothing was printed to console, only the command line debugger

I added more debug log to your test case (roughly)
func _physics_process(delta):
  if $RayCast2D.is_colliding():
    print($RayCast2D.get_collider())
  else:
    print("No collider")

func timed_out():
  print("timeout")

and I get an input like
[Area2D:proper_id]
...
[Area2D:proper_id]
Timeout
No collider
...

Using your code for _physics_process I get the following output.
...
[Area2D:962]
[Area2D:962]
[Area2D:962]
[Area2D:962]
[Area2D:962]
[Area2D:962]
[Area2D:962]
[Area2D:962]
[Object:null]
No collider
No collider
...

This consistently happens on every run for me. Windows 10, Godot 3.0.2

I can reproduce the issue in 3.0.6. On the other hand, it seems to be fixed in the master branch.

What I can reproduce in the master branch is the fact that even after is_colliding returns true, you can still get one reference to the collider RID before it's freed. I get it only when using _process instead of _physics_process That part likely can't be improved further, it's a normal limitation of RayCast2D and of any physics-bound node: any physics related change may take one frame before the actually physics state is updated.
The access to a null object might be for a similar reason, and I'm not sure why it's fixed in the master branch. Could be a happy consequence of fbc61374 / #18118.
Given that the recommended "safe" use case is fixed in the master branch (using _physics_process for such calls), I'll close as fixed.


Building herror

Hi,
When I try to build (HoloToolkit -> Build Window)
I got 10 errors:

I don't understand it, can someone help me please ?

We need significantly more info when helping to troubleshoot something like this.  What versions of Visual Studio and Unity are you running.  Have you made an initial build using Unity and Visual Studio successfully?  It appears you need to put in your username and password for the deploy.  There is just not enough info for us to help at this point.

Looks like you may not have the correct build settings.


Return current connection speed

Hi,
First thank you for your tool 👍
One only thing is missing to me, is a line with the current speed of the "global connection".
Thanks.

hi yes really good idea , current speed per connection is good


Enhance @cross_vobj_property

Why this change?
Remove reference to Frame in VObj instances, which was introduced as a tempory work around to support @cross_vobj_property.
What does this PR include?

fix unattended baggage example
Decorate property function owner with @stateful. Didn't cause any problems in unattended baggage example:
If owner was not decorated to be a stateful property, previous implmentation of getv will always return None when requesting past owner (instead of giving an error that no such stateful property exist). This return value None was then interpreted as previous owner does not exist, not affecting computation of Baggage's owner in the current frame.
getv's behavior will be fixed in #32.

remove reference to Frame in VObj instances
Frame will be passed to VObjConstraint.apply() to retrieve information (cross_vobj_arg) needed to compute cross vobj properties (computation is in VObjConstraint._compute_cross_vobj_property).
This also means computation of cross vobj properties will be delayed until actual filter/select condition. (Yet to create dependency graph for VObj properties.)
Includes necessary internal interface changes:

only need to pass frame to query.vqpy_update
tracker.update only needs to return frame

add functionality of @property to @cross_vobj_property so @property is not needed when creating cross vobj properties
Uses the same logic of avoiding repeated computation as @property.

change interface requirement for property function to be decorated with @cross_vobj_property
See  User API changes for details.

register @cross_vobj_property and @property to VObj explicitly, in sets _registered_name, _registered_cross_vobj_names

User API changes

No longer need to add @property before @cross_vobj_property to create cross vobj properties in VObj

Interface requirement for property function to be decorated with @cross_vobj_property changed
The property function being decorated should accept two arguments: self and cross_vobj_arg (positional).
During execution, VQPy will pass cross_vobj_arg, a list of properties of VObjs of specified type, to the property function being decorated.
cross_vobj_arg has structure: List[Tuple(property1, property2, ...) for vobj1, Tuple for vobj2, ...], where property1, property2 are values of property names listed in vobj_input_fields, in order; vobj1, vobj2 are VObjs of type vobj_type.

New dependencies included
None

Shall we move the value calculation of cross_vobj_properties to query update? In that case, we only need to calculate the actual values iff the property is included in filter_cons. Besides, we can avoid passing frame to vobj.update(), which could be prone to error since frame contains vobjs.

Shall we move the value calculation of cross_vobj_properties to query update? In that case, we only need to calculate the actual values iff the property is included in filter_cons. Besides, we can avoid passing frame to vobj.update(), which could be prone to error since frame contains vobjs.

Changed.

cross_vobj_property's value retrieval is moved to vobj_constraint.filter()
frame is no longer passed to @cross_vobj_property and vobj.update(), instead the values retrieved are passed

The new changes look much better! 👍
Some enhancements could be made:

Shall we only calculate the cross_vobj_properties which are included in users' query (i.e., filter_cons), instead of calculating all the properties?
Shall we avoid passing cross_vobj_args to getv? Since users can also use getv to retrieve property values, they may get confused about how to pass cross_vobj_args.  Maybe it could be better if we split the value calculation and value retrieval for cross_vobj_properties, which means calculating the property value only in query, and directly retrieving the calculated and saved value with getv in other places (like the continuing function).

LGTM

This line should be changed back:
https://github.com/uclasystem/VQPy/blob/2a21ea0bbcbd9417e328f5526e904da0c9c564af/vqpy/base/interface.py#L124


$limit=0 default no longer works

Instagram has started raising errors on some API calls when the count value is set to 0. So setting 0 as a default value is no longer a good default. Probably want to start requiring limit to be set, or defaulting it to what ever Instagram used as a default when 0 was passed as the count parameter.

I totally agree. This is also discussed in #120.

Instagram made the change on Sunday April 5/Monday April 6 -- My code had been working fine till then, and then started falling over. Made even worse because they raised a different type of error than I'd previously encountered, so my code didn't handle it as well as it could have.
I've been able to resolve the issue in my own code by simply specifying a limit all the time. But we probably don't want bad defaults in this code!

I think we should remove all limit values and only accept an array of parameters. Currently we have problems such as described in #118 where the developers can't specify anything else but the limit.

I'd think that for any parameter Instagram makes mandatory this library should make it mandatory too. Perhaps after all the mandatory parameters, it could optionally accept an array of additional parameters.

Are you sure its mandatory? What happens if we don't send any parameters at all? I can't find anything about it in the documentation. Though, I agree with you. If Instagram says something is mandatory it should be the same in our package.

I'm not sure. I assumed it was mandatory since this library set it to 0 when limit wasn't passed in. I haven't tried making the Instagram call with that parameter not set.
But given that they just decided (without notifying their existing API users) to throw an error on count=0 rather than substituting their default count like they had been doing for a long time, I'm nervous about assuming anything at this point.
Now in their defence, I'd noticed them having a lot more server issues the previous several days than normal, so it's possible they did this in order to address a load issue or something.  ;-)

I managed to get my code running with a quick fix like the following
public function getUserFeed($limit = 0) {
        if($limit>0) {
            return $this->_makeCall('users/self/feed', true, array('count' => $limit));
        }else{
            return $this->_makeCall('users/self/feed', true);
        }

It isn't pretty but it work fine without having to edit the methods call.
Instagram now ask for either a count parameter over 0 or no count parameter at all.
I figured it was the best way to deal with it will we figure a way to solve it properly.


Make ChangePropertyValue regex allow for multiple replacements of same regex pattern in single value

What's changed?
Made properties and yaml recipe behave the same + altered check if a property value matches the regex. ISO making it complete match, it is now searching if there is a partial match of the regex. This way it's opened up for multiple times te same replacement in single run.
What's your motivation?
Fix #3964
Anything in particular you'd like reviewers to focus on?
Anyone you would like to review specifically?
Have you considered any alternatives or workarounds?
Running same recipe multiple times after each other, but that's not really a good approach (I cannot know up front how often a particular replacement needs to happen)
Any additional context

Checklist

[X] I've added unit tests to cover both positive and negative cases
[X] I've read and applied the recipe conventions and best practices
[X] I've used the IntelliJ IDEA auto-formatter on affected files

Thanks for getting this started @Jenson3210 ! While your change is indeed the safe way to go about this, I've also glanced at how these recipes are currently used, and don't often see oldValue and regex used, such that we might get away with not adding partialMatch, but switch from using String.matches to indeed Matcher.find. Folks that want to old behaviour can then switch from my:regex.* to using ^my:regex.*$. Any thoughts on that?

This crossed my mind as well.
But wanted to go for the "safe" option as I do not feel comfortable making breaking changes on something which is not mine.
That being said:
If we would do the way you mention, we would still not have the (wanted/similar?) behaviour/option for non-regex, partialMatch combination.
    @Test
    void partialMatch() {
        rewriteRun(
          spec -> spec.recipe(new ChangePropertyValue("*", "replaced", "replaceme", null, true,null)),
          properties("""
            multiple=[replaceme:1][replaceme:2]
            multiple-prefixed=test[replaceme:1]test[replaceme:2]
            multiple-suffixed=[replaceme:1]test[replaceme:2]test
            multiple-both=test[replaceme:1]test[replaceme:2]test
            """, """
            multiple=[replaced:1][replaced:2]
            multiple-prefixed=test[replaced:1]test[replaced:2]
            multiple-suffixed=[replaced:1]test[replaced:2]test
            multiple-both=test[replaced:1]test[replaced:2]test
            """)
        );
    }

Hmm; would that not be covered by using the regex option but escaping all special characters in a regex?

you mean to say something like:
  - org.openrewrite.yaml.ChangePropertyValue:
      propertyKey: "**.*"
      newValue: replaced
      oldValue: replaceme
      regex: "True"

Certainly possible, but it could yield issues towards the regex field not set/understanding. People might think it is not a regex -> not required to set.
Escaping special characters, looks to be overly complex for a find/replace.
But you're the "owner", I can do the changes if you prefer this approach. ;)

@timtebeek made the necessary changes. Let me know if any other recipes pop into your mind that would need ^...$ surrounding.

That's kuddo's to the original author more than to this one 😄