Add scalanative doc for 1-simple

This is a draft for a checklist item of issue #3647

Hi @lihaoyi something like this or I have to use scalatags and mainargs

Let's use the same scalatags/mainargs example as we did in scalalib/basic/1-simple/.
You can get rid of most of the docs that are already part of scalalib/basic/1-simple/. The point of this page is to show what's unique about scala native, so the docs should highlight the differences and unique features of it: e.g. the compile to binary, the different optimization levels, etc.

Alright, it's noted

//build.mill
package build
import mill._, scalalib._, scalanativelib._

object `package` extends RootModule with ScalaNativeModule {
  def scalaVersion = "2.13.11"
  def scalaNativeVersion = "0.5.5"
  def nativeLinkingOptions = pathToWhereTheTargetWasSaved

  object test extends ScalaNativeTests {
    def ivyDeps = Agg(ivy"com.lihaoyi::utest:0.8.4")
    def testFramework = "utest.runner.Framework"
  }
}

#makefile
all :
	gcc -m64 -shared -c native-src/HelloWorld.c -o target/libstub.so

@lihaoyi good day, I've some few questions to ask
Is it possible for me to run the commands in makefile from build.mill config?
Also how get the full file path of where am currently working in?
When I replace the def nativeLinkingOptions with the full path to the choice location to store the .so file, it worked. But before that I had to run make from terminal to generate the .so file in the location
That's why I asked whether it's possible to run the comments in makefile from build.mill
Lastly, is this what you want for the 2-interop code example?

Is it possible for me to run the commands in makefile from build.mill config?

Sure, os.call(("make, "blah")). Though I suggest if you know what you want to call, you can os.call gcc directly rather than going through make

Also how get the full file path of where am currently working in?

T.dest or millSourcePath depending on what where am currently working in means

When I replace the def nativeLinkingOptions with the full path to the choice location to store the .so file, it worked. But before that I had to run make from terminal to generate the .so file in the location

Make an upstream task generate the SO file and return a PathRef for the downstream task to consume

Lastly, is this what you want for the 2-interop code example?

Yes the 2-interop example looks great. Perhaps let's make it return a value as well, so rather than printString we make it reverseString or something, just so people can see how that works?  You just need to wire up gcc to compile the thing as part of Mill so we can avoid having to run make manually

Good day @lihaoyi please you mind looking through 1-simple and 2-interop examples if it's in line with what you want cause they ran successfully with mill run? The issue i have with them is that my tests for both of them seem to have problem with linking. The error output for 1-dimple below
When i had linking error for the mill run hello for 1-simple example, it was becsuse i didn't include a nstiveLinkingOptions in build.millbut for mill test I'm a little bit confused there
#1 [136/141] test.compile
#1 [info] compiling 1 Scala source to /workspaces/milling-two/sunday-work/mill/example/scalalib/native/1-simple/out/test/compile.dest/classes ...
#1 [info] done compiling
#2 [141/141] test.nativeLink
#2 [info] Linking (multithreadingEnabled=true, disable if not used) (922 ms)
#2 [info] Discovered 858 classes and 5426 methods after classloading
#2 [error] Found 2 unreachable symbols!
#2 [error] Unknown static method scala.scalanative.testinterface.TestMain.main(java.lang.String[]): scala.runtime.BoxedUnit, referenced from:
#2
#2
#2 [error] Unknown type scala.scalanative.testinterface.TestMain, referenced from:
#2
#2
#2 [info] Total (987 ms)
1 targets failed
test.nativeLink scala.scalanative.linker.LinkingException: Unreachable symbols found after classloading run. It can happen when using dependencies not cross-compiled for Scala Native or not yet ported JDK definitions.

Also i would love to know ehether mainargs works with Scala Native as I don't want to use fansi as a third-party dependency cause i used it in 1-simple example. i got this error below.
Linking Exception
#2 [138/138] foo.nativeLink
#2 [info] Linking (multithreadingEnabled=true, disable if not used) (2814 ms)
#2 [info] Discovered 873 classes and 5571 methods after classloading
#2 [error] Found 19 unreachable symbols!
#2 [error] Unknown type mainargs.MainData, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.ArgReader$Simple, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.ArgReader, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.arg, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.MethodMains, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.ArgSig, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown constructor mainargs.arg(java.lang.String, char, java.lang.String, bool, bool), referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown constructor mainargs.MethodMains(scala.collection.immutable.Seq, scala.Function0), referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.arg$, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.main, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.TokensReader$StringRead$, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown constructor mainargs.ParserForMethods(mainargs.MethodMains), referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown constructor mainargs.main(java.lang.String, java.lang.String), referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.TokensReader, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.ParserForMethods, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.ArgSig$, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.ArgReader$, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.MainData$, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [error] Unknown type mainargs.main$, referenced from:
#2 method foo.Foo$.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2 static method foo.Foo.main(java.lang.String[]): scala.runtime.BoxedUnit at Foo.scala:21
#2
#2
#2 [info] Total (2915 ms)
1 targets failed
foo.nativeLink scala.scalanative.linker.LinkingException: Unreachable symbols found after classloading run. It can happen when using dependencies not cross-compiled for Scala Native or not yet ported JDK definitions.

@c0d33ngr i think the problem is that scala native dependencies require two pairs of ::s not just one pair

Could it be as a result of not returning PathRef in the build.mill after compiling the c code?

Okay... You mean for the mainargs double ::
Noted

You're so right!! Thank you for spotting the source of the test errors.☺
Let me see if I can wrap up everything today or latest tomorrow
On Wed, 9 Oct 2024 at 11:47, Li Haoyi @.***> wrote:

@.**** commented on this pull request.
In example/scalalib/native/3-multi-module/build.mill
https://github.com/com-lihaoyi/mill/pull/3657#discussion_r1793296175:

+package build
+import mill., scalalib., scalanativelib._

+trait MyModule extends ScalaNativeModule {

def scalaVersion = "2.13.11"
def scalaNativeVersion = "0.5.5"

object test extends ScalaNativeTests {
def ivyDeps = Agg(ivy"com.lihaoyi::utest:0.8.4")
def testFramework = "utest.runner.Framework"
}
+}

+object foo extends MyModule {

def moduleDeps = Seq(bar)
def ivyDeps = Agg(ivy"com.lihaoyi::mainargs:0.4.0")

This should probably be ivy"com.lihaoyi::mainargs::0.4.0"
—
Reply to this email directly, view it on GitHub
https://github.com/com-lihaoyi/mill/pull/3657#pullrequestreview-2356772319,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZKEA4TUZWGTZMCOS5B7CP3Z2UCVFAVCNFSM6AAAAABPJLOPOWVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGNJWG43TEMZRHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

Sounds good @c0d33ngr! Take your time and let me know when you'd like a review, I assume it'll take a few rounds to get it merged so we shouldn't be in any hurry

Okay. For this my draft PR,
1-simple works using both mill run and mill test thanks to the ::
2-interop works only using mill run. mill test still has the linking problem
3-multi-module both mill run and mill test has linking problem similar to 2-interop
4-common-config works well except that os.resource doesn't exist. I see other common-config examples and notice them trying to access the resources and custom-redources directories from mill config. I didn't do similar cause I don't know how to access mill resources directory  path. How can someone get the path of resources of mill?
@lihaoyi what do you think?

I did a review pass. Please make sure you read through the original ticket and earlier comments, it doesn't make sense for me to keep repeating things I've already written

Alright @lihaoyi  I did the changes to the draft PR
You can review 1-simple, 2-interop and 3-common-config exapmles
About 3-multi-module, it seem to be the most complicated one in the examples code. The independent module(bar) works well but the one which depends on bar which is foo seem to have linking problem. I have done lots of debugging but don't seem to see what I could be doing wrong. Step below
mill bar.nativeCompiled
SUCCESS OUTPUT MESSAGE

LD_LIBRARY_PATH=/../example/scalalib/native/3-multi/bar/target mill bar.run hello
SUCCESS OUTPUT MESSAGE

mill foo.nativeCompiled
SUCCESS OUTPUT MESSAGE

LD_LIBRARY_PATH=/.../mill/example/scalalib/native/3-multi/bar/target:/.../mill/example/scalalib/native/3-multi/foo/target:$LD_LIBRARY_PATH mill foo.run --bar-text hello --foo-text world

#1 [info] Optimizing (debug mode) (4693 ms)
#1 [info] Produced 3 LLVM IR files
#1 [info] Generating intermediate code (3848 ms)
#1 [info] Compiling to native code (7827 ms)
#1 [info] Linking with [pthread, dl, HelloWorldBar, HelloWorldFoo]
#1 [error] /usr/bin/ld: cannot find -lHelloWorldBar: No such file or directory
#1 [error] clang: error: linker command failed with exit code 1 (use -v to see invocation)
#1 [info] Total (19741 ms)
1 targets failed
foo.nativeLink scala.scalanative.build.BuildException: Failed to link /workspaces/milling-two/sunday-work/mill/example/scalalib/native/3-multi/out/foo/nativeWorkdir.dest/native/foo.Foo

I have a question to ask also, if I want to make use of a file or directory path of a module in another module how to go about it in mill

You can read things from other modules' folders by declaring them as Task.Sources in the upstream module; you should never write things in other module's folders, as all writes should go to Task.dest.
For the scala-native thing, I have no idea. Try the scala-native discord channel?

I'm out of ideas on why ./mill test for 2-interop will have linking problem but ./mill run will run successfully. I will have to move on to the next 3-multi-module` while I ask for help from the online communities
[info] done compiling
[2666]   1 targets failed
[2666]   test.nativeLink scala.scalanative.build.BuildException: Failed to link /workspaces/mill-codespace/tuesday/mill/out/example/scalalib/native/2-interop/local/test.dest/sandbox/run-1/out/test/nativeWorkdir.dest/native/scala.scalanative.testinterface.TestMain

@lihaoyi what you think

@lihaoyi I've done the changes

@lolgab could you take a pass at reviewing this? Since you have much more experience with scala native than I do

Thanks @lolgab!
@c0d33ngr if we can just pass in the C sources via resources/scala-native, do we still need def nativeSources to reference them explicitly? Or would it suffice just to let scala-native pick them up from the resource path?
I think for the suggestion to add a third-party C library to use in the example, let's leave that to a follow-up bounty/PR

Thanks @lolgab!
@c0d33ngr if we can just pass in the C sources via resources/scala-native, do we still need def nativeSources to reference them explicitly? Or would it suffice just to let scala-native pick them up from the resource path?
I think for the suggestion to add a third-party C library to use in the example, let's leave that to a follow-up bounty/PR, since it's a bit out of scope of the original ticket that was intentionally pretty minimal #3647

@lolgab  is so right!! As long as the C codes are in resources/scala-native, Scala Native will detect them so there's no need for compiling them within a task. I resolved most of the changes he suggest

Any more changes needed @lihaoyi ?

One nit and then I think we're good, @c0d33ngr once you fix the merge conflicts and we get a green CI run I'll merge this and close out the bounty

Alright.. It's all greeny
At first, it wasn't but all of a sudden it restarted and ran successfully. Thought, the errors doesn't seem to be about scala-native examples


Update grunt-jsdoc to the version preferred by lib creators?

Hello!
I have some issue with JSDoc: https://github.com/jsdoc3/jsdoc/issues/941. Creators asked me to install 3.3.0 as "JSDoc 3.2.2 is the latest stable version, but it's very old at this point". So maybe you would want to update this plugin's package file as well?
Thanks for the plugin!

Hi, you can already get it by installing the beta version of the plugin. I follow the same stability flow than jsdoc3:
npm install --save-dev grunt-jsdoc@beta

ENjoy:

Thanks!


Document adaptive dialogs concept recognizers

https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-concept-adaptive-dialog-recognizers?view=azure-bot-service-4.0


File Upload: Enable Failure Notifications Only

Task Link: Notion Link

Description: This PR Contains code related to Enable Failure Notifications Only for file upload.

Please take a minute and verify each of the things below before requesting for a review of your PR.
Q & A

[x] I have added new tests and/or updated existing tests as applicable.
[x] I have done the manual testing to make sure that the coding is done correctly as per the requirements in the Notion task.

Documentation

[x] I have updated the Postman API details and Notion documentation as applicable

Security

[x] I have added validation rules for all the data/inputs from the users/browsers.
~- [] I have added/used respective permissions to the new routes/API endpoints for authorization.~

Code quality/maintainability

[x] I have run the Code Quality command.
[x] I haven't used magic numbers anywhere in the code. constants/enums are used instead.
[x] I have divided all the logic into respective domains and no code crosses its domain boundaries.

Merge this PR, after checking 38


DBZ-3656 Use online_catalog as default strategy

https://issues.redhat.com/browse/DBZ-3656

/packit test --labels oracle

@Naros LGTM, thanks. The test failures seems unrelated to me. If it is the case please feel free to merge the PR.

Thanks for the review; they are.  Merged.


warp versioned concurrent=100

Environment info

NooBaa Version: VERSION
-c83f2-dan9-hs200.test.net:  noobaa-core-5.17.0-20240921.el8.x86_64
c83f2-dan10-hs200.test.net:  noobaa-core-5.17.0-20240921.el8.x86_64
c83f2-dan8-hs200.test.net:  noobaa-core-5.17.0-20240921.el8.x86_64

Actual behavior
1.using warp versioned with concurrent=100 fails due to this errors
warp: <ERROR> download error: The specified key does not exist.
warp: <ERROR> unexpected download size. want:287, got:454
warp: <ERROR> stat error:The specified key does not exist.
warp: <ERROR> unexpected download size. want:377, got:51
warp: <ERROR> unexpected stat size. want:944, got:591
warp: <ERROR> unexpected download size. want:79, got:353
warp: <ERROR> unexpected download size. want:52, got:68
warp: <ERROR> stat error:The specified key does not exist.
warp: <ERROR> unexpected download size. want:469, got:367
warp: <ERROR> unexpected stat size. want:26, got:258
warp: <ERROR> unexpected download size. want:758, got:701
warp: <ERROR> unexpected stat size. want:51, got:431

warp versioned --host=<IP_ADDRESS>{0...9}:6443 --access-key="$access_key" --secret-key="$secret_key" --obj.randsize --obj.size=1k  --duration=1m --disable-multipart --concurrent=100 --bucket="mixwarp-new-bucket-vers" --insecure --tls
with concurrent =1 it doesn't fail
warp versioned --host=<IP_ADDRESS>{0...9}:6443 --access-key="$access_key" --secret-key="$secret_key" --obj.randsize --obj.size=1k  --duration=1m --disable-multipart --concurrent=1 --bucket="mixwarp-new-bucket-vers" --insecure --tls
Expected behavior
1.warp versioned complete
Steps to reproduce
1.warp versioned --host=<IP_ADDRESS>{0...9}:6443 --access-key="$access_key" --secret-key="$secret_key" --obj.randsize --obj.size=1k  --duration=1m --disable-multipart --concurrent=100 --bucket="mixwarp-new-bucket-vers" --insecure --tls
More information - Screenshots / Logs / Other output

Some tests were being done with the latest rpm of nooba and from what was found it seems that the issue is related to the use of multiple cesips

@romayalon any update on this?

@PravinRanjan10 check the attached PR, it's being under code review,
@nadavMiz can share more details if needed

there were two main issues that caused the errors:

concurrency issue with HEAD/GET commands. the were several scenarios in which we tried to get/head a version with one thread while the other thread moved its location. causing us to detect as it doesn't exist, or getting the wrong version. Fixed by PR by validating version of the fetched object with the version we expect, retrying if version doesn't exist or wrong
corruption issue with overriding version with a different version. this is a GPFS issue caused when a thread tries to put the latest version in the .versions dir while another thread changes the latest in the middle, causing the thread to move the new latest to a file with the old name. this may override the true verion in the process. in the PR I changed the move function to a function that validates both source and destination of the copy

@javieramirez1 is this bug was validated?


streamlink-portable: Added plugins to persist

Remove that useless appveyor change.

Close this PR and open new one only for Streamlink. (Or revert all commits except first one)


improve the browser

1- New tab button
at ms edge, there is no new tab button
2- about:blank
this is an empty page, but I'm unable to access it
3- Dev tools
I'm sure you know what is this, but is it possible?

Multiple tabs is possible but certainly not the dev tools

@5alidshammout

3- Dev tools
I'm sure you know what is this, but is it possible?

lol

what? dev tools are my friends

@5alidshammout I laughed about making devtools 😂

@5alidshammout are you on discord ?

devtools is possible but complicated since I've seen the cloudflare workers editor have some sort of devtools embwedding.
As for tabs someone made this neat chrome tabs clone which could be adapted to look like edge and work with react.
https://github.com/adamschwartz/chrome-tabs

a bookmar bar
maybe a pseudo devtool (that fetches the code for iframe and shows in pre tag)

how do I run the test branch?

@5alidshammout Its already hosted on dev.blueedge.me


Add ajv-formats to schema validation

Adds ajv-format to support JSON schema types. Fixes #227
Checklist (if applicable):

[x] Tested (manually, unit tested, etc.)
[ ] Changelog updated
[ ] Docs updated

Thanks!
Can you also pnpm install and include the changes to pnpm-lock.yaml ?


have a solve() method for sinkhorn_lr

the sinkhorn module implements a solve() wrapper that can be helpful to avoid instantiating a solver. Maybe we should have the same thing for sinkhorn_lr (and maybe, by extension, all other solvers?)

This is already implemented in ott.solvers.linear.sinkhorn.solve(..., rank=-1) by passing rank != -1. Do you wanna split it? Personally, am ok with splitting it.

thanks! had forgotten about this.
i feel then that this unified wrapper should be called something else than sinkhorn. Maybe something more generic, e.g. ott.solvers.linear.solve() ?
and we could think about the same thing with GW?

I think putting it directly in linear makes sense.

I think your solution was very elegant. We might do it with the quadratic branch as well?

closed in favor of #432


Server Side Pagination

Hi, what if I have to request 10 records per page with 130 pages? Is there a support for such behavior?
Because looks like there would be a problem with number of pages total to show.
Looking forward to your reply :)

Yes, I have same problem too. Is it possible to request the data per page to the server, instead of load all of them at once?

I also interested in this question. What if there are more than a thousand entries in the database table?
But apparently the author does not hurry to respond.

@Fleeck @dianseptianabl @afuno
If you want a server side pigination use this package vue-pagination-bootstrap

@DannyFeliz Thank you, kind man :)

This would definitely be useful


Add documentation for autoRestart flag, specifically that it should be set to false for HMR

Currently, with the default for autoRestart being true, when a code change occurs, the script that's ran is completely restarted, completely negating Hot Module Replacement.
Ideally, the code would be smart enough to detect that HMR is in use, but at the minimum, there should be documentation present regarding the autoRestart flag.

Oops, my bad
I'll try to research about hmr bit later


Provide ReasonerStd overlay/support API

We would like to use ICEES as a support edge generator using co-occurrences.  The interface would be the Reasoner API.  The input query graph would not be required, but there would be an input knowledge_graph, and often a list of results.
A cohort could be defined in options to the query, but will default to the universal cohort.
The service will then return a knowledge graph that is the old knowledge graph, plus new edges that represent co-occurrence between the concepts.  A simple version could add such an edge between every pair of nodes in the graph; a more refined approach would only connect nodes that appear in a result together.  Some of this logic may be appropriated from the robokop messenger support endpoint (paging @patrickkwang ).
I could also imagine options for things like significance cutoffs.

@xu-hao will address this on or  before June 12.

Multiple exposure feature variables can be mapped to the same curie. e.g. max avg. What should we do in this case?

So we're talking about e.g. MaxDailyOzoneExposure vs. AvgDailyOzoneExposure and want to ask "How strongly does ozone co-occur with X?"
We could just try to choose which of those ozone features is best to answer that question.
Or we could ask that question of all ozone features and take the maximum over the results? Or the average? 😁

The problem with option (1) is that the choice really depends on the question. There's also an issue of binning strategies, as we're still trying to determine if there's a single 'best' approach, which there doesn't appear to be.
I'm not sure I understand option (2).
FWIW, I'm inclined to map similar feature variables to the same curie.
BTW, this spreadsheet, which does not yet include the EPR data, might be helpful.
Just so everyone is aware, I'm working with Anne Thessen and others to figure out how to 'ontologize' the EPR survey data. The work keeps getting de-prioritized, however.

I think I would do something like:

Have a mapping of Ozone as a concept/curie to all relevant icees columns.
When you're trying to lok for edges between ozone and X, use all columns mapped in 1.
Return all significant edges, with a property saying which icees column was used to calculate that edge.

If we do something like I suggest, we should probably also bonferroni adjust the p

The suggestion above makes sense to me. In (3), I suggest returning the variable name. I don't think we need to worry about Bonferroni corrections as the intent is different here and there really aren't that many mappings per curie. Plus, we've already stacked the odds against finding any significant associations by virtue of design, with exposure estimates based on relatively large grid sizes, coarse binning, one-year 'study periods', etc.
BTW, a side benefit to this approach is that it will allow us to more systematically evaluate binning strategies.

If you don't want to bonferroni adjust, can you return the number of features that were checked?  Then the caller can decide what it needs to do.

It's not that I don't "want" to perform a Bonferroni correction, but rather, I don't see the point.
I think that you, me, Hao, Patrick, and Steve should find a time to discuss this issue and #20 because I'm not sure we're all on the same page, in terms of general goals and the meaning/interpretation of any data/information/knowledge that is returned from calls to the ICEES+ KP. Plus, we're approaching this exercise from different perspectives, you from an -omics perspective, me from a more general clinical research/informatics perspective. I also have a few questions regarding the responsibilities of KPs vs ARAs, and I realize you may not have clear answers, but a discussion might be helpful. Just my two cents...
@cbizon @xu-hao @patrickkwang wang @stevencox : Any chance you are free at 2 pm ET tomorrow, Monday, June 15? If not, perhaps we can find another time?

The point is that if you will performing multiple tests, then it's appropriate to return information related to how many, so that the caller can correctly interpret the results.
I'm free pretty much all day except 2-3:30.

We need to discuss this, as we're not at all on the same page as to what statistics are being performed, why, and how the results should be interpreted.
For instance, if you performed a Bonferonni correction on COHD's dataset, which is pre-calculated, unlike ICEES+, you would end up with something like alpha=0.05/1,000,000 or even smaller.
Also, the 'multiple tests' that you are referring to with ICEES+, in this case, aren't really multiple tests, but rather, different estimates of the exact same variable. Much like the US Census Bureau reports for their ACS estimates.
I am free to meet after 3:30 pm. Others?

I'm availabe after 2pm.

another question:
how do we handle icees feature values. in feature association api, we need to specify not only features but also values to generate the contingency matrix. for example pm2.5 are binned into quintiles. We need to specify which value is the cut off point for high and low. We can alternatively use all possible values of a feature, one per row in the contingency matrix, and this will work for pm2.5. but for ed visits, we don't have a fixed number of values. we can treat it as a special case by grouping >=10 together.

These are really important points. In addition to specifying values for each level, we need to specify the function (i.e., qcut vs cut). Note that the values will differ by year, which adds another layer of complexity. WRT ED visits, I think this is one example, but I can imagine others. For instance, we may want to examine the number of times a specification medication was administered over a given time interval.


split up update function add/delete/update

Split method into delete_domain_from_pdnsadmin(), update_pdns_admin_domain(), add_domain_to_powerdns_admin() methods to enhance reusability and better readability.

This pull request introduces 1 alert when merging a21d4d9cbdca270b9fc7bc97202a1b5930e11f76 into dfce7eb5379552bf35da1c936857bd1ff2dd664d - view on LGTM.com
new alerts:

1 for Modification of parameter with default

Warning - Automated code review for ngoduykhanh/PowerDNS-Admin will be disabled on October 1, 2019. You can avoid this by installing the LGTM.com GitHub App. Read about the benefits of migrating to GitHub Apps in the blog.

Comment posted by LGTM.com


Add ERC: Dynamic Compliant Interop Security Token

Dynamic Compliant Interop Security Token(DyCIST) is a proposed token standard that extends ERC-1155 and combines its functionality with other existing token standards, introducing unique features for interoperability, cross-chain operation, and token wrapping.

Dear Editors,
I'm facing an issue with referencing EIP-712, which resides in a separate repository, and I'm unable to create a relative reference path to it. As a result, the EIP Validator check is failing. I'm uncertain about the solution to this problem.

I'm facing an issue with referencing EIP-712, which resides in a separate repository, and I'm unable to create a relative reference path to it. As a result, the EIP Validator check is failing. I'm uncertain about the solution to this problem.

You can use [EIP-712](./eip-712.md) and it'll work.

Looks like there's still a few outstanding eipw messages on this. You'll need to correct those before this can merge.


Spyder sends X Error messages at startup

From<EMAIL_ADDRESS>on 2014-02-08T11:54:46Z
Spyder Version:  2.2.4
Python Version:  2.7.6
Qt Version    :  4.8.5, PySide 1.2.1 on Linux
pyflakes >=0.5.0:  0.7.3 (OK)
pep8 >=0.6      :  1.4.6 (OK)
IPython >=0.13  :  1.0.0 (OK)
rope >=0.9.2    :  0.9.4 (OK)
sphinx >=0.6.6  :  1.1.3 (OK)
matplotlib >=1.0:  1.3.1 (OK)
sympy >=0.7.0   :  0.7.3 (OK)
pylint >=0.25   :  None (NOK)
What steps will reproduce the problem?
1.Using Anaconda launcher
2.Issuing spyder from command prompt 3. What is the expected output? What do you see instead? X Error: BadCursor (invalid Cursor parameter) 6
Major opcode: 2 (X_ChangeWindowAttributes)
Resource id:  0x3
Please provide any additional information below
. Running CrunchBang-Waldorf. Syder seems to work after the error messages. Looks similar to issue #1476
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=1727

From contrebasse on 2014-02-08T11:28:36Z
This comes from pyside, see issue #1707 . It is annoying but has no other consequences.

From<EMAIL_ADDRESS>on 2014-02-08T18:51:45Z
Thanks for the response

From<EMAIL_ADDRESS>on 2014-03-26T14:24:25Z
Status: Duplicate
Mergedinto: 1707

From<EMAIL_ADDRESS>on 2014-07-02T07:05:15Z
Confirmed as Linux-only PySide problem. Now tracked here - https://bugreports.qt-project.org/browse/PYSIDE-243


remove the duplicated alias in zh version

FIX #26597
remove the duplicated alias in the zh version

/lgtm
/approve


fix: darkMode enhanced

Fixes: #291
Changes:
Dark mode fixed and enhanced
Screenshots of the change:

@juzhiyuan @nic-chen

@juzhiyuan @nic-chen have a look

really dark 😂 how about others?

really dark 😂 how about others?

Is this a positive feedback ?

Post my comments here

@iamayushdas Nice! For me, I have some other suggestions. Just take it or leave it with your preferences 😁

It might be a good idea to propose a PR, so we could have a more instinctive view of the actual website rather than screenshots
For the description part, IMO, we could have a darker background with lighter(whitish) text to be compatible with other parts of the whole website. And still, the background of this part better different from other ones.
Grayish title is absolutely great, it's the main part of the dark mode. But the problem is it seems too dark right now so the contract between text and background is not clear enough. A example from DuckDuckGo

Also it seems you also change some color in the light mode, like the github button, which seems not as good as before.

@iamayushdas no 😂 I mean we need more contributors review.

@iamayushdas no 😂 I mean we need more contributors review.

Oh okay😅

Also it seems you also change some color in the light mode, like the github button, which seems not as good as before.

Let me acquire what you said😊

@gxthrj @nic-chen need a review on this!

@Yiyiyimu @juzhiyuan @nic-chen @gxthrj
How is it now?

@Yiyiyimu @juzhiyuan @nic-chen @gxthrj
How is it now?

Some points -

Avoid using pure black, like you have used in description section. Hurts eyes when using dark mode, when its actually needed i.e. in dark. Try material design based colors
Don't grey out the CTA's, like the "View on GitHub" button
Watch out for the other greyed out buttons like the "subscribe" button. The button and button text contrast is quite low.
Contrast issues elsewhere in the site

Something not related to your doing, but some company logos in "Who is using this" section don't have an alpha property, so it looks odd that some have a white background while other don't and they don't mix properly.

Fact is, that the images on the home-page are not yet optimized to fit in a dark mode. Like the design image in description section doesn't look like it belongs to this website in dark mode, because of color differences and all. It even looks as if its cropped out uneven, without any space tbh 😕.

@Yiyiyimu @juzhiyuan @nic-chen @gxthrj

How is it now?

Some points -

Avoid using pure black, like you have used in description section. Hurts eyes when using dark mode, when its actually needed i.e. in dark. Try material design based colors

Don't grey out the CTA's, like the "View on GitHub" button

Watch out for the other greyed out buttons like the "subscribe" button. The button and button text contrast is quite low.

Contrast issues elsewhere in the site

Something not related to your doing, but some company logos in "Who is using this" section don't have an alpha property, so it looks odd that some have a white background while other don't and they don't mix properly.

Fact is, that the images on the home-page are not yet optimized to fit in a dark mode. Like the design image in description section doesn't look like it belongs to this website in dark mode, because of color differences and all. It even looks as if its cropped out uneven, without any space tbh 😕.

Okay then will keep your suggestions in mind in next commit

@juzhiyuan @Yiyiyimu @1502shivam-singh
After collectively going through all your reviews above

*Note - tried but unable to figure out how to use styled-components for dark mode via customTheme.css (docusaurus way)

I am recreating that apisix architecture photo with transparent background. For the better of Dark mode legacy

@juzhiyuan @Yiyiyimu after PR attached to issue no - #301 will be merged
we will get true dark mode compatible image that i have promised to create see :grinning:

@juzhiyuan @Yiyiyimu @1502shivam-singh
After collectively going through all your reviews above

*Note - tried but unable to figure out how to use styled-components for dark mode via customTheme.css (docusaurus way)

Nice 👍,
Just one last thing, can you fix the text contrast in the download section and the help section.

@juzhiyuan @Yiyiyimu @1502shivam-singh

After collectively going through all your reviews above

*Note - tried but unable to figure out how to use styled-components for dark mode via customTheme.css (docusaurus way)

Nice 👍,
Just one last thing, can you fix the text contrast in the download section and the help section.

Right now i am figuring out how to deal with that download page styled-components because its not handling in docusaurus way

I have got a way to solve your issue, do ask if you are facing any problem.
If I am correct you are facing problem doing this right ? (GIF below, description changing color from black to white)

I have got a way to solve your issue, do ask if you are facing any problem.
If I am correct you are facing problem doing this right ? (GIF below, description changing color from black to white)

Yup

I have got a way to solve your issue, do ask if you are facing any problem.
If I am correct you are facing problem doing this right ? (GIF below, description changing color from black to white)

Yup, i need your help buddy

The most basic way to do this, that comes to my mind right now is to give the styled components some class and then slide that class property in the customTheme.css with CSS required.

I have got a way to solve your issue, do ask if you are facing any problem.
If I am correct you are facing problem doing this right ? (GIF below, description changing color from black to white)

Yup, i need your help buddy

The most basic way to do this, that comes to my mind right now is to give the styled components some class and then slide that class property in the customTheme.css with CSS required.

i have given it a try, but  didn't worked. lemme do it again thanks bud

I have got a way to solve your issue, do ask if you are facing any problem.
If I am correct you are facing problem doing this right ? (GIF below, description changing color from black to white)

Yup, i need your help buddy

The most basic way to do this, that comes to my mind right now is to give the styled components some class and then slide that class property in the customTheme.css with CSS required.

i have given it a try, but didn't worked. lemme do it again thanks bud

That's how I did it 😂, how's it not working, check again 🙂

I have got a way to solve your issue, do ask if you are facing any problem.

If I am correct you are facing problem doing this right ? (GIF below, description changing color from black to white)

Yup, i need your help buddy

The most basic way to do this, that comes to my mind right now is to give the styled components some class and then slide that class property in the customTheme.css with CSS required.

i have given it a try, but didn't worked. lemme do it again thanks bud

That's how I did it 😂, how's it not working, check again 🙂

Yep yep😃

@juzhiyuan @Yiyiyimu @nic-chen @liuxiran
Completed darkmode for apisix-website :relieved:
here are the changes: (screeshots)
Help page
Team page
Downloads page
Doc page

Something not related to your doing, but some company logos in "Who is using this" section don't have an alpha property, so it looks odd that some have a white background while other don't and they don't mix properly.

Would fix in #303 cc @1502shivam-singh

Something not related to your doing, but some company logos in "Who is using this" section don't have an alpha property, so it looks odd that some have a white background while other don't and they don't mix properly.

Would fix in #303 cc @1502shivam-singh

I was just doing that😞


[OSD-17157] enable stypecheck for golangci lint

What type of PR is this?
refactor
What this PR does / Why we need it?
enable the stylecheck linter and fix the existing issues, so that we can get better code quality
Which Jira/Github issue(s) does this PR fix?
Resolves #OSD-17157
Special notes for your reviewer
Pre-checks (if applicable)

[ ] Ran unit tests locally
[ ] Validated the changes in a cluster
[ ] Included documentation changes with PR

Codecov Report

Merging #161 (34cd882) into main (8e81d9b) will not change coverage.
The diff coverage is 56.30%.

Additional details and impacted files

@@           Coverage Diff           @@
##             main     #161   +/-   ##
=======================================
  Coverage   49.62%   49.62%
=======================================
  Files          51       51
  Lines        3351     3351
=======================================
  Hits         1663     1663
  Misses       1410     1410
  Partials      278      278

Files Changed
Coverage Δ

cmd/ocm-backplane/cloud/assume.go
7.14% <0.00%> (ø)

cmd/ocm-backplane/cloud/token.go
14.81% <0.00%> (ø)

cmd/ocm-backplane/managedJob/deleteManagedJob.go
48.14% <ø> (ø)

cmd/ocm-backplane/managedJob/getManagedJob.go
66.15% <ø> (ø)

cmd/ocm-backplane/managedJob/logsManagedJob.go
14.58% <ø> (ø)

cmd/ocm-backplane/managedJob/managedJob.go
100.00% <ø> (ø)

cmd/ocm-backplane/testJob/createTestJob.go
69.62% <0.00%> (ø)

cmd/ocm-backplane/testJob/getTestJobLogs.go
20.00% <0.00%> (ø)

cmd/ocm-backplane/testJob/testJob.go
100.00% <ø> (ø)

internal/upgrade/upgrade.go
0.00% <ø> (ø)

... and 24 more

@bmeng , Thanks for fixing all the stylecheck lint issues and all changes are fine. but a small suggestion.
What if, change the commit message to enable stylecheck for golangci lint ?

@bmeng , Thanks for fixing all the stylecheck lint issues and all changes are fine. but a small suggestion. What if, change the commit message to enable stylecheck for golangci lint ?

Ah, sorry for the awkward typo in such kind of PR :joy:  fixed

/lgtm


Criteria for searching email body unclear

There's plenty of information on how to search particular email message fields, but nothing that states clearly how to simply search for emails containing a particular string or even if that's possible.
e.g. I can easily search for emails set to or from a particular email address with the participants property, but can't see anything describing how to search for that email address in the message body.

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

ID: e83b77e5-e3ec-6a5f-1f09-e232e2dda483
Version Independent ID: 0b263c72-95a2-d111-20a7-68857f288369
Content: Keyword queries and search conditions for Content Search - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/keyword-queries-and-search-conditions.md
Service: o365-seccomp
GitHub Login: @markjjo
Microsoft Alias: markjjo

@ChrisParrBIE Thanks for the question. There isn't a searchable "body" mail property. You would just search for keywords without specifying a property:value pair. In other words, in the search UI, you would type keyword, string, email address in the Keywords box. If an email address returns too many items with that address in the to, from, fields, you might try to exclude those with something like -participants: or a "does not include these participants" condition.
I'll look for a way to add info to this topic about searching for keywords/strings in message body.


v1.7.5. No server info.

Hi, i have the same problem with v1.7.5. No server info. And with devtools i see this error

Originally posted by @itsero in https://github.com/ricky-davis/AstroLauncher/issues/68#issuecomment-701598100

Does this issue happen when you directly go to http://localhost:5000 , or only behind your reverse proxy?

On localhost i get this:

I don't have a real fix for you, it seems that the new server versions don't like to communicate with Playfab properly. A few users have fixed it, atleast temporarily, by downloading Fiddler and enabling HTTPS Decryption, then running the server directly (not AstroLauncher) once. After that works, you can close Fiddler and run AstroLauncher

I don't believe this is an AstroLauncher issue. Seems to be introduced with the latest major server update.

I don't believe this is an AstroLauncher issue. Seems to be introduced with the latest major server update.

It was not a launcher issue. I have fixed. But the problem with no server info is still with 1.7.6.

Does localhost work? What browser are you using?
I attempted to replicate the original issue, and am unable to replicate on my own server. It seems that for some reason the reverse proxy you're using may not be proxying for the web socket connection? Are you sure everything is being proxied correctly?

Ok, old Edge doesnt work on localhost. But Firefox and Opera are fine.
Without reverse proxy its working.
Im using nginx as reverse proxy.
But the Setup with reverse proxy was working well on 1.3.1.


fix for https://redmine.pfsense.org/issues/13153

After downing & upping WG site to site tunnels, or stopping / restarting the service, any static routes are lost and the tunnels break if you're not using FRR/BGP etc.
This adds a call to system_staticroutes_configure() in wg_service.inc so the routes get re-added. I tested this on 22.05.b.20220512.0600 with 2 S2S tunnels and a RemoteAccess tunnel.
see https://redmine.pfsense.org/issues/13153

Thanks for the catch. Merged and synced upstream. Patch will be in next build cycle tomorrow morning.

Do you know if this has actually been resolved? I'm still having this issue. I've got WireGuard 0.1.6_2 installed, but I still need to go into Routing and manually click Save in WAN Gateway, actually, I need to do it two times, only after this Wireguard Gateway gets enabled and the WireGuard package starts up.
What's interesting is that patch introduced in 0.1.6_2 (as per https://redmine.pfsense.org/issues/12808?tab=history), doesn't seem to be applied to wg_service.inc. The line calling system_staticroutes_configure() function is missing from the file. Applying manually that patch not helping either.


stacks: add rbac rules to predefined personas

Description of your changes
This PR introduces two changes to the existing personas bundled with Crossplane:

Environment *:view personas get read,list,watch on customresourcedefinitions and namespaces
crossplane-admin persona gets read,list,watch on ClusterRoles
crossplane-admin also inherits the new environment persona roles

Additionally, a new ClusterRole is created:

crossplane:system:ns-persona-cluster-rights
This clusterrole offers crossplane:ns:{namespace}:{persona} personas (through an additional clusterrolebinding) the ability to get, list, and watch customresourcedefinition (see https://github.com/crossplaneio/crossplane/pull/1234#issuecomment-583657605)
This clusterrole also grants get, list, and watch on namespaces.

Included is a fix to the aggregation from namespace personas (view and edit) into their respective superior personas (edit and view).  The namespace edit persona was observed to have secret writing while the admin persona did not.
Fixes #1247, #1232, #1259
How has this code been tested?
Give "users" rolebindings:
kubectl create namespace precipice
kubectl stack generate-install crossplane/sample-stack-wordpress stack-wordpress | kubectl apply -n precipice -f -
for persona in view edit admin; do
  for namespace in precipice default; do
    kubectl create rolebinding demo-$namespace-$persona --clusterrole crossplane:ns:$namespace:$persona --user<EMAIL_ADDRESS>--namespace $namespace
  done

  kubectl create clusterrolebinding demo-crossplane-env-$persona --clusterrole crossplane-env-$persona --user<EMAIL_ADDRESS>done

kubectl create clusterrolebinding demo-crossplane-admin --clusterrole crossplane-admin --user<EMAIL_ADDRESS>
kubectl create clusterrolebinding demo-crossplane-precipice-view-more --clusterrole crossplane:system:ns-persona-cluster-rights --user<EMAIL_ADDRESS>
Test those users ability to create the affected resources:
cat << EOS |
yes clusterstackinstall crossplane-admin
yes clusterstackinstall env-admin
yes stackinstall crossplane-admin create precipice
yes stackinstall precipice-admin create precipice

no clusterstackinstall env-edit
no stackinstall precipice-edit create precipice

yes clusterrolebinding crossplane-admin
yes clusterrole crossplane-admin get
no clusterrole crossplane-admin
no clusterrolebinding env-admin
no clusterrole env-admin
no rolebinding precipice-admin create precipice
no role precipice-admin create precipice

yes customresourcedefinition env-view list
yes namespace env-view list

yes customresourcedefinition precipice-view list
yes namespace precipice-view list

should-fail foo bar
EOS
while read want resource user verb namespace; do
  [ -z "$want" ] && continue
  verb=${verb:-create}
  cmd="kubectl auth can-i $verb $resource<EMAIL_ADDRESS>  [ -n "$namespace" ] && cmd="$cmd -n $namespace"
  got=$($cmd)
  [ "$got" == "$want" ] || echo "got $got, want $want: $user $verb $namespace $resource"
done

Checklist

I have:

[x] Run make reviewable to ensure this PR is ready for review.
[x] Ensured this PR contains a neat, self documenting set of commits.
[x] Updated any relevant documentation and examples.
[x] Reported all new error conditions into the log or as an event, as
appropriate.

For more about what we believe makes a pull request complete, see our
definition of done.

@hasheddan After the rebase I also had to adjust for the new path to the helm charts (crossplane-types) and the generated copy (crossplane).

There is a limitation in what is offered here. Crossplane does not create clusterrolebindings for namespace personas.  Namespace personas would need a clusterrolebinding to access customresourcedefinitions which are cluster scoped.
This can be redressed in https://github.com/crossplaneio/crossplane/issues/1124

In reponse to https://github.com/crossplaneio/crossplane/pull/1234#issuecomment-583657605, I've added crossplane:system:ns-persona-cluster-rights as a clusterrole that, with a clusterrolebind, can be used to extend read-only access of namespace and customresourcedefinition resources to the namespace personas.
The description and PR have also been updated to reflect the inclusion of namespace listing rules for the environment and crossplane-admin personas.

I've included one more commit that fixes aggregation into the namespace admin persona from the edit  persona defaults, and likewise for edit from view defaults, https://github.com/crossplaneio/crossplane/pull/1234/commits/5303511404607d1a45b8305a1a11184685611030

After some conversation with @thephred, we're not certain that the environment view+ personas require namespace listing abilities.  We are comfortable with leaving it in here for now.
A potential justification is that environment editors with access to secrets and configmaps could need to access those within various namespaces, but kubectl get secrets -A should be sufficient.  Since all namespaces contain a secret, this indirectly provides a listing of all namespaces, so the added risk is moot.


[occm] Make sure we don't mask LB tests failures

What this PR does / why we need it:
In test-lb-service.sh we do trap "delete_resources" EXIT to make sure we cleanup resources on a test failure. In there, we only fetched the $? after making a check for ${AUTO_CLEAN_UP}, which itself alters the code to 0, so function always returns success. This means tests can never really fail.
This commit fixes it by making sure $ERROR_CODE is fetched at the very beginning of the cleanup function.
Which issue this PR fixes(if applicable):
fixes #
Special notes for reviewers:

Release note:

NONE

/test openstack-cloud-controller-manager-e2e-test

>>>>>>> FAIL: Timeout when waiting for the Service test-shared-2 created
Well, now we finally start to see failures.
/retest

I0906 16:55:52.107153      11 event.go:307] "Event occurred" object="octavia-lb-test/test-shared-2" fieldPath="" kind="Service" apiVersion="v1" type="Warning" reason="SyncLoadBalancerFailed" message="Error syncing load balancer: failed to ensure load balancer: internal Service cannot share a load balancer"

Okay, so this got broken when I started to limit LB sharing, but I never noticed because tests were busted.

@dulek Is it worth reverting the previous change to land this quickly? I'm guessing we wouldn't have merged it if we knew it broke a test?

@dulek Is it worth reverting the previous change to land this quickly? I'm guessing we wouldn't have merged it if we knew it broke a test?

mdulko:cloud-provider-openstack/ (provider-testing) $ git revert 788ea08fcf5714af8be3b0010bc6d6e5eb1d3a59
Auto-merging pkg/openstack/loadbalancer.go
CONFLICT (content): Merge conflict in pkg/openstack/loadbalancer.go
error: could not revert 788ea08fc... Don't allow internal Services to share an LB (#2190)

It's not that trivial anymore. Anyway I plan to look more closely at these tests, my current understanding is that adding service.beta.kubernetes.io/openstack-internal-load-balancer: "true" to the LB is just cargo cult from the previous test that did so to avoid unnecessary FIP allocation. I'm pretty sure this is all fixable.

@lingxiankong, do you know why we have this in place in tests?

@dulek Is it worth reverting the previous change to land this quickly? I'm guessing we wouldn't have merged it if we knew it broke a test?

mdulko:cloud-provider-openstack/ (provider-testing) $ git revert 788ea08fcf5714af8be3b0010bc6d6e5eb1d3a59
Auto-merging pkg/openstack/loadbalancer.go
CONFLICT (content): Merge conflict in pkg/openstack/loadbalancer.go
error: could not revert 788ea08fc... Don't allow internal Services to share an LB (#2190)

It's not that trivial anymore. Anyway I plan to look more closely at these tests, my current understanding is that adding service.beta.kubernetes.io/openstack-internal-load-balancer: "true" to the LB is just cargo cult from the previous test that did so to avoid unnecessary FIP allocation. I'm pretty sure this is all fixable.

Probably only worth it if the fix drags on a bit, then. In the meantime we probably shouldn't merge LB-related changes

/retest
I can see in the logs that listener was removed and LB was ACTIVE again. It couldn't be the ACTIVE-PENDING_UPDATE dance, as we only allow Service to be deleted once it's processed and kubectl waits for that.
Let's try it once again.

Okay, there was a bug, fix is added.

>>>>>>> Waiting for the Service test-shared-user-lb creation finished

>>>>>>> FAIL: Timeout when waiting for the Service test-shared-user-lb created

That's another one.

Okay, this one was simple, I left some internal annotations by mistake.

Tests are actually passing again! :partying_face:
@jichenjc, @kayrus, @mdbooth, @zetaab, this is ready for reviews now.

/lgtm
@dulek given you actually create additional commit for other purpose (e.g compare the LB name) ,can you help
put that into https://github.com/kubernetes/cloud-provider-openstack/pull/2360#issue-1884352337
as well? Thanks

/lgtm
@dulek given you actually create additional commit for other purpose (e.g compare the LB name) ,can you help put that into #2360 (comment) as well? Thanks

Done!

@jichenjc: Anything else to move this forward?

no, all good ~
/approve

/cherry-pick release-1.27

/cherry-pick release-1.28
For some reason this haven't made it to 1.28 branch, which is pretty bad. Trying to fix that now.


CB-1006 Add LDAP support for Atlas using CM

Outstanding items:

Needs to be refactored in order to set all configs at role level (for ATLAS_SERVER)
No unit tests

Refer to this link for build results (access rights to CI server needed):
ci-cloudbreak.eng.hortonworks.com/job/cloudbreak-pull-request-builder/19/

After checking for Atlas and SDX teams, LDAP settings are not required as Atlas UI will be proxied by Knox (authenticating via SSO). Moreover, its dependency Kafka will be solely used by Atlas and authenticate via Kerberos. Closing for now.


[$500]  IOU -The category dropdown options can not be switched via tab key

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.34-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: applause internal team
Slack conversation:
Action Performed:
Prerequisite: Collect policy and Categories are setup in Olddot

Login ND Expensify
Start an IOU request on the workspace chat
Enter an amount and continue
Click on "show more"
Click on the "Category" field
Verify the search is focused
Press tab key to switch between categories dropdown options

Expected Result:
User can switch categories dropdown options via tab key
Actual Result:
The first option is selected with blue borderline and subsequent tab key press does nothing
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/38435837/e127f0dc-da38-414e-86cc-47a75cf06ac7

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~011045bbd241e57e38
Upwork Job ID:<PHONE_NUMBER>806991872
Last Price Increase: 2024-01-31

we think it could be #wave6-collect-submitters cc @greg-schroeder

Proposal
Please re-state the problem that we are trying to solve in this issue.
The category dropdown options can not be switched via tab key
What is the root cause of that problem?
We haven't passed tab-index to pressable to the option rows
What changes do you think we should make in order to solve the problem?

We need to pass tab-index to pressable to the option rows
What alternative solutions did you explore? (Optional)

I don't think we are fixing these types of issues until there is a standard framework for how keyboard navigation works in the app. As right now, this behavior is not consistent everywhere.
Closing.


Add support for transform numbers

Fixes https://github.com/tokens-studio/figma-plugin/issues/2991
Why does this PR exist?
Fixes an issue where number tokens that contained a unit (something we should not encourage, but currently a few users have this setup) were created as 0 values in variables.
What does this pull request do?
Adds a step to the transformValue step and setValuesOnVariable step that transforms the value of number variables
Testing this change
Use the testing file from @SamIam4Hyma and test

I'll go through some more test cases and tweak if necessary. Shall post a summary 💪

I'll go through some more test cases and tweak if necessary. Shall post a summary 💪

📚 Setting the scene
According to W3C Design Tokens Group, the following types of tokens are allowed: https://second-editors-draft.tr.designtokens.org/format/#types
The plugin allows the following token types to have units (*although only dimension shows an error about units):

Dimension: strictly px or rem
Sizing: ...any unit?
Spacing: ...any unit?
Border width: ...any unit?
Border radius: ...any unit?
Font size: ...any unit?
Line height: ...any unit?
Letter spacing: ...any unit?
Number: ...any unit?

Now, the issue was that when these tokens were exported as a variables, some of the values were set to 0, instead, these should remain and drop those units that are incompatible with Variables.
Tested with these tokens:
unit-tokens.json
Export to Figma: Options, like below 👇

💔 Testing before this change

Token type
Value in the Plugin
Value in Variables

dimension
16px
16

dimension
2rem
32

sizing
2px
2

spacing
4px
4

borderWidth
4px
4

borderRadius
2px
2

fontSize
16px
16

fontSize
2rem
32

lineHeight
32px
32

lineHeight
3em
48

lineHeight
150%
??? not created & no error due to % only allowed in text & opacity types (code)

letterSpacing
3px
3

letterSpacing
0.3em
4.8

number
100px
??? 0 & numberVariable error: got NaN

🤔  Testing after this change (pre-tweaks)

Token type
Value in the Plugin
Value in Variables

dimension
16px
16

dimension
2rem
32

sizing
2px
2

spacing
4px
4

borderWidth
4px
4

borderRadius
2px
2

fontSize
16px
16

fontSize
2rem
32

lineHeight
32px
0 ???

lineHeight
3em
0 ???

lineHeight
150%
??? not created & no error - same as above

letterSpacing
3px
0

letterSpacing
0.3em
0

number
100px
100

🔨 Tested the fix today as pointed out by @six7
The flag shouldOutputForVariables allows these transformation helpers to ensure that any numbers are returned in a way that Figma Variables will understand.
Fix: setting these to true!
https://github.com/user-attachments/assets/e2201d08-f2a4-4045-99bb-5fe02a7bf80d


Reduce redundancy on saving model

close #18864
I reviewed the history of past commits and merged them into keras.saving.save_model().
And I removed model.save() and modified it to just call keras.saving.save_model().

Codecov Report
Attention: 6 lines in your changes are missing coverage. Please review.

Comparison is base (8954e5e) 79.40% compared to head (73f284b) 55.93%.
Report is 1 commits behind head on master.

Files
Patch %
Lines

keras/saving/saving_api.py
25.00%
5 Missing and 1 partial :warning:

Additional details and impacted files
@@             Coverage Diff             @@
##           master   #18871       +/-   ##
===========================================
- Coverage   79.40%   55.93%   -23.47%
===========================================
  Files         336      336
  Lines       34846    34826       -20
  Branches     6854     6848        -6
===========================================
- Hits        27668    19479     -8189
- Misses       5592    13876     +8284
+ Partials     1586     1471      -115

Flag
Coverage Δ

keras
55.93% <33.33%> (-23.34%)
:arrow_down:

keras-jax
?

keras-numpy
55.93% <33.33%> (+0.03%)
:arrow_up:

keras-tensorflow
?

keras-torch
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Added refresh rate control and made pyqtgraph improvements

Added a spinbox to select refresh rate for graphs.
Updated start/pause button to switch icons based on state.
Added save and restore ability to pyqtgraph.
Added ability to update the line width of the pyqtgraph data within the context menu.


[v2] CSS doesn't get injected for second instance of a component

Hi everyone!
A quick unrelated message: I've been using styled-components (in combination with next.js, thus using v2 and the experimental SSR API) and have really been loving it. Thanks for all the great work. Looking forward for all the SSR issues being squashed.
Version
2.0.0-8
Reproduction
In the demo I have a simple Spinner component that is just a styled-component. For some reason, when I use the component a second time with different props (and thus changing the styles, generating a new class name etc...) it seems that the CSS is not injected anywhere (at least Chrome can't find it).
If it is at all useful, I was able to fix this by redundantly using Spinner.extend to create a new component (for the second use).
Steps to reproduce
Fortunately I was able to reproduce exactly:
webpackbin
Expected Behavior
Two styled divs
Actual Behavior
Open Chrome dev tools:
Only one styled div and one unstyled div. Unstyled div has unique classname, but that class apparently doesn't exist in CSS.

@FrancescoA Wow! This was hard to spot. So, on the last line of your template literal there's an excessive closing parenthesis.
I'll investigate this further and see why this caused such a weird bug. It's probably because the generated rulesets end up being malformed.

Wow I missed that! Thanks for taking a look. Closing.

We need to get better at highlighting errors in your CSS (/cc @thysultan), but I'll close this issue for now.


Namespace to Gateway - gwa namespace to gwa gateway

As an API provider, I need consistent naming on the Portal, docs, and CLI, so I don't get confused 😵
Throughout the CLI, replace "namespace" with "gateway". In particular, the gwa namespace set of commands.
Definition of done:

Portal, docs, and CLI all updated

Think we need to include in DoD an "upgrade" to the v3 api automatically so that the user does not have to pass --api-version=v3 to the command or modify any internal files to get things to work.

We don't need to do any of that.
For testing: set your .env file to
GWA_API_HOST=api-gov-bc-ca.dev.api.gov.bc.ca
GWA_CLIENT_ID=gwa-cli
GWA_VERSION=v3
CLI_VERSION=3.0.0-dev

(GWA_API_HOST will get over-ridden from .gwa-config.yaml, but this is the default used the first time if there is no .gwa-config.yaml)
and then instead of gwa use just run, e.g. just run gateway create
When building, just release uses env vars from .env locally or from the GHA.
@Elson9 FYI


Save cluster kubeconfig even with errors

https://github.com/rancher/rancher/issues/15975
https://github.com/rancher/rke/pull/948

LGTM


Electron Helper draws 100% CPU

VSCode Version: 1.2.0
OS Version: Mac OS X 10.11.5

Steps to Reproduce:

Start VS Code
Open project folder

Electron Helper process draws 100% CPU as soon as I open a project folder. GUI is still responsive though.
Somehow I suspect that this has something to do with the git pane (the project is managed by mercurial, not by git!):

Open the project -> CPU usage goes to 100% for ~3 minutes
Git icon shows badge "99+" -> CPU usage falls down to a reasonable level
After some seconds, CPU usage rises again to 100% for ~4 minutes
CPU usage is again at a reasonable level

Then, after a make any modification to a file, the git badge switches to a clock icon and after a few seconds it starts again drawing 100% CPU.

@troplin we have received some reports on this issue already and have some advice and questions:

can you please let us know if this reproduces in Code 1.1 already (download from: https://az764295.vo.msecnd.net/stable/def9e32467ad6e4f48787d38caf190acbfee5880/VSCode-darwin-stable-unsigned.zip)
you can verify this is git by quickly disabling git from settings (git.enabled and a restart of Code)
do you happen to have a .git folder somewhere in the parent chain of the folder you are opening?

Thanks!

Will try the old version later, but I just updated to 1.2 and I think I would have noticed if it behaved like this before.
Yes, if I disable git it goes away.
Yes, the parent directory contains a .git folder. That's strange because this doesn't make any sense, I must have created it by accident.

The orphaned .git directory was the culprit. I've deleted it and now everything is fine. It probably also explains the problems that I have with the mercurial plugin in Atom Editor sometimes working and sometimes not.
Thanks a lot for the hint!
Still, VS Code should not consume so much CPU. A git status on the parent directory is instantaneous. Do you scan the entire file tree on each file modification?

@troplin yes we are working on a fix for this. what is not so clear is what changed in 1.2 that makes this more obvious...

Closing as duplicate of #6026, moving the discussion there


Add references to existing snippets from spannerconnection members.  …

…This ensures most of the non-ADO.NET methods have snippets.
Moved the overviews to SpannerConnection snippets so they could more easily be referenced via 'Additional'

oddly on my commit before sending to origin, this had a much cleaner diff as it saw it as a rename.


jax.checking_leaks() detects leak on np.linalg.det and np.linalg.slogdet

import jax.numpy as np
import jax

with jax.checking_leaks():
  @jax.jit
  def g(x):
    return np.linalg.det(np.eye(2))

  g(0.0)

Generates: Exception: Leaked sublevel 3.
The same thing happens when det is replaced by slogdet. I think this might be from the custom_jvp wrapper around det, since the unfiltered stack trace seems to fail somewhere in the code to handle custom_jvps.
Might be related to https://github.com/google/jax/issues/5636
Thank you!

This is fixed at head!


Unable to create cool file from sparse matrix

I'm trying to load a 10kb sparse matrix into .cool format file for visualization and analysis purposes. I would avoid re-analysing completely my dataset if possible. Here is my problem:
1 - Installation using conda has been done following the tutorial. No issue raised.
Python version 2.7 and h5py version 2.10.0
2 - For testing the input.tsv has a single line:
chr1	11830000	1180000	4200000	4210000	1
3 - chromosome_sizes.tsv has the line:
chr1	195471971
4 - the command line is:
cooler load chromosome_sizes.txt:10000 input.tsv test.cool -f bg2
I obtain this error:
INFO:cooler.cli.load:fields: {'end1': 2, 'count': 6, 'end2': 5, 'start2': 4, 'start1': 1, 'chrom1': 0, 'chrom2': 3}
INFO:cooler.cli.load:dtypes: {'end1': <type 'int'>, 'count': <type 'numpy.int32'>, 'end2': <type 'int'>, 'start2': <type 'int'>, 'start1': <type 'int'>, 'chrom1': <type 'str'>, 'chrom2': <type 'str'>}
INFO:cooler.cli.load:symmetric-upper: True
INFO:cooler.create:Writing chunk 0: tmpwhc0fU.multi.cool::0
Traceback (most recent call last):
File "/home/user/.miniconda2/bin/cooler", line 10, in
sys.exit(cli())
File "/home/user/.miniconda2/lib/python2.7/site-packages/click/core.py", line 829, in call
return self.main(*args, **kwargs)
File "/home/user/.miniconda2/lib/python2.7/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/home/user/.miniconda2/lib/python2.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/user/.miniconda2/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/user/.miniconda2/lib/python2.7/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/home/user/.miniconda2/lib/python2.7/site-packages/cooler/cli/load.py", line 334, in load
h5opts=h5opts,
File "/home/user/.miniconda2/lib/python2.7/site-packages/cooler/create/_create.py", line 690, in create_from_unordered
create(uri, bins, chunk, columns=columns, dtypes=dtypes, mode="a", **kwargs)
File "/home/user/.miniconda2/lib/python2.7/site-packages/cooler/create/_create.py", line 563, in create
with h5py.File(file_path, mode) as f:
File "/home/user/.miniconda2/lib/python2.7/site-packages/h5py/_hl/files.py", line 408, in init
swmr=swmr)
File "/home/user/.miniconda2/lib/python2.7/site-packages/h5py/_hl/files.py", line 187, in make_fid
fid = h5f.create(name, h5f.ACC_EXCL, fapl=fapl, fcpl=fcpl)
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py/h5f.pyx", line 108, in h5py.h5f.create
Any idea on what I'm doing wrong? Let me know should you need more info on the configuration of my system.

Are you sure that's the entire error traceback? It looks like there should be more.

Yes, sorry
IOError: Unable to create file (unable to open file: name = '/scratch/devel/mstefano/2017_07_06_Project_with_Ralph_data/models_generation_using_IMP_5000bp/genes_for_Hossein/chr1_2000000_25000000_10kb/B_both_map_merged_conv_matrix_chr1_2000000_25000000bp/tmpwhc0fU.multi.cool', errno = 17, error message = 'File exists', flags = 15, o_flags = c2)

It says it is having trouble writing to the temp file because it already exists, which is strange, because it should be writing in append mode. Can you try to (1) make sure there are no junk temp files that didn't get deleted from a prior run, (2) upgrade to the latest version of cooler? If you can switch to a Python 3 environment, that would be even better.
Here's my reproduction. It completes successfully:
echo -e "chr1\t100000000" > test.chrom.sizes
echo -e "chr1\t1183000\t1180000\tchr1\t4200000\t4210000\t1" > test.bg2
cooler load test.chrom.sizes:10000 test.bg2 test.cool -f bg2

Thanks, switching to Python 3 solved my problem.


Update go.mod

Closes: #751
Description
Puts a link to our sdk repo and the branch being used directly in go.mod above the SDK replace.

For contributor use:

[x] Targeted PR against correct branch (see CONTRIBUTING.md)
[x] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[x] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[x] Re-reviewed Files changed in the Github PR explorer

Thanks for the quick fix!


R shinylive: Who can view the app?

When utilising shinylive.io/r to develop an app, the question arises: "Who has access to view the app?" After generating the application URL, it is disseminated exclusively to a chosen group of users. Can it be guaranteed that only these specifically selected individuals have the ability to view the app?

Hi @dmresearch15! The short answer to your question is no, it's not possible to restrict access to an app created on https://shinylive.io/r -- anybody who has the link can access the app. We don't have a registry of apps, so your link won't be publicly published or even revealed to us, just the people you share it with.
https://shinylive.io encodes the entire app bundle in the app's URL. For example, in this link to the timer demo app, which looks like https://shinylive.io/r/editor/#code=NobwRAdg...., the random letters and numbers after #code= encode the app's code. Clearly it would take someone a bit of work to decode the app, which is what shinylive.io does when you load that link, but it's obfuscated for a convenient URL and not cryptographically encrypted.

Hello, appreciate your prompt reply. The information provided is indeed helpful. However, I require further clarification. My aim is to share confidential information selectively with a specific user group. To achieve this, I plan to place the application URL on our organisation's intranet, secured with a password. This will restrict access to the chosen group of users. In the event that certain individuals within this group opt to decode the app, it's acceptable. The key point is to ensure that no one outside this designated group gains access to the URL or the application. Eagerly awaiting your response.

Hello, appreciate your prompt reply. The information provided is indeed helpful. However, I require further clarification. My aim is to share confidential information selectively with a specific user group. To achieve this, I plan to place the application URL on our organisation's intranet, secured with a password. This will restrict access to the chosen group of users. In the event that certain individuals within this group opt to decode the app, it's acceptable. The key point is to ensure that no one outside this designated group gains access to the URL or the application. Eagerly awaiting your response.

package shinymanager or shinyauthr might help (need remote database to protect credentials), you can try.
I haven't deployed my app successfully via shinylive yet  :(
So I can't tell you the answer, sorry

To clarify: anyone with the shinylive.io URL can access and see the source code of the application you're sharing. Do not put credentials in your app's source code. Do not expect a URL you've shared with others to be kept private.
We (Posit, the maintainers of https://shinylive.io) do not track or store the URLs for applications created with shinylive.io. That said, you should consider a generated URL from shinylive.io to be semi-public and should take appropriate precautions.
For internal use, you can use the shinylive R package to create a standalone static webpage with your application that you could host internally on your intranet.

The app was exported using the following command:
shinylive::export("AppI", "AppO")
This command creates the following directories and files:
•	\edit
•	\shinylive
•	app.json
•	index.html
•	shinylive-sw.js
To serve the app within an R session, the command below was used:
httpuv::runStaticServer("AppO")
The app works as expected in this setup.
How can this app be hosted internally on our intranet so others can access it?

How can this app be hosted internally on our intranet so others can access it?

Move the AppO directory into a place where it will be hosted on the intranet.

Thank you for your response.
I would like to know the equivalent command to httpuv::runStaticServer("AppO") within an R session for viewing the app after relocating the AppO directory to the intranet.

Sorry, @dmresearch15, I can't really give you a better answer because I don't know how your intranet is set up. Typically, an intranet includes a webserver that hosts pages that are accessible within an organization's private network. The exported shinylive files need to be hosted by a webserver (that's what runStaticServer() does). Typically, moving the AppO directory to a place where it's served on the intranet is enough. If that's not the case, you'll need to contact your intranet administrator to figure out how serve the exported app.


Don't force port 80 when DOCKERIZED

Currently, the Dockerfile sets an environment variable, "DOCKERIZED", to 1 and this forces Hybooru to run on port 80.
I am using rootless Podman on my server which means that containers cannot use port 80. I would propose that the "DOCKERIZED" environment variable is kept however that the port can be changed if an environment variable such as "PORT" is used.

As of 1.10.0 you can use PORT envvar. DOCKERIZED is no longer used.


Add automatic hook based on an environment variable

In the continuity of what has been discussed here: https://github.com/Qix-/better-exceptions/issues/38#issuecomment-329080260
This merges the automatic hook from better_exceptions_hook directly to the better_exceptions package.
By default, the automatic hook is not enabled. After installing better_exceptions, the user must create the BETTER_EXCEPTIONS environment variable. Before each execution of a Python script, one checks whether the environment variable exists, and if so then better_exceptions is automatically activated without the need of an import.
Contrary to what I thought, it is not possible to automatically set the environment variable at the time of the package installation. User have to do it manually, but it's just a simple extra command.
The environment variable can be easily deactivated which allows to fix #24.
This also allowed to revert the ugly modifications I had made with #41.
Concerning the method used to install the automatic hook, I did not use that of better_exceptions_hook (get_python_lib() + data_files) because it did not work on my computer. Instead, I copied the method used by pytest which I suppose guarantees to work very well. I tested it under Windows, Linux and with virtual environment without encountering any problem.
If this new way to use better_exceptions without import suits you, it will of course be necessary to think about updating the README before the next release. It may also be interesting to give some troubleshooting indications if the automatic hook does not work. For example, I had to uninstall python3-apport to avoid a conflict because it replaced sys.excepthook too.

I really like this approach. In the spirit of keeping better_exceptions completely hands-off from the code, this is what I'd expect from the functionality.
Can you update the README? When you feel it is ready, we'll push this as a major version change.

@Qix- I have updated the README to describe the new environment variable.
I also added a "troubleshooting" section listing possible causes of errors, but maybe it's a little too long.

Awesome - feel free to merge. Thanks so much for the work on this - this is exactly how I envisioned this module working long-term.

@Qix- Thanks. I merged it, then. 😃


Provide example for setting UPTANE target version automatically

Making a PR to rocko first because the primary user for that is Spekulatius.
Turns out there is no way to set a bitbake variable from a shell task, so I was choosing between writing a hacky python task calling git via os.popen() and adding a hack to image_types_ostree.bbclass to read version from a file. The latter seemed cleaner to me.

Do we need to fix the problem with how devices show up in the UI when overwriting GARAGE_TARGETS_VERSION before this is delivered to anyone? @EpicNuts found that there is a mismatch in how the target is recognized on the server and UI.

@OYTIS Looks fine to me as well, oe-selftest passes except for HsmTest, which is presumably because this is missing some fixes in the latest rocko. I'd suggest either rebasing or just adding this to one of the other open PRs on rocko awaiting Ben's review. If we can gather everything we need him to test into one package, that might make everyone's lives easier when he is back in the office.

By the way, do you know what the expected behavior is for pushing two images with the same GARAGE_TARGET_VERSION?

@patrickvacek The old version just gets replaced with the new one. I tried the following scenario:

Build the image with GARAGE_TARGET_VERSION=A and ostree hash HASH_A, flash it to the device.
Build another image with GARAGE_TARGET_VERSION=A and ostree hash HASH_B. At this point the package in the garage UI gets replaced, one can see updated ostree hash. In the device view there is still a green mark near the version A, although the hash apparently doesn't match. It is a security problem by the way.
There is no way to update device to the 'new' A directly, because it is already 'installed'. But one can install some other version, and then A again, it works fine.

The old version just gets replaced with the new one.

That's exactly what I saw as well. Seems like a problem. It "works" for now, but how do we go about fixing this? This seems like a server-side issue unless I'm missing something that we can do to prevent it.

@patrickvacek What do you think is the correct behavior?
As I can see possible solutions could be

Give error in garage-sign if added target-version pair is already present.
OR
Give error on the backend in the similar case
OR
Accept the image, but show that the device is not running it.
OR
Accept the image and immediately schedule it for installation on the device. This one will probably work automatically if we finally fix director targets metadata to represent device state instead of installation order.

As I can see possible solutions could be...

I think it should be an error, so options 1 or 2 would be my preference. #3 is okay but confusing. #4 seems like a problem. Another solution: identify the problem and automatically rename the target (append _1 or something like that). I think I'd prefer an error over that, but it's an option.

@patrickvacek Fine for me, but I'm pretty sure some customers will be annoyed with the error. Another option could be y/n prompt, but we can't support it in bitbake.

@OYTIS Maybe throw a loud warning and tell the user that we are changing the name to something unique (i.e. by appending something like _1) so as to not overwrite what is on the server? Is it not an error to upload two different things with the same name? If it isn't, then we have to figure out how to disambiguate them somehow, and that seems tough.

@patrickvacek I don't think that overriding a version is an error, but it's definitely risky. What we can from meta-updater is giving a warning every time user overrides target version, just because it's so easy to break something there. All the other possible checks belong to garage-sign in my opinion.
I've also filed a bug to backend/frontend for hash mismatches: https://saeljira.it.here.com/browse/OTA-1240

@OYTIS Good call on the ticket for hash mismatch. We should also maybe make a ticket to cover garage-sign or other backend checks for the target version override. So for now let's add a warning on our side and then we can call this PR ready. Should we perhaps also merge this PR with the other rocko PRs at the same time?

I forewent merging this with the big rocko PR since I still think we need the warning. But now it should probably be rebased, too. (Maybe that should be in the checklist?)

@patrickvacek Added warnings, docs, and rebased. Good point on the checklist.

oe-selftest passes.

Looks good to me too, the only caveat I have is that the new image is reported as 'installed' when the page is refreshed, which it most certainly isn't.
Overwriting the package to a new version, even if it's not installed on any device, doesn't trigger the automatic installation, which may or may not be a good thing, but either way that's probably a front end issue.


Created feature card 15 black

Closes #1651
This is the screenshot of the card

Looked at the additions that were made to the code. Are any changes needed with respect to the size of the headings?

Okay sure !


[backport] Remove wrong-length check from GetItem.check_type_forward

Backport of #4845

Jenkins CI test (for commit e5f2c98aff6bac1e537e50b101b29cef2d9b9909) succeeded without errors!

LGTM!


bug: MethodChainingIndentationFixer - Fix bug with attribute access

closes https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/6570

Coverage increased (+0.001%) to 92.847% when pulling d92a5d7a932e12e041bff40545a4c2c1ade6e5a7 on SpacePossum:master_bug_6570 into ee157265a6f5702de0c4826df25ee35fabb777c6 on FriendsOfPHP:master.

Thank you @SpacePossum.


Fix namespace for window creation

I believe that the namespace references for window creation in the tutorial is wrong.

The website has been updated & this is no longer an issue, closing the PR


Prowler validating check extra774 even after using -e command line option

I am trying to validate my aws infrastructure for all checks excluding extras using below command
./prowler -r eu-central-1 -f eu-central-1 -e -M html
It is excluding all other extras check but somehow it is including check extra774, Could you please check this and let me know how I can skip this check.
Tried below option but It didn't work
./prowler -r eu-central-1 -f eu-central-1 -e -E extra774 -M html

Hi @nayabatgithub, if you want to run only CIS related checks you can use group cislevel2 ./prowler -r eu-central-1 -f eu-central-1 -g cislevel2 -M html. But in this particular case extra774 is similar to check13 but with less days. If you don't want to use it remove it from groups/group1_iam.

Ok got it, thanks.
Thanks
Nayab
From: Toni de la Fuente<EMAIL_ADDRESS>Sent: Tuesday, December 15, 2020 7:53 PM
To: toniblyx/prowler<EMAIL_ADDRESS>Cc: Patel, Nayab Lal (ADV D AA SGI SW&CS DS-FG CYS<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [toniblyx/prowler] Prowler validating check extra774 even after using -e command line option (#708)
Hi @nayabatgithubhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnayabatgithub&data=04|01|nayab.patel%40siemens.com|afc4f113e8a84c1d85c208d8a104e7b1|38ae3bcd95794fd4addab42e1495d55a|1|0|637436389750809960|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=Zy68nRAfGJDKIpIz5I2BE7z%2FF4TiqCL%2FayzN1sSuhy0%3D&reserved=0, if you want to run only CIS related checks you can use group cislevel2 ./prowler -r eu-central-1 -f eu-central-1 -g cislevel2 -M html. But in this particular case extra774 is similar to check13 but with less days. If you don't want to use it remove it from groups/group1_iam.

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftoniblyx%2Fprowler%2Fissues%2F708%23issuecomment-745315888&data=04|01|nayab.patel%40siemens.com|afc4f113e8a84c1d85c208d8a104e7b1|38ae3bcd95794fd4addab42e1495d55a|1|0|637436389750819955|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=PcOgMHR8MEHLYBqbGZy5JAmL4pSNA72CqVgfJ5EHrtM%3D&reserved=0, or unsubscribehttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FASEDAHYALWCNXEYBF7ZANITSU5WLRANCNFSM4U35AFYQ&data=04|01|nayab.patel%40siemens.com|afc4f113e8a84c1d85c208d8a104e7b1|38ae3bcd95794fd4addab42e1495d55a|1|0|637436389750819955|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=4hc%2BsjMJwvlll1OpC0L%2BOTeWolvSTkzHW3rtm2ggP5s%3D&reserved=0.

Closing it as it was solved.