fix(userspace): solving batch of recent regressions

What type of PR is this?
/kind bug
Any specific area of the project related to this PR?
/area libscap
/area libsinsp
Does this PR require a change in the driver versions?
What this PR does / why we need it:
Which issue(s) this PR fixes:
I was able to run a bunch of experiments on the current mainline and came up with few bugs that caused inconsistencies or segfaults.
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jasondellaluce
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jasondellaluce]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: gnosek, jasondellaluce
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [gnosek,jasondellaluce]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: gnosek, jasondellaluce, LucaGuerra
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [LucaGuerra,gnosek,jasondellaluce]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

uhm i didn't see there was already a second approve

And I didn't notice other uses of m_inspector. @jasondellaluce perhaps it would make sense to fix them in a subsequent PR ;)
Also, I was confused by m_inspector checks as well because it was not clear if that could or could not be NULL so some comment may be useful for the next person.

+1 re https://github.com/falcosecurity/libs/pull/1524#issuecomment-1832030008 since for the most part we don't check m_inspector a comment explaining why it's needed here would be great!


Implement a environment variable in config.yml, so that only admins can push images.

Implement a environment variable in config.yml, so that only admins can push images.
New version of #1689.
Signed-off-by: Fabian Baumanis<EMAIL_ADDRESS>

Thanks :clap:


Add OpenColorIO Integration

Color processing now uses OpenColorIO.
Addresses issue #193.
OCIO is now a build-time optional dependency. (Defaulting to ON, if the library can be found.  If OCIO is not found, the build will continue but OCIO support is disabled).
The binary ABI for OIIO is fixed no matter which build option is used, so the library can be swapped out is color processing is later determined to be needed.  If OCIO is not enabled, a simple color processing implementation is included in its place.
ColorTransfer, and all associated code has been removed.
Modifications include:

include/color.h
ImageBufAlgo
maketx

The location of OpenColorIO can be specified using:
OCIO_PATH: (root of OCIO install)
or OCIO_INCLUDES / OCIO_LIBRARIES if you'd like to specify those dir independently.
Those testing at SPI can update site/spi/Makefile-bits-arnold to include -DOCIO_PATH=/shots/spi/home/lib/SpComp2/OpenColorIO/spinux1-gcc44m64/v2 to MY_CMAKE_FLAGS for testing.
TODO: Add in-place, raw conversion to imageio.h. (float originally)
TODO: Add support to oiio-tool
Longer term TODO: Add support to the texture system to allow for color conversion at tile-load time

Sweet!

@lgritz, I think this is ready to go.

What are your thoughts on the default value for USE_OCIO=1?  I'm happy to flip the default if you'd prefer.

I'd like to defer the implementation of the function to process the raw image struct data. (there is a function to process a single pixel though).  It'd probably be a day, and I dont have the time to do this now.  But as it can be added in an ABI compatible manner, I don't feel like this should hold up the other (non-compatible) API changes.

Adding @hobbes1069 so he will be notified when/where we roll this in.

@lgritz - any thoughts on this? What are your thoughts on the default value for USE_OCIO? On or off?

LGTM, pending answers to my minor concerns.
So, to recap: you have stripped out all the old ColorTransfer stuff from the API, added an ImageBufAlgo that will color transform an ImageBuf, but not yet added the color-transform-a-raw-float-buffer (a la convert_image)?
I believe it should use OCIO by default, if found.  I can't think of a good reason why, if it's found on the system, somebody would not want support for it by default.
I'm slightly worried about the assumptions about channel meanings, but I suppose a "caveat emptor" approach is fine for now.  This is all hot off the presses and should consider some of the namings and behaviors tentative until we cut a final release that supports this.

You ready to merge this?  It's fine with me, we can always clean things up and add the missing parts later.

sorry, got sidetracked on other things.  i'll try to get this in early next week.

Committed in 26dd9f965e7cbf12c445dee24a3eb9156f6cafac


Support DZI tile sources in Python API

 Issue by jamesscottbrown
Tuesday Sep 25, 2018 at 14:58 GMT
Originally opened as https://github.com/dsi-icl/ove/issues/58

The Python API current only supports states of the images app that use a single image file rather than a DZI tile source (for which the  tileSource object has no url attribute).

 Comment by senakafdo
Tuesday Sep 25, 2018 at 15:00 GMT

Better to consider the full list at https://openseadragon.github.io/#examples-and-features.

This is no longer relevant as we have a new Asset Manager.


Backport ActiveConnection changes from nmstate-0.3 to nmstate-0.2.7

This backports #874 and #852.

Coverage remained the same at ?% when pulling 19362df06008d4313c11c90f0809a0df79a954c6 on ffmancera:backport_stuck into 5446c067ee9ebe7d20bbf54f5701db572001c08f on nmstate:nmstate-0.2.

Coverage remained the same at ?% when pulling 19362df06008d4313c11c90f0809a0df79a954c6 on ffmancera:backport_stuck into 5446c067ee9ebe7d20bbf54f5701db572001c08f on nmstate:nmstate-0.2.


Some wrong sql constraints

In table cdb_person the field fax is defined as "varchar(20) NOT NULL". When I try to add a person the sql command INSERT fails because the fax field is missing in the sql INSERT command. Same for some other fields.
Is there another solution then changing the constraints one by one?

Hi @rudigh ,
the open source version of churchtools is no longer maintained (since 2015). It has been replaced by a non-open source version (paid license) and is at version 3.51 at the moment. Please find everything related to the current ChurchTools here: https://church.tools
We would be happy to help you to migrate to the current version. Just contact us via email: support at churchtools.de .
Best regards,
Matthias (CEO ChurchTools Innovations GmbH)


Are you getting undefined refs?

Page 33

Nope, mine's good

Yeah, I see that Chris' is good. So, Chris or Andy, can build the final version when you have finished all commits?

I will -  Andy you should head out to the mixer

Keep latex-ing and undefined should go away.

I wasn't latexing enough. I'm good now and uploaded my tex file for comparison.
hake-assessment.zip

Trying a compare .pdf on the version that Allan submitted, but it's taking a while. Which is a little worrying, since the compare I did earlier was really quick...
Aha - Allan, your bcfecc.. one has no references blah blah - aha - I'll try your new one.

I'll compare Allan's tex with mine once it's finished building

Our tex files are identical Allan

Okay. I can easily compare .pdf's. As long as they're similar enough (else it takes a while).
But I'm off  - have to get my son. Chris can submit.


Conrefs not supported on tgroup elements in DITA-OT 2.2.1

When attempting to publish tgroup elements with conrefs using DITA-OT 2.2.1, the processing fails.
Example input:
<table frame="all" colsep="1" rowsep="1">
  <tgroup cols="0" conref="../conrefs/c_launching_service.dita#id13B4B0990HK/launch_service_tgroup">
    <tbody>
      <row>
        <entry/>
      </row>
    </tbody>
  </tgroup>
</table>

Error message:

Fatal error during transformation using /Users/jdoe/git/dita-ot-2.2.1/plugins/org.dita.xhtml/xsl/dita2html.xsl: An empty sequence is not allowed as the value of variable $colspec;

I can't reproduce this. @jlowther: could you also post the table whose <tgroup> element is the conref target?

tgroup target is as follows:

Launch the Service
In a Web browser, type the URL of the server that is
                            running the Java Web Start service, choose service plug-ins, and click
                                Launch Service

Can't reproduce. Could you create a ZIP with complete set of files that will cause error condition?

The error occurs when attempting to build JavaHelp and HTML  Help. Please try building in those formats.

Can't reproduce with HTML Help.

doc_testing.zip
Source files as requested.

doc_testing.zip

I can reproduce the error with those files, but the root cause is not related to the <tgroup> element. It's caused by errors like this:
   [conref] Error on line 189 of conrefImpl.xsl:
   [conref]   XTTE0570: An empty sequence is not allowed as the value of variable $domains
   [conref]   at xsl:apply-templates (file:/opt/dita-ot/xsl/preprocess/conrefImpl.xsl#812)
   [conref]      processing /concept/conbody[1]/section[2]/p[26]/ph[1]/ph[1]
   [conref]   at xsl:apply-templates (file:/opt/dita-ot/xsl/preprocess/conrefImpl.xsl#326)
   [conref]      processing /concept/conbody[1]/section[2]/p[26]/ph[1]
   [conref]   at xsl:for-each (file:/opt/dita-ot/xsl/preprocess/conrefImpl.xsl#322)
   [conref]      processing /
   [conref]   at xsl:apply-templates (file:/opt/dita-ot/xsl/preprocess/conrefImpl.xsl#1216)
   [conref]      processing /concept/conbody[1]/section[2]/p[1]/ph[1]/ph[1]
   [conref]   at xsl:apply-templates (file:/opt/dita-ot/xsl/preprocess/conrefImpl.xsl#1216)
   [conref]      processing /concept/conbody[1]/section[2]/p[1]/ph[1]
   [conref]   at xsl:apply-templates (file:/opt/dita-ot/xsl/preprocess/conrefImpl.xsl#1216)
   [conref]      processing /concept/conbody[1]/section[2]/p[1]
   [conref]   at xsl:apply-templates (file:/opt/dita-ot/xsl/preprocess/conrefImpl.xsl#1216)
   [conref]      processing /concept/conbody[1]/section[2]
   [conref]   at xsl:apply-templates (file:/opt/dita-ot/xsl/preprocess/conrefImpl.xsl#1216)
   [conref]      processing /concept/conbody[1]
   [conref]   at xsl:apply-templates (file:/opt/dita-ot/xsl/preprocess/conrefImpl.xsl#30)
   [conref]      processing /concept
   [conref] Failed to transform document: An empty sequence is not allowed as the value of variable $domains

The error doesn't cause processing to stop, but it prevents conrefs from being resolved. The $colspec error is a side effect of that.
Doing something like this "fixes" the error but doesn't address the root cause:
diff --git a/src/main/xsl/preprocess/conrefImpl.xsl b/src/main/xsl/preprocess/conrefImpl.xsl
index e410bd4..d7d8dd9 100644
--- a/src/main/xsl/preprocess/conrefImpl.xsl
+++ b/src/main/xsl/preprocess/conrefImpl.xsl
@@ -182,7 +182,7 @@
       </xsl:call-template>
     </xsl:variable>
     <!-- get domains attribute in the target file -->
-    <xsl:variable name="domains" select="(document($file, /)/*/@domains | document($file, /)/dita/*[@domains][1]/@domains)[1]" as="xs:string"/>
+    <xsl:variable name="domains" select="(document($file, /)/*/@domains | document($file, /)/dita/*[@domains][1]/@domains)[1]" as="xs:string*"/>
     <!--the file name is useful to href when resolveing conref -->
     <xsl:variable name="conref-filename" as="xs:string">
       <xsl:call-template name="replace-blank">

I'm guessing that the root cause has something to do with how the conref code resolves relative paths, but I didn't get to the bottom of it yet.

The issue may be that conref target has conref, and the target is in the same document.

The issue may be that conref target has conref, and the target is in the same document.

It seems to be related to that, but the issue is also related to relative paths / subdirectories.
After a long struggle, I managed to produce a minimal set of files to reproduce the issue:
https://github.com/eerohele/dita-ot-issues/tree/master/fixtures/2192
The conref in topic1/topic1.dita doesn't work. The topicref in topic3.dita does. The only difference is that topic1.dita is in a subfolder, and thus the conref starts with ../.

The simplest possible fix might be:
diff --git a/src/main/xsl/preprocess/conrefImpl.xsl b/src/main/xsl/preprocess/conrefImpl.xsl
index e410bd4..51fbf89 100644
--- a/src/main/xsl/preprocess/conrefImpl.xsl
+++ b/src/main/xsl/preprocess/conrefImpl.xsl
@@ -1224,20 +1224,24 @@
   <xsl:template name="get-file-uri" as="xs:string">
     <xsl:param name="href" as="xs:string"/>
     <xsl:param name="file-prefix" as="xs:string"/>
-    <xsl:value-of>
-      <xsl:value-of select="$file-prefix"/>
-      <xsl:choose>
-        <xsl:when test="starts-with($href, '#')">
-          <xsl:value-of select="$file-being-processed"/>
-        </xsl:when>
-        <xsl:when test="contains($href, '#')">
-          <xsl:value-of select="substring-before($href, '#')"/>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:value-of select="$href"/>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:value-of>
+    <xsl:choose>
+      <xsl:when test="starts-with($href, '#')">
+        <xsl:value-of select="base-uri()"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of>
+          <xsl:value-of select="$file-prefix"/>
+          <xsl:choose>
+            <xsl:when test="contains($href, '#')">
+              <xsl:value-of select="substring-before($href, '#')"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="$href"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:value-of>
+      </xsl:otherwise>
+    </xsl:choose>
   </xsl:template>

   <xsl:template name="get-original-element" as="xs:string">

But really, conrefImpl.xsl could use quite a bit of refactoring.

This particular error:
XTTE0570: An empty sequence is not allowed as the value of variable $domains

was reported and fixed (at least that particular case) here:
https://github.com/dita-ot/dita-ot/issues/2186

This particular error:
XTTE0570: An empty sequence is not allowed as the value of variable $domains
was reported and fixed (at least that particular case) here:
#2186

This is a different error, though — it still occurs with the develop branch.

The $domains problem is caused because the target document cannot be read. Fixing the URI resolution bug with 5215545 seems to fix this issue too with the provided test files.


Exposure sync/Check delayed every day by 1 hour

Avoid duplicates

[x] Bug is not mentioned in the FAQ
[x] Bug is not already reported in another issue

Describe the bug
The update time (sync time) is 1 hour later every day. After installing the app sync was at 9 in the morning, now it is at 18 in the evening. This means that between publishing of infected keys and sync up to 20 hours have passed in my case. No manual sync possible. This delays warnings and should be fixed.
Expected behaviour
Update/sync should happen at least at the same time every day, maybe even more than once.
Steps to reproduce the issue

Install app
Note time of update after 24 hours
Check again a few days later
Note it gets delayed around an hour every day

After install, update at 9:20

A week later, update at 18:20

Technical details

iOS Version: 13.5.1
Device: iPhone 11, MWM32ZD/A

Possible Fix
Make sure Update time drifts max 1-2 hours.
Additional context

So AFAICS the first set of keys has been published last night. I will not get them before this evening. I don't know how long the check itself will take, but I definitely will not get a warning before 24 hours have passed after publication o the keys.
This means that I can earliest act tomorrow, so more or less 48 hours later. That is IMHO a lot of time passing. Shouldn't the goal be to enable fast reactions to possible contacts?

This issue is related to #740

As you can clearly see, the checks drift between 20-60 minutes every day. So the official statement of a check “every 24 hours” is not working for me. It’s definitely more than 24 hours every day.
I really hope this will be fixed.

And another 50 minutes later. I’ve opened the app many times, so I really don’t understand how I got from 9 innige morning to this late in the evening.

Now tracked in #916 so closing this one is fine.


Fix timeouts in HTTP service invocation when resiliency policies with timeouts are applied

Fixes #7173
Fixes #7145
When resiliency policies with a timeout are applied, HTTP service invocation could fail with a truncated response and this error:
{"errorCode":"ERR_DIRECT_INVOKE","message":"failed to invoke, id: back-end, err: error receiving message: rpc error: code = Canceled desc = context canceled"}

This was reproducible mostly on faster machines, indicating it was a timing issue.
The root cause of the issue was due to the fact that in HTTP service invocation, we pass to the Invoke method a context that is tied to the resiliency policy runner's context. This meant that when the policy function returns, the context passed to the Invoke method is canceled, even if the request has not timed out. However, with streaming, the context has to remain valid outside of the policy runner function, to be able to respond to the caller.
The fix involves sending the response within the policy function. This way, the context is still valid throughout that time, and the timeout applies to the entire response.
The fix was validated with the repro code in #7173, which at least on my M1 Pro Mac allowed reproducing the error reliably.
It is sadly not possible to write a test for this, because it was a timing bug that is hard to reproduce deterministically (and it mostly appears on fast machines, so not on GH Actions). In fact, our E2E tests already have test cases for service invocation with resiliency, and never detected this issue.

Additionally, this PR fixes a race condition in pkg/resiliency/policy.go, which could have caused a goroutine leak (due to writing on a channel with no reader) if an operation completed immediately after the timeout.

@ItalyPaleAle before we merge, can you please look into intg tests failing? I re-ran several times

@ItalyPaleAle before we merge, can you please look into intg tests failing? I re-ran several times

It looks like tests that fail are mostly actors-related, the same ones that are failing in master. I've re-run the unit tests, but they seemed unrelated too.
Is there any test in particular I should be concerned with?


Can't log in

I use github host and github id , password what' wrong??

Hi @ghanIn,
You have a typo in your config.json file:
{
  "meta": {
    "username": "ghaIn",
    "repositoryName": "ghanIn.github.io",
    "branch": "master"
  },
  "theme": {
    "name": "Casper"
  }
}

The username must be ghanIn and not ghaIn

Hi there,
I wonder if you can help me out, please. I'm not being let through despite having my config.json file looking alright:
{
  "meta": {
    "username": "michaltrzesimiech",
    "repositoryName": "orkiestraracjonalna.github.io",
    "branch": "master"
  },
  "theme": {
    "name": "Casper"
  }
}

Scenarios I've tried so far:

Tried to delete the repository and set it back up from scratch
Tried with my GitHub username and password (>26 characters long)
Tried with my GitHub username and new password (8 characters)
Tried with my e-mail address and current password

Result: Password field gets underlined red, but otherwise no change

Tried with enabled two-key authentication
Result: Password field gets underlined red, field "Two factor code" appears, an SMS message comes in

Entered the code, clicked "LOG IN".
Result: A message slides in: "A two-factor payload code is needed."

Hi @michaltrzesimiech,
You must set the username with the name of the owner of the repository, here orkiestraracjonalna:
{
  "meta": {
    "username": "orkiestraracjonalna",
    "repositoryName": "orkiestraracjonalna.github.io",
    "branch": "master"
  },
  "theme": {
    "name": "Casper"
  }
}

Hi @anthonny. Thanks for helping me out. I've actually tried that approach too, but then orkiestraracjonalna is an organization. Since with
{
"meta": {
"username": "orkiestraracjonalna",
"repositoryName": "orkiestraracjonalna.github.io",
"branch": "master"
},
"theme": {
"name": "Casper"
}
}
I can't log in as organization orkiestraracjonalna* nor as user michaltrzesimiech, would that mean I won't get authorization unless and until I host my blog as GitHub user?

in the repository orkiestraracjonalna.github.io you must add you account michaltrzesimiech as collaborator (in the settings of the repository) with write authorization

Of course! I forgot about that. Thanks @anthonny!


Add uart, i2c_master, spi_master and usb_allocator for all BSPs

Should be fairly simple to do, just time consuming, and would have prevented issues like #251

If you spot any errors in the table below, or any changes have been made, please post in this issue and I will update the table.

Board
i2c_master
spi_master
usb_allocator

arduino_mkrvidor4000
❌
❌
❌

arduino_mkrzero
❌
❌
✔

arduino_nano33iot
✔
✔
✔

circuit_playground_express
✔
❌
❌

edgebadge
❌
❌
❌

feather_m0
✔
✔
✔

feather_m4
✔
✔
✔

gemma_m0
❌
❌
❌

itsybitsy_m0
✔
✔
✔

itsybitsy_m4
✔
✔
❌

metro_m0
✔
✔
❌

metro_m4
✔
✔
✔

pfza_proto1
✔
✔
❌

pygamer
❌
❌
❌

pyportal
✔
✔
❌

samd11_bare
✔
❌
❌

samd21_mini
❌
❌
❌

serpente
❌
❌
❌

sodaq_one
✔
✔
❌

sodaq_sara_aff
❌
❌
❌

trellis_m4
✔
❌
❌

trinket_m0
✔
❌
✔

xiao_m0
✔
✔
✔

You missed uart

Yes I just noticed that, thanks. Will update when I've gone through all the BSPs (again).

Are you talking about the actual BSP implementation (i.e. convenience functions to initialize I2C, etc.) or are you talking about examples?

This is referring to the convenience functions, you can see an example here.

Many of our BSPs have opted to use pin Sets, and only some include the tracked helper functions.
Should we consider the Sets approach to be adequate for being marked completed here? wio-terminal is an example of a BSP where it doesn't necessarily make sense to include the above functions, IMO.

yeah for bsps with Sets model solves the same problem better.
You could argue for both, but I actually killed these functions off last year because I felt like either I was duplicating code, or the one helper fn was calling the other making the bsp even more inscrutable to newcomers.
In sets you even get access to functionality equivalent i2c_master assuming for some reason you're not just using the Set you were given from .split by constructing the Set and init it
let i2c = I2C {
    sda,scl
};
i2c.init()l

Yeah I would consider either acceptable and equivalent.

updated status @jessebraham, and an attached script to automatically check

Board
i2c_master
spi_master
usb_allocator
uart

~feather_m0~
✔
✔
✔
✔

~metro_m4~
✔
✔
✔
✔

wio_terminal
❌
❌
❌
❌

edgebadge
❌
❌
❌
❌

~trinket_m0~
✔
✔
✔
✔

arduino_mkrvidor4000
❌
❌
✔
❌

neo_trinkey
❌
❌
✔
❌

itsybitsy_m4
✔
✔
❌
✔

pygamer
❌
❌
❌
❌

sodaq_one
✔
✔
✔
❌

~wio_lite_mg126~
✔
✔
✔
✔

gemma_m0
❌
❌
❌
✔

atsame54_xpro
❌
❌
❌
❌

~feather_m4~
✔
✔
✔
✔

~metro_m0~
✔
✔
✔
✔

circuit_playground_express
✔
✔
❌
❌

grand_central_m4
❌
❌
❌
❌

serpente
❌
❌
❌
✔

arduino_mkr1000
❌
❌
✔
✔

arduino_mkrzero
❌
❌
✔
❌

samd11_bare
✔
❌
❌
✔

sodaq_sara_aff
✔
❌
✔
✔

samd21_mini
❌
❌
❌
❌

~arduino_nano33iot~
✔
✔
✔
✔

~itsybitsy_m0~
✔
✔
✔
✔

~xiao_m0~
✔
✔
✔
✔

trellis_m4
✔
❌
❌
✔

~qt_py_m0~
✔
✔
✔
✔

pyportal
✔
✔
❌
✔

~p1am_100~
✔
✔
✔
✔

pfza_proto1
✔
✔
❌
❌

pygamer and wio_terminal actually also have these functions, they're just wrapped up in pin sets. That means all tier 1 boards have these functions. tier 2 boards are more best-effort, so I don't see much benefit in tracking this anymore. If folks disagree, we can re-open


aur-build: cannot remove directory after gpg signing times out

After running aur build -d jlk --root /srv/http/arch/repo/ --chroot --sign I got:
...
==> Finished making: gmsh 4.7.1-1 (Wed 18 Nov 2020 08:28:43 AM CET)
gpg: signing failed: Timeout
gpg: signing failed: Timeout
rm: cannot remove '/var/tmp/aurutils-1000/build.L7jAVsp6': Directory not empty

And:
$ ls /var/tmp/aurutils-1000/build.L7jAVsp6/
gmsh-4.7.1-1-x86_64.pkg.tar.zst gmsh-docs-4.7.1-1-any.pkg.tar.zst

Actually, this might be a feature rather than a bug, since now I can sign those packages manually and add them to the repo myself, instead of re-running aur build which takes quite some time.
This is with aurutils 3.1.2-1.

Actually, this might be a feature rather than a bug, since now I can sign those packages manually and add them to the repo myself, instead of re-running aur build which takes quite some time.

Right. Maybe I can add some error message to clarify that.

How about:
if ! rm -df -- "$var_tmp"; then
    printf >&2 'Note: aur-build encountered an error before moving packages\n'
    printf >&2 'Note: to the local repository. This may happen when signing\n'
    printf >&2 'Note: built packages with gpg (aur build --sign).'
    printf >&2 'Note: The following files were preserved:\n'
    realpath >&2 -- "$var_tmp"/*
fi

I think the repeated Note: prefix makes it harder to read, it might be better to leave just the first Note:.
Also, the third line is missing \n at the end. Otherwise, it looks good to me.

I think the repeated Note: prefix makes it harder to read, it might be better to leave just the first Note:.

That's true. My idea was to add some prefix so the message can be distinguished (if for some reason people want to parse stderr). Cf. https://github.com/AladW/aurutils/blob/master/lib/aur-vercmp#L129-L131
I could either ignore that, add some more whitespace or some seperator (8<----, cf. https://github.com/AladW/aurutils/blob/master/lib/aur-srcver#L102)

Hmm, so the prefix determines something like the log level... Personally I wouldn't bother with line wrapping and just print the whole message on a single line, but both your suggestions would improve the readability. Alternatively, you might consider using a different prefix to indicate a multi-line message continuation, e.g.
Warning: blah
>>>      blah
>>>      blah

Actually, you might also use three spaces instead of >>>.
That way people's parsers can actually determine what is a new message and what is a continuation of some previous message.


Add Resend extension

Description
This is a Raycast extension for Resend. With this extension you can Manage API Keys and Domains, and Send Emails using Resend.
Screencast
https://github.com/raycast/extensions/assets/30526133/2db647ae-df52-49de-b57b-37e37808aeba
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Hi! Thank you so much for your contribution to Raycast!
My name is Milena and I will be reviewing your extension today :)
I have a couple of concerns about running your extension for the first time. First, inserting the wrong API Key (or without enough permission) doesn't block the user from continuing the commands.  Maybe it would be better UX if the user would not be allowed to continue and ask for a correct key?

Also, I saw that you uploaded 3 flags for the domain locations. Are these the only locations provided by Resend? Or will they ever expand?

Hey! Thanks for the updates!
I have a couple of more comments:
There's a typo on the send email screen:

After creating a key, I see the message below, however, on the screen that lists the APIs, I can both see and copy the created keys.

Great catch on the typo!
The screen with the API Keys only lists the API ID and Name; the actual token which starts with "re_" can not be retrieved again through the Resend API nor through Resend Dashboard as shown in below screenshots:
DIALOG ON CREATING API KEY IN DASHBOARD

VIEW API KEYS IN DASHBOARD

VIEW API KEYS IN EXTENSION

Great catch on the typo!
The screen with the API Keys only lists the API ID and Name; the actual token which starts with "re_" can not be retrieved again through the Resend API nor through Resend Dashboard as shown in below screenshots:
DIALOG ON CREATING API KEY IN DASHBOARD
VIEW API KEYS IN DASHBOARD  VIEW API KEYS IN EXTENSION

Ahh got it! Sorry for the misunderstanding! We are good to go, then.

Found and fixed another small typo 🙈. Thank you for your help!


Paste in Markdown gets garbled

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

VS Code Version:  1.81.0-insider
OS Version: Fedora 38

Steps to Reproduce:

Input copied from Firefox:

    Registry: A service storing and distributing container images and related artifacts, with features like authentication, geo-replication, and more.

    Repository: A collection of container images or artifacts in a registry, identified by the same name but different tags.

    Artifact: An item within a registry associated with tags and layers, identified by a manifest.

    Manifest: A unique identifier generated when an artifact is pushed to the registry, specifying the artifact's layers.

Result when I paste it in VS Code:

[Title](../../../../..) [Title](../../../../..) [Title](../../../../..)

Everything I paste gets garbled. The only workaround so far is to change to plaintext.

I'm seeing a similar issue.  For example, when I paste the following:
service:cwt-supergraph:Yb1witpWtR7zfEB6hEQPdA

I'm getting the following:
Title
instead of the following:
Title
Finally, this isn't a link and it's not clear to me why it's generating a markdown link for the original input.  For now, I have changed smart to never for Markdown › Editor › Paste Url As Formatted Link.

duplicate of https://github.com/microsoft/vscode/issues/187201


Any plans to add cmake support?

See title.
bazel is not really widely used.

Not at this time

Would you accept PRs for someone adding that? or just "hard no"? :)

Jemalloc used to have a CMake branch, which was quite hacky and in the end was dropped. Hopefully tcmalloc will have better CMake build support.
Luckily mimalloc has CMake build support, and can be used instead.

Autotools, please.

It's not a hard no to CMake. We've discussed it, and would like to support it in the future. However,  time is a finite resource, and nobody is scheduled to work on it. I've told @ckennelly that I'll look into it in the coming weeks, but I have a lot on my plate already.
We likely want to model the behavior of Abseil in it's handling of CMake and Bazel, so PR's that implement something different would not be accepted at this time.
Supporting autotools is a non-goal of the project.

When you say:

We likely want to model the behavior of Abseil in it's handling of CMake and Bazel, so PR's that implement something different would not be accepted at this time.

What are you referring to specifically then?
I will probably write some CMake for tcmalloc soon in any case - so if I can model it "right" from the beginning I am happy to do so.

Compile failed. All day. I want to use Cmake.

Some example of integration of tcmalloc to a project with CMake build system can be found here: https://github.com/ClickHouse/ClickHouse/pull/11590

See title.
bazel is not really widely used.

I believe it should be. It's a no-brainer build system. For a C++ user, nothing gets easier than doing:
cc_binary(
    name = "foo",
    srcs = [
        "foo.cpp",
    ],
    deps = [
        "@some_library",         # <-- This is all I need to do to include, compile, and link `some_library`.
    ],
)

As a user of a C++ library, I don't have to deal with conflicts with different installations (system or otherwise) of the library. When I run `bazel build :foo" Bazel fetches a very specific commit from github so I get a reproducible build. For future builds it caches the download. Referring to and rolling back references to remote C++ libraries becomes easy. I know that if I checkout a specific commit of my repository, I will get a reproducible build guaranteed.
Using Bazel is a no-brainer, IMHO. But sure, CMake support would be cool too.

Pending for a more than year, noone cares...
But generally - +1 to this. Please publish build instructions without Bazel, using cmake or just GNU make.

Hi, I have started to play here:
https://github.com/extcpp/tcmalloc/tree/cmake

Anybody is welcome to use the files make suggestions and create PRs. My hope is that the branch will eventually be merged into this repository. My aim is not to replace Bazel but to make tcmalloc usable for projects that use CMake and want to build tcmalloc from source. Therefore I personally neglect (tests - in the beginning) installation and especially packaging.

a cmake PR has been made that looks promising. would be great to have a tcmalloc official release once that gets in and the core code is at a known stable point. gperftools follows this project too slowly

a cmake PR has been made that looks promising.

I assume this refers to #104, just to note it to make it easier to find.  Cmake support would be in line with https://opensource.google/documentation/policies/cplusplus-support.

Hi @tru Are there any updates regarding the status of Cmake Build?

https://github.com/google/tcmalloc/issues/4#issuecomment-950742415


Custom SQL Data Quality Tests

Context
#5973  introduces the possibility for user to enter custom SQL as a way to create custom tests. Currently this SQL statement is input in a simple label field -- see image below. The current implementation limits the user experience. To provided an improved user experience we would like to introduce support for a full SQL editor.
The editor should have at minimum the following features:

good SQL support (e.g. syntax highlithing, tab indentation, line number, etc.)
SQL syntax validation (i.e. the ability for a user to validate their query)

Backend

We'll need to have an endpoint to execute the query input from the user against the specified service

validation -> rights, limit to select only, etc.

How to run the validation (simple request or part of a workflow?)

query timeout logic
Sample data  return for the user to validate the test return what is expected (i.e. no rows on tests passing rows and tests failing)

Ingestion

https://github.com/open-metadata/OpenMetadata/pull/5973
https://github.com/open-metadata/OpenMetadata/issues/6050
support custom validation logic (right now pass if row return = 0 else fail). Could have more nuance logic (e..g pass if 1000 < row < 2000.

Frontend

https://github.com/open-metadata/OpenMetadata/issues/5998
support for SQL query validation
support for SQL editor features (autocompletion, etc.)
showcase sample data for user to validate the tests run as expected

@TeddyCr we can close this out right?

@harshach this an epic. I think we still have some elements to tackle here:

Test SQL Statement (validate syntax is good + return sample data)
Add custom validation logic (right now the test to pass needs to either return 0 row or the value 0 but user may want to have more customized logic)


correctly parse recentlyFinishedThreshold from config

If you have following in your runtime properties..
druid.indexer.storage.recentlyFinishedThreshold=PT12H
druid overlord startup fails with following exception...
Caused by: java.lang.IllegalArgumentException: Invalid format: "PT12H"
at org.joda.time.convert.StringConverter.getDurationMillis(StringConverter.java:111)
at org.joda.time.base.BaseDuration.(BaseDuration.java:105)
at org.joda.time.Duration.(Duration.java:209)
at com.fasterxml.jackson.datatype.joda.deser.DurationDeserializer.deserialize(DurationDeserializer.java:30)
at com.fasterxml.jackson.datatype.joda.deser.DurationDeserializer.deserialize(DurationDeserializer.java:17)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:464)
at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:107)
..
because Duration deserialization can only handle strings of format "PTa.bS" . this patch fixes the issue by using Period as done for the default value already.

Hrm, 0% change in coverage should be acceptable, no?

It's negative 0 :)
We haven't set any thresholds for failure, not sure what the defaults are.

It also seems a lot of tests are not completely deterministic (e.g zk stuff) so we are seeing fluctuations on the order of .2% up and down.

I'm surprised test coverage didn't increase. +1 in any case


Headers Fragment

Is Leanback has default possibility to make HeadersFragment non scrollable like it implemented in the Google Play Store?

I have the same problem too

This sample has been migrated to a new location and updates are happening there (check README for more information).
As recommended by GitHub, we are closing all issues and pull requests now that this older repo will be archived.
If you still see this issue in the updated repo, please reopen the issue/PR there. Thank you!


我建议把写文档的人，拖出去枪毙半小时

Mint UI version
Device model

Reproduction Link

What is Expected?
What is actually happening?

proposal

我建议你别用了。


Support reboot in the internal tmt executor

Yesterday during our discussion @thrix mentioned that it would/should not be too hard to implement support for reboot in the internal tmt executor. Let's brainstorm more if this would make sense or if we should leave it to the future restraint plugin, see #197. How it could work?

Test finishes with an agreed exit code or message on the output (going to reboot the guest)
Wait a bit until the ssh connection is back again
Start the last test again, optionally providing an extra environment variable

or

Test finishes with the message (please, reboot the guest for me)
Executor takes care of rebooting the system
The rest is the same as above

As far as I know, the reboot count is already handled somehow by beakerlib, so perhaps there's nothing more to do, but if needed tmt could also export an environment variable TMT_REBOOT_COUNT or something similar. End of initial brainstorm.

Early feedback

Keep compatibility with restraint (since it is still main harness) and it will make it easier for tests - Write them so they work in restraint and they work everywhere)
Be careful about provision:localhost
Not sure if it is possible with provision:container

Except the system reboot that is being (somehow) advertised by the test, it should also handle temporary network outage, e.g. due to network being restarted. I am not sure whether this should be handled via fmf metadata (announcing the need of reconnect/retries/delay) or via test (announcing network outage).

Slight alteration of the above approach:

test calls a command that means "i want to restart"

this command informs TMT executor to kill the test (~ like /usr/sbin/reboot would), orchestrate the actual reboot (with extra steps if needed for CI -- just like rhts-reboot would) and after the reboot, bring back the same test (with REBOOTCOUNT-like envvar, just like rhts-reboot would).
rstrnt/rhts compatibility could be achieved by symlinking the command to the TMT version.  (And having the same CLI, or altering CLI syntax based on argv[0].)

Early feedback
* Keep compatibility with restraint (since it is still main harness) and it will make it easier for tests - Write them so they work in restraint and they work everywhere)

* Be careful about provision:localhost

Agreed.
This may be mitigated by actually relaying/delegating the reboot to a provision step (the object) via some API. It may be just an implementation detail, but I'd like to avoid simply running reboot from execute step.

* Not sure if it is possible with provision:container

There's no reason not to realize this, when implemented via provision (container restart).

This is sort of a blocker for testing components such as systemtap or perf, which need kernel debuginfo, devel, headers etc respective to the running kernel. Practice shows that the configured repos don't have kernel debuginfo, devel, headers etc respective to the running kernel. A work around to this is to update the test worker, reboot it, and then the needed packages "show up" in the configured repos, so that testing can successfully continue. This however requires support for rebooting the test worker.

This seems to be breaking CI whenever a test reboots a machine. Blocking the competition and requiring manual kill of the machine.

Just a short note to today's discussion: Instead of introducing two new methods of the Guest class I would suggest to add a single method Guest.reboot() which would have an optional parametr Guest.reboot(hard=True) for hard restart.


Chores

Current coverage is 65.37% (diff: 0.00%)

Merging #420 into next will not change coverage

@@               next       #420   diff @@
==========================================
  Files            32         32
  Lines          2654       2654
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           1735       1735
  Misses          919        919
  Partials          0          0

Powered by Codecov. Last update 6318e8b...948f464


Payu date-based restart issue with MITgcm

Hi, I've been running MITgcm on gadi with payu. This repo contains my model config directory. As mentioned in this post, the model runs with the gadi analysis3-23.07 conda environment but not analysis3-23.10: in that case I get the error message in https://github.com/claireyung/mitgcm-pig/blob/main/mitgcmice2.e110118980, relating to restart date counting, copied below:
Traceback (most recent call last):
  File "/g/data/hh5/public/apps/miniconda3/envs/analysis3-23.10/bin/payu-run", line 10, in <module>
    sys.exit(runscript())
  File "/g/data/hh5/public/apps/miniconda3/envs/analysis3-23.10/lib/python3.10/site-packages/payu/subcommands/run_cmd.py", line 133, in runscript
    expt.setup()
  File "/g/data/hh5/public/apps/miniconda3/envs/analysis3-23.10/lib/python3.10/site-packages/payu/experiment.py", line 454, in setup
    self.get_restarts_to_prune()
  File "/g/data/hh5/public/apps/miniconda3/envs/analysis3-23.10/lib/python3.10/site-packages/payu/experiment.py", line 1056, in get_restarts_to_prune
    index_bound = max_index - restart_history
TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'

This was surprising to me because I am not using restarts, since startTime in my data input file  (see &PARM03 for time stepping parameters) is zero.

Hi, thank you for creating this issue. I was able to get the same error when using restart_history, with an archive directory that exists but that contains no restarts - is that the case for you?
If that is the case, in the meantime to get past this bug until a fix is deployed:

if the archive is empty and there is no output directories - could remove the directory with payu sweep --hard
or remove the restart_history from config.yaml for the first model run and then add it back in.

Thanks for this Jo! I was able to use both the workarounds.
Thank you


Unable to parse >=

Before investing in using wgsl_reflect, I tried the test page:
https://brendan-duncan.github.io/wgsl_reflect/example.html
.. with my shader and found it is unable to parse this function:
//######
fn highlightOverRangeColors(pos : vec2, p : vec4) -> vec4 {
var c3 : vec3 = p.rgb;
var cEdgeBool : vec3 = c3 >= vec3(1.0);
if (any(cEdgeBool)) {
const checkerSize = 8;
var modVec : vec2 = floor(pos / checkerSize) % 2;
var cEdgeBool : vec2 = modVec >= vec2(1.0);
if ((i32(cEdgeBool.x) ^ i32(cEdgeBool.y)) != 0) {
  return vec4<f32>(0, 1, 1, 1);
} else {
  return vec4<f32>(1, 0, 1, 1);
}

}
return p;
}
//######
Specifically these lines with >=:
var cEdgeBool : vec3 = c3 >= vec3(1.0);
var modVec : vec2 = floor(pos / checkerSize) % 2;

What problem are you seeing?

This is strange.  On my work laptop, I simply pasted the code between the comments "//######" into your test page:
https://brendan-duncan.github.io/wgsl_reflect/example.html
And it produced errors.  On my home MBP, it's not happening.  Let me try again on my other laptop and I'll paste the error.

Thanks, I can repo it now. Very strange, but I'll get it sorted out.

Figured out the issue, just have to find a solution. I have code in the scanner that tries to disambiguate >= between being a greater-equal or closing of a template followed by equals, as in   a >= b from vec2<bool> = b.
Your code found the hole in my logic. Back to the drawing board.

The function is parsing now.

I also verified this issue has been resolved, thank you!


Remove extra character

Productions apps -> Production apps

Thank you for fixing this spelling mistake, @dharmatech!


Rework Range cast

Current state: https://github.com/kassane/sokol-d/commit/6f0b30e380b296945e50aa72e9229ae95c5b4447

Current:
https://github.com/kassane/sokol-d/blob/6f0b30e380b296945e50aa72e9229ae95c5b4447/src/sokol/gfx.d#L11-L25

moved to sokol.utils: https://github.com/kassane/sokol-d/commit/c088de59831758c8f6f12dab35ee6a2662a956d0
Still considering the necessity for this cast or simply discarding it. Though it won't be applied or auto-generated anymore.

removed: https://github.com/kassane/sokol-d/commit/9198de3ea7ad7cb35f1674619eac9708e11be6dd#diff-04d720d5f77fc4452ef6cad7ff3a60b2a36a82f4867b4a453101c3877bd38303


Possible to strip markdown syntax from a string?

I see that there is a renderInlineAsText renderer, but the docs say not use use it since it's for internal use in alt tags.
However... if I were to ignore the warning, would it be possible to use this to strip markdown syntax out of a string?
Can
This is some **bold** and _italics_ text
be converted to
This is some bold and italics text
with this library?

It was designed for another things and never tested/supported in this mode.

Closing. Rendered to text was not investigated and implemented (out of this project goals). Probably, that should be a separate package.

One method I'm using here, is to renderInline, then use  https://www.npmjs.com/package/html-to-text to strip out the html tags.


how to export the notion database's  current view pdf?

Hello there,
I hope this message finds you well. First and foremost, I would like to express my gratitude for providing such an amazing project that has been immensely helpful to me. However, I have encountered a small issue that I would like to address.
The problem arises when dealing with numerous pages in the Notion database. In order to efficiently manage the database, I require the ability to filter and export PDFs using the current view. Unfortunately, it seems that this particular functionality is not supported by the current project, unlike the native support available in Notion itself.
I was wondering if there might be any possible solutions or workarounds to achieve this functionality within the project. Your guidance and assistance regarding this matter would be highly appreciated.
Thank you once again for your valuable contribution and support.
Best regards,
shimu

Hi @shimu527. Thank you for the kind words. ✨
I did some digging, and think it's possible to extend the current project to allow users to export a particular view. The users need to provide the viewId to this library (which is different from viewName). My only concern is if the users can find the viewId easily (specially, if it's an inline database).
Also, pondering on the right interface. Should we ask the users input from stdin, or allow them to provide the viewId (which is different from viewName) as an argument, or both. Thinking...


[WIP] Initial version

@pwalsh, @roll please, take a look
Issues

fixes #1

@zhenyab
PR name is kinda confusing)
So no readme, no examples - what this thing do?)

We sit to much on this PR so I'm merging to keep things going iteratively


Memory usage spike?

Does anybody else get random spikes of memory usage?
I just noticed this on my machine running it, (htop output)

25G virt resources.  53% of memory (before output froze).
It's currently swapping, I figure it'll get killed eventually...
edit: as a workaround I made an expect script that looks for the sleep time I set,
#!/usr/bin/expect -f
set timeout -1
spawn node index.js
expect -ex "Waiting 1800 seconds"
send "kill -9 \$\$\r"

So it'll kill it then I wrap that in a loop and sleep 1800 seconds.

This is odd. @Jay4242 Are you still facing the issue? I was waiting to see if anyone else has the same issue.


refactor: Master => develop

Merge latest release back into develop

Builds ready [1683d1a]builds: chrome, firefox, opera
bundle viz: background, ui, portal-inpage, portal-contentscript, ui-libs, bg-libs, phishing-detect
dep viz: background
all artifacts


✨ added object denaturing extensible mechanism

This PR adds object denaturing extensible mechanism that is used in transport controller.

Summary
This PR suggests an alternative approach to #1803.
In short - This PR introduces a simple and extensible mechanism to denature objects before adding them to a wrapped object. this is done using a map from GVK to a "cleanObjectSpecifics" function with almost zero changes to the transport controller. the most important part is that even if we end up with tens of objects that have to be denatured, this would still be outside of the transport controller code, which keeps the controller code clean, easy to read and to maintain.
Ideally each different GVK would be in its own file (under pkg/transport/denaturing), which is also self documented.
it allows us to easily understand which objects require denaturing, and for each what is the specific denaturing logic.
In this PR I also implemented the Service denaturing using the suggested mechanism.
Intentionally, I did NOT implement the Job denaturing and left it for someone else to do, to make sure the mechanism is simple enough and easy for understanding also by others.
Related issue(s)
Fixes #1451

/cc @ezrasilvera
/cc @MikeSpreitzer
/cc @pdettori

This would work.
For my taste, putting it in a distinct package is overkill.
I would just put the following the transport package. Separate files is OK, also not necessary as far as I am concerned.
var scrubbers = map[metav1.GroupVersionKind]ScrubFunc{
    k8scoreapi.GroupVersion.WithKind("Secret"): scrubSecret,
    ]

I dislike using the term "denaturing" for this feature because this feature is not changing how the objects appear or are treated in the WDS. This feature is about a transformation applied in transport.

Also, FYI. This is a mistake we are making everywhere, but I will call it out so that we do not forget it forever. In Kubernetes API machinery, there is a concept like "major version". The v2 of an API group has disjoint objects from the v1. OTOH, v1, v1beta1, and v1alpha1 are all different views of the same objects.

I dislike using the term "denaturing" for this feature because this feature is not changing how the objects appear or are treated in the WDS. Denaturing was defined as removing associated behavior (controllers). This feature is about a transformation applied in transport.

@MikeSpreitzer what about filtering? cleaning?

This would work.
FYI, for my taste, putting it in a distinct package is overkill. I would just put the following the transport package. Separate files, init funcs in those files, is OK; also not necessary as far as I am concerned.
var scrubbers = map[metav1.GroupVersionKind]ScrubFunc{
    k8scoreapi.GroupVersion.WithKind("Secret"): scrubSecret,
    }

personally I like the separation (a lot) which makes is easy for code readers/contributors to navigate to the place they are looking for. if that is not a concern, I prefer keeping the object filtering separated.

Also, FYI. This is a mistake we are making everywhere, but I will call it out so that we do not forget it forever. In Kubernetes API machinery, there is a concept like "major version". The v2 of an API group has disjoint objects from the v1. OTOH, v1, v1beta1, and v1alpha1 are all different views of the same objects.
In the subject matter of this PR, scrubbers, it is appropriate to distinguish among minor versions, because they can have different representations (not very different, but different enough to require different scrubbing). At least, in principle. I am not aware of any such important difference for Service/v1 and Job/v1 objects.

how do you suggest to handle this?
obviously we can put two entries in the map, one key using v1 and another v2.
but I got the impression that this was not your intention, so I'm asking.

manual e2e tests are working as expected. CICD fails due to unit-test failure.
need to investigate, could be that the test has to be updated according to this change.
until unit test is fixed, hold with this PR
/hold

"filtering" or "cleaning" make sense to me.

Regarding my comment about versioning in kube api-machinery, this PR is doing it right. It is other code that is doing it wrong.

I do not expect the list of cleaners to get long.
I am OK with the high level of structure, just remarking that I would not be sad to see it go.

@MikeSpreitzer so to summarize the comments into actionable items:

I will update the key of the map to be GVK instead of the stringified version of the GVK and validate it's working as expected.
the term denaturing will be renamed to filtering.
I need to check why unit test fails. btw, on this topic - the output of the unit test is very hard for understanding anything out of it (at least when it fails). I think this is a very important point.

other than the above, I think we're ok with keeping as is.
let me know if I missed something.

attaching a screenshot of how it looks like when transport unit-test fails:

@nirrozenbaum : we are agreed.
I am looking into the unit test failure too. You can use your favorite debugger on unit tests.
apiequality.Semantic.DeepEqual is saying unequal when I think it should be equal, or I am overlooking something. I see one difference, creationTimestamp being nil vs. omitted from the map[string]any. But Semantic.DeepEqual is supposed to consider those equal.

"github.com/google/go-cmp/cmp"

has a Diff func that could be helpful

is it related to this line which I’ve added in this PR?
https://github.com/kubestellar/kubestellar/blob/eec4b47f38a3b9a111289852b6d78f574cd65f23/pkg/transport/generic_transport_controller.go#L621
It was added just to be on the safe side, but I think it can be omitted

ObjectMeta.CreationTimestamp is a pointer. Best to set it to nil.

I still do not understand.
func (u *Unstructured) SetCreationTimestamp(timestamp metav1.Time) {
	ts, _ := timestamp.MarshalQueryParameter()
	if len(ts) == 0 || timestamp.Time.IsZero() {
		RemoveNestedField(u.Object, "metadata", "creationTimestamp")
		return
	}
	u.setNestedField(ts, "metadata", "creationTimestamp")
}

Ah, it is the expectedObj that has the creationTimestamp set.

See #1815

Actually, see #1816

is it related to this line which I’ve added in this PR?
https://github.com/kubestellar/kubestellar/blob/eec4b47f38a3b9a111289852b6d78f574cd65f23/pkg/transport/generic_transport_controller.go#L621
It was added just to be on the safe side, but I think it can be omitted

@MikeSpreitzer does the test fails because of this line?

@nirrozenbaum : yes, objectCopy.SetCreationTimestamp(metav1.Time{}) causes the creationTimestamp entry to be removed from the map[string]any representing the ObjectMeta.

I think that it is reasonable for the cleaning function to clear all the server-managed fields.

ok. then the fix is eady. no need for this line in the controller.
let me try to remove it and see if it passed

I think that it is reasonable for the cleaning function to clear all the server-managed fields.

But if the test passes without that, then I suppose that is OK too.

yes, I agree.
but let’s split into two different PRs.
I will remove this line and we’ll see if test passes.
then we can open a new issue and fix in separate PR.

/unhold

@ezrasilvera I've added e2e test for validating this PR in #1824.
in #1824, we can clearly see that the e2e failed cause we didn't clean the fields from the service. see it here:
https://github.com/kubestellar/kubestellar/actions/runs/8078461596/job/22070833973?pr=1824#step:17:302
let's merge this PR and re-run 1824 to validate it's fixed.
if from any reason we see issues (I already tested it manually so I don't expect issues), I will fix on 1824


Add border radius on the buttons

Thanks for this powerful plugin for music lover. However, the following points about the UI should be enhanced:

Add the border radius on the buttons
Improve the settings layout, the font is too large
Create the stylish profile which matches the style of each music player. For example, render the green button text if the audio source "Spotify" is selected.

@Pandede suggestion 2 and 3 are very straight forward, but what exactly do you mean with adding the border radius?

Thanks for your reply! border-radius is one of the attribute name in CSS language, which means the rounded corners of the button. The current shape of button is a solid rectangle, It'll be prettier if it was a rounded rectangle.

Ah all right, that shouldn't be hard to add, I'll try to include it in next release.
Regarding the time on your other two items, Im currently the only one developing so I have to prioritize certain features.
Improving the settings layout will be done ever so slightly next release, but Im planning a big revamp in #44.
You can track its state there (this will take a few months seeing as I have to learn quite a few concepts for this too, and designing also takes a while).
Regarding number 3, I like the idea of this feature and I will implement it so that you can choose to auto select a certain profile when you switch to a new audiosource.
For example, in the settings menu, in your case you'd choose:
When "Spotify Audiosource selected" switch to "Spotify Profile"
This is also a relatively small feature that I like quite a lot, Im pretty sure I can find the time to put it in the next release as well.

As I'm unfamiliar to C#, maybe you can implement an example and I do it for the rest 🤣

I didn't mean you had to code anything, unless you want to (always really appreciated :) )
If you want to Im always willing to help you out a bit with the layout, might be easiest to hit me up on discord if you have that.
If you don't want to spend the time in Ill probably get the features in relatively soon, and for the settings, you can track #44 to see how that is going

CornerRadius (border-radius in css) has been implemented and will be in the next release

Closing since:

is implemented
is somewhat improved and will be fully revamped in #44
Open in #59, automatic coloring is unlikely to be implemented, but with automatic profile switching you can make a profile for each audiosource


Change test cases to accommodate Priority

Change test cases to accommodate Priority class

all JUnit test cases passed

closed


Improve database lock.

Codecov Report

Merging #38 (fce2704) into main (d443314) will increase coverage by 0.29%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##               main      #38      +/-   ##
============================================
+ Coverage     96.09%   96.39%   +0.29%
- Complexity      505      509       +4
============================================
  Files           141      141
  Lines          1331     1330       -1
  Branches         74       73       -1
============================================
+ Hits           1279     1282       +3
+ Misses           39       38       -1
+ Partials         13       10       -3

Impacted Files
Coverage Δ

...rader/candle/api/application/StrategyInteractor.kt
100.00% <100.00%> (ø)

...rader/candle/api/domain/service/StrategyService.kt
95.45% <100.00%> (+15.45%)
: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 d443314...fce2704. Read the comment docs.


Allow to specify a maximum height for the popup

For DropDownBoxes with a large number of entries the height of the scrollable popup can be arbitrarily large. This change adds a .max_height(f32) option to constrain the size of the popup.
Example
ui.add(
    DropDownBox::from_iter(
        &self.items,
        "test_dropbox",
        &mut self.buf,
        |ui, text| ui.selectable_label(false, text),
    )
    .max_height(350.),
);

Thanks. Although when I was testing, the height of the dropdown was behaving strange even without his pr, but that might be because of the desktop environment.


Added TimothyCole and jack-douglas' project

Torb: The ultimate home security system™
Created by Timothy Cole and Jack Douglas

© All code snippets in this post are covered under MIT License

The idea
Last month we had someone hop our front gate, go into our garage, and try to steal our house mate twomad's electric bike.
Lucky both Jack and I had an eye on the cameras at the time to notice the events unfolding and run outside and stop him.
Already being a fans of airsoft we instantly got the idea of making an automatic turret for our project.  We had to keep a few things in mind though.  One, we don't want anyone to get seriously hurt and Two, we wanted it to be a fun project that we can actually have fun with instead of actually shootting at intruders. Although on our property without permission we still don't feel it's appropriate to shoot an un-consenting target.
Keeping all this in mind we started planning. We knew we needed a few parts to do this, so we started looking.

CCTV Footage

The shopping list
We quickly realized that our biggest issue here was going to be covid, between delayed shipping and local shops being closed, getting the needed parts on time wasn't going to be easy.  We ended up using Amazon for most things, though it said shipping was going to take 3 weeks it all came fairly quickly, in about 1 week. We couldn't get aluminum extrusion on Amazon though, so we had to use a 3d printer part company we found SPOOL3D which got here in 3 days.

Part
Store
Price (USD)

2040 Aluminum Extrusion 250mm
SPOOL3D
$29

2040 Aluminum Extrusion 500mm
SPOOL3D
$23

Power Supply
Amazon
$25

Aluminum Nuts
Amazon
$26

Motors w/ Driver Board x2
Amazon
$29 x2

Gun 1
Amazon
$17

Gun 2
Local Airsoft Shop
$40

$218 tax+shipping

We also did use parts that we already had including, an old Raspberry Pi, Webcam, Breadboard, and Cables.

Context on why we needed 2 guns in section Hacking the gun.

Hacking the gun
The idea here is removing the electric trigger and attaching wires so we can bridge the connection via the raspberry pi. Before we  began we tested the gun by adding batteries to the gun, we quickly learned that this gun had a feeding issue where the plastic bb's kept getting stuck, we made a note of the issue so we knew we may need to mod it later. We started opening the guns enclosure so we could remove the trigger and solder on cable extensions where the trigger was. After being inside we discovered that it's very possible to just remove the need to a trigger all together, we wired up cables directly to the motor instead with the trigger switch set to always on. This way we're able to pulse power to the motor to fire the gun instead of using batteries and bridging the trigger connection.
We attached the new leads from our gun to a basic step-down voltage regulator which is connected to our power supply to make sure the gun works. We used a step-down voltage regulator because the power supply outputs 12v and we didn't want to fry the motor in the gun, so we matched it to the voltage of the batteries.
Shortly following as were putting bb's in the gun to test fire, we found that since the bb's were getting stuck in the gun it was blocking the gears from moving making the motor just spin inside of the gear making the gun useless. We opened the gun backup, and applied super glue between the motor stem and the gear to no prevail, powering it back on after and the glue just broke loose.
Concerned it wasn't going to work, we started looking for a new gun, after a few hours of looking we finally found one at a local airsoft store here in Vancouver and decided to get it. It kept two the same principles, It was plastic making it very light, and was fully electronic.
The key differences between the guns is the new one uses a standard airsoft gun battery with a mini tamiya connector, this is nice because it allow us to use a mini tamiya female connector and send power to the gun without even needing to open it if we zip-tie the trigger down. Which is exactly what we did!

For the most part this method worked as expected with only a few caveats. Connecting the mini tamiya connector to the step-down voltage regulator worked™ but the way the gun operates if you stop the gun in the middle of a fire cycle the gun stops with the springs in a pulled back position causing it to use to many amps to fire. Trying to pull the trigger in this state drops the regulator to a low voltage amount not being able to power the gun. This caused because the regulator we were using only supplied 1.5amps which wasn't enough to get the springs out of this already pulled back state.
To solve this issue what we ended up doing is risking the motor. The battery that is supposed to power the gun is a standard 4.8v battery, we decided to solve this amps issue we would just bypass the regulator all together and directly wire it to a relay connected direct to the power supply. This means when we trigger the relay we will be supplying the gun with a full 12v of power. Being almost 3x the needed/recommended power we did worry about frying the motor instantly, but this method worked flawlessly. Minus the fact it will inevitably degrade the motors lifespan and it makes the motor spin way faster, making the gun more powerful. Being more powerful isn't completely a bad thing though as it will allow us to shoot further than advertised, but still not hurt anymore than a pinch or a flick.
Connecting the leads from the relay to the GPIO on the raspberry pi we're able to trigger the gun programmatically! (As well as a hard button on the breadboard for testing)

Building the frame
The frame for the turret is fairly basic, though we did change it from our original designs.
Our original design was more of a gimbal like design but we decided against it because it would cause added weight and harder to mount motors as we didn't have a drill bit exactly the size of the stepper motor stems.
We ended up going with a pan tilt design instead. This means that the gun will be offset from the center causing no proper 0° point.
This isn't really an issue though as we can just keep track of the guns offset and calculate the 0° point accordingly. A little super glue in the holes and we have a snug fit. No issues with this route! 😃
Manning the turret
The turret is designed to be automatically controlled. That means we need a way to find our target and tell the motors where to point and shoot.
For this we used a webcam connected to my MacBook via USB. We thought about using AI to detect either movement or people but decided that wouldn't be smart as it could target un-consenting targets like Uber Eats driver, Wildlife, Moving Trees, Cars, etc. Instead we opted for targeting colours within an HSL range. We decided to go with HSL instead of RGB because HSL is more of what the human eye sees. Using the hue we're able to more accurately specify a specific colour and get similar shades. Imagine you have two objects, they're both red but one is dark one is light. With RGB you're not able to capture it as one colour as RGB is built up of specific red, green, blue mixes (hence the name). HSL is build on a hue spectrum, so I'm able to target specific ranges and get a human-like equivalence of "that is red".
Getting started we just decided to use HTML and JS to make things quick and easy based on our current knowledge.
Firstly, we need to get the pixel values of our camera frames. We're able to do this by painting the video frames from our camera to a canvas. Now that we have a canvas with our pixel data we can start to analyze the frames. Frame data for canvas' come back in RGBA so we need to convert the RGB part (ignoring the alpha since it will always be 255) to HSL.
export const RGB2HSL = (r: number, g: number, b: number): number[] => {
  r /= 255;
  g /= 255;
  b /= 255;

  let cmin = Math.min(r, g, b),
    cmax = Math.max(r, g, b),
    delta = cmax - cmin,
    h = 0,
    s = 0,
    l = 0;

  if (delta == 0) h = 0;
  else if (cmax == r) h = ((g - b) / delta) % 6;
  else if (cmax == g) h = (b - r) / delta + 2;
  else h = (r - g) / delta + 4;

  h = Math.round(h * 60);
  if (h < 0) h += 360;

  l = (cmax + cmin) / 2;
  s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));
  s = +(s * 100).toFixed(1);
  l = +(l * 100).toFixed(1);

  return [h, s, l];
};

Now that we have our HSL values we're able to check if they're in our supplied ranges. Ranges consist of using a lower and higher boundary, and insure that our input lies between.
To run this check we're able to create a basic function that runs for every item in the current HSL checking if it's lower or equal to the higher boundary and higher or equal to the lower boundary.
export interface HSL {
  h: number;
  s: number;
  l: number;
}

export const inRange = (current: HSL, low: HSL, high: HSL): boolean =>
  Object.entries(current).filter(([key, value]) => {
    if (low[key] >= value && value <= high[key]) return key;
  }).length === 0;

If all items pass the boundary test then we're good to go and we have our colour.
Keeping track of all the pixels positions we're able to make a map and the group pixels (allowing a 20 pixel gap for errors) to find our target. We're only able to target one thing at a time so the largest pixel group is used as our target. Now knowing our target, we get the center point of the group, calculate the pixels from the top and left of the canvas, giving us our x and y values to aim at.

With the colour target detection completed we're now ready to control our turret! All the stepper motors attached, everything put together it's now time to right driver code. The idea here is to have the web page ping an API running on the raspberry pi with the coordinates and a shoot command; simple enough.
Already being able to shoot programmatically from the Hacking the gun step. We focused on using the TB6600 driver board documentation in order to be able to make the motors move. By alternating the output on the connected GPIO pins we're able to make the motors move how we want. Hours of calculating the proper offsets later we're finally ready to test it!
There just one issue.. It's all to heavy..

As the motors move into position the momentum from moving creates force more than the motors can handle causing them to just let go, making the motors just move freely.
To solve this issue we have two solutions. First being, since it doesn't happen all the time, adding sensors to detect it's heading will allow for it to correct itself when it does happen. Second option is getting more powerful motors to handle the weight of everything. Both are really great options and would love to actually do both! So we started hunting down the extra parts, With covid among us we determined it wasn't possible with the current options to get the parts in time for the end of May 😭.
Conclusion
We had many troubles along the way that we were able to solve fairly quickly. Doing a project like this again we now know important details learned along the way to help streamline things. Even though we don't have a fully working product at the end; we don't consider this a lose and won't be accepting defeat. We're going to still get the parts needed to fix the weight problem and will get this working for some great getting shot with the boys fun™.
Honorable mentions
twomad for almost getting his bike stolen and being the best "helping hand" 🤣

Thank you guys so much for running this! 👍

DUDE THIS IS SO COOL!!!!! A-mazing writeup, too. Sounds like you guys had fun building this, awesome work!!!!


How to do unit test CellRenderer and CellEditor?

I'm submitting a ...  (check one with "x")
[ ] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[x ] support request => Please do not submit support request here, instead see https://github.com/ceolter/ag-grid/blob/master/CONTRIBUTING.md#question

Current behavior

How can I do unit test for CellRenderer and CellEditor for angularjs project? Please let me know.
Expected behavior

Minimal reproduction of the problem with instructions

What is the motivation / use case for changing the behavior?

For project test coverage
Please tell us about your environment:

ag-Grid version: X.X.X

Browser:

Language: [all | TypeScript X.X | ES6/7 | ES5]

As per the issue template, please don't raise support requests here. Either use stackoverflow or our Member Forum ( https://ag-grid.com/forum/forumdisplay.php?fid=5 )


Standard QC test suite

A standard test suite for QC programs should be curated that run over several dimensions at a minimum:

Driver: energy/gradient/Hessian
Reference: UHF/RHF
Relevant procedures: optimization

This has been somewhat started here from #36.


Challenge 0 next14 migration

Migration of challenge 0 to next 14 and last se-2 changes
TODO:

[x] fix tests

Thinking about next14 integration in the Challenges, would it be a good idea to wait to have (at least) Chal0-1-2 ready to merge and merge them 3 at the same time?
I'm thinking at the newcomers doing challenge 0 with app router and then moving back to page router in the next challenges and getting confuse.

Thinking about next14 integration into the Challenges, would it be a good idea to wait to have (at least) Chal0-1-2 ready to merge and merge them 3 at the same time?

I think this is a good idea. Since the migration for each challenge seems to be fast, it'll be ideal if we do the migration + test => merge the first 3 challenges at the same time.

Thinking about next14 integration into the Challenges, would it be a good idea to wait to have (at least) Chal0-1-2 ready to merge and merge them 3 at the same time?

Agree, good idea

it'll be ideal if we do the migration + test

Btw tests are broken 😐, converting to draft for now

I've just realized that I got some errors when trying to deploy to Vercel, on /ipfsUpload and /ipfsDownload pages. error seems related to missing module './fetch.node'. Tried installing node-fetch but didn't seem to fix it.

Thanks! It seems something wrong with ipfs client, looks like it should work from node.js. Will check it tomorrow. Also, kubo-rpc-client lib is still WIP. It refers to ipfs-http-client, which is superseded by Helia. Probably moving to Helia can help. Will check it.
Other than that, all migrations and tests for challenges 0, 1, 2 completed

Moved ipfs interactions to server side /api/...
Added ipfs-utils package and added it to serverComponentsExternalPackages in next.config link

experimental: {
    serverComponentsExternalPackages: ["ipfs-utils"],
  },

Changed next/dynamic to react.lazy for react-json-view since with dynamic it doesn't work properly and also cause build error (see issue from the link)

It seems everything working fine

Really good job tackling those build errors, everything is working great to me too, including tests. TYSM 🙌

Updated challenges 0-2 after https://github.com/scaffold-eth/se-2-challenges/pull/132. It was fast :)
For me everything working well, nothing broke. I'm planning to merge these challenges in 1-2 days, so if you have time you can also make some tests before it.

For me everything working well, nothing broke. I'm planning to merge these challenges in 1-2 days, so if you have time you can also make some tests before it.

Chal 0 working great to me also! TYSM @rin-st 🙌

Thank you very much @Pabl0cks ! Merging challenges 0-2


chrome.devtools.inspectedWindow throws uncaught error

I just installed this extension and tried to run it, but it seems there is an existing bug that kills the app at runtime.

Apparently chrome.devtools is undefined, so calling the inspectedWindow property stops the show. At first I thought this was something complicated with my app, but then I noticed the same bug present on your example website.
I tried forking the repo and debugging/fixing, but my lack of experience with chrome extensions is slowing me down. I figure I might as well leave this issue here, in case the fix is simpler than I anticipate, and you're still interested in resolving it.
Thanks for reading.

My mistake, total user error. 🤦♂


Incorrect unionAll behavior

Hi,
I am seeing what looks like incorrect behavior when using unionAll. The best way to describe it would be through a contrived example:
create class User extends V
create class Team extends V
create class MemberOf extends E
create property MemberOf.roles embeddedset string
create property Team.props embedded
insert into User set name = "UserOne"
insert into Team set name = "TeamOneAndTwo" , props = {"grades":[{"name": "one"},{"name":"two"}]}
insert into Team set name = "TeamTwo" , props = {"grades":[{"name":"two"}]}
create edge MemberOf from (select from User where name = "UserOne") to (select from team where name = "TeamOneAndTwo") set roles = "Admin"
create edge MemberOf from (select from User where name = "UserOne") to (select from team where name = "TeamTwo") set roles = "Contrib"
select expand($memberOfEdge.roles) from User let memberOfEdge = (select from $current.out_MemberOf where "one" IN unionall(in.props.grades.name)) where name = "UserOne"

In the example above, since I am selecting the memberof edge which points to TeamOneAndTwo, I would've expected only "Admin" to be returned. Indeed, that's the case if I run the command below:
select expand($memberOfEdge.roles) from User let memberOfEdge = (select from $current.out_MemberOf where "one" IN in.props.grades.name) where name = "UserOne"

However, with the addition of unionall, I get both "Admin" and "Contrib". It seems like unionall is aggregating edges that it shouldn't.
This issue is causing a security hole in our application, and any help/clarification is appreciated.
Note: I'm using the 2.1.5 version.

@luigidellaquila, any ETA on this bug getting fixed?
Thanks.


Reset failures and/or exceptions

Feature request
An HTTP endpoint for resetting "failures" and/or "exceptions". Currently you can send a POST request to http://locust-host/stats/reset but the "failures" and "exceptions" remain.
If it makes sense to have the existing endpoint also reset these then I am ok with that. Otherwise, having a new endpoint for this would also work. For consistency sake I can see keeping the POST method but DELETE might make more sense.
e.g. curl -X DELETE http://locust-host/failures
Thoughts?
I would be willing to submit a PR once we agree on the correct approach.

I think the POST to http://locust-host/stats/reset should also reset failures/exceptions.

I agree that reseting stats in general should do so, it almost feels like a bug to me if it doesn't.

Cool. I'll put together a PR once I'm back from vacation. Thanks for chiming in!

Addressed in #1000


feat: Added City Skyline project

#42 Thanks for the oportunity!

Please create a demo folder inside "CitySkyline" and add a working demo of your project named demo.gif


feat: Add support for additional non-predefined variables

This PR is included in version 1.2.0 :tada:


CacheFirst stratergy does not honour maxAgeSeconds expiration time

Welcome! Please use this template for reporting bugs or requesting features. For questions about using Workbox, the best place to ask is Stack Overflow, tagged with [workbox]: https://stackoverflow.com/questions/ask?tags=workbox
Library Affected:
workbox-sw
Browser & Platform:
Gooogle Chrome
Issue or Feature Request Description:
I have setup a Cache first route using register route with ExpirationPlugin with maxAge of 60 but it does not work the api is always fetched from cache and the cache is never evicted from browser
workbox.routing.registerRoute(
    new RegExp('/api/orders/businessHoursByTimeZone/*'),
    new workbox.strategies.CacheFirst({
      cacheName: "business-timezones-cache",
      plugins: [
        new workbox.expiration.ExpirationPlugin({
            maxAgeSeconds: 60,
            maxEntries: 2
        }),
      ],
    })
);

When reporting bugs, please include relevant JavaScript Console logs and links to public URLs at which the issue could be reproduced.
workbox Using CacheFirst to respond to '/api/orders/businessHoursByTimeZone'
workbox-core.dev.js:132 workbox Found a cached response in the 'business-timezones-cache' cache.

Do your /api/... responses have the Date: header set?

No my api does not have expiration set is it mandatory to setup expiration time in the api response

There's some info about this in the documentation:

The plugin will check and remove entries after each request or cache update.
One thing to note:

Because it’s slow to open IndexedDB, expiration won’t occur until after the request is used. This means that an expired request may be used once, but will be expired after that.
To alleviate this, the plugin will check the "Date" header of the cached response, if one exists and the date can be parsed, it’ll expire based on this as it doesn’t require an IndexedDB lookup.

Closing this issue since there hasn't been activity for a while, if there is still a problem, re-open with any new information.


EL-1352: L&D attempt using a debian image

Jira ticket
What changed and why
L&D
Guidance to review

Checklist
Before you ask people to review this PR:

Tests and rubocop should be passing
Branch is generally up to date with main Github - definitely no conflicts
No unnecessary whitespace changes. These make diffs harder to read and conflicts more likely.
PR description says what changed and why, with a link to the JIRA story.
Diff has been checked for unexpected changes being included.
Commit messages say why the change was made.

Have learnt what I needed.
Still perplexed as to why I get given this error message bundler: failed to load command: rails (/usr/local/bundle/bin/rails) when trying to deploy a pod.


v1.5.4 not installable via ros os upgrade

The 1.5.4 release is currently missing from https://releases.rancher.com/os/releases.yml

Sorry, my mistake.
Fix it.
[root@ip-172-31-6-246 rancher]# ros -v
version v1.5.4 from os image rancher/os:v1.5.4
[root@ip-172-31-6-246 rancher]# ros os list
rancher/os:v1.5.4 local latest running
rancher/os:v1.5.3 remote available
rancher/os:v1.5.2 remote available
rancher/os:v1.5.1 remote available


pad_sequences always truncates the end of the sequence.

I believe it makes more sense when padding is set to "pre" that the beginning of the sequence is truncated when it's longer than maxlen.  I would think that this should at least be an option in pad_sequences. Thoughts?

I see no issue with having this as an option. It's unclear to me why this would be any better than end-truncating, though...

I guess it depends on the application. If you think of the label of coming immediately "after" the sequence, which will be true for many sequences types, then you want to truncate the beginning of the sequence, not the end, so that the data that's adjacent to the label in time gets to be used as part of the prediction.
Say I'm trying to do a fin-tech algorithm that looks at a bunch of time-varying financial metrics for a company and tries to predict an acquisition event. If I have a year's worth of data before each acquisition, and then I'm truncating the sequence to 3 weeks, it seems pretty clear that the 3 weeks of data immediately before the acquisition will be a better predictor of the event than the 3 weeks of data from a year earlier.
(I made this example up, but hopefully it gets the intuition across of why I think pre-truncation is better)
I can put up a PR. It's simple.

(OK I put up a PR at #297)

Makes sense.

Fixed, thanks.


Update the subscription logic.

Update the subscription logic.
Currently, the graph node returns the same 100 entities every time the new entity is created.

Subscribe the graph-node for the entities with the limit as 1, this will be just a trigger point for subscriber that entities are updated.
Subscriber will read the latest uts updated timestamp from the database (see #85), and prepare the query to get the latest entities.
This should also handle the pagination.

 A query will still
   * have this network status even if a partial data result was returned from the cache, but a
   * query was dispatched anyway.
   */
  loading = 1,

  /**
   * If `setVariables` was called and a query was fired because of that then the network status
   * will be `setVariables` until the result of that query comes back.
   */
  setVariables = 2,

  /**
   * Indicates that `fetchMore` was called on this query and that the query created is currently in
   * flight.
   */
  fetchMore = 3,

  /**
   * Similar to the `setVariables` network status. It means that `refetch` was called on a query
   * and the refetch request is currently in flight.
   */
  refetch = 4,

  /**
   * Indicates that a polling query is currently in flight. So for example if you are polling a
   * query every 10 seconds then the network status will switch to `poll` every 10 seconds whenever
   * a poll request has been sent but not resolved.
   */
  poll = 6,

  /**
   * No request is in flight for this query, and no errors happened. Everything is OK.
   */
  ready = 7,

  /**
   * No request is in flight for this query, but one or more errors were detected.
   */
  error = 8,
}

/**
 * Returns true if there is currently a network request in flight according to a given network
 * status.
 */
export function isNetworkRequestInFlight(
  networkStatus: NetworkStatus,
): boolean {
  return networkStatus < 7;
}


Workaround for Travis JDK switching issue

Travis selects JDK version first (using jdk_switcher), and installs the packages later. This causes problems for the openjdk6 builds - since the switch can fail if the required package was not previously installed - which leaves us with the wrong JDK version.
Hopefully this PR will help with that.
Closes #1380.

@nigredo-tori LGTM, did you get an email about a CLA from us?  Thanks.

I've signed and emailed the CLA.

Received the CLA, thank you very much!
I have moved this PR under PR for review for @bvenners , hopefully he can get to it as soon as possible.
Thanks again.


Input Cursor is not visible on iOS in Dark Mode

Description
When you click into a text input on iOS, the blinking cursor is not visible, because it is too dark?
CodeSandbox/Snack link
https://snack.expo.dev/@bnussman/broken-ios-inputs
Steps to reproduce

Create an <Input />
Go into dark mode
On iOS focus the input
Observe that you cannot see the blinking cursor well

NativeBase Version
3.4.21
Platform

[ ] Android
[ ] CRA
[x] Expo
[X] iOS
[ ] Next

Other Platform
No response
Additional Information
Before (version 3.4.12-alpha.1) (Expected behavior ✅)
https://user-images.githubusercontent.com/6440455/202047931-ea8f4a28-ae36-4d74-97da-02ec82125878.mp4
After (version 3.4.21) (Not good 🚫)
https://user-images.githubusercontent.com/6440455/202047919-2e928eb3-0acf-49fd-9591-2abd61aac699.mp4

might be related to #5420


Submodule restructure

Python folder is now a submodule at github.com/xdf-modules/xdf-Python
Matlab folder is now a submodule at github.com/xdf-modules/xdf-Matlab
New EEGLAB folder which is a submodule at github.com/xdf-modules/xdf-EEGLAB
Note that the EEGLAB importer itself has a submodule, which is the same as the xdf-Matlab submodule.

How do you handle open (and future) issues and PRs? Should these be made at the new repositories?

Unfortunately GitHub issues and PRs do not travel between organizations, only between repositories within an organization. I would like future issues/PRs to be made in the submodules, and I hope that anyone with an existing issue/PR would also open it in the submodule but I don't blame them if they don't. And when new issues inevitably get posted to the parent repo then I'll ask that they resubmit in the submodule.

Sounds good. When you make the switch, make sure to put that in the README.md and disable PRs/issues in the old repo.

Yes, I should add some details to the README about the submodules.
The old repo isn't going away, it's just going to be a parent to the python and matlab submodules. Issues and PRs there might still be relevant. e.g., xdf specifications, to nudge me to let me know that the submodule pointers should be updated, to submit a new wrapper or xdf tool.

Is there anything left to do or can you merge this PR? I'd like to expedite things so that all new issues/PRs only go to the new repos. A note in the README is missing, I can write a few sentences if you want, but let's try to merge this ASAP.

I need an official yea or nay from @chkothe or @arnodelorme
I know they are hesitant to make the switch but the community wants to move faster than they are able to so I don't really see an alternative other than fractioning the user base. Let's give them until 5:30pm PST on the 17th.
GitHub is very slow for me right now. I'll try to edit the README a little later.

LGTM - the deadline has also passed so I guess you can go ahead and merge.


Treat sandboxes as root gc resources and scan referenced objects

Treat sandboxes as root GC resources and scan referenced objects.
This makes sandbox objects the owner of other resources like networking

This makes sandbox objects the owner of other resources like networking

It makes sense for the sandbox to own the networking. What is the case where sandboxes existing without containers though since we already have containers as roots.

This makes sense since the sandboxes aren't part of GC today and the resources they manage are already managed as roots. They likely have the same issues with auto deletion that containers would, that they may have other resources (such as shim processes) which aren't managed through the metadata service.


OCPBUGS-23562: Add file based OLM catalog and remove SQLite index commands

The SQLite based catalog format is deprecated since OCP 4.11. This PR adds the file based catalog which is the latest iteration of the catalog format. Creating file based catalog image doc was loosely followed to create the file based catalog. The commands which use SQLite based catalog are removed.

/assign @rfredette

/remove-lifecycle stale

/remove-lifecycle stale

/approve
/lgtm
thanks!


DCOS-51478: Jobs: apply distinctuntilchanged to avoid rerenders

Testing

Check that the jobs page looks and behaves the same, and flashes less in the react flash update UI
Trade-offs

Dependencies

Screenshots

Before

After

Okay 👍

:tada: This PR is included in version 2.79.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Make sure eq and neq can check for NULL as well

Signed-off-by: Matteo Collina<EMAIL_ADDRESS>Fixes #273

CI is failing, though


Updated sysdig-cloud agent

Added health_check to resolve unfinished deployments issues
Added SSL and SSL_CHECK_CERTIFICATE radio buttons

waiting on https://github.com/mesosphere/universe/pull/1495

Closed unnecessary PR.
On Tue, Oct 31, 2017 at 4:18 PM, Ravi Yadav<EMAIL_ADDRESS>wrote:

waiting on #1495 https://github.com/mesosphere/universe/pull/1495
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mesosphere/universe/pull/1498#issuecomment-340935246,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALnAfMYz7C7__tGEew4d5stBYkUGpSwTks5sx6rjgaJpZM4QL73x
.

--
Constantin Eizner
sysdig.com | sysdig.org

#1495 is not longer required. Just #1498 please

@ceizner please also create a documentation example PR against https://github.com/dcos/examples
you can use the template from other examples there. This is now a requirement for any packages submitted to Universe.

Tested that the package works. Will be merged once the comments here are addressed.

Can we let is go for now as many user unable to install sysdig-cloud sure
to the recent changes in DC/OS? It will take me some time to work on those
examples
Thank you
Constantin
On Tue, Oct 31, 2017 at 4:44 PM, Ravi Yadav<EMAIL_ADDRESS>wrote:

@ceizner https://github.com/ceizner please also create a documentation
example PR against https://github.com/dcos/examples
you can use the template from other examples there. This is now a
requirement for any packages submitted to Universe.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mesosphere/universe/pull/1498#issuecomment-340939277,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALnAfIhXMMA57zVnhHN16ptYKUklnMfIks5sx7DlgaJpZM4QL73x
.

--
Constantin Eizner
sysdig.com | sysdig.org

@ceizner It is for users who want to understand how to understand and use a package. It doesnt have to be very extensive. Please look at the other examples in the repo to get a template.

We tag all our agent images as latest. Otherwise use would need to get new
Mesos package every time we release an agent
On Tue, Oct 31, 2017 at 4:52 PM, Ravi Yadav<EMAIL_ADDRESS>wrote:

@ryadav88 requested changes on this pull request.
In repo/packages/S/sysdig-cloud/1/package.json
https://github.com/mesosphere/universe/pull/1498#discussion_r148156098:

@@ -0,0 +1,23 @@
+{

"packagingVersion": "2.0",

change to 4.0
In repo/packages/S/sysdig-cloud/1/resource.json
https://github.com/mesosphere/universe/pull/1498#discussion_r148156210:

@@ -0,0 +1,14 @@
+{

"assets": {
"container": {

 "docker": {

   "agent": "ceizner/agent:latest"

please use a tagged version of the image and not latest.
In repo/packages/S/sysdig-cloud/1/package.json
https://github.com/mesosphere/universe/pull/1498#discussion_r148156337:

   {

       "name": "Sysdig Cloud license",

       "url": "https://sysdig.com/wp-content/uploads/2016/03/Sysdig-Cloud-License-Agreement.pdf"

   }

],
"maintainer"<EMAIL_ADDRESS>"name": "sysdig-cloud",
"postInstallNotes": "Sysdig Cloud for DC/OS installed successfully on Mesos Agent nodes. Your cluster metrics will be available shortly at https://app.sysdigcloud.com.\n\nNote, for maximum functionality, including full metadata support, you'll still need to manually install the Sysdig Cloud agent container on each of your Mesos Master nodes as well. See the docs for complete instructions: http://support.sysdigcloud.com/hc/en-us/articles/207886103",
"postUninstallNotes": "Sysdig Cloud for DC/OS uninstalled successfully from all Mesos Agent nodes.\n\nNote, if you manually installed the Sysdig Cloud agent container on any Mesos Master nodes, you'll need to manually uninstall there as well.",
"preInstallNotes": "This DC/OS Service is currently in preview. To complete the install, you'll need to provide your Sysdig Cloud Access Key. Sign up for a two week free trial at http://www.sysdig.com, or if you have an acccount already, you can find your key here: https://app.sysdigcloud.com/#/settings/user.\n\nYou'll also need to indicate the number of Sysdig Cloud agent containers to deploy - for this figure you should provide the total number of Mesos Agent nodes in your cluster. Marathon will automatically ensure that only one agent container is installed per node.",
"tags": [

   "sysdig",

   "sysdigcloud",

   "monitoring"

],
"version": "latest",

add a version baseTechVersion-integrationVersion
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mesosphere/universe/pull/1498#pullrequestreview-73355803,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALnAfCodsiQb09yCW2NyfkSnhVYi5beoks5sx7KvgaJpZM4QL73x
.

--
Constantin Eizner
sysdig.com | sysdig.org

@ryadav88 image should use sysdig/agent:latest  please.

I caught the error! ceizner/agent:latest should be sysdig/agent:latest.
Submitted the change and another PR
On Tue, Oct 31, 2017 at 5:09 PM, Ravi Yadav<EMAIL_ADDRESS>wrote:

@ryadav88 commented on this pull request.
In repo/packages/S/sysdig-cloud/1/resource.json
https://github.com/mesosphere/universe/pull/1498#discussion_r148158420:

@@ -0,0 +1,14 @@
+{

"assets": {
"container": {

 "docker": {

   "agent": "ceizner/agent:latest"

We tag all our agent images as latest. Otherwise, use would need to get new
Mesos package every time we release an agent
We ask that the image be tagged is so that we know what version of base
tech works with what version of DC/OS. Using latest can cause broken
packages.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mesosphere/universe/pull/1498#discussion_r148158420,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALnAfITiPoygtgfhAeoN7sbA-V9i3q_Xks5sx7aegaJpZM4QL73x
.

--
Constantin Eizner
sysdig.com | sysdig.org

@ryadav88 Examples are created and PR submitted.  https://github.com/dcos/examples/pull/259
Thank you so much for your help

@ceizner LGTM besides my comment on the image tags.
@ryadav88 could you take another look.

Moving from :latest into a proper versioning should be done at Sysdig agent release process.
For now using latest should suffice and allows fix quickly the current issue of not being able to install Sysdig into DCOS latest version.


Tidy up the repo

Tidy

[x] Move chaincash_* crates to a crates/ directory to keep clear separation from other directories
[x] Use [workspace.dependencies] in root Cargo.toml to ensure crates use the same version of libraries

Is this better?

LGTM, thanks :rocket:


Consider adding "moxie" to list of libraries

I saw this talk on YouTube, presenting the (very alpha) moxie library. It might belong in the list of gui libraries, although it seems like it still is mostly the original author working on it.

It seems like the last activity in moxie was on October 31, 2021, so I assume the project is dead.
If it becomes active again, feel free to reopen