Configurable accessors container style

Fixes #19

@jdegoes so I'm generating trait Accessors extends Service[Module] always, and

for @accessible or @accessible() (default case) I'm also generating object accessors extends Accessors
for @accessible(">") or @accessible("alias") (shorthand alias case) I'm also generating object > extends Accessors
for @accessible("trait") only trait is generated, no objects

@mschuwalow Moved delegate & accessible tests to ZIO Test. There is some issue with mockable tests (currently commented) and issues with Scala 2.11 to investigate, but I'm done for today :)

@mschuwalow

for @accessible or @accessible() (default case)

I like this. Both accessors / Accessors name and the fact that the existence of the trait makes it easy to mix into custom hierarchies.

for @accessible(">") or @accessible("alias") (shorthand alias case)

Makes sense to make this an alias, an addition to the always-generated accessors.

for @accessible("trait") (minimal case)

Not sure i understand this one.

@jdegoes With @accessible("trait") only the trait Accessors is generated without the object (accessors or >). So to use this, the user would have to create an object on his own in the userland code.
For example:
@accessible("trait")
trait Foo { val foo: Foo.Service[Any] }
object Foo { trait Service[R] {} }

package object foo extends Foo.Accessors

or
@accessible("trait")
trait Foo { val foo: Foo.Service[Any] }
object Foo {trait Service[R] {} }

package object foo extends Foo.Accessors

After @mschuwalow comment im thinking perhaps this would be better:

@accessible or @accessible() (default) --> generate only trait Accessors extends Serivce[Module]
@accessible("valid_scala_identifier") --> generate trait + object

@accessible("bar")
trait Foo { val foo: Foo.Service[Any] }
object Foo {
  trait Service[R] { }
  // this is autogenerated
  trait Accessors extends Service[Foo] {}
  object bar extends Accessors
  // end of autogenerated
}

Perhaps that would be much cleaner. No arbitrary names. Either a trait only (default), and you get to use it wherever/however you like. Or autogenerated object with configurable name eg: @accessible("accessors") or @accesible(">")

Hmm :thinking: No idea why types mismatch on 2.11. I've checked the generated code output and all methods in trait Accessors are typed as ZIO[Module, ?, ?]. Given a for-comprehension where all effects require Module, why would the whole be seen as R?

After @mschuwalow comment im thinking perhaps this would be better:

@accessible or @accessible() (default) --> generate only trait Accessors extends Serivce[Module]
@accessible("valid_scala_identifier") --> generate trait + object

@accessible("bar")
trait Foo { val foo: Foo.Service[Any] }
object Foo {
  trait Service[R] { }
  // this is autogenerated
  trait Accessors extends Service[Foo] {}
  object bar extends Accessors
  // end of autogenerated
}

Perhaps that would be much cleaner. No arbitrary names. Either a trait only (default), and you get to use it wherever/however you like. Or autogenerated object with configurable name eg: @accessible("accessors") or @accesible(">")
@mschuwalow @jdegoes WDYT?

I like this

@mschuwalow Created seperate issues for the remaining tests migration. Aggregate issue #46


[DO NOT MERGE] Auto PR to update dependencies of istio

This PR will be merged automatically once checks are successful.
none

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-suite-rbac-no_auth.sh
ead9805046849df347500bf53099c9066ce7f75c
link
/test e2e-suite-rbac-no_auth

prow/e2e-suite-rbac-auth.sh
ead9805046849df347500bf53099c9066ce7f75c
link
/test e2e-suite-rbac-auth

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


paywithgoogle Error: Uncaught (in promise): AbortError: User closed the Payment Request UI.

We are starting to integrate google payments.
Bug
The payments work, however we get errors when users close the google pay sheet:
Error: Uncaught (in promise): AbortError: User closed the Payment Request UI.
(There can also be other errors, for example when the user already has another google pay session running, or when the sheet times out)
As shown in the code, we try to catch the error using onError.
While this callback gets notified of the AbortError, the uncaught Promise error is still propagated up to the main Error handler of our Frontend.
Is there a better way to handle this promise? Our current best solution would be to tell our outmost error handler to do a string compare on error.message.
To Reproduce
The same seems to be true on the demo shop https://www.mystoredemo.io/#/checkout
("Pay with Google Pay" -> Hit the back arrow -> The console logs: "Uncaught (in promise) DOMException: Another PaymentRequest UI is already showing in a different tab or window." ).
It seems that this Error is handled outside the Dropin as well.
Simplified Code:
script source: https://checkoutshopper-test.adyen.com/checkoutshopper/sdk/5.8.0/adyen.js
const checkoutConfiguration: any = {
  paymentMethodsResponse: paymentsResponse
  environment: environment,
  clientKey: clientKey,
  locale: locale,
  amount: amount,
	onSubmit: (state, dropin) => {
	  if (state.isValid) {
	    //Called when the user has successfully submited data through the google pay sheet.
	    console.log("onSubmit", state, dropin);
	  }
	},
  paymentMethodsConfiguration: {
    paywithgoogle: {
      onError: (error, component) => {
      	//Is called when user closes google pay sheet, but error still propagates
        console.error(error.name, error.message, error.stack, component);
      },
    }
  }
};

this.checkout = await AdyenCheckout(configuration);
this.dropinComponent = this.checkout.create('dropin', {
}).mount('#dropin-container');

//Some trigger
mybutton.onclick=this.dropinComponent.submit();

Expected behavior
After onError is triggered, the error should not propagate further.
Tested with Adyen web 5.0.0 , 5.8.0, 5.10.0

Device: Macbook Pro M1
OS: Mac 12.2.1
Browser  Chrome & others
Version [ 99.0.4844.51]

Hi @ribeiroguilherme is there something new about this issue?

This issue is fixed on the 5.27.0


Enhancement: send events from client:

Provide a sendEvent function for the BaseMessageCenterBehaviorImpl class, which sends
events to the server-side socket handler. Provide a handler function in client manager
which sends the requested event on the message center and returns the result status to
the remote socket.
resolves issue #32

See https://github.com/LGSInnovations/bits/issues/32


threshold/confidence

How can the simple known/unknown example be modified to have a different confidence/treshold other then point 6?
face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/

Also when running the simple example, how can we print out the confidence of match?

Question 1 : compare_faces is just a wrapper that call face_distance and applies a threshold. You can add an extra parameter to it to specify the threshold. For instance, for a value of 0.8 :
results = face_recognition.compare_faces([my_face_encoding], unknown_face_encoding,0.8)
Question 2 : If you need to see the confidence value, use the function face_distance directly : it will return a list of distances between the list of candidate faces and the target face.

seems when i run basic example, i get an error about dlib. any thoughts on how to fix? i'm pretty sure i have it installed already:
import dlib
ImportError: No module named dlib

If you can't import dlib, then it's not installed (at least not for the version of Python you are running).

can your example be called on command line? Eg, for the basic example you gave, I would just run the below:
face_recognition  known/ unknownpng/
How can I run it with compare_faces on command line?

Ah, good question. Unfortunately the command line application doesn't currently report confidence values. That's something I could add in the future, though.

so essentially I have to run your example as a script? something like below?
from PIL import Image
import face_recognition
results = face_recognition.compare_faces("Directory/known", "Directory/unknownjpg",0.8)
It seems not to like my input. Are [my_face_encoding], unknown_face_encoding  meant to be directories or something else?

I think the confusion is that your original question was about the command-line application but the answer @sbourigault gave you was the answer if you are writing code using the python library instead. Those are two different things.
Unfortunately the command-line application doesn't currently return confidence values like you want. That's a new feature that would have to be added.
If you are familiar with Python coding and want to write your own script that acts like the command line application but returns those values, you could do that. But if you aren't, it might be easier to just wait until I have a chance to add that feature to the command-line application.
To answer your other question, the parameters to that function are not meant to be directories. The parameters expected by each function are listed in the API docs.  There's also a minimal code example here that shows how it works.

ok got it. Think I have things working now!

Awesome! Glad it's working.

Why do you recommend a threshold distance of point 6? Is that in literature somewhere? If so, where? Point 6 isn't a lot? It is 0 to 1 right?

0.6 is what was most accurate with the training data set according to Davis King. See his post at http://blog.dlib.net/2017/02/high-quality-face-recognition-with-deep.html

"The network training started with randomly initialized weights and used a structured metric loss that tries to project all the identities into non-overlapping balls of radius 0.6. " So this means that lowering this to like point 2 or point 3 isn't going to give better results? Essentially he's somehow mapped things to point 6 if good fit? I'll have to read more papers later.
Separately,  I also wish this code could sort the top matches. I ran it across a video and it returns sometimes several examples. It would be helpful to sort by confidence/distance and rank the results. But I don't think results are ranked in anyway.

If instead of calling face_recognition.compare_faces(), you instead call face_recognition.face_distance(), that will return the distance between each possible match and the image you are testing. Then you could call scipy.stats.rankdata() to turn that into a ranked list (assuming you have scipy installed).

@ageitgey   Does this work well on any ethnicity? I'm trying to do some benchmarking on asian and chinese faces. I'm wondering how it will perform. Any idea if it will break down? My preliminary results on South American faces show several matches---I'm trying to reduce with confidence and understand, etc.

@ageitgey    Also, when you run the program, normally from command line, it does return matches with distance greater than .6. I know this, b/c when I take the matches and compare them separately with the distance program, to try to help rank them and understand, it shows the distance and for some matches they’re greater than point6, even though threshold was that. How is this possible?


Event logging protocol extensions

So far event logs were modeled as Flow[E, Delivery[E], _] and EventSourcing stages as BidiFlow[REQ, E, Delivery[E], RES, _] where E is the type of a domain event. This is not sufficient for real-world use cases. Further event metadata are required:

Events emitted by an EventSourcing stage must contain the id of the emitting stage (emitterId). This is needed, for example, by consumers on the query side of a CQRS application to distinguish emitters when consuming events from an aggregated or shared event log. This is also a prerequisite for creating snapshots of EventSourcing state on the query side by re-using event handlers.
Events emitted by an event log must additionally contain the sequence number of the written event. Sequence numbers are required to track event processing progress, for example.

For these reasons, the current implementation should be extended to use
Flow[Emitted[E], Delivery[Durable[E]], _]

as type for event logs and
BidiFlow[REQ, Emitted[E], Delivery[Durable[E]], RES, _]

as type for EventSourcing stages where Emitted and Durable are defined as:
/**
  * Metadata and container of an event emitted by an `EventSourcing` stage.
  *
  * @param event Emitted event.
  * @param emitterId Id of the event emitter.
  * @param emissionUuid Emission id generated by the event emitter.
  * @tparam A Event type
  */
case class Emitted[+A](event: A, emitterId: String, emissionUuid: String)

/**
  * Metadata and container of a durable event emitted by an event log or source.
  *
  * @param event Durable event.
  * @param emitterId Id of the initial event emitter.
  * @param emissionUuid Emission id generated by the initial event emitter.
  * @param sequenceNr Sequence number of the durable event.
  * @tparam A Event type
  */
case class Durable[+A](event: A, emitterId: String, emissionUuid: String, sequenceNr: Long)

Why not using only a single case class,
case class Emitted[+A](event: A, emitterId: String, sequenceNr: Long)
With the sequenceNr being relative to the emmiterId. The EventSourcing can (should?) track of the sequenceNr.

With client-assigned sequence numbers event collaboration would require members of a collaboration group have distributed agreement on these numbers before writing events to a shared event log. A much more efficient way is to let the shared event log assign the sequence numbers i.e. clients use the shared event log for distributed agreement. But this is nothing else than server-assigned sequence numbers, hence the difference between Emitted and Durable.
Akka Persistence (with client- i.e. PersistentActor-assigned sequence numbers) is a special case as each PersistentActor has its own private event log. But this approach has limitations, especially when used it in context of CQRS and event collaboration.

I see. There is definitely benefits for this relaxed consistency model (that required CRDT / vector clocks), but I'd like the API to also support the traditional (simper) ES model where strong causality of the (unique) event log is ensured by, and only by, the RequestHandler?
(because not everyone has scalability issues that mandate usage of more advance architectures like event collaboration/CRDT)

There is definitely benefits for this relaxed consistency model (that required CRDT / vector clocks)

This has nothing to do with relaxed consistency. In the collaboration example, all group members see events in the same order (which gives you linearizability) because the underlying Kafka topic partition provides total order (as mentioned in the text). No relaxed consistency, vector clocks etc. here.

but I'd like the API to also support the traditional (simpler) ES model where strong causality of the (unique) event log is ensured by, and only by, the RequestHandler

A request handler alone cannot provide total storage order, it is the event log that must give you these guarantees.

Will it still be possible?

Everything you can do with PersistentActors you can also do with EventSourcing stages and AkkaPersistenceEventLog. So the answer is yes.

(because not everyone has scalability issues that mandate usage of more advance architectures like event collaboration/CRDT)

Please don't confuse event collaboration with CRDTs or relaxed consistency: event collaboration only means exchange of events among collaborators. The ordering guarantees of the underlying event log determines the order of events seen by collaborators.  Akka Persistence event logs cannot be used for collaboration (except within a JVM, an extension that will come later)
Operation-based CRDTs may use event collaboration as basis for operation dissemination, the minimum requirement is a reliable, causal order broadcast but, of course, they also work with a total order broadcast.
It is not the goal of this project to re-implement Eventuate, instead applications should have the option to use a globally replicated Eventuate event log if causal order is sufficient and multi-datacenter replication is a requirement. If stronger consistency is needed they should use the event logs already implemented in this project (Kafka and Akka Persistence).


fix: rename DeleteOutput to DisableOutput in computetask smart contract

Description

How has this been tested?

Checklist

[ ] changelog was updated with notable changes
[ ] documentation was updated

/e2e --mode distributed

End to end tests: :hourglass_flowing_sand: STARTING

Definitely.


fix: Fix deadlock raised in #11

This fixes #11 .
Root cause:

When an error occurs we exit a worker by returning from startG function.
If the number of workers gCount reaches 0 while all other functions are already in the buffer then a deadlock will be reached since there is no chance a new worker will be created and the current number of workers is 0.

Fix:

Before adding to the buffer check if there was already an error, in case there was then just exit and don't try to add to buffer.

As stated here this can be tried out using
go mod edit -replace github.com/neilotoole/errgroup=github.com/said-saifi/errgroup@master


05/08/2018 21:04 : Create Pull Request for branch prTesting_2018050821 -> master

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestCon.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


az spring-cloud app binding mysql add

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az spring-cloud app binding mysql add Extension Name: spring-cloud. Version: 2.2.0.
Errors:
'BindingsOperations' object has no attribute 'apps'
Traceback (most recent call last):
python3.6/site-packages/knack/cli.py, ln 233, in invoke
    cmd_result = self.invocation.execute(args)
cli/core/commands/__init__.py, ln 660, in execute
    raise ex
cli/core/commands/__init__.py, ln 723, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
...
cliextensions/spring-cloud/azext_spring_cloud/custom.py, ln 296, in _check_active_deployment_exist
    active_deployment_name = client.apps.get(resource_group, service, app).properties.active_deployment_name
AttributeError: 'BindingsOperations' object has no attribute 'apps'

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az spring-cloud app binding mysql add --app {} --name {} --database-name {} --resource-group {} --service {} --username {} --key {} --resource-id {}

Expected Behavior
Environment Summary
Linux-5.4.0-1039-azure-x86_64-with-debian-buster-sid
Python 3.6.10
Installer: DEB

azure-cli 2.20.0

Extensions:
spring-cloud 2.2.0

Additional Context

I tested with extension version 2.1.0 and this one worked (didn't work with version 2.1.2 and 2.2.0).
command line:
az spring-cloud app binding mysql add
--app todo-service
--database-name todos
--key $MYSQL-PWD
--name mysql-todos
--resource-group rg-lab-spring-cloud-001
--resource-id /subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx/resourceGroups/rg-lab-spring-cloud-001/providers/Microsoft.DBforMySQL/servers/sc-lab-gz-001-mysql
--service sc-lab-gz-001
--username
Also, there is a bug on Azure Portal to register the service bindings, it does not list the resource group or service name.
Thank you!

route to appropriate team

Thanks for your reporting!
@ShichaoQiu Please take a look, it seems in the serviceBinding command, we wanna fetch the activeDeployment using the bindingClient specified in the command, and results in this fatal.

@gustavozimm The  fix has been applied, you can use az extension update -n spring-cloud to upgrade the version to 2.2.1 to have a try. Thanks again for your reporting!


Fix for new clippy warnings

This fixes clippy warnings introduced by Rust 1.62.0.  It also adds missing features to the casper-types entry of the casper-hashing manifest.

bors merge


As CORE-ENGINE, there needs to be a way to execute rule CG0173

Refer to JIRA ticket: https://jira.cdisc.org/browse/CORERULES-149
The Rule needs to be able to do the following:
Scope: FA
Sensitivity: Record
Given an FA record:
Check if the "FATEST" variable value matches the "label" of a variable within the list of CDISC Library Model Variables where "role" ends in "Qualifier".
If it does match, check if the "FATESTCD" variable value matches the corresponding "name" in the same CDISC Library variable.

@gerrycampion @nickdedonder my thoughts on how we can write this rule to use operations/operators that either exist or are generic enough to be useful elsewhere:
Write one or more operations that returns the library variable metadata for a variable referenced in a reference column. Ex. given the dataset:

FATESTCD
FATEST

OCCUR
Occurence Indicator

SEV
Severity/Intensity

TOXGR
Toxicity/Grade

The operation:
Operations:
  - id: $referenced_variable_metadata
    name: FATEST # column that references a variable
    operator: label_referenced_variable_metadata

The resulting dataset would be:

FATEST
FATESTCD
$referenced_variable_metadata_name
$referenced_variable_metadata_role
$referenced_variable_metadata_type (etc)

OCCUR
Occurrence Indicator
--OCCUR
Record Qualifier
Char

SEV
Severity/Intensity
--SEV
Record Qualifier
Char

TOXGR
Toxicity/Grade
--TOXGR
Record Qualifier
Char

Then the rule check would look something like:
Check:
all:
- name: $referenced_variable_metadata_role
operator: ends_with
value: "Qualifier"
- name: FATEST
operator: not_equal_to
value: $referenced_variable_metadata_name

Validation Summary:
Validation Methodology:
The validation process incorporated rigorous testing methodologies to ensure the accuracy and reliability of the system. This included:
Unit Testing:
Unit Testing was done to verify the implementation of the Acceptance criteria. The Tests were written to verify the changes. The test uses edge test cases and verifies the implementation accurately.
Code Review:
The code changes in the code files were reviewed and were found to be in accordance with the Acceptance criteria. Also, the code was reviewed for following:

Code Quality Evaluation
Logic and Functionality Review
Error Handling and Exception Handling Assessment
Security Considerations

Regression Testing:
Regression tests were run to validate that the changes did not affect any functionality of the overall system.
Test Execution:

The unit tests were run using the following command
python -m pytest tests/unit/test_operations/test_label_refrenced_variable_metadata.py
python -m pytest tests/unit/test_operations/test_lname_refrenced_variable_metadata.py
The regression tests were executed using the following coomnad:
Python -m pytetst test_cli

Results:
After successful running of unit, manual and regression tests and careful validation, the issue was found to be good to close
Deviations and Non-conformances:
No deviations or non-conformances were observed.
Summary of Findings:
Test Results: All tests conducted during the validation process passed successfully, indicating that the system functions as intended and meets the specified requirements. The tests covered various scenarios and edge cases, providing confidence in the system's reliability and correctness.
Unit Regression: The unit regression tests were executed, and no regressions or issues were identified. This indicates that the changes made during the development or modification of the system did not introduce any unintended side effects or break existing functionality.
Code Reviews: The code reviews conducted by both development and QA teams were completed, and no major issues or concerns were identified. The code adheres to coding standards and best practices, demonstrating good code quality, readability, and maintainability.


Policy on how recent the go version in the go.mod file can be

This point was brought up in In https://github.com/google/osv-scanner/pull/637.
We might like to make a policy that osv-scanner will only use versions of Go, say at least two release behind. This will help consumers know how up-to-date their version of Go should be to be able to use this as a library and as a CLI tool.

Based on my understanding of this blog, this problem may get less severe in the future for those with default settings:
https://go.dev/doc/toolchain

The default GOTOOLCHAIN setting is auto

When GOTOOLCHAIN is set to +auto or +path (or the shorthands auto or path), the go command selects and runs a newer Go version as needed. Specifically, it consults the toolchain and go lines in the current workspace’s go.work file or, when there is no workspace, the main module’s go.mod file. If the go.work or go.mod file has a toolchain  line and  is newer than the default Go toolchain, then the go command runs  instead. If the file has a toolchain default line, then the go command runs the default Go toolchain, disabling any attempt at updating beyond . Otherwise, if the file has a go  line and  is newer than the default Go toolchain, then the go command runs go instead.

This will be completed in #1156


#103 Add new rebus

Associated Issue: #103
Summary of Changes

add new rebus

Pull Request Test Coverage Report for Build 253

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 90.686%

Totals

Change from base Build 251:
0.0%

Covered Lines:
126

Relevant Lines:
137

💛  - Coveralls


openapi spec data, should be used in rule parser to validate rules on load

After spending a good portion of time trying to find a good golang openapi v3 validation library, I am not able to find anything that appears to work the way we would want.
I was able to find some V2 validation libraries. I am hoping to write a component schema validator that will hopefully be suitable.
I think that this gets pushed out past 0.4.0 unless we get ahead of schedule.


WIP Don't merge. Scala.js compilation

I'm reopening this track though we are still a bit far away from getting a version that would link (It compiles though). This effectively reopens #1412
Some things needed to get it to work:

[x] Merge #1770
[ ] Remove reflection from headers #1143
[x] Bring scala-js#3267 to fix parboiled issues
[x] Implement any missing api on the scala.js side
[x] Apparently there is a missing method on java.time

Once this is complete we can do the actual client. Perhaps RosHTTP is a good starting point
/cc @oyvindberg @bpholt

Yes yes, awesome, we still need to make this happen! :)
AFAIR i had a handful of smaller tasks in my branch which we should still do as prep work for this, including removing reflection, fixing a few failing tests, documenting platform differences, and so on. I'll try to document this somewhere. Do you think we could open a github project for this so we can create some issues for it?
Meanwhile i have been rebasing my branch at https://github.com/oyvindberg/http4s , though it's a month old now again, pff. At least it links, so you can run the tests there.
About the client, it's an interesting question we should discuss! :) First of all, perhaps RosHTTP is perfect. I haven't tried it, but will make sure to have a look a bit later.
The way I have thought about it so far is that I'm not sure that it necessarily makes sense to have exactly the same API for jvm/js, and even frontend/backend js. As long as you end up with a Client, we can share the interesting code from there on.
To that end i started to sketch a solution based on fetch, where the user provides their own native/polyfilled instance of fetch, and we take it from there. Feel free to have a look at the fetch-client folder in my repo, though be advised that it's far from done. For that very reason I'm also not very committed to that approach.

Could you make PRs to this PR with your bits to start patching the missing bits? In particular, I think you had fixed the parboiled issues, or does it require a scala.js update?
I'll do the same with #1170
I want to suggest that whenever we do a patch that needs an update on master like for #1170 we squash the commit into one and mark it in the commit message, e.g. Remove: .. So we know that commit should be removed at some moment
about the client, I suggested RosHTTP as it's the only one I've seen with scala.js support but your solution based on fetch seems as good.

What problems is parboiled causing?

@oyvindberg  I took some of the code in your branch to incorporate it into the PR

This is now rebased onto master, it compiles fine but the tests (which at some moment ran) cannot link in .js anymore
There is quite a bit of work still for this, being the most critical the use of reflection (in HttpHeaderParser) issue

Accomplished via #4938


Add missing flags to cosign verify dockerfile/manifest

There's still deviations between the five verify commands. We should at some point sync all 5 with a refactoring.
Fixes #2827

Summary

Release Note

Added missing verification for cosign verify dockerfile and manifest
Documentation

cc @dneville-cvs


OSError: [Errno 2] No such file or directory

Operating system and version:
iOS 13.5
nvm debug output:

nvm debug
nvm --version: v0.35.3
$TERM_PROGRAM: NewTerm
$SHELL: /usr/bin/zsh
$SHLVL: 1
${HOME}: /var/mobile
${NVM_DIR}: '${HOME}/.nvm'
${PATH}: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games
$PREFIX: ''
${NPM_CONFIG_PREFIX}: ''
$NVM_NODEJS_ORG_MIRROR: ''
$NVM_IOJS_ORG_MIRROR: ''
shell version: 'zsh 5.8 (aarch64-apple-darwin)'
uname -a: 'Darwin 19.5.0 Darwin Kernel Version 19.5.0: Tue Apr 28 22:25:26 PDT 2020; root:xnu-6153.122.1~1/RELEASE_ARM64_T8010 iPhone9,3 arm64 D101AP Darwin'
OS version: iPhone 13.5 17F75
curl: /usr/bin/curl, curl 7.71.1 (aarch64-apple-darwin) libcurl/7.71.1 OpenSSL/1.1.1g zlib/1.2.11 libidn2/2.3.0 libssh2/1.9.0 nghttp2/1.40.0
wget: not found
sed: /usr/bin/sed
cut: /usr/bin/cut
basename: /usr/bin/basename
rm: /usr/bin/rm
mkdir: /usr/bin/mkdir
xargs: /usr/bin/xargs
git: /usr/bin/git, git version 2.28.0
grep: /usr/bin/grep, grep (GNU grep) 3.4
awk: /usr/bin/awk, GNU Awk 5.1.0, API: 3.0
nvm current: none
which node: node not found
which iojs: iojs not found
which npm: npm not found
npm config get prefix: nvm:199: command not found: npm
npm root -g: nvm:199: command not found: npm

nvm ls output:

nvm ls
            N/A
iojs -> N/A (default)
node -> stable (-> N/A) (default)
unstable -> N/A (default)
lts/* -> lts/erbium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.22.0 (-> N/A)
lts/erbium -> v12.18.3 (-> N/A)

How did you install nvm?

Install script in readme
What steps did you perform?
Run nvm install --lts
What happened?
It errorred

nvm install --lts
Installing latest LTS version.
Downloading and installing node v12.18.3...
Downloading https://nodejs.org/dist/v12.18.3/node-v12.18.3-darwin-iPhone9,3.tar.xz...
curl: (22) The requested URL returned error: 404

Binary download from https://nodejs.org/dist/v12.18.3/node-v12.18.3-darwin-iPhone9,3.tar.xz failed, trying source.
grep: /var/mobile/.nvm/.cache/bin/node-v12.18.3-darwin-iPhone9,3/node-v12.18.3-darwin-iPhone9,3.tar.xz:
No such file or directory
Provided file to checksum does not exist.
Binary download failed, trying source.
Downloading https://nodejs.org/dist/v12.18.3/node-v12.18.3.tar.xz...
                                                0.9%                                                1.7%#                                               4.2%###                                             6.7%###                                             8.4%#####                                          11.4%######                                         13.9%#######                                        16.1%########                                       19.6%##########                                     23.0%##########                                     23.9%###########                                    26.4%#############                                  29.1%##############                                 31.5%###############                                35.4%#################                              39.6%###################                            42.6%####################                           45.5%#####################                          48.4%#######################                        53.1%#########################                      56.2%##########################                     58.6%############################                   62.5%##############################                 67.1%###############################                69.4%################################               72.9%##################################             77.3%####################################           80.3%######################################         84.7%########################################       89.5%#########################################      92.2%###########################################    96.5%############################################   99.5%############################################# 100.0%
Computing checksum with sha256sum
Checksums matched!
$>./configure --prefix=/var/mobile/.nvm/versions/node/v12.18.3 <
Traceback (most recent call last):
  File "./configure", line 28, in <module>
    import configure
  File "/private/var/mobile/.nvm/.cache/src/node-v12.18.3/files/configure.py", line 1805, in <module>
    run_gyp(gyp_args)
  File "tools/gyp_node.py", line 54, in run_gyp
    rc = gyp.main(args)
  File "tools/gyp/pylib/gyp/__init__.py", line 547,
in main
    return gyp_main(args)
  File "tools/gyp/pylib/gyp/__init__.py", line 532,
in gyp_main
    generator.GenerateOutput(flat_list, targets, data, params)
  File "tools/gyp/pylib/gyp/generator/make.py", line 2213, in GenerateOutput
    part_of_all=qualified_target in needed_targets)
  File "tools/gyp/pylib/gyp/generator/make.py", line 823, in Write
    self.Pchify))
  File "tools/gyp/pylib/gyp/generator/make.py", line 1218, in WriteSources
    cflags = self.xcode_settings.GetCflags(configname)
  File "tools/gyp/pylib/gyp/xcode_emulation.py", line 554, in GetCflags
    sdk_root = self._SdkPath()
  File "tools/gyp/pylib/gyp/xcode_emulation.py", line 523, in _SdkPath
    return self._XcodeSdkPath(sdk_root)
  File "tools/gyp/pylib/gyp/xcode_emulation.py", line 527, in _XcodeSdkPath
    sdk_path = self._GetSdkVersionInfoItem(sdk_root, '--show-sdk-path')
  File "tools/gyp/pylib/gyp/xcode_emulation.py", line 502, in _GetSdkVersionInfoItem
    return GetStdoutQuiet(['xcrun', '--sdk', sdk, infoitem])
  File "tools/gyp/pylib/gyp/xcode_emulation.py", line 1454, in GetStdoutQuiet
    stderr=subprocess.PIPE)
  File "/usr/local/lib/python2.7/subprocess.py", line 394, in __init__
    errread, errwrite)
  File "/usr/local/lib/python2.7/subprocess.py", line 1047, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
nvm: install v12.18.3 failed!

What did you expect to happen?
It should build successfully
Is there anything in any of your profile files that modifies the PATH?

No

If you are having installation issues, or getting "N/A", what does curl -I --compressed -v https://nodejs.org/dist/ print out?

curl -I --compressed
-v https://nodejs.org/dist/
*   Trying 2606:4700:10::6814:162e:443...
* Connected to nodejs.org (2606:4700:10::6814:162e)
port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/cacert.pem
  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions
(8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: OU=Domain Control Validated; OU=PositiveSSL Wildcard; CN=*.nodejs.org
*  start date: Oct 21 00:00:00 2019 GMT
*  expire date: Jan 18 23:59:59 2022 GMT
*  subjectAltName: host "nodejs.org" matched cert's
"nodejs.org"
*  issuer: C=GB; ST=Greater Manchester; L=Salford; O=Sectigo Limited; CN=Sectigo RSA Domain Validation Secure Server CA
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x10600d800)
> HEAD /dist/ HTTP/2
> Host: nodejs.org
> user-agent: curl/7.71.1
> accept: */*
> accept-encoding: deflate, gzip
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* Connection state changed (MAX_CONCURRENT_STREAMS == 256)!
< HTTP/2 200
HTTP/2 200
< date: Wed, 02 Sep 2020 05:54:41 GMT
date: Wed, 02 Sep 2020 05:54:41 GMT
< content-type: text/html
content-type: text/html
< set-cookie: __cfduid=d40b7751b87e2c5208583a9a43043360c1599026081; expires=Fri, 02-Oct-20 05:54:41 GMT; path=/; domain=.nodejs.org; HttpOnly; SameSite=Lax
set-cookie: __cfduid=d40b7751b87e2c5208583a9a43043360c1599026081; expires=Fri, 02-Oct-20 05:54:41 GMT; path=/; domain=.nodejs.org; HttpOnly; SameSite=Lax
< cache-control: max-age=14400
cache-control: max-age=14400
< cf-cache-status: HIT
cf-cache-status: HIT
< age: 6322
age: 6322
< cf-request-id: 04eefac51d0000c981a13a6200000001
cf-request-id: 04eefac51d0000c981a13a6200000001
< expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
< vary: Accept-Encoding
vary: Accept-Encoding
< server: cloudflare
server: cloudflare
< cf-ray: 5cc4fa4e9cb9c981-SEA
cf-ray: 5cc4fa4e9cb9c981-SEA
< content-encoding: gzip
content-encoding: gzip

<
* Connection #0 to host nodejs.org left intact

I'm not sure it's possible to install node on an iPhone. Is that what this is, a rooted iPhone?

Yes, this is a jailbroken iPhone. Theoretically, it should be possible, as I cant get tools like python and clang, but in practice, it probably doesn't work without some insane messing around. If there is any help that might help me get it built that would be appreciated or I can close the issue due to it being incompatible.
Thanks

It's certainly not a platform node itself supports. I'd suggest you file an issue on node and get some guidance.

For anyone curious. I have tried downloading the pre-compiled binaries for darwin-arm64 (mac's with M1) but just running the bin/node didn't work.
iPad:~/projects/node-v16.10.0-darwin-arm64/bin mobile% ./node
zsh: killed     ./node

It might just be missing some dependencies? Anyone knows how can i debug this further?

But, not all hope is lost. Taurine with Sileo provides sudo apt install nodejs which is currently running node 14 so you can still develop/run node things on ipad/iphone :)

Oof, installing node with apt is the worst.
I’d file an issue on node itself to see about getting it to work - once node itself works, then i can incorporate those steps into nvm to make it easy.


how to use the performancemetrics.m, after i got the pred seg

You can just change the directories to the specific directories (pred and GT) in your system and run the code in MATLAB.


isort

Imports in moccasin are gross, add isort to formatter.

fixed: https://github.com/Cyfrin/moccasin/commit/23a1cb6573383ddb810306c580913566ffb64634


FR: S3 backup and File storage config

Way to use same S3 config for file storage and Backup.

There are no plans for this. It is recommended to use different buckets for the uploaded files and backups.


Encountering error after being logged in

error:
Traceback (most recent call last):
File "C:\Coding\Python\Stock Bot\Reverse-Arb-Bot\test.py", line 22, in
File "C:\Users\arnav\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\firstrade\account.py", line 183, in init
self.account_statuses.append(account_status["data"])
KeyError: 'data'
but I just copied the code from the test.py. Is there an additional step that I am missing?

Is 2fa enabled on your account? As in 2fa through a code generator?
Jun 4, 2024 12:05:06 PM Arnav Sivakumar @.***>:

error:
Traceback (most recent call last):
File "C:\Coding\Python\Stock Bot\Reverse-Arb-Bot\test.py", line 22, in
File "C:\Users\arnav\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\firstrade\account.py", line 183, in init
self.account_statuses.append(account_status["data"])
KeyError: 'data'
but I just copied the code from the test.py. Is there an additional step that I am missing?
—
Reply to this email directly, view it on GitHub[https://github.com/MaxxRK/firstrade-api/issues/30], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AKZTL4UU6QIPCZNMZ4IULLDZFXXUFAVCNFSM6AAAAABIY5MLAWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGMZTGOJZGM3TCMA].
You are receiving this because you are subscribed to this thread.
[Tracking image][https://github.com/notifications/beacon/AKZTL4SNX7CG7LMECSP3XXDZFXXUFA5CNFSM6AAAAABIY5MLAWWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHIWHPK5Y.gif]

like sending an email verification or a phone number verification, if so i think so

I meant through a totp generator.
If you don't use a totp generator is your pin# correct?
If that is correct login on a browser and do not use the phone or email to verify click use another method and use your pin. Then try logging in with this.
I have not had time to add the other totp methods in here yet. I'm am not sure but firstrade may not let you use the pin after you use the phone or email until you use the pin again.
Jun 4, 2024 12:09:12 PM Arnav Sivakumar @.***>:

like sending an email verification or a phone number verification, if so i think so
—
Reply to this email directly, view it on GitHub[https://github.com/MaxxRK/firstrade-api/issues/30#issuecomment-2148018862], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AKZTL4QFFZUZH2VKRATBHX3ZFXYDRAVCNFSM6AAAAABIY5MLAWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBYGAYTQOBWGI].
You are receiving this because you commented.
[Tracking image][https://github.com/notifications/beacon/AKZTL4VVN6MEZYOXUS47UH3ZFXYDRA5CNFSM6AAAAABIY5MLAWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTUABAVK4.gif]

sorry lol, can you dumb it down for me?
basically when I sign in I just click username and password and thats it, it logs me in

this is what i see, how do i change it to login through another method. And yes my pin is correct

That means you have already done it with a phone number /email you will have to delete  your cookies for firstrade in that browser most likely. Then when you login again it will ask for you to verify by email or phone. Underneath that it will say verify another way. If you do it that way it will go to the pin screen to login
Jun 4, 2024 12:24:18 PM Arnav Sivakumar @.***>:

image.png (view on web)[https://github.com/MaxxRK/firstrade-api/assets/31674084/13d77d3e-c9c7-435b-a4d8-a39779545ae6]
this is what i see, how do i change it to login through another method. And yes my pin is correct
—
Reply to this email directly, view it on GitHub[https://github.com/MaxxRK/firstrade-api/issues/30#issuecomment-2148047641], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AKZTL4UNF542FMYOXZMVWATZFXZ4FAVCNFSM6AAAAABIY5MLAWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBYGA2DONRUGE].
You are receiving this because you commented.
[Tracking image][https://github.com/notifications/beacon/AKZTL4TT2W7KF7HE4UTQ7GTZFXZ4FA5CNFSM6AAAAABIY5MLAWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTUABCNRS.gif]

alright I did that, and ran the code again and im still getting the same error. I even tried deleting the pkl file for the cookies, what should I do?

At first glance I thought it was authentication it seems not to be...
If you have some familiarity with python code you can help me by:
Opening this file from the traceback C:\Users\arnav\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\firstrade\account.py
and underneath the for loop put print(self.account_numbers) on line 163
and on line 177 print(account_statuses).

If not I can send you a modified repository so we can look at this more.

Also I changed it because I was reading it and you previously saved it as a variable called "account_status" so i changed all "account_statuses" to "account status" and now I got this. Idk if that was anything or I changed smtg I wasn't supposed to
['my account number']
{'rc': 'fetch_fail', 'msg': 'no response'}
Traceback (most recent call last):
File "C:\Coding\Python\Stock Bot\Reverse-Arb-Bot\test.py", line 20, in
ft_accounts = account.FTAccountData(ft_ss)
File "C:\Users\arnav\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\firstrade\account.py", line 185, in init
self.account_status.append(account_status["data"])
KeyError: 'data'

Yes you were correct to change that variable my bad.
So it does not like the request for some reason. I do not know exactly why. I just ran that test.py script and it ran just fine.
['my account number'] just to be sure this had your actual account # in it? You were just blanking it out correct? Or was this exactly what it said?

Weird, I can share with you my exact code because I haven't hardcoded any of the variables or anything, I make it get it off a .txt file which has always worked correctly. And yes my account number was just blanked out, it showed my exact account number so I just replaced it.
Maybe is my account.py code incorrect for the API? I'm not sure to why it wouldn't be working?
Could this also be potentially due to the fact that I've logged in on my phone and website before the incorrect way? I did reset the cookies on the website so im not sure. Also should I go into urls.py and replace the user-agent with my user-agent?
Hopefully we can fix this!

Until I asked you to change it you had the exact account.py code from a pip install correct? You could start snooping your network traffic.
-Inspect the page go to network
-Login to firstrade, go to account dropdown, click profile, then click on account status tab.

make sure you see "https://invest.firstrade.com/cgi-bin/account_status" and "https://invest.firstrade.com/scripts/profile/margin_v2.php" in the network urls after a filter. You should see requests and responses there too. I do not think it's your user-agent since you can log in and most users have been able to use this ok. It is always a possibility because of the nature of it being reverse engineered, but I do not think that's it.
On the request that ends in margin_v2.php you should see json with all of your account data in it.

I think my first questions were just because I misunderstood the question. I do not really have any proof that logging in with the other method completely locks you out of being able to do it with a pin I have not tested it myself.

Until I asked you to change it you had the exact account.py code from a pip install correct? You could start snooping your network traffic.
Login to firstrade, go to account dropdown, click profile, then click on account status tab.
Inspect the page go to network, and make sure you see "https://invest.firstrade.com/cgi-bin/account_status" and "https://invest.firstrade.com/scripts/profile/margin_v2.php" in the network urls after a filter. You should see requests and responses there too. I do not think it's your user-agent since you can log in and most users have been able to use this ok. It is always a possibility because of the nature of it being reverse engineered, but I do not think thats it.

Yes, I hadn't changed anything from your pip install until you asked me to add the print statements. And I get it I just signed in like that and then found this API.
ALso I can go to the first one, the account status. But the second one gives me this as the response on the website itself:

Did you go directly to that page? Or click through the buttons.
You need inspect the page and navigate to the page yourself then look at the traffic. Going directly to the page will not work.

Oh should I go to firstrade and then inspect and find that page? How?

because I don't see account status one

or the other one

Yes you have to navigate to it with the inspection open in the browser.
Login, hover over account, click on profile, click on account status tab. You should now be able to find those urls

I followed those steps and I still go to it and double tap the thing in the network and it still gives for the margin_v2.php one the blank white screen with JSON error

So when you navigate to it in firstrade it shows that error? Is the account fully approved?
Is the inspection/network tab open before you navigate to this?

the inspection/network tab is open, and I think it is, I signed up yesterday evening and they sent an email saying congrats

This is the email conformation, if it is possibly due to the fact that the account is not funded yet because the ACH transfer is processing, then maybe. Again I'm not sure

If you navigate to what I asked you to above and it gives you an error I would say wait for the ach to complete or email firstrade support. It should not do that.

Alright then, I've emailed their support and I will give you an update! Thanks for your help and I hope I can use this API!

No problem. I will do my best to help you get it figured out. Or fix it if its on the api end.

Hey update, it works now, I have no idea what changed. I literally ran in just cause I wanted to try it and now its displaying everything. I do have a quick question. When I run the code every time do I have to delete the .pkl file (the cookies file) because today I ran it and it said credentials are incorrect and then I just deleted the .pkl file and tried again and it worked?

Awesome! Glad to hear it.
As for the pkl file:

Please be very cautious with where you save this file and how you handle it. It is unencrypted and has your session cookies etc in it.
That being said. You should not have to delete your pkl file everytime it should carry over. I have not ran into this problem myself yet, but let me know if it continues to happen. I will leave this issue open for a few more days.

Hey, everything seems to be working perfectly! I appreciate your help and your time. This API is amazing and I'm glad that I can use it. I was wondering if we can continue to chat, maybe I can grab your discord?

hey @MaxxRK I have another problem with it. Every time I run my script and then log into firstrade later, the script fails logging into firstrade and kind says the the credentials are wrong. How can I fix that?

My discord is maxxrk. Feel free to message me there.


NANs in LAND mode

When the autopilot is in LAND mode (and maybe some others) it sends a goal=[x, y, NAN]. On the local planner side this goal through the whole calculation resulting in a cost-matrix full of NANs etc. This does not really affect the performance, as we are not doing any avoidance maneuvers in land/takeoff mode and the planner recovers as soon as it gets a valid goal again. But still this should be fixed, also because processing NANs is slow and should be avoided anyway.
Test: If you display the /cost_matrix topic in RVIZ,  the matrix will turn yellow if it contains NANs.

This is not a bug, meaning that NAN in PX4 is a not controlled output. In the case of a land, PX4 doesn't control the z position but only velocity. If we set the position we will never be able to land properly given the error in z.
The only thing we can do is set the goal position in z to zero but then we need to ignore that position on the waypoint generation side.

yes, that is what I mean. I think it needs some discussion on how to best handle it, but processing all NANs through the local_planner is not a good solution in my opinion. It is not urgent, I just wanted to note it here.


epistasis

This might not be the right tracker, but this is something we should think about. It's a bit of an inadequacy with the bioGRID format, AND it might be useful int he context of Canto changes.

Genetic interactions could be more strongly supported, i.e. annotations if two mutants show a synthetic (additive) or epistasis (or suppressive) phenotype. It seems (to my knowledge) difficult and/or not possible (synthetic: yes; epistatic/buffering: no).

epistasis data are currently not provided â€” to my knowledge â€” for curating data/papers in Canto

Pathways with epistasis, intermediate and final outcomes

future doc

I'm sure that there are other tickets but I will put this on the next grant for now. I can't imagine that we will get to it in this grant cycle


vieb: 6.0.0 -> 6.1.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/vieb/versions.
meta.description for vieb is: "Vim Inspired Electron Browser"
meta.homepage for vieb is: "https://vieb.dev/"
meta.changelog for vieb is: "https://github.com/Jelmerro/Vieb/releases/tag/6.1.0"
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

Warning: no invocation of /nix/store/3lx2sbdggcvwd4vcbn68lq5pvzv53m4a-vieb-6.1.0/bin/vieb had a zero exit code or showed the expected version

0 of 1 passed binary check by having a zero exit code.

0 of 1 passed binary check by having the new version present in output.

found 6.1.0 with grep in /nix/store/3lx2sbdggcvwd4vcbn68lq5pvzv53m4a-vieb-6.1.0

found 6.1.0 in filename of file in /nix/store/3lx2sbdggcvwd4vcbn68lq5pvzv53m4a-vieb-6.1.0

directory tree listing: https://gist.github.com/a1439bcbfeba0ca341c2bd2dd6a0cf00

du listing: https://gist.github.com/2e9d97ba4d76c32d44774e6d686ad986

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
vieb

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/3lx2sbdggcvwd4vcbn68lq5pvzv53m4a-vieb-6.1.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A vieb https://github.com/r-ryantm/nixpkgs/archive/f0380192311f0d907290e80e8fee4895640b942b.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/3lx2sbdggcvwd4vcbn68lq5pvzv53m4a-vieb-6.1.0
ls -la /nix/store/3lx2sbdggcvwd4vcbn68lq5pvzv53m4a-vieb-6.1.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

vieb

Maintainer pings
cc @gebner @fortuneteller2k for testing.

@ofborg eval

Result of nixpkgs-review pr 138872 run on x86_64-linux 1

1 package built:

vieb


create Dimension3

It would be nice to have DOT/Dimension3 for use in Natural Selection, and it does not currently exist.  ESTIMATION/Dimension3 exists, but it's pretty raw.  So I'm going to create DOT/Dimension3, with API similar to DOT/Dimension2.

Decided that I don't need this after all in Natural Selection, so closing.

Reopening.  I once again need Dimension3 -- see https://github.com/phetsims/faradays-electromagnetic-lab/issues/156.
I also see that @jbphet created a sim-specific version, estimation.Dimension3.

@jonathanolson please review Dimension3.   I copied Dimension2 and modified it.   I deleted swapped because it didn't make sense.  And note that Dimension3 is being used in FEL and Estimation.


v2 libraries require AWS SDK v1.11 to run

Since https://github.com/aws/aws-xray-sdk-java/issues/43 this library has provided compatibility with v2 of the standard AWS SDK. However, there are still a large number of dependencies on the (old) v1.11 SDK which means that it's necessary to have both sets of libraries on the classpath for this to work correctly:

potential naming conflicts / code errors arise because a lot of classes are identically named (although in a different package structure)

increases the bulk of applications since we need to bundle jars for both v1.11 and v2 SDKs

additional complications such as having e.g. two sets of connection pools (one maintained by each SDK) which can lead to obscure bugs

Ideally, it would be possible to run using exclusively the v2 SDK: this is potentially quite a big undertaking since it would require rewriting large parts of the core package to remove any dependencies or v1.11, or else creating a new core-v2 project largely as a copy of core and rewriting the necessary parts.

Hey,
Thank you very much for bringing this to our attention. As of right now, this dependency is required because the X-Ray SDK uses version 1.11 of the AWS SDK to generate a client used for our rule and target poller threads. We aim to have the dependency on v1.11 of the SDK by the next major version release of our Java SDK. Please stay tuned.
Thanks!

Are there any further updates on this or timelines for when it might be released?

Hi @annedroiid,
We have rewritten the core X-Ray SDK to remove any dependencies on AWS SDK v1 in #145. However, we exposed references to AWS SDK classes in some of our public APIs, and as such we must maintain the dependency until our next major version, since removing it will constitute a breaking change.
We can't provide an official timeline on a 4.x release, but the dependency will be removed then.

Hi @willarmiros,
I hope u meant 3.x (not 4.x)? 😄

@humanzz I sure did! Thanks for catching that.

We have rewritten the core X-Ray SDK to remove any dependencies on AWS SDK v1 ... our next major version, since removing it will constitute a breaking change.

Do you have any advice on how to implement generating custom subsegments using only SDK v2? I mean, by adding a bit more library code to one's project, to then use it in their code, before AWS SDK V3 is released?
Perhaps this could help in eliminating the dependency on AWS SDK V1, in order to avoid exposure to vulnerabilities present in SDK V1.
The functionality I mean: https://github.com/aws/aws-xray-sdk-java?tab=readme-ov-file#intercept-custom-methods.

Given AWS have announced that v1 of the Java SDK is being end-of-lifed in the next 18 months; it would be lovely if this got some love from AWS: [https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-aws-sdk-for-java-v1-x-on-december-31-2025/]


Update field.upload.php

Add SVG image support

Just to make everyone aware, there’s discussion about this regarding potential security concerns. From what I recall, the issue is that an SVG could contain JavaScript that would be automatically executed by browsers. See https://github.com/w3c/svgwg/issues/266 and Active Content Injection with SVG Files.

@jensscherbl is right. I do not want that in the core. If you want to be able to use it @byura I would recommend using a custom validator file: manifest/validators.php.


Image resize option

Resize of image is not working in this plugin. How to enable this option? In Newsletter plugin is working. I want to use webpage plugin.
Thank you!

Closing this as I don't see any issue with image resizing in the current demo (probably was an issue with some previous version)


Keychains Index

cip:
title: Keychains Index
author: Michael Sena (http://github.com/michaelsena), Joel Thorstensson (http://github.com/oed)
discussions-to:
status: Draft
category: Standards
type: RFC
created: 2020-05-22
requires: -Add CIP for Tile-
replaces:

Simple Summary
Keychains Index is an index of a DID's keychains.
Abstract
Decentralized identifiers (DIDs) have a set of keys (i.e. signing, encryption, etc) that are controlled by a seed. Sometimes however, it is desirable to authenticate a DID or perform other actions using additional keys. Examples of this might include crypto keys from various networks or wallets.
The Keychains Index defines an extensible directory of a DID's keychains. It simply contains keychain names and links to documents which store the key material for the keychain. By standardizing how various keychains are associated to a DID, the Keychains Index expands how a DID can be controlled and the possibilities of what it can do.

Keychains Index is a subdirectory in the Identity Index Protocol (IIP) and is often linked from the Root Index via the profiles property.

Motivation
Extended DID Functionality:
Improved Key Management: more than just a seed, adds resilience
Flexibility of multiple keychains:
Specification
The Keychains Index specification consists of a doctype, schema, and table.
Doctype
Keychains Index is a tile doctype (CIP-N) whose content adheres to the schema below.
Schema
The Keychains Index schema defines a key-docId store which maintains a list of properties and values. The properties are strings that represent keychain names and the values are the Ceramic docId of the particular keychain.
{
  "$schema": "http://json-schema.org/draft-06/schema#",
  "$ref": "#/definitions/KeychainsIndex",
  "definitions": {
    "KeychainsIndex": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "pattern": "^ceramic:\/\/.+"
      },
      "title": "KeychainsIndex"
    }
  }
}

Table
The Keychains Index Table (coming soon) contains the standard set of properties that may be contained in any given Keychains Index. New properties can be added to the table by following the steps below. Additional properties not found in this table may be stored in any Keychains Index, however they may be less interoperable since others may not know what they represent. Here are some common examples of properties stored in the Keychains Index:

auth: a link to an Authentication Keychain, which contains authentication related data for a DID
authPublicKeys: a link to an
legacy-3box: a link to a Legacy 3Box Keychain that is used to encrypt/decrypt data kept in 3Box prior (date of the architecture migration)

How to add a new property to the Keychains Index Table

Choose a unique, descriptive property name.
Add a description for your property.
Submit a PR to the CIP repository updating the Keychains Index Table (coming soon) with your property.
Mention the authors of this CIP in the comments of your PR.

Example
An example Keychains Index that includes auth and legacy-3box properties.
(to be updated)
doctype: tile
schema: <insert canonical schema for Keychains Index>
content:

```json
{
  "auth": "ceramic://bafyljsdf1...",
  "legacy-3box": "ceramic://bafysdfoijwe2..."
}

Suggested Usage
Root Index: Keychains Index provides a directory of profiles, however keychains are just one type of resource that can be associated with a DID. The Root Index provides a top-level root directory for resources, and can contain a property called keychains which stores a link to a Keychains Index document. The recommended path from a DID to the Keychains Index is: DID > Root Index > Keychains Index.
Rationale
Extensibility & Flexibility: It is impossible to predict all of the types of keychains that will need to be associated with any particular DID. Therefore Keychains Index was created to function an infinitely extensible directory that can support any number of keychains.
Decentralization & Trust: Keychain directory information is data that needs to be globally-available, censorship-resistant, and live permissionlessly in the public domain (not on any single server). Additionally this information should be owned by a DID and will need to be updated from time to time. These requirements make Ceramic the most appropriate platform for publishing this content.
Implementation
Keychains Index Schema: The version of the Keychains Index schema defined in this CIP can be found at ceramic://bafy.../?version (coming soon).
Keychains Index Table: The table containing standard Keychains Index properties can be found here (coming soon).
Libraries: Not yet available.
Copyright
Copyright and related rights waived via CC0.

@oed should this be a String Map (CIP-9) or a DocId Map (CIP-10) schema? My thinking is String Map because there might be a scenario where a keychain is controlled by some external service or something? Thoughts?

Stale, closing.


dom-repeat doesn't sort properly when updated with a larger array

When using dom-repeat with an items array and a sort attribute, it will properly sort the items.  However, if I update the items array from a callback handler to a new array that is longer than the previous one, then it will not be sorted properly.  It appears that the items are actually sorted in the correct order, however the items start somewhere in the middle of the list and then wrap around.  It appears that the number of items wrapped around at the end is equal to the same number of items that was in the previous items array.  So, I would suspect this bug is due to some DOM node reuse perhaps?
To clarify the array ordering, if the previous array had 3 items and the new array has 10 items, then the new sort order is: 3, 4, 5, 6, 7, 8, 9, 0, 1, 2
As a workaround I was able to get the correct sort order by delaying setting of the new array in the callback as follows.  (index is the property bound to items in the dom-repeat)  I'm not sure why this helps.
event_callback(e:CustomEvent) {
    setTimeout(()=> { this.index = e.detail.response; }, 0);
}

I think this should be this.set('index', e.detail.response)

Yeah, I tried using set() also, it didn't make a difference.


add entry to the changelog to make @omab life easier

ping @tauceti2 :)

Done on my pull request to upstream.


Message Center email alerts headers

A consideration for potential email tagging for main alerts posted on Message Center, could you all provide any type of tagging or email headers used for critical alerts such as Data Privacy as some alerts send emails with the MC number of some other ones such as Data Privacy only recommend to go consult the original message on the Message Center.
Thank you
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 29f3771a-247c-4f85-992a-e671285c70bd
Version Independent ID: f3c2890a-2470-9349-ff77-924cf8566365
Content: Message center in the Microsoft 365 admin center - Microsoft 365 admin
Content Source: microsoft-365/admin/manage/message-center.md
Service: microsoft-365-business
GitHub Login: @KwekuA
Microsoft Alias: kwekua

@fbarbier63 Thank you for your feedback. Since this is a technical question, I'd recommend you leave a feedback on our main feedback portal (https://feedbackportal.microsoft.com/ )  One of our Dev/Product team members will be able to help you out.
Hope this helps!
Thanks
Sri

@msbemba Thank you very much for the contribution and sharing this explanation. @fbarbier63 Hope this comment is helpful for you. Considering the nature of the issue, as advised, please open a service ticket in your tenant and follow with them for the resolution. We proceed to close it as here we are limited to documentation fixes and improvements only.
We will be very happy if you can share the outcome or resolution with us if you see documentation update is required. We will certainly update this documentation with that valuable information. Thanks again, for taking out some time to open the issue. Appreciate and encourage you to do the same in future also


How to add objects to the existing map?

Hello,
I have only a little understanding of unreal engine and I've been trying to modify the existing map (Town03), deleting some of the objects and buildings and adding new ones using UE editor.
After adding objects to desired location and saving, it is shown on editor's viewport but not in carla world when I launch the server.
Is there anything I am missing?
Thank you for your time!

Hi @c1enet
If you hit the play button you will be able to connect your python scripts there, with your new modified scene. If you want you can make a package (using make package on Linux), that will create a build of the project withh your current changes on the editor.
Hope this helps

@marcgpuig Thank you for your reply.
I think that's what I did but it didn't work. Somehow updating client using ./Update.sh sorted it out.
But now, I am having another issue. When I record the Lidar data (ply). It only shows the half of the radius in one file, which didn't happen in 0.9.3.
Any idea?
Thank you!


Incorrect QueryParams encoder used in ApiClient

Hi,
We have encountered an issue with the ApiClient class when using it to connect to some SAP APIs.
The problem is due to this line:
https://github.com/SAP/cloud-sdk-java/blame/9d6b93fd41ce357ef61702eeb4e086cd3bc90aa1/datamodel/openapi/openapi-core/src/main/java/com/sap/cloud/sdk/services/openapi/apiclient/ApiClient.java#L704
URLEncoder.encode((String)values.get(i), "utf8")) is good for encoding path variables, but when used for Query parameters, it produces incorrect encoding (for example white space is encoded with + instead of %20). This is causing problems when using API endpoints like  SAP Identity Directory API where we have "filter" query parameter with specific syntax.
Example:
Using a filter by e-mail address, where the filer is "filter=emails.value eq<EMAIL_ADDRESS>https://<tenant>.accounts.ondemand.com/scim/Users?filter=emails.value eq<EMAIL_ADDRESS>The expected encoding, that works for the API endpoint is:
https://<tenant>.accounts.ondemand.com/scim/Users?filter=emails.value%20eq%20%22john.doe%40company.com%22
The actual result is:
https://<tenant>.accounts.ondemand.com/scim/Users?filter=emails.value+eq+%22john.doe%40company.com%22
Which leads to parsing error at the endpoint ({"status":400,"message":"400 : "The provided filter is invalid.Parsing error.""})
There is no way to influence the encoding since the URLEncoder.encode is used prior to the final call to the destination.
I would suggest replacing the above mentioned line with this encoder:
https://docs.spring.io/spring-framework/docs/3.0.x/javadoc-api/org/springframework/web/util/UriUtils.html#encodeQueryParam(java.lang.String, java.lang.String)
like this: UriUtils.encodeQueryParam((String)values.get(i), "utf8"))
Otherwise, the OpenAPI client can't be used for the mentioned scenarios.
Note that passing already encoded values like emails.value%20eq%20%22john.doe will lead to double encoding of the % symbol like
emails.value%2520eq%2520%2522john.doe which is also incorrect and leads to syntax errors
Best regards,
Marian

I have implemented a fix for this. If you add me as a contributor, I can push a branch with the correction.

Thanks for contributing! Please fork the repo and push your changes to your fork. Then you can raise a PR to the main repo and we'll take a look 😉

Thanks for your contribution 🎉


Dialyzer error: lib/tx_build/preconditions.ex:88:call The function call will not succeed.

Precheck

[x] Do a quick search and make sure the bug has not been reported yet.
[x] Please disclose security vulnerabilities privately at<EMAIL_ADDRESS>[x] Finally, be nice and have fun!.

Description
There is a dialyzer error: lib/tx_build/preconditions.ex:88:call The function call will not succeed.
Environment

Elixir & Erlang/OTP versions (elixir --version): Elixir 1.13.4 (compiled with Erlang/OTP 24)
Operating system: Linux Ubuntu 22.04 LTS

Current behavior
When running mix dialyzer in the terminal, the following error is shown:

Expected behavior
No errors from the dialyzer.

This happened due to a bug in a typespec of Preconditions in StellarBase (https://github.com/kommitters/stellar_base/issues/190).
So here (Stellar SDK) was only necessary to update the StellarBase library, which was done in the PR #230.
Once the v0.11 is released this issue will be closed! 👌🏻

Fixed on the already released v0.11.0 ! 💯


v1.3.2 🚀

As all changes are public made available via PRs, you must agree to the terms of before making a contribution:

[x] I represent that each of my contributions is entirely my original work
[x] I have sole ownership of intellectual property rights to my contribution
[x] I approve that the community is free to use my contribution

Make sure that you have checked all tick boxes before this PR can be approved.

Additional fix for #37


RioTcpServer.cs typo?

public const int MaxOutsandingCompletionsPerThread =
Should be MaxOutstandingCompletionsPerThread?
https://github.com/dotnet/corefxlab/blob/010238eb489ccfb04a47774cc606653afb82464a/src/System.IO.Pipelines.Networking.Windows.RIO/RioTcpServer.cs

https://github.com/dotnet/corefxlab/blob/697b5cc9afb4ba7ec7c18faed028869e7cabb71d/src/System.IO.Pipelines.Networking.Windows.RIO/RioTcpServer.cs#L19

/cc @pakrym

System.IO.Pipelines.Networking.Libuv/UvTcpConnection.cs got deleted as part of the repo clean-up. https://github.com/dotnet/corefxlab/pull/2244
Hence, closing this issue.


Add functional test that runs the sample site and verifies it works

@Eilon I started to work on this then realized something similar exists in MVC repo. Do we just want to move that to the Antiforgery repo? If not what are the differences we want to cover?

The purpose of having a test is to make sure the sample works and keeps working.

Closed in #33


Improve search provider method binding accuracy

SearchMethodBindin.incomingServerRequestMatchesMethod handle search parameters which start with "_" (for example: _lastUpdated) in wrong way. (If exists search method without _lastUpdated which match search request it could be taken).
Fix for " _lastUpdated" and "_has".

@jamesagnew could you please have a look.

Heya @mykhsystematic  we are doing some spring cleaning over here and I see this PR is 2 years old. I am going to close it for now as our codebase has heavily changed, but if it is still needed, please feel free to re-implement against master, and ping me on the pull request. I can try to ensure it gets through.


address possible race condition case

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

6 of 6 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
62

Relevant Lines:
62

💛  - Coveralls


Bulk insert stories on fetch

Currently we insert one doc at a time, we should batch this

Done in #27.


Prepare for release 4.1.0

I'm putting the release date at the beginning of next year for convenience, but I don't have a particularly strong reason for that.
PRs that 4.1.0 is waiting on: #735

Coverage remained the same at 98.641% when pulling 344f598a7f9c7bc2cb18d3d73ba3d38b475e73e8 on isaacbrodsky:release-4.1.0 into 975de7a103ae8dfc22a629ef59890de283a5d8d8 on uber:master.


Azure Resource Group Deployment - Override template parameters not working when using pipeline variables

Re-creating the issue with details.
Azure Resource Group Deployment - Override template parameters button NOT working when using pipeline variables
Error: Failed to download the template file from the given path '$(System.DefaultWorkingDirectory)/$(Release.Artifact_IaC)/$(Release.Path_IacShrd)/template002-ApiContent.json' with the following error: There is no such artifact '$(Release.Artifact_IaC)' linked to this release pipeline.

I've a scenario where it's important. In ARM template deployment task, we do not mention the template path manually by selecting 3dots button, instead reference this in pipeline variable and put the value. for example:
$(System.DefaultWorkingDirectory)/<published artifact (i.e drop)>/$(TemplateFolderRoot)/$(TemplateFile)
and in pipeline variable:
Name                                    Value
TemplateFolderRoot             src\ARMTemplates\xyzProject
TemplateFile                         template002-ApiContent.json
I hope it makes sense. Let me know please if you require any further information.

Hi @zeeshanmcp12,
The user defined variables will be only get substituted during runtime(when the pipeline executes), so the template file path is expected to be a literal string, not consisting of variables. You can also put the override parameters values manually(like you are doing for template path). Provided that there are no syntax errors in the manually substituted(you won't be able to validate the syntax except during runtime), it should work during pipeline execution. Let us know if this workaround works for you

@zeeshanmcp12 Does the above workaround work for you?

Thank you for the comment @tejasd1990 was damn busy in some deliverables. I will try this out and let you know with the results.


Stroke line visible on step circle

There is wired stroke link appearing on step circle and it is random at different places it is rendering differently. At some place is looks good but a few circles show stroke line. I had attached screenshots where you can see horizontal or vertical full / half white stoke line. It is visible in android and ios both.

Anyone have an idea why it is happening and showing a white stroke line. Any workaround to fix it?

I had solved this issue by making change in StepIndicator.js file
stepIndicatorContainer: {
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-around',
backgroundColor: 'transparent'  // change the colour to "rgba(1,0,0,0)"
}

@amol251 : Thanks It's fixed


Feature request: socks5 frontend for client

hello, thanks for providing this awesome product.
one thing that's been bothering me for quite some time with all VPN solutions is that they all require elevated privileges for creating tun/tap/bridge devices, and having to mess with the routing table, this makes usage of VPNs quite complex. in order to circumvent these issues, there exist dozens of docker images that encapsulate the VPN software into a container or VM, and provide a http or socks server to interface with the host. however this solution has its own drawbacks, such as high resource usage or requirement for elevated privileges for some container runtimes.
with a built-in socks5 or http proxy frontend for the client, no elevated privileges at all are required, and the vpn connection could be used without issues by regular users with proxy-aware applications like webbrowsers or IRC clients, and even with most non-proxy-aware applications using a preload hack like proxychains-ng, which would even allow it to chain the VPN with other proxy solutions. the client could even run in foreground mode without having different tools that communicate with background services.
example usage: vpnsocksclient --listenip <IP_ADDRESS> --port 1080 --vpnconfig foo.conf, client runs in foreground, and after usage the user can just hit CTRL-c and be done.
the only drawback is that it's TCP only, though this is sufficient for the vast majority of internet services.
the socks5 protocol is very simple and straightforward to implement, i've written one myself and the core is implemented in roughly 500 lines of C: https://github.com/rofl0r/microsocks/blob/master/sockssrv.c .
please let me know what you think about this proposal.

Hello, that's an excellent idea!
Right now the client service forces the association of a connection to a virtual network adapter, but removing the limitation is easy.
Implementing a SOCKS5 server should be easy as well, we already have a client: https://github.com/SoftEtherVPN/SoftEtherVPN/blob/f18837b49156bdc27e5b12485102dcdaf4315a91/src/Mayaqua/Proxy.c#L214-L525

Socks server is probably not so hard to do. And Socks 5 actually has UDP support as well.
However without the help of tap devices, do we have to do L2 to L3 bridging by ourselves? That would require lots of things like ARP, DHCP, ICMP, IPv6 PD etc. We are already doing a part of these at the server side but I'm not sure about the client.

I think the feature would only be used to route internet traffic towards the VPN server.

And Socks 5 actually has UDP support as well.

that's true, however implementing it seems a lot more elaborate than TCP side of things. i for my part would be happy to have "just" TCP.

However without the help of tap devices, do we have to do L2 to L3 bridging by ourselves? That would require lots of things like ARP, DHCP, ICMP, IPv6 PD etc.

from my understanding, you'd just get incoming requests to connect to a specific ipv4/v6 or hostname, establish the TCP connections, and then forward packets from both sides. i don't think we'd need to deal with any of ICMP, ARP, etc.

Sorry I don't get it. Without the help of a virtual NIC, how can we assign an IP to the client? Without that, how can we make TCP connections?

Without the help of a virtual NIC, how can we assign an IP to the client?

you don't. the VPN client uses the existing internet ip to connect to VPN server, then communicates with it as per VPN protocol. additionally, it creates a server socket listening on a specified port. the user then configures e.g. his browser to use that port as SOCKS proxy.
when data is received on the SOCKS port, it contains instructions to which IP/port tuple to connect to, so the VPN facing side of the code just tells the VPN server to establish a connection there, and then sends/forwards data received on that socket to the VPN server.

What you are saying is encapsulating SOCKS within SE VPN procotol. But SE VPN is layer 2 which means the client is expected to send Ethernet packets to the server. It can't just send TCP payload which is layer 4. To fill the gap we need to maintain MAC / IP address even virtually.

when you look at a packet that is actually going out the WAN interface (using wireshark/tcpdump), it's probably an ordinary TCP packet, which contains inside of it a fake ethernet packet with ethernet header etc. the VPN client just has to store somewhere in its memory the IP it's been assigned to by the VPN server and doctor that into the fake ethernet packet sent to the destination (VPN server).


[Doc] Correct minor format issue

Fixes a minor format issue in doc.

Thank you @EsoragotoSpirit for your first contribution.


Review busybox container for rancher-audit-log

What kind of request is this (question/bug/enhancement/feature request): enhancement
The community busybox image (default) used for the rancher-audit-log container can be subject to rate limiting, review usage or the location where this is pulled.
gz#14039

facing this issue currently that the busybox image can't be pulled due to Docker rate limits.
32m         Normal    Pulling             pod/rancher-7858c99595-x8pbb    Pulling image "busybox"
33m         Warning   Failed              pod/rancher-7858c99595-x8pbb    Failed to pull image "busybox": rpc error: code = Unknown desc = Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

Is there already some workaround? Or is it planed to put this image under the Rancher namespace?

facing this issue currently that the busybox image can't be pulled due to Docker rate limits.
32m         Normal    Pulling             pod/rancher-7858c99595-x8pbb    Pulling image "busybox"
33m         Warning   Failed              pod/rancher-7858c99595-x8pbb    Failed to pull image "busybox": rpc error: code = Unknown desc = Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

Is there already some workaround? Or is it planed to put this image under the Rancher namespace?

It looks like this was at least mitigated so that we would only pull the image if it wasn't already present. https://github.com/rancher/rancher/pull/30648


Prettier formatting

Description

adds dependency on plenary.nvim
vendors ansicolors.lua
colors symbol kind
formats line and symbol into columns
hides the file path and doesn't fuzzy match on it

Fixes #29
Notes

Any type of feedback is welcome 😄.

Thanks for the PR, i look at it and looks good to me, the only thing i would like to have it's an option to enable/disable the "prittier formatting", what you think about that?

I don't think a "enable/disable" is a good config opt to add, but another avenue could be to allow the user to provide a function to customize the formatting to whatever they want.

And could also expose two functions, the one that this PR implements and a "plain" one that retains the old behavior.

Yeah sounds good, i was thinking on a "fast" change to merge the PR.
I think we can merge this PR and see if someone complain for the change on formatting (i don't think it will happen, but this was my reason on asking you the option stuff), then in case we can make the changes to have both the old and the new behavior.

Thank you! Feel free to merge 👍.

@gfanto probably need to update the gif in the readme now 😄 .

Ehehehe good point! I've updated it right now :v:

Just noticed this after updating my packages. Could we add an option for getting back the file path? I find it very helpful to know what file references are coming from, for example for :References.

@aljoscha I opened a proposal for this that I'll get to implementing soon (given we reach a decision on the right direction) #31

@aljoscha @mhanberg I've made a fast fix now with a new option to allow you to enable/disable the "pretty formatting"
The default is set to the old version and to enable the "pretty formatting" you have to add the configuration let g:fzf_lsp_pretty = v:true

Thanks a lot for the prompt response to this! :blush:


Adding an index.ios.js file

WHAT THIS PR DOES
I literally just added the same code from index.android.js into the newly created index.ios.js because every time we installed, we had to do so manually. We're only using this library for Android currently, but we cannot run the app if this iOS file does not exist.
HOW TO TEST THIS PR
When you npm install or yarn install and run on iOS, you should be able to do so without an error telling you that this file does not exist.
ADDITIONAL INFORMATION
I just wanted to help out with this PR, hope it can help other folks -- thanks for all your great work on this library!!
COMMIT HISTORY

adding index.ios.js so that i don't have to manually add every time i install.

Thanks!


fact gathering optimization for scalability

The gather and delegate facts task is not scalable, and requires in general O(N^2) fact-gathering operations per host, but it is not clear to me why that should be.  I have run tests with this patch that just gathers facts on a host ONCE, instead of N times, and ceph-ansible succeeds just the same.  The effect on memory consumption and time to execute this task is dramatic.  Particularly for HCI configurations, this could make a big difference in scalability of ceph-ansible.
--- /usr/share/ceph-ansible/site-docker.yml.sample.v31_orig	2018-04-30 19:53:30.539611319 +0000
+++ /usr/share/ceph-ansible/site-docker.yml.sample	2018-04-30 22:05:00.561611319 +0000
@@ -24,26 +24,16 @@
     - name: gather facts
       setup:
       when:
-        - not delegate_facts_host | bool or inventory_hostname in groups.get('clients', [])
+        - not delegate_facts_host | bool

     - name: gather and delegate facts
       setup:
-      delegate_to: "{{ item }}"
-      delegate_facts: True
-      with_items: "{{ groups['all'] | difference(groups.get('clients', [])) }}"
       when:
         - delegate_facts_host | bool

Here's a graph of ansible RSS and virtual memory consumption before the patch, with --forks 25, 3 [osds] hosts, 3 [mons] hosts, and 80 [clients] hosts, running ansible 2.4.3 and ceph-ansible-3.1.0-0.1.beta8 starting at 18:35:

And here's the same exact run with the patch, starting at 19:56:

elapsed time for this one fact gathering task drops from 5 minutes to about 1 minute, and RSS drops from 8 GB to about 2 GB.

The above patch should not work in general, as @guits explained to me, because ansible modules are interpreting vars about host B on the remote system A, so facts have to be gathered about B on the remote system A to allow these variables to be used (his example below).
However, it may be possible to cut down on the possible (A, B) combinations that have to be fact-gathered to lower the work done in this task from O(N^2) to O(N), where N is the number of hosts in the ansible inventory file.

RADOS clients and OSDs find out about other OSDs, storage pools, etc. by talking to the monitors, not through ceph-ansible.  So in theory it should be sufficient for each non-monitor host to gather facts about itself and about the 3 monitor hosts (so that ceph.conf can be constructed).
we don't need all facts about the monitor hosts, probably just a subset including network information.
monitors have to know about all other hosts so that they can construct crush maps, build MDS filesystems, etc.  But there are only 3 of these, so it's not so bad.

This might not be that hard to verify -- i.e. search for references to ansible "groups" var.  A preliminary search seemed to confirm this.
So the resulting patch might look something like this - only limited testing so far:
    # fact gathering delegation allows modules on remote hosts
    # to access information about other hosts

    # this step allows monitors to know cluster configuration

    - name: monitors gather facts about everyone
      setup:
      delegate_to: "{{ item }}"
      delegate_facts: True
      with_items: "{{ groups['all'] }}"
      when:
        - inventory_hostname in groups.get('mons', [])

    # this step allows any host to construct a ceph.conf, for example

    - name: everyone gathers facts about monitors
      setup:
      delegate_to: "{{ item }}"
      delegate_facts: True
      with_items: "{{ groups['mons'] }}"
      when:
        - inventory_hostname not in groups.get('mons', [])

I am testing this on a 3-node cluster with a single monitor and all other roles defined on the other 2 nodes, using site.yml, and I verified that no fact gathering was done between pairs of non-monitor hosts, therefore it is now O(N) computational complexity.
background: Guillaume Abrioux provided this example illustrating why ceph-ansible requires remote hosts to have facts about other hosts on hand:
# site.yml
---
- hosts:
    - osds
  gather_facts: true

  roles:
    - role: defaults
    - role: osd

# roles/osd/tasks/main.yml
- name: test
  debug:
    msg: "{{ hostvars['mon0']['ansible_all_ipv4_addresses'] }}"

results in output like this:
TASK [osd : test] **************************************************************************************************************************************************************************************************************************************************************
fatal: [osd0]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'ansible_all_ipv4_addresses'\n\nThe error appears to have been in '/Users/guits/GIT/playbook-test/roles/osd/tasks/main.yml': line 2, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n---\n- name: test\n  ^ here\n\nexception type: <class 'ansible.errors.AnsibleUndefinedVariable'>\nexception: 'dict object' has no attribute 'ansible_all_ipv4_addresses'"}
fatal: [osd1]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'ansible_all_ipv4_addresses'\n\nThe error appears to have been in '/Users/guits/GIT/playbook-test/roles/osd/tasks/main.yml': line 2, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n---\n- name: test\n  ^ here\n\nexception type: <class 'ansible.errors.AnsibleUndefinedVariable'>\nexception: 'dict object' has no attribute 'ansible_all_ipv4_addresses'"}

The method in the 2nd comment seems to work.    I do not totally understand why it works yet, particularly with respect to ceph.conf.j2, which has all sorts of references to vars in other groups besides 'mons'.  Guillaume has proposed a much smaller patch that may accomplish the same thing - what does "run_once" addition actually do?

@bengland2 I think I was a bit confused with facts gathering topic but after some tests, it appears  as soon as you've gathered fact 1 time for one node, it's available from any other node.
run_once: true makes the task running only 1 time.
It's just nicer than having something like when: inventory_hostname == groups['all'] | first which would produce a lot of 'skipping' in the log and I think it's better to use run_once: true in case of using --limit

@guits @jtaleric  @fultonj I tried it with 80 computes, 4 OSDs and 3 mons using ceph-ansible-3.1.0-0.1.rc3.el7cp.noarch and ansible 2.4.3.  Memory consumption for this task dropped to near zero, very cool.  But it still takes 10 minutes to get through this one fact gathering task, not as cool.  I think it's doing 1 host at a time.  I'm leaving the issue closed because the memory problem and O(N^2) behavior is fixed, maybe in a future release I'll take another look at the speed aspect.  At least we now have a test methodology.


Optimizations and important bug fix

Changes

Moved @rollup/pluginutils to dependencies since it is used by both the base plugin and the Typescript plugin to determine which files should be transformed.
Added handleHotUpdate hook. Previously, the plugin only implemented the transform hook to compile CSS modules. However, the transform hook is only called after the module has been imported and used on the page (i.e., when Vite recognizes that the module should be included in the final bundle). That means that the user will not get auto-completion for the exports of the compiled module until after the first rendering of the module's components on the page. The added hook detects changes as soon as the module file has changed and compiles the file immediately, making sure that auto-complete works as expected.
Removed isStyled and isRestyled flags from the Typescript template since the applyStyle method is always exported regardless of whether the @tag directive is present.

@zyishai Nice job 👍!
Than you very much for your contributions!
The changes where published v0.5.1


Force landscape mode?

Hi,
I'm putting a CardIOView inside of a UITableCellView, which in turn is in a table view presented as a FormSheet
I'm setting a frame of
    self.cardIOView.frame = CGRectMake(0, 0, self.view.frame.size.width, 400);

Which works perfectly when the iPad is in landscape mode. However, due to the camera view being 4:3, I cannot make it look good in portrait mode - there are bars on the left and right that the camera is not occupying. I want it to be full width in both portrait and landscape with a height of about 250-400.
If I could force the card io view to show its landscape form, then I think it would work. Possible?

So your idea is to have the iPad in portrait orientation, but the CardIOView in landscape?
No, I don't think that will work. The camera feed would still be portrait, and that's what the CardIOView displays.
Might it work if you gave the CardOIView the width of your cell, but a height that is 4/3 of that? And then clip the CardIOView to the cell's contentView?

I got that working! Thanks for the tip. It's a little janky... I have to set a negative origin as well in order to center the aimer frame.
One other question, if you don't mind, the CardIO view seems to be intercepting touches on the cell. The only way I can trigger a didSelectRowAtIndexPath is to tap the CardIO view with 2 fingers. Strange... any ideas on that? I've tried adding a UITapGuestureRecognizer on the cell, cardio view, etc and no luck (I think the tableview intercepts those). I want to be able to toggle the CardIO view on tap.

@jeffblake glad that's mostly working for you.
The CardIOView does indeed have its own UITapGestureRecognizer, to allow the user to force the camera to re-autofocus. If you really do want to take that ability away from your users, you could add your own transparent view in front of the CardIOView and capture taps there.

Got it. Thanks.

:)


Enhance emphasis of 'load older emails' button

We want the Load Older Emails button string to begin uppercase.
We want it to be in the very center of the list item line.
This is a follow-up on #176.

This turns out to be hard. The problem is that somehow the "Load Older Email" Button isn't used in the calculations for the column size

I'm removing it from the milestone

Can this be closed @Paulpanther (esp because there is #187 )