Allow users to specify what is and is not distributed

Usually not all projects, packages, scopes or licenses detected by ORT are included in the distributed/delivered artifact (after building the project)
Proposal: Allow ORT users to specify via .ort.yaml file which detected projects, packages, scopes or licenses are included.

Below the proposal for the format used in an .ort.yaml to mark specific projects, packages, scopes  or licenses as excluded from the distributed artifact. Example is based on revision d8020cb6 of https://github.com/grpc/grpc.
Welcome your feedback
exclude:
  projects:
  - path: "ruby/Gemfile"
    # Exclude a package within above defined path
    packages:
    - id: "Bundler::third_party/protobuf/ruby/Gemfile:"
      reason: "OPTIONAL_COMPONENT_OF"
      comment: "Only using the C++ and Java code of GRPC"
  - path: "java/util/pom.xml"
    # Exclude scope 'test' within above defined path
    scopes:
    - name: "test"
      reason: "TEST_TOOL_OF"
      comment: "Only used for testing GRPC"
  - path: python/compatibility_tests/v2.5.0/setup.py
    # Exclude errors within path defined above
    errors:
      - message: "IllegalStateException: projectVersion must not be null"
        reason: BUILD_TOOL_ISSUE
        comment: "Python issues which need to be fixed in GRPC"
  # Examples on how to exclude entire projects from tree
  - path: "Gemfile"
    reason: "OPTIONAL_COMPONENT_OF"
    comment: "Only using the C++ and Java code of GRPC"
  - path: "examples/android/helloworld/build.gradle"
    reason: "EXAMPLE_OF"
    comment: "Java examples of GRPC which only have been used to learn how to use GRPC"
  - path: "src/android/test/interop/app/build.gradle"
    reason: "TEST_TOOL_OF"
    comment: "App used to test GRPC"

# Globally exclude packages below
packages:
- id: "Maven:junit:junit:4.4"
  reason: "TEST_TOOL_OF"
  comment: "JUnit is a unit testing framework for the Java programming language"
# Globally exclude scopes below
scopes:
- name: "test"
  reason: "TEST_TOOL_OF"
  comment: "Standard Maven scope for dependency only needed for test compilation and execution"
# Globally exclude errors below
errors:
- message: "ERROR: Timeout after 300 seconds while scanning file 'samples/SupportLeanbackJank/src/main/res/raw/bbb_sunflower_2160p_60fps.mp4'."
  reason: SCANNER_ISSUE
  comment: "ScanCode is know to timeout on large file such as the video file"

# Possible values for the reason field are listed below. Values are based on SPDX relationship https://spdx.github.io/spdx-spec/7-relationships-between-SPDX-elements/ as SPDX will be ORT's format for data exchange

reason_exclude_project:
  - BUILD_TOOL_OF          # project only contains tools used for building source code which are not included in distributed build artifacts
  - DATA_FILE_OF           # project only contains data files such as fonts or images which are not included in distributed build artifacts
  - DOCUMENTATION_OF       # project only contains documentation which is not distributed in build artifacts
  - EXAMPLE_OF             # project only contains source code examples which are not included in distributed build artifacts
  - OPTIONAL_COMPONENT_OF  # project only contains optional components for the code that is built and not included in distributed build artifacts
  - TEST_TOOL_OF           # project only contains tools used for testing source code which are not included in distributed build artifacts

reason_exclude_package:
  - BUILD_TOOL_OF          # package only contains tools used for building source code which are not included in distributed build artifacts
  - DATA_FILE_OF           # package only contains data files such as fonts or images which are not included in distributed build artifacts
  - DOCUMENTATION_OF       # package only contains documentation which is not distributed in build artifacts
  - EXAMPLE_OF             # package only contains source code examples which are not included in distributed build artifacts
  - OPTIONAL_COMPONENT_OF  # package is an optional component in code that is built and not included in distributed build artifacts
  - TEST_TOOL_OF           # package only contains tools used for testing source code which are not included in distributed build artifacts

reason_exclude_scope:
  - BUILD_TOOL_OF          # scope only contains packages used for building source code which are not included in distributed build artifacts
  - PROVIDED_BY            # scope only contains packages that have to be provided by user of distributed build artifacts
  - TEST_CASE_OF           # scope only contains packages used for testing source code which are not included in distributed build artifacts

reason_exclude_error:
  - BUILD_TOOL_ISSUE       # error is due to way a package is built
  - CANT_FIX_ISSUE         # error can not be fixed require fix by 3rd party
  - SCANNER_ISSUE          # error is due to scanner issue such as time out on a large file

reason_exclude_license:
  - BUILD_TOOL_OF          # license applies to code that is used for building source code which are not included in distributed build artifacts
  - DOCUMENTATION_OF       # license applies to documentation which is not distributed in build artifacts
  - EXAMPLE_OF             # licenses applies only source code examples which are not included in distributed build artifacts
  - FALSE_POSITIVE         # license match is a false positive match by the scanner
  - OPTIONAL_COMPONENT_OF  # license applies to code that an optional component in code that is built and not included in distributed build artifacts
  - TEST_TOOL_OF           # license applies to code that is used for testing source code which are not included in distributed build artifacts

@tsteenbe Interesting approach ... I like using reason codes  :+1:
I wonder if the exclusion of any of  projects, packages, scopes or licenses is not giving too much flexibility and sophistication? Would a path-only approach be simpler to handle both in the data and in the code?
And how would you reconcile this with the simpler CD facet approach?

@tsteenbe - I like the reason codes as well.
Just curious,  did you considered also adding in a way to exclude of file types   (https://spdx.github.io/spdx-spec/4-file-information/#43-file-type)?    I can think of some use cases it might be handy not to inadvertently redistribute something (pictures used for creating backgrounds where the license rights aren't known, etc.)

@pombredanne We choose the projects, packages, scopes or licenses approach as

it is the easiest and well understood approach for our users (based on their feedback) especially for project with 100s or 1000s of dependencies being pulled in via a package manager
it is actually for us easier to implement and we are on a deadline ;-) The Evaluator is not yet implement so we currently have no logic to harmonize various scanners into a single format for which we could do path or files excludes. This is just our first step into implementing an excludes filter, we already had some discussions in the ORT team on a future enhancement to add path filtering but currently don't have the dev cycles.

...And how would you reconcile this with the simpler CD facet approach?
For me I see a easy translation to ClearyDefined facet approach only for me core and possiblly data needs some further thoughts
@kestewart I actually spend some time other types of filters include one on type such as SPDX file types. We choose this approach as it will allow us to offer our users, who are mostly developers, a powerful yet simple and well understood method to filtering.

@mnonnenmacher, could you please comment on the current state of this, what's still missing (if so), and / or whether we can close this?


adds retry mechanism on network failures

👋 Thanks for making this action. We have been using it quite a bit in a high throughput environment.
We have ran into some issues with the Vercel API so we added a simple retry mechanism to avoid failing our CI checks. We've been running it for a few months and it helped stabilize our pipeline.
I tried to find the most compatible retry library to be as "drop-in" as possible.

PR migrated to https://github.com/UnlyEd/github-action-await-vercel/pull/98

#98 merged
Thank you @dlively1 !


Add ability to set labels on image push

Add ability to set labels on image push

fixes https://github.com/vmware-tanzu/carvel-imgpkg/issues/153

@joaopapereira I believe this can be closed now since #552 was merged


fix: add test to insure it can persist reports in multiple formats

Closes: #185

When fixing the override values issue it throws an error:
Error while running user flows. Error: No categories provided.

After debugging A LOT I am sure it not related to the tests.
As it only happens in CI and it works locally on windows and Mac I assume it’s a Linux problem.
will dig further in and update here.


Adding Support for Apache Trafodion and EsgynDB

Which version and edition of Flyway are you using?
Adding support for Apache Trafodion and EsgynDB to the Github version of Flyway.  The support will show up in source files as EsgynDB, but both "Trafodion" and "EsgynDB" will follow the same code path.
If this is not the latest version, can you reproduce the issue with the latest one as well?
This is not really an issue but a set of questions for contributors as we are adding support for another database.
Which client are you using? (Command-line, Java API, Maven plugin, Gradle plugin)
Command-line
Which database are you using (type & version)?
EsgynDB 2.6
Which operating system are you using?
For development I am using Windows on the command-line side.  The EsgynDB database is on a Linux cluster.
What did you do?
It is not clear how the version checks in Database.java work.  I looked at the checks made for other databases supported by Flyway and could not find a consistent pattern that I could use.  I think the current community version is 5.2.4 since that is the one I am using to test my changes.
public final void ensureSupported() {
    ensureDatabaseIsRecentEnough("2.0");
/**
 *  I use 2.0 above as the minimum version of EsgynDB / Apache Trafodion we will support
 *  with flyway
 */
    ensureDatabaseNotOlderThanOtherwiseRecommendUpgradeToFlywayEdition("2.0", org.flywaydb.core.internal.license.Edition.ENTERPRISE);
    ensureDatabaseNotOlderThanOtherwiseRecommendUpgradeToFlywayEdition("2.0", org.flywaydb.core.internal.license.Edition.PRO);
    recommendFlywayUpgradeIfNecessary("2.0");
}

For my testing I just put 2.0 for all the above options.  But I have no clue what versions I am supposed to use in the above functions.
What did you expect to see?
No errors or warnings
Besides this question, I do have some other questions that I hope someone can answer:

Is there a set of regression tests that can thoroughly test new database support that has been added, or an existing one that is enhanced?
Trafodion /EsgynDB does not have an alternate quote, such as $$ instead of a single quote (') for string literals that may themselves have a single quote (') within the sting.  It escapes the single quote with an additional quote.  So a string literal for "John's" will be 'John''s' where in other databases you might use $$John's$$.  How can this be handled in Flyway?

What did you see instead?
WARNING: Flyway upgrade recommended: EsgynDB 2.6 is newer than this version of Flyway and support has not been tested.
This message that I get when I run migrate does not make sense to me in context of the above checks I have made in EsgynDBDatabase.java

I forgot to ask an additional question:

I see that for DROP SCHEMA most database implementations are using DROP SCHEMA ... CASCADE.  Some do a doclean() and then follow that with DROP SCHEMA ... RESTRICT which in effect is the same.  But in the doclean() schema function these implementations are meticulously dropping each object even if they support CASCADE.  Isn't the most efficient way to do a doclean() to just drop the schema and recreate it?  Does that create an unintended effect that is being avoided?

Hi Rohit! Many thanks for your interest. Adoption of these databases into the mainstream is pretty low-priority for us due to their low usage, but hopefully I can be helpful... to take your questions in turn, in your ensureSupported() implementation, all you need is:
public final void ensureSupported() {
    ensureDatabaseIsRecentEnough("2.0");
    recommendFlywayUpgradeIfNecessary("2.6");
}

the two deleted lines only being relevant to database versions supported exclusively in Pro/Enterprise editions, and the second version being the highest version of the database you have tested against (indicating that further testing is needed if a new database version appears).

We have a private set of tests that we can run when support for a database is enhanced, but a completely new set of tests is required for new databases as the large majority of tests are very db-specific.
For the string literal, SQL Server also doesn't have an alternative string literal quote, so maybe the code for it will help?

And finally, yes, DROP SCHEMA ... CASCADE should be sufficient for cleanup (when it's supported). Flyway has grown organically and there may be cases where it doesn't do strictly the most efficient SQL calls - though we will tend to err on the side of safety and accuracy.

Julia,
Thanks for the succinct responses addressing all my questions!  I appreciate the time and effort.  I understand the low usage issue.  Hopefully we can change that over time.  We have more of a presence in China but hope to accelerate our gains elsewhere.
A few minor follow-ups.  These tests for enhancements and new databases, is there a way for me to access them?  We could enhance those tests for Apache Trafodion / EsgynDB.
On the cleanup question, a DROP SCHEMA ... CASCADE would be followed in that case by a CREATE SCHEMA since what you want is a clean schema, right?  Or is the intent of the CLEAN SCHEMA the same as a DROP SCHEMA request?

Also, is there a code review process and could someone familiar with the project review the code changes once I am ready to check-in?
Thanks!

Unfortunately as a low priority feature we don't have resource available in the core team to review a request at this time.

Well, a very large Flyway customer - a global bank in New York that we cannot name, also uses EsgynDB extensively and had requested this support.  Even submitted an issue on this forum.  But I understand your priorities and am unfortunately very familiar with them.
If you can please answer some of the follow-on questions when you can afford the time, it will be greatly appreciated, especially given the lack of a knowledgeable review.
Thanks again!


Faster mobilenet compilation flags

Operand padding should be enabled so all 1x1 conv are vectorized

Can we enable these by default instead? We really don't want benchmarks using different flags than what normal development/profiling/etc is using.

Operand padding should be enabled for CPU by default (otherwise matmuls with sizes not a multiple of the vector size aren't going to be vectorized), not sure if we want to have it have it on be default for GPU g@antiagainst @ThomasRaoux ?

Should be fine to compile; but I'm a bit worried about the copying resulted from pad_tensor. But could give it a try to see how that works. Though the pass requires a parameter; even it's default I'm not sure we can really pick on the same one for CPU and GPU and entirely elide it. So probably we need to stick with this divergence a bit longer.. (Also on the GPU side I'll spend most of my time next trying to improve the basic pipeline; so won't have time to tweak it much too.)

Also a bit context: this is for pulling some recent up-to-date numbers for Stella/Julia. It would be nice to reflect the current status as we have the divergence for some time already; at least for the CPU side let's make it proper. So I'm fine with this go in. :)

If you need local numbers then you don't need to check this in ;)
@MaheshRavishankar has been working hard to eliminate these kind of flags - if he's fine with it then 🤷

(super happy to have faster models and stress the feature - just want to make sure we don't end up making everyone trying to do performance analysis/reproducing compile issues/etc life harder by having the bots use different flags than local execution would give you)

If you need local numbers then you don't need to check this in ;)
@MaheshRavishankar has been working hard to eliminate these kind of flags - if he's fine with it then

+1 for not checking this in to the buildkite performance tracking. As a one of "this is what we can get" measurement, just running this locally is what I'd prefer too.

Yup, sounds good to me!

I think we have the question here "what the automated benchmarks are for?". IMO we should have a way to track "best performance" not only "default compilation performance" otherwise very easy to miss regressions.

We should have both if we want it on (which could be useful) - "current default" + "experimental flags"

@benvanik This is another example in addition to the mmt4d also related where we need the apply graph level rewrite patterns at flow level with symbols or as in the mmt4d case as we discussed turn some dims into dynamic then build multi static versions in HAL (the target dependent dispatches), if we did that we won't need these kind of flags.

I think the question here "what the automated benchmarks are for?". IMO we should have a way to track > "best performance" not only "default compilation performance" otherwise very easy to miss regressions.

The default compilation must be the best or close to the best. We can have a few tricks that give you an extra, but these tricks shouldnt be so load bearing that you need to track them in CI.

@benvanik This is another example in addition to the mmt4d also related where we need th> e apply graph level rewrite patterns at flow level with lazy symbols to be subsisted later in one backend is selected or as in the mmt4d case as we discussed turn some dims into dynamic then build multi static versions in HAL (the target dependent dispatches), if we did that we won't need these kind of flags.

Lets not get into this long discussion here :) . This is unrelated to the change here. I dont see why this needs to be tracked in CI. This is just doing "pre-padding". CI can track the performance of "matmul" that is vectorized. The trick to get all matmul "padded" to get them vectorized is kind of an orthogonal thing.

I think the question here "what the automated benchmarks are for?". IMO we should have a way to track > "best performance" not only "default compilation performance" otherwise very easy to miss regressions.

The default compilation must be the best or close to the best. We can have a few tricks that give you an extra, but these tricks shouldnt be so load bearing that you need to track them in CI.
For matmul code generation the best we can do is to pad the entire operand where padding parameter target specific (even for the same target different architectures requires different padding). thats why I was raising this here

@benvanik This is another example in addition to the mmt4d also related where we need th> e apply graph level rewrite patterns at flow level with lazy symbols to be subsisted later in one backend is selected or as in the mmt4d case as we discussed turn some dims into dynamic then build multi static versions in HAL (the target dependent dispatches), if we did that we won't need these kind of flags.

Lets not get into this long discussion here :) . This is unrelated to the change here. I dont see why this needs to be tracked in CI. This is just doing "pre-padding". CI can track the performance of "matmul" that is vectorized. The trick to get all matmul "padded" to get them vectorized is kind of an orthogonal thing.
Sorry, Not sure I understand what do you mean by tracked in CI.


Result Aggregation

Aggregation is a critical feature of CubScout. In fact, It is its point in existing. For its initial implementation, simple weighted averages will suffice. As for where to put these weights in the database, they could be associated with the table for scorecard fields. However, this could interfere with some methods of resolving #4. The weights would thus need to be on their own table.
For the representation of the weights in JSON for Responses, Request Bodies, etc, embedding them in the field would be acceptable. However, it may be easier to have them in a separate array.

suggestion for api endpoints: /events/{event}/results?scorecard={scorecard} and /games/{game}/results?scorecard={scorecard}

The math for this involves a lot nested averages:

the final value is the weighted average of the performance of the robot in various categories.
The performance of the robot in a particular category is the average of the robot's performance in that category in certain matches (which matches being decided by which api endpoint is being used).
The performance of the robot in a a particular category in a particular match is assumed to be the average of user reports for that match.

I'm not sure if there is room to simplify the maths here.

The part of this that needs to be done by the MV milestone is merged in #16. Bumping milestone tp Auburn

Since the event endpoint it the only pat that is critical, the label is being downgraded to minor


signaling mechanism for layers

currently we dont have any information when additional layers loaded in a compound are updated, this because in asset construct we copy/paste the layers.
whet we need to do is probably to create a "Layer Loader" plugin that tracks this info.
This is an ongoing discussion between dmo and pberto, I am just putting it here for the record.

Done, @dmo-j-cube let me know if anything is missing.


PLOT 69 does not set the current position.

PLOT 69,x,y should set the current position to X,Y ; it appears not to.
e.g.
PLOT 69,100,100 : PLOT 5,200,100 doesn't draw a line*
PLOT 4,100:100:PLOT 5,100,100 does
Actually it does, but it draws it from a random ? place, probably the initial uninitialised drawing position. It's not where it's supposed to be
Verified behaviour on JSBEEB
Appears to be a feature of fabGL ; calling SetPixel does ... just that and nothing else.
I think this is fixable by :
adding canvas->moveTo(p1.X, p1.Y) in plotPoint() in graphics.h ?
NB: In the documentation it says VDU 25,0,640;512; plots a point. This is incorrect ; it should be 25,69,640;512;

verified.  great spot!  plotting a point should indeed set the current position.  the VDP code half manages to do that, but only for its own internal point tracking, and doesn't tell the underlying graphics canvas :grin:
you're right that a call to canvas->moveTo would fix.  that's probably slightly better done as just a moveTo() function call
I'll raise a PR shortly with a code fix


Feature Request: Group Auditing

Hi,
Love the script.  What I would like to see further is way to dump groups and embedded groups.
best regards,
Giray

I could probably include something like that. How exactly would you want the output? Dumping all Groups, including nested Groups, in separate files, will probably not be the best option?
Please let me know how you see this.

My aim is to audit "master groups" that are used for RBAC.  Hence I'd like to
see a separate CVS with Group and its sub Groups (Member Of)

Would it be possible to get some statistics for the log environment, like how far back does the log go. It would then be possible to detect the use of well known user accounts, like the SID 500 and 501 and know the timeframe for the result?

gd


[BUGFIX] Try to always honor local config for mounts

I realize this is a big PR, but sadly the more I was digging to fix #2721, the more I would uncover new edge cases around our local vs global config handling 😢
This:

adds a new config.WithMount that allows to pass to a context the current "mount point" or "store" that we're working on.
changes config.FromContext to also return the mount point if any is provided in the context.
changes config.Int, Bool and String to take into account the mount point if any is provided.
attempts to uses WithMount in the relevant places, mostly: Show and Generate are concerned by custom config options, as well as anything that can use the clipboard feature.

Furthermore, in "config related" changes, this also:

documents the config options that aren't supported at the local level.
prevents local configs from tampering with security features such as recipients.hash.
fixes recipients ack to actually update the recipients.hash when it was previously outdated, but the .gpg-id were correct.
adds a few convenience functions to our internal config package.

In the "weird changes" I still did in here, this also:

fixes a few typos.
aligns the use of <root>'  to indicate the local root store when using the --storeflag even insync`.
fixes a race condition in rcs_test.go where git was weirdly failing with failed to add "/tmp/TestInitRCS2737126547/001/git" to git: exit status 128: fatal: Unable to create '/home/anomalroil/code/gopass/.git/index.lock.lock': File exists. because of some Parallel tests. This might actually indicate a bigger underlying issue: I would expect our tests not to tamper with the local git things, and do everything in /tmp....

Let me know if you'd like me to chunk it into multiple PR / commits, it just was a big rabbit hole and it kept on giving more.
This is probably not entirely done yet, e.g. I don't think core.autopush is properly respected at the local level yet, might be worth opening a new issue to track a big review of all our config options?

Amazing, thanks a lot!


Adding env variable that will allow us to not cache the last response

Status
Ready
Related Issues
https://github.com/demisto/etc/issues/30292
Description
Add the ability to not cache the last response in the api_client to avoid memory leaks.

Build passed with this version here merging.


Limit number of transfers

Provider an additional input for the transfer computation that makes the path finder compute transfers to be executed in multiple transactions:
Complicated transfers will use too much gas. Because of that, they should be split into multiple transactions. The input limits the size of one transaction (probably in number of transfers).
How to implement this:
Take the pruned network and remove one full source->sink path at a time (similar to the pruner). Start a new transaction whenever we would reach the size limit.
Note that the number of transfers per transaction has to be at least the longest distance from source to sink in the pruned network.

This has been implemented.


Add support of plug and play fit_batch and evaluate_batch

Description
Due to the potential estimator explosion issue introduced in issue #16930, we add support of plug and play fit_batch() and evaluate_batch() methods for the base estimator class. Concretely,
we define a new class EstimatorModel and use it to wrap the fit_batch() and evaluate_batch() methods. Our contribution can be summarized as below

Add a new class EstimatorModel to support plug and play fit_batch and evaluate_batch for existing estimators.
Add test case to test the plug and play fit_batch() and evaluate_batch() methods

Fix Issue #16930

@ptrendx, let's also consider this one if it's merged to master in time (expected to be merged in 12 hours after fixing the conflict)


LEGO: Pull request from lego/hb_d72c5677-3f00-4225-b18e-0a1e8a8f5f0e_20220128115131371 to main

LEGO: Pull request from lego/hb_d72c5677-3f00-4225-b18e-0a1e8a8f5f0e_20220128115131371 to main with localized lcls

Loc changes do not affect tests.


Restore session history on "re-open closed tab"

When a closed tab is restored, the navigation history should be restored.
Ideally, the webview would have the history imported, so that its navigation methods would work as usually. This is currently not supported (see https://github.com/electron/electron/issues/5885).

Any update on this? Considering freshing up my Electron skills to fix this, but I don't see any PR requests being taken?


Update README.md

This PR is part of This IOTFT-2393.
Do not merge until the cytfm-064b0s2-4343w branch is created.
CC: @moshe-shahar @jenia81

Thanks for your changes.
@ARMmbed/pdmc-integrators please review.

Closing. Will be handled by @moshe-shahar .


QueryResult meta data

It would also be great if QueryResult class had a function to return meta data not unlike mysqli
https://www.php.net/manual/en/mysqli-result.fetch-field-direct.php

Hi @recarv, thanks for this question!
Have you seen the QueryResult::$resultFields property? It looks like this is what you might be looking for. Its structure is very similar to the one exposed by PHP's functions. For example, this is the output when running the first example in this project:
$ php examples/01-query.php
Array
(
    [0] => Array
        (
            [catalog] => def
            [db] => test
            [table] => book
            [org_table] => book
            [name] => id
            [org_name] => id
            [charset] => 63
            [length] => 11
            [type] => 3
            [flags] => 16899
            [decimals] => 0
        )

    [1] => Array
        (
            [catalog] => def
            [db] => test
            [table] => book
            [org_table] => book
            [name] => name
            [org_name] => name
            [charset] => 33
            [length] => 765
            [type] => 253
            [flags] => 4097
            [decimals] => 0
        )

    [2] => Array
        (
            [catalog] => def
            [db] => test
            [table] => book
            [org_table] => book
            [name] => isbn
            [org_name] => isbn
            [charset] => 33
            [length] => 765
            [type] => 253
            [flags] => 0
            [decimals] => 0
        )
…

I believe this has been answered, so I'm closing this for now. Please come back with more details if this problem persists and we can reopen this :+1:

Hi Christian - yes, I'd noticed that, and that may work for the query()
function, but is there anything similar available for the queryStream()
function?  IMO that function is much more useful, but it seems to only
expose row data on the event, no ability to get at the Field data.
Ross
On Sun, Dec 8, 2019 at 10:15 AM Christian Lück<EMAIL_ADDRESS>wrote:

Closed #115 https://github.com/friends-of-reactphp/mysql/issues/115.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/friends-of-reactphp/mysql/issues/115?email_source=notifications&email_token=AAZ4FS3BX7YO4GQJPYLP6ULQXUFRJA5CNFSM4JXL3Z42YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOVK4PHQA#event-2864247744,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZ4FS5CN3D7SVNFYY2MTNDQXUFRJANCNFSM4JXL3Z4Q
.

--
Ross Carver
<EMAIL_ADDRESS>Avantalytics Corp
Ph.<PHONE_NUMBER> x314
Ph.<PHONE_NUMBER> (direct)
Ph.<PHONE_NUMBER> (mobile)

@recarv I'm not opposed to the idea, perhaps create a new ticket discussing this idea (the original question in this ticket seems to be answered afaict)? :+1:


Sync stopped working completely

Our sync stopped working completely:

When tagging Linear issues with "public" they don't get synced to GitHub.
When tagging GitHub issues with "linear" they don't get synced to Linear. As mentioned in this issue already.

I tried to re-connect it several times. My co-founder connected another Linear team (but same workspace) to another GitHub repo recently. Could that be the root cause?

Sorry to hear this, @jonathimer. Is your co-founder's sync working?


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-yml-archive-non-versioning-archive/pull/389 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-yml-archive-non-versioning-archive.git

Docs Build status updates of commit beb777d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

docs/TOC.yml
:white_check_mark:Succeeded
View

docs/index.yml
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/article3-1-1.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/article3-1-2.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/article3-1-3.yml
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/sql-database-engine.png
:white_check_mark:Succeeded

docs/to-be-archive/level2/article3-2-1.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level2/article3-2-2.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level2/article3-2-3.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


[Port dspace-7_x] Bump express from 4.18.2 to 4.19.2

Manual port of #2881 by @dependabot  to dspace-7_x.

Passes all tests. Merging backport immediately.


Clean up backend

Move everything in the models directory that isn't a model to a services directory. That moves all of the business logic into one place and will make things more testable. If necessary, pull some controller logic out of the controllers and put it into services too

This is happening during the rails view conversion, so I'm closing this


Fix docindex

Avoid onboarding some packages which break the docs CI build

The daily docs are not fixed, need to sort out branding with @alzimmermsft or @JonathanGiles ... However, the set of steps which update main are functioning properly so we can merge this and move on. The others should be a matter of sorting out the metadata.

/check-enforcer override


User authentication fails in some Android devices even when correct credentials are entered

Hello
On some Android devices the app opens. When correct email password is entered, it still shows "user authentication failed" error. But I'm able to successfully test it using emulator on equivalent Android versions. Please advise how to resolve this.
Thanks

/cc @stephenmcd

I'd suggest looking at the following which covers debugging auth failures:
https://stackoverflow.com/questions/38038034/firebase-on-android-how-to-check-firebase-auth-failed-reason


Disallow printing the encryptionPassword property or OPENTEST_ENCRYPTION_PASSWORD env variable

Hi,
Now it is posible to print the encryptionPassword or OPENTEST_ENCRYPTION_PASSWORD variable.
It will be goot to mask that string, to prevent printing to log that value
I see that it has to be done on getEncryptor methot, I want to ask via pull request the modification to add that functionality
pull https://github.com/mcdcorp/opentest/pull/647
Thanks,
Edgar

The pull request was merged and this change is now available is the 1.4.2 release that was published in beta. If you want to try it out, you can install it with
npm install opentest@beta -g

If you see any problems with the 1.4.2 release please report them in a new issue. If you need to revert to the current stable version you can always do that with
npm install opentest -g

Hi @adrianth
It is working fine thanks
For me the ticket is ready to close, but I don't know if you want to realease first the new versión?
I take this opportunity to ask about when the new version would be available more or less and to learn about the new features that come with it.
Thanks
Edgar

Hi @ewmartinez, 1.4.2 only contains security updates and three small updates: your pull request; another pull request that adds the ability to filter test session templates list in the UI (useful if you have a lot of templates in your test repo); a small bug fix.
I'll wait a while before promoting 1.4.2 as "latest" because I want to allow time for early adopters to start using it and report potential issues.
Please close this issue if the functionality you're after works as expected.

Hi @adrianth
Thanks..


Feature/locale function

Description
Addresses #918
Checklist

[x] The version field in package.json is incremented following semantic versioning
[x] I tested locally to make sure this feature/fix works
[x] This PR passes the Circle CI checks

@taylorjdawson you may want to throw an alpha version bump to the package.json of the Core package to test this in staging env


yder: 1.4.12 -> 1.4.13

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/babelouest/yder/releases.
meta.description for yder is: "Logging library for C applications"
meta.homepage for yder is: "https://github.com/babelouest/yder"
meta.changelog for yder is: ""
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

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

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

found 1.4.13 with grep in /nix/store/6dkwa95hrhkcm1l2gbsy6hw2yixdmfj9-yder-1.4.13

directory tree listing: https://gist.github.com/8c4fa422e47b64e422bdf17a89818e58

du listing: https://gist.github.com/3527f120e5a7e76514db36c68a51af1a

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
yder

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/6dkwa95hrhkcm1l2gbsy6hw2yixdmfj9-yder-1.4.13 \
  --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 yder https://github.com/r-ryantm/nixpkgs/archive/021fa971d40d821cb3c95844aa2419f1d4202f7d.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/6dkwa95hrhkcm1l2gbsy6hw2yixdmfj9-yder-1.4.13
ls -la /nix/store/6dkwa95hrhkcm1l2gbsy6hw2yixdmfj9-yder-1.4.13/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:

yder

Maintainer pings
cc @johnazoidberg for testing.

Result of nixpkgs-review pr 116468 at 021fa971 run on aarch64-linux 1

1 package built successfully:

yder

1 suggestion:

warning: unclear-gpl
lgpl21 is a deprecated license, check if project uses lgpl21Plus or lgpl21Only and change meta.license accordingly.
Near pkgs/development/libraries/yder/default.nix:42:5:
   |
42 |     license = licenses.lgpl21;
   |     ^

@ofborg eval


[FLINK-18585][elasticsearch] Dynamic index can not work in new DynamicTableSink

What is the purpose of the change

This pull request fix Dynamic index can not work in new DynamicTableSink.

Brief change log

Init indexGenerator.open() proberly

Verifying this change

Add ITCase to cover this issue for Es6 and Es7 connector.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): ( no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

pipeline passed in my local azure:
https://dev.azure.com/xbjtdcq/xbjtdcq/_build/results?buildId=122&view=results


SPFx 1.9.1 local workbench failure when using pnpm

Category

[ ] Question
[ ] Typo
[x] Bug
[ ] Additional article idea

Expected or Desired Behavior
Local workbench should load successfully when using gulp serve.
Observed Behavior
gulp serve completes successfully, no errors or warnings.  However, a great deal of exceptions are thrown in the devtools console on the local workbench site.  I am attaching a copy of the console log.
localhost-1572741541800.log

Just a small excerpt, for those coming along after
sp-loader-assembly_default.js:11572 [1572741463288][RootServiceScope] AadTokenProviders: Failed to initialize
sp-loader-assembly_default.js:11572 [1572741463290][RootServiceScope] ServiceScopeBuilder: Added preloaded FormDigestValue to cache
sp-loader-assembly_default.js:10685 [1572741463297][Session] The pageId parameter was undefined or invalid.  The file was not found in the server. Make sure that you are running 'gulp serve'.

***CALLSTACK:
Error
    at SPLoaderError.SPError [as constructor] (https://localhost:4321/temp/workbench-packages/@microsoft_sp-loader/dist/sp-loader-assembly_default.js:8828:24)
    at new SPLoaderError (https://localhost:4321/temp/workbench-packages/@microsoft_sp-loader/dist/sp-loader-assembly_default.js:4354:28)
    at Function../sp-loader.js.__WEBPACK_AMD_DEFINE_RESULT__../lib/error/ErrorBuilder.js.ErrorBuilder.buildErrorWithErrorLog (https://localhost:4321/temp/workbench-packages/@microsoft_sp-loader/dist/sp-loader-assembly_default.js:4275:21)
    at Function../sp-loader.js.__WEBPACK_AMD_DEFINE_RESULT__../lib/error/ErrorBuilder.js.ErrorBuilder.buildUrlStatusLocalhostFileNotFoundError (https://localhost:4321/temp/workbench-packages/@microsoft_sp-loader/dist/sp-loader-assembly_default.js:4209:21)
    at Function../sp-loader.js.__WEBPACK_AMD_DEFINE_RESULT__../lib/utilities/ResourceUrlChecker.js.ResourceUrlChecker._throwUrlStatusError (https://localhost:4321/temp/workbench-packages/@microsoft_sp-loader/dist/sp-loader-assembly_default.js:7357:87)
    at https://localhost:4321/temp/workbench-packages/@microsoft_sp-loader/dist/sp-loader-assembly_default.js:7348:43
    at async Promise.all (index 0)
./lib/Api/Trace/TraceLogger.js.TraceLogger._writeToConsole @ sp-loader-assembly_default.js:11569
sp-loader-assembly_default.js:10673 [1572741463352][SPComponentLoader.loadComponen] ***Failed to load component "f97266fb-ccb7-430e-9384-4124d05295d3" (Decorators). Original error: ***Failed to load URL 'https://localhost:4321/node_mo
sp-loader-assembly_default.js:11572 [1572741463352][SPComponentLoader.loadComponen] ***Failed to load component "f97266fb-ccb7-430e-9384-4124d05295d3" (Decorators). Original error: ***Failed to load URL 'https://localhost:4321/node_mo
sp-loader-assembly_default.js:10673 [1572741463353][SPComponentLoader.loadComponen] ***Loading component "f97266fb-ccb7-430e-9384-4124d05295d3" (Decorators). Attempt 2 of 3.
sp-loader-assembly_default.js:11572 [1572741463353][SPComponentLoader.loadComponen] ***Loading component "f97266fb-ccb7-430e-9384-4124d05295d3" (Decorators).  The file was not found in the server. Make sure that you are running 'gulp serve'.

This appears to be related to use of pnpm as a package manager, in a mono-repo (workspaces) environment.  When using npm, the workbench for the same repo works flawlessly.  Also notable: this works perfectly fine when not running in a workspace.  If I scaffold just a basic standalone webpart project, I can use pnpm without any issues.
I recently updated my repo to SPFx v1.9.1, to take advantage of the libraries feature, which is when it began to fail.  This used to work with SPFx 1.8.2.  I also recently updated pnpm to version 4, and they changed some things in the way it handles node_modules, so I thought maybe that was part of the problem.  Rolled back to version 3.8.2; same problem.
I also tested on the hosted workbench, and didn't have any problems.  Using a freshly scaffolded HelloWorld webpart, I am able to gulp serve successfully, then load up the hosted workbench, and mount the webpart to the page, no problems.
Judging by the nature of the exceptions being thrown, I think this issue is similar to #3736.  The workbench does not seem to like the location of the node_modules directory 🤷♂; same kind of thing that is happening there.  This is actually very similar to what I experienced when trying to use rush as the monorepo manager (using pnpm with it, too); that was when I was still using SPFx v1.8.2.  Which is why I went back to using pnpm alone, and that worked fine... until the upgrade to 1.9.1 🙄
I'm getting similar results as #4261, but I don't think the issues are related.
Steps to Reproduce

Create a pnpm workspace environment
Scaffold an HelloWorld webpart starter using yeoman

yo @microsoft/sharepoint --package-manager pnpm

After installation, run gulp serve
Observe exception hell from your browser

So, after further investigation, I've figured out that the entire issue is that pnpm symlinks dependencies to the root node_modules, which isn't exposed by gulp serve.
It looks like this:
workspace-root
|-- node_modules
  |-- .pnpm
    |-- @microsoft
      |-- sp-webpart-workbench
|-- packages
  |-- workspace1
    |-- node_modules
      |-- @microsoft
        |-- sp-webpart-workbench >> ../../../../../node_modules/.pnpm/@microsoft/sp-webpart-workbench

The server's working directory is workspace-root/packages/workspace1, so it is unable to serve files located in workspace-root/packages/workspace1/../../node_modules.

Need some help here... can you provide a public repo to repro this?
Also... I'm not sure this is an SPFx issue, rather an issue with PNPM & workspaces. It's not clear from your issue what the problem is with SPFx...

Here's a reproduction repository
This issue is present in yarn workspaces, Lerna workspaces (using yarn), and rush workspaces.  It's all the same issue... those three hoist common dependencies to the root of the repo so they can be shared by all of the workspaces.  pnpm does it for all workspace dependencies, no matter what, and then symlinks from each workspace's node_modules, to the root node_modules.
I was able to get this working using yarn workspaces a couple different ways:

Use --nohoist '**/@microsoft/**, or put "nohoist": ["**/@microsoft/**"] in the package.json workspaces field.

Even using --link-duplicates, this reeaaallly slows down the build.

Loop through @microsoft/* dependencies+sub-dependencies for a workspace and hardlink them from the root node_modules into the workspace node_modules (if they don't already exist).

Much, much faster, and 100% effective
Have to check sub-dependencies, too, because they might have been hoisted into the root node_modules, too.

It wasn't until after I figured out what the root problem was that I realized this might not be something that could be fixed by SPFx.  Is it possible to have gulp serve also serve files from a node_modules that is in a parent directory.... ?
I put together a little postinstall script for lerna/yarn that can be run for each workspace (that needs the local workbench), but it needs to be extended a little bit.  I am also working on implementing features to support pnpm workspaces, too, but that's just a little bit more involved.  I'll post it here when I'm done with it, for anybody else with this problem.
I think the ideal solution would be to address this in a) gulp serve (if it's possible), or b) the package manager.  I opened a ticket with pnpm to try to get some insight on how to address this problem, or if maybe they'd include a feature that would solve this.
One thing I'm curious about... any idea why this would have changed between SPFx v1.8.2, and SPFx v1.9.1?  I'm starting to think that maybe I just didn't go back far enough in pnpm versions.  I will run a test later with v1.8.2, to see if it will actually still work with pnpm v4.

After examining some of pnpm's code, I noticed that it puts the .pnpm directory where its lockfile is.... And I always use shared-workspace-lockfile = true, which is what causes it to store all of the dependencies in the root node_modules/.pnpm.  Turning that off fixes the problem.

Sorry, but I don't think this is an "issue" or something that's wrong with SPFx or the SPFx build toolchain. Microsoft recommends NPM for the package manager... what you're running into (at least how I understand it) isn't a supported scenario as it sounds like to get this to work with PNPM, you need changes made to the gulp serve task.
Therefore, this falls more in the case of a feature request or a design change request which belongs in user voice as things are working by design today.


nuget loading messages are very invasive

Describe the bug
Loading packages or connecting to mssql produces a very long and verbose output, also a lot of package names are repeated.

Please complete the following:

OS

[X] Windows 10
[X] macOS
[X] Linux (Please specify distro)
[ ] iOS
[ ] Android

Browser

[ ] Chrome
[ ] Edge
[ ] Firefox
[ ] Safari

Frontend

[ ] Jupyter Notebook
[ ] Jupyter Lab
[ ] nteract
[X] Visual Studio Code
[X] Visual Studio Code Insiders
[ ] Other (please specify)

Screenshots
If applicable, add screenshots to help explain your problem.

@KevinRansom we should change formatting and make it something that user can expand.

We should also make it very clear what's new versus what was referenced previously.

The current change will only display what has been added, we will have a different gesture to see the list of all that has been installed

This is still an issue in 1.0.235701.

on first #r instruction it seems it is not able to understand that some of those packages where already loaded. @KevinRansom any ideas?


petridish server should fallback to README.md if index.md is not found

should it ?

I don't want too much magic in the production pipeline, but we could adjust the start URL based on the presence of readme.md and index.md

Actually, I'd prefer to have index.md for the default directory rendering fallback. and I would reserve the README.md for the description of the project.
I think it is very likely, that content owners want to keep this separate; i.e. show on github how the content repository is to be used, and don't want to show this on the homepage.
@davidnuescheler wdyt?

While I agree the README.md might serve a different purpose (repo description) in git, assuming an index.md will be a pain because people will forget, especially that github navigation falls back to README.md (just try https://github.com/Adobe-Marketing-Cloud/reactor-user-docs/tree/master/getting-started).
As a real life example, the helpx team did use the README.md files as an index and other files to describe some "purpose" (like https://github.com/Adobe-Marketing-Cloud/reactor-user-docs/blob/master/CODE_OF_CONDUCT.md)

I think we will need an index setting sooner or later. The advantage of index.md is that it is clean, analogous to how index.html works.
The advantage of README.md is that this is exactly how GitHub does it, with README.md being added to every directory.
So my solution would be this:

the default for index is index.md
you can override it with an index setting in your Strain Configuration
when petridish starts, it suggests a URL to open. If no settings are present, it will try:

index.md
README.md
*.md so that starting hlx in an empty project with just a random md file will give you a reasonable result

I think iii is not good because it is even less deterministic.
the problem with the fallback is, that it needs a 2nd request. so we'd rather have it configurable with no fallback

I would not implement it as a fallback in the rendering pipeline, but rather in the (CLI) user interface. When we generate the message open http://localhost:<port>/<file>.html we populate <file> with whatever the algorithm comes up with.
If you go to http://localhost:<port>/, it will use the deterministic index resource.

closing as wont-fix.


ImageField works with a single string literal, but not a union

It looks to me like ImageField is supposed to accept multiple ThumbnailNames as a union, but that doesn't work. Am I using it wrong?
import * as prismicT from "@prismicio/types"

const img1: prismicT.ImageField<"small">
img1.small // fine

const img2: prismicT.ImageField<"small" | "medium">
img2.small // Property 'small' does not exist on type...

Playground

Hey there, thank you so much for the report!
You're doing everything right, so valid bug confirmed ✔ We're working on fixing it in #29, should go out fairly soon if everything's alright :)


CORS Error after packaging the app.

Hey, thx for creating this awesome boilerplate. Currently I'm facing an issue while packaging the app. After packaging the app with npm run dist I tried to open the .exe inside the win-unpacked folder and all it shows is a blank white page. So I did some debugging and went to the out folder inside ./src and opened the index.html file in the browser. This is where I see this error:
index.html
Access to script at 'file:///D:/Repos/< appname >/src/out/assets/index.44eb8550.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, isolated-app, ipns, https, chrome-untrusted, ipfs, data, chrome-extension, chrome.

index.44eb8550.js
Failed to load resource: net::ERR_FAILED

index.html
Access to script at 'file:///D:/Repos/< appname >/src/out/assets/vendor.efff610f.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, isolated-app, ipns, https, chrome-untrusted, ipfs, data, chrome-extension, chrome.

vendor.efff610f.js
Failed to load resource: net::ERR_FAILED

The thing that baffles me is that a few days ago I was working on another project using this same template and after packaging it, everything worked perfectly. So I opened the compiled index.html of that project in the browser and the same errors as before occur BUT when I open the Electron App, everything works as expected.
So if anyone could help me out, it would be greatly appreciated. I don't know if the source code is required but if it is I would be happy to post it :)

Hey, I'm back and guess what, I fixed it! The apparent problem was that I was using win.setIcon('< path to icon >) to set the icon for the app and with this the page simply wouldn't load. So I found the right method which is to set the icon in the package.json. Here is simplified code
Old Code
index.ts
...
   win.setIcon('logo.png');

New Code
package.json
{
 ...
  "build": {
    "asar": true,
    "files": [
      "main",
      "src/out"
    ],
    "directories": {
      "buildResources": "resources"
    },
    "win": {
      "icon":"./electron/logo.png" // Add this instead !!!
    }
  }
}


temporary fix for GitHub single sign-on: Increase ParPage to 100 when calling the User's Team List API

What this PR does / why we need it:
In the GitHub Sign-on feature, if a user is on more than 30 teams, there is a problem with not getting all teams.
As a temporary fix, increase the PerPage value to 100 in the List API.
Which issue(s) this PR fixes:
Partially fixes #3498
Does this PR introduce a user-facing change?:
Probably none.

/cla sign

bright and shiny 🙌
/approve


Fix Issue #858 - Ensure the feature is enabled before returning true in shouldInvoke()

Github Issue (if applicable): #858
Trello Link (if applicable):
Forum Link (if applicable):
Explanation of Bugfix/Feature/Enhancement:
Check that the feature is enabled.
Also added package-lock.json to the git ignore file.
Recommended Release Notes:

This MR includes the package-lock.json file so it has a +3788/-1 diffstat. The relevant part LGTM though!

Yeah a new file will do that. :-)

Is it supposed to be in there? There was some discussion in #802 re. it being redundant since the project uses yarn.

I used yarn this past weekend as part of moving to a different directory and after running yarn the file was there.

I had to jump through hoops to get yarn to work properly. I had to install it via the standard Windows installer because if I didn't it would hang on the "linking dependencies" step. IIRC the problem turned out to be a PATH problem which the installer handled.

can we .gitignore the package-lock? having two lock files does not sound like a good idea to me.

I added it based on the answer to a question I asked this past Sunday in the General channel on Slack. Here is a thread  about it on stack overflow. I'll certainly defer to anyone who knows more about this than I do.

As the answer in the link you posted says, the danger of committing both is that they can get out of sync, in which case people using npm will be downloading different dependency versions than those using yarn, removing the guarantees that having a lock file provides:

The safest thing to do would be to generate and commit them both every time your dependencies change. However, this might well be cumbersome or the two files might get out-of-sync.
So our team's official policy (for now) is:

We only use Yarn as our official Node package manager, and so we will only commit yarn.lock files, and ignore package-lock.json files.

Your team may make a different decision. Note that there is also an open issue (with many +1s) suggesting that Yarn support package-lock.json, which would solve this dilemma. So watch that space.

Why was yarn introduced into the project? Was npm deficient in some way and yarn was the answer? I'm not saying it shouldn't have been introduced. Just wondering why.
It seems to me that a decision should be made to use one package manager and we all use it. I don't know enough about the pros and cons of them so I don't care which one is selected. Just think it should be one or the other.

Yarn was the first Javascript package manager to implement deterministic package resolution via a lock file. Their original release notes include a section about the advantages of using a lock file - namely, consistency across environments and developers, and increased scope for parallelism during the installation process.
A lot of projects switched to Yarn to take advantage of this (including this project according to @joshmadewell here - https://github.com/toolkit-for-ynab/toolkit-for-ynab/pull/804#issuecomment-310879588).
npm recently also implemented this feature via package-lock.json - you can find a comparison of their implementations here. However if the project has already switched to yarn it doesn't seem to me that there's much to be gained by switching back.

So ignoring package-lock.json should be fine if yarn is what we're supposed to be using. I suspect there will be other long time contributors that haven't contributed in awhile that may not pick up on the fact that they should use yarn. I guess we can cross that bridge when (if) we get to it.


Use cmp in fullvalue_test.go

We could probably update the comparison helpers in fullvalue_test.go to use cmp options and Transformers instead which would make things much clearer.
Imported from Jira BEAM-9753. Original Jira may contain additional context.
Reported by: danoliveira.

Hi, I am new to this project and willing to contribute.
Could you tell me more about the details? For example, what are comparison helper, cmp options, and transformers?
I looked up the original Jira but couldn't find any information about what they are.

The goal here would be to replace or refactor our helpers (for example https://github.com/apache/beam/blob/3b9ab77ef90519adda0255031ffc3ae598192edc/sdks/go/pkg/beam/core/runtime/exec/fullvalue_test.go#L155) to use the cmp package rather than traversing the whole object and doing reflection equality checks to compare them.

@thinh2 yes, it is!


Config.json updates cause parallel executiuon failures

When running 2 scripts in separate terminals that make use of API calls I will periodically get an error caused by the config.json file being incorrectly formatted.  It would appear that one process is updating the file and the other process tries to read it in flight
Traceback (most recent call last):
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/httpie/config.py", line 47, in load
data = json.load(f)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/init.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/init.py", line 348, in loads
return _default_decoder.decode(s)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/local/bin/http", line 11, in
load_entry_point('httpie==1.0.2', 'console_scripts', 'http')()
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/httpie/main.py", line 11, in main
sys.exit(main())
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/httpie/core.py", line 193, in main
if env.config.default_options:
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/httpie/context.py", line 84, in config
self._config.load()
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/httpie/config.py", line 96, in load
super(Config, self).load()
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/httpie/config.py", line 51, in load
(type(self).name, str(e), self.path)
ValueError: Invalid Config JSON: Expecting value: line 1 column 1 (char 0) [########/.httpie/config.json]

Same here, I can reliably replicate with GNU Parallel and a fast localhost server:
$ parallel -N0 http http://localhost:8000/ ::: {1..5}
Traceback (most recent call last):
  File "/Users/chainz/.pyenv/versions/3.7.5/lib/python3.7/site-packages/httpie/config.py", line 47, in load
    data = json.load(f)
  File "/Users/chainz/.pyenv/versions/3.7.5/lib/python3.7/json/__init__.py", line 296, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
  File "/Users/chainz/.pyenv/versions/3.7.5/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/Users/chainz/.pyenv/versions/3.7.5/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/Users/chainz/.pyenv/versions/3.7.5/lib/python3.7/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/chainz/.pyenv/versions/3.7.5/bin/http", line 8, in <module>
    sys.exit(main())
  File "/Users/chainz/.pyenv/versions/3.7.5/lib/python3.7/site-packages/httpie/__main__.py", line 11, in main
    sys.exit(main())
  File "/Users/chainz/.pyenv/versions/3.7.5/lib/python3.7/site-packages/httpie/core.py", line 193, in main
    if env.config.default_options:
  File "/Users/chainz/.pyenv/versions/3.7.5/lib/python3.7/site-packages/httpie/context.py", line 84, in config
    self._config.load()
  File "/Users/chainz/.pyenv/versions/3.7.5/lib/python3.7/site-packages/httpie/config.py", line 96, in load
    super(Config, self).load()
  File "/Users/chainz/.pyenv/versions/3.7.5/lib/python3.7/site-packages/httpie/config.py", line 51, in load
    (type(self).__name__, str(e), self.path)
ValueError: Invalid Config JSON: Expecting value: line 1 column 1 (char 0) [/Users/chainz/.httpie/config.json]
Hello, World!Hello, World!Hello, World!Hello, World!%

I am hitting this one as well using multiple subprocesses programmatically.  Anyone have a recommended workaround?

Fixed in master, thanks!

Is there a plan to release this or should I just build off of master?


New SearchInput added

Project organization

Related trello card

Description

Remove default behaviour of browsers clear input action
Add custom search input to add new behaviour mentioned above
Now, when you click on clear icon on search bar, it will reset search results instead of just clearing input.

Checklist

[x] Base branch of the PR is dev

Hi Anthony, we've different usages of search input, so I had to tweak a bit.
What do you think about the current implementation?

Removed 2 setState to use react-hook-form instead. Had to wrap with <FormProvider /> (to be honest, I think we should always do that, so the children could also see related form and it's values)
The only downside (maybe?) is now, I've to exclude those from filter so we don't end up something like collectionSearch=&propertySearch= after reset
Maybe for the consistency I should keep {...register()} but name prop was needed for some checks.

I've tested every flow I could think of, and it seems to be working as intended without any issue.


latest working docker container release is 0.29.0

other more recent tagged releases fail with
error while loading shared libraries: librocksdb.so.8.9: cannot open shared object file: No such file or directory

related: https://github.com/varfish-org/annonars/issues/558

fixed by @tedil


Working on Heroku!

Hey, it is working on heroku. I've deployed on my account and it is working! I think the readme should be updated.
I've also uploaded my files to google drive.

its not working.

Hey man, is there any chance you could give a quick guide for deploying on heroku?

Add the following line to the Dockerfile and push the app through heroku's container registry.
CMD node server/server.js
Then it will work. Let me know if that is working for you too. If yes, then maybe you can write a quick guide O:)

Also, dont forget to ping the app to prevent it from sleeping(if you are on free plan)

If I deploy the app normally I am getting issues. So, I tried through docker the first time, it failed. The second time I took a look at the dockerfile and seen that it is missing the CMD instruction. So I've added it. That's it.

I appreciate the response, and would love to draw up a quick guide, but unfortunately I'm a complete beginner to docker / heroku, so I haven't figured out how to push the app, with the new line added, through to heroku.  Thanks anyways.

could you please help me out?I am having trouble while deploying the app on heroku @capriciousduck


EVE SSO v1 Endpoint Deprecation

As the v1 endpoint is due to be deprecated soon is there any chance this library will be updated to use the v2?
https://developers.eveonline.com/blog/article/sso-endpoint-deprecations-2

@syzio there is already a PR from fuzzyworks. Is this project still active since we would urgently need this. The deprication is gonna be tomorrow.

created a fork that is useable for now under https://packagist.org/packages/dts-eve/oauth2-eve
will adandon this when this here is updated again


Feature/withdraw proceeds

Profile Badge
Disconnect Wallet
Metadata details
Withdraw proceeds

Noted! The Mouse hover functionality can be overridden.
I'm guessing the flexbox of the parent component was conflicting.
Will make a patch commit on this by tomorrow

Issues corrected
Cursor pointer
Disconnect text
Eth decimal place corrections
Withdraw proceeds debugging (if this works that'd be great)

Closing this as withdrawals are no longer needed.

Going to reopen this for the profile view. It should still give @10dimensions some cred once merged.


Multiple Access

I have read the documentation, and I know that is allowed only one access at a time using the library, but when I make a request via the web browser the time for another client to perform access to RN-VX is 5 minutes, however I'm using an app developed for Android, and when I make the request via the app time to access new never expires why?
Using an app via Android is only possible to perform a new customer if I restart the Arduino.
I need help.
Thank you.

The WiFly only supports one connection at a time.  You need to be sure to close the connection when the current client is done.


Not compatible to the new leaflet 1.1.0

Dear developers,
Could you please update this so that it could be used with the new leaflet.js (1.1.0). It would be soooo great!!!.
Error from console: TypeError: L.Path.prototype._createElement is not a function[Learn More] when I used it with leaflet 1.1.0.
Thanks.

Did you use the leaflet0.8-dev branch? See README.md.

Dear RhinoDevel,
Thank you very much for helping me.
I am not so sure how to use both Leaflet 1.1.0 and leaflet0.8-dev branch in one website. My current web uses leaflet 1.1.0 and its layers and functions (For example: L.tooltip) that were not available in previous leaflet versions.
Maybe you can give me some hints?
All the best,

Take a look at the source of the demo. Replace <script> and <link> entries in <head> with Leaflet 1.1.0 and Leaflet.TextPath's leafleat0.8-dev.

Thanks so muchhhhhh RhinoDevel.
Finally, with your patience and help, I am able to make it work. You saved my life!!!!
For those who are facing the same issue, please follow the steps below:

Download the source code here (leaflet0.8-dev) https://github.com/makinacorpus/Leaflet.TextPath/tree/leaflet0.8-dev.

Copy the leaflet.js and leaflet.css (those are 0.8 dev versions) and especially the leaflet.textpath.js at the root folder of the package to your project. You might need to change the names so that they wont replace your current leaflet (css and js) and leaflet.textpath. In my case, I just added 0.8 at the end of these files.

Include the 0.8 versions in your code. In my case, they are:
       `  <link rel="stylesheet"<EMAIL_ADDRESS>/>
 <script<EMAIL_ADDRESS> <link rel="stylesheet" href="js/leaflet0.8.css" />
 <script src="js/leaflet0.8.js"></script>
 <script src="js/leaflet.textpath0.8.js"></script>`

So you can use the textpath with leaflet 1.1.0 and leaflet0.8 at the same time.
All credits go to RhinoDevel for his kind instruction.
Good luck to you all!

@banmtG Please close this issue.


Improve numeric textfields

Provide a popup (like train schedule uses), containing a textfield and a slider.
This way it is possible to validate the input and keep them within their ranges in a more intuitive way..

Is this still a live issue?

it is an idea that still would improve the uX (a little). I am just not very motivated to implement it (as I personally know the restrictions and don't fill in wrong values).


For 3.3.83, integration with monk's token bar is broken

Describe the bug
When using monk's token bar to convert to lootables, conversion seems to fail.
To Reproduce
When using monk's token bar to convert to lootables, conversion seems to fail.

Highlight token and click "convert lootables" on the left side of the screen (from monk's token bar)
Notice that the sheet still look the same as a standard npc sheet even though the token looks like a lootable token.
Press 'revert lootable' from the top of the sheet.  All looks well.
Change the sheet manually to the lootsheet.
You cannot open the sheet any longer.

> TypeError: Cannot read properties of null (reading 'value')
> [Detected 1 package: lootsheetnpc5e]
>     at LootSheetNPC5eHelper.js:51
>     at Array.map (<anonymous>)
>     at Function.convertCurrencyFromObject (LootSheetNPC5eHelper.js:50)
>     at LootSheetNPC5e._prepareGMSettings (LootsheetNPC5e.js:789)
>     at LootSheetNPC5e.getData (LootsheetNPC5e.js:68)
>     at async LootSheetNPC5e._render (foundry.js:2049)
>     at async LootSheetNPC5e._render (foundry.js:2736)
> (anonymous) @ foundry.js:2013
> Promise.catch (async)
> render @ foundry.js:2011
> render @ foundry.js:3231
> EntitySheetConfig._updateObject @ monks-enhanced-journal.js:495
> await in EntitySheetConfig._updateObject (async)
> _onSubmit @ foundry.js:2825

Running 0.8.9 Foundry, Monk's Token Bar 1.0.55 and Lootsheet NPC 5e 3.3.83

On first glance. I think this will be a won't fix.
The module now offers a direct API to convert a token to a lootableSheet.
With the module you can find a compendium with macros.
One macro for converting a single token.
A second macro to convert a selection of tokens.
The macros bascially do what the example in the wiki does.
I have to check if I already included a way to set the permissions to a specific type.
Default is "Observer" so players can loot.
If you think this is a good answer/solution. Please feel encouraged to create a issue for monks tokenbar.
I think for him to just do the API call with his module in the future. Would also be the easier way for him.

Yes - if the Token Bar is reaching in and breaking any contract established, or any contract you wish to establish, then this bug should be assigned to that component.

I already created an issue in the repo to get ironmonk88's view on this.
For the user I recommend using the macros as long as the tokenbar support is broken.

Yes - saw that.  Thanks.  I've disable that feature of Monks.  The macro(s) you've provided are great.


IP address are valid as email domains

Hi,
This is a very promising package but email / domain validation is notoriously complex. As an example:
<EMAIL_ADDRESS>|> input_to_email |> to_value
ERROR: Invalid domain name.
Value<EMAIL_ADDRESS>...

<EMAIL_ADDRESS>is a valid email address.

I agree with you that the input_to_email validator is not fully RFC 822 compliant. But in practice it works for every real use addresses I have encountered these last years.
The<EMAIL_ADDRESS>email addresses are usually used for testing, not in production. And in this case one can use xxx@localhost addresses instead.
But if you know a better validation algorithm...

I don't, but <IP_ADDRESS> is just an example. Any IP address is valid in the domain field of an email address. These are typically used when there is no DNS available (plant, control ,and otherwise isolated networks) and /etc/hosts has not been configured.

@sbromberger: You are right. I have added an option to also accept IP addresses (currently only IPv4).


[EN] Update an existing term (GitOps)

Describe your changes
Updated an existing term - GitOps
Related issue number or link (ex: resolves #issue-number)
Resolves https://github.com/cncf/glossary/issues/2073 and https://github.com/cncf/glossary/issues/372
Checklist before opening this PR (put x in the checkboxes)

[x] This PR does not contain plagiarism

don’t copy other people’s work unless you are quoting and contributing it to them.

[x] I have signed off on all commits

signing off (ex: git commit -s) is to affirm that commits comply DCO. If you are working locally, you could add an alias to your gitconfig by running git config --global alias.ci "commit -s".

@MaryamTavakkoli Thank you for your contribution!
But first, it is required that contributors sign off their commits with DCO signature.
You might achieve this by

git rebase --signoff HEAD~2 (Ref: https://stackoverflow.com/questions/13043357/git-sign-off-previous-commits)
and force-push

And it seems that

the email address configured in your GitHub account, and
the email address of the commit author (which is from the email address you configured in your local dev env)

does not match.
I recommend you to align those as well, since this will make it easy and clear to identify the commit author's identity (in the form of GitHub account).
PTAL!

...and could we please first finalize the eBFP PR? We generally don't allow contributors to start working on a new term before the other is finalized, so my apologies for that.

I opened another MR https://github.com/cncf/glossary/pull/2121 and I close this one.

I opened another MR https://github.com/cncf/glossary/pull/2121 and I close this one.


Using exposed CanvasRenderingContext2D API

Description
I'm having issues using the Context2D API, mainly that you cannot change the fill between multiple calls. Usually the way you interact with the Context2D api is by defining color styles and then calling draw operations.
ctx.fillStyle = "blue";
ctx.fillRect(10, 10, 100, 100);

But it appears that the way the API works through the RiveRenderer, is to queue draw calls, but this means that the mutating of the fillStyle in a draw cycle, happens before the actual draw call is executed. This has the effect of all the draw calls using a single fillStyle.
Provide a Repro
const rive = await RiveRuntimeLoader({
    locateFile: (_) =>
      `https://unpkg.com/<EMAIL_ADDRESS>  });
const riveRenderer = rive.makeRenderer(this._canvas);
const ctx = riveRenderer as (CanvasRenderingContext2D);

ctx.fillStyle = "blue";
ctx.fillRect(10, 10, 100, 100);

ctx.fillStyle = "red";
ctx.fillRect(120, 10, 100, 100);

Source .riv/.rev file
N/A
-->
Expected behavior
In this case, both rectangles will be red, as opposed to one being blue and the other being red which is what is expected from using the native CanvasRenderingContext2D API
Screenshots
N/A
Browser & Versions (please complete the following information)

Browser: Chrome Version 126.0.6478.62 (Official Build) (arm64)
OS: Mac OS 13.6.4 (22G513)
NPM Version: 10.5.0
Rive version: 2.19.4

Closing this as it's resolved in https://github.com/rive-app/rive-wasm/commit/0509735de630d3184e56fc89bae1b6f9b96522b5. Thanks for the contribution.


[XP-1390] Report compatibility check as undecided if there are overlapping pattern propperties

This PR will return Undecidable if any of the schemas looks like following
{
    "type": "object",
    "properties": {
        "a": {"type": "string"}
    },
    "patternProperties": {
        "a.*": {"type": "string"},
        "ab.*": {"type": "string"}
    },
    "required": ["a"]
}

Hi @andreamarcolin if you can take a look at the approach I'm taking with compiling regexes - I would appreciate it. Not sure if I'm not doing something wrongly here


add contributors

@all-contributors please add @Kartikeya99  for projectManagement

@all-contributors please add @Kartikeya99 for projectManagement

@all-contributors please add @meet59patel  for contents

@all-contributors please add @meet59patel for content

@all-contributors please add @smit2k14  for projectManagement

@all-contributors please add @Tikam02 for maintenance

@all-contributors please add @Kartikeya99 for projectManagement

@all-contributors please add @statebait  for projectManagement, maintenance

@all-contributors please add @gauravsofat  for projectManagement

@all-contributors please add @Tikam02 for Maintenance, Content, Documentation and projectManagement

@all-contributors please add @gauravsofat for Maintenance, Content, Documentation and projectManagement

@all-contributors please add @Kartikeya99 for Maintenance, Content, Documentation and projectManagement

@all-contributors please add @Kartikeya99 for Maintenance, Content, Documentation and projectManagement

@all-contributors please add @smit2k14 for Maintenance, Content, Documentation and projectManagement

@all-contributors please add @statebait  for Maintenance, Content, Documentation and projectManagement

@Vishu26 - Shrikumar
@purva98 - purva

@all-contributors please add @Vishu26 for Content

@all-contributors please add @purva98 for Content

@meet59patel  - meet patel
@RoneelV  - content

@all-contributors please add @RoneelV for Content

@all-contributors please add @meet59patel for Content

Close this issue now?


History Statistics Sensor for entity attributes

Hello,
I would like to use the History Statistics Sensor with other attributes than state.
Possible configuration:
  - platform: history_stats
    name: Heating today
    entity_id: climate.ecobee_mainfloor.operation
    attribute: 'operation'
    state: 'heat'
    start: '{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}'
    end: '{{ now() }}'

Are you open to accept that kind of change ?
Could you give me some hints to make this patch ?
I guess I have to change this line to get the attribute value. But I don't know which function I have to use to get the attribute value from the history...
Thanks for your help !

I'll check what I can do. I'm not sure the history saves all the attributes...

Maybe the current history_listalready has attributes? I'm not sure.


Grade Homework

@ryarza
@tangyao1123
Thank you for your time and consideration.

Hi! What's your name?

@Mebot2001

@ryarza
I am Kyle Nguyen 1812488.

Graded!


EU control plan authentication endpoint is different

EU control plan authentication endpoint is https://eu1.anypoint.mulesoft.com/accounts/login/receive-id instead of https://anypoint.mulesoft.com/accounts/login/receive-id. Need a caveat on this.

one more to add:
The assertion consumer service must be set to send a POST request to one of the below endpoints depending on where the Anypoint Platform Organization's located:

Anypoint Platform: https://anypoint.mulesoft.com/accounts/login/receive-id
Anypoint Platform EU Control Plane: https://eu1.anypoint.mulesoft.com/accounts/login/receive-id
Anypoint Platform Gov Cloud: https://gov.anypoint.mulesoft.com/accounts/login/receive-id


fix: Make the return value of accessToken nullable

What kind of change does this PR introduce?
Bug fix.
Reading through the documentation, it looks like the return value of the accessToken should allow null to be returned, but the current type doesn't allow null to be returned. This PR updates the return type of the accessToken function to allow null to be returned.
What is the current behavior?
The code sample from the docs has type error, because null cannot be returned from accessToken function.
import { createClient } from '@supabase/supabase-js'

const supabase = createClient('https://<supabase-project>.supabase.co', 'SUPABASE_ANON_KEY', {
  accessToken: async () => {
    ;(await firebase.auth().currentUser?.getIdToken(/* forceRefresh */ false)) ?? null
  },
})

What is the new behavior?
null can be returned from the function if no users are found.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

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 67.633%

Totals

Change from base Build<PHONE_NUMBER>1:
0.0%

Covered Lines:
99

Relevant Lines:
128

💛  - Coveralls


Rename the repos

So 5.7+ is out and the current active repo name is concrete5-5.7.0, this is horrible.
I want to propose a rename in the repos.
concrete5-5.7.0 should be at concrete5
and concrete5 (5.6) should be renamed to something along the lines of concrete5-legacy or concrete5-community.
its better to do this sooner than later so that we don't get stuck with concrete5-5.7.0 (people referencing code and such from github)
Also, 5.7.2 is out, which is 2 minor versions newer than the repo name.
Let the discussion commence!

Strictly related to https://github.com/concrete5/concrete5-legacy/issues/1906
Can this PR be closed too?


Use the atomic swap transactionid instead of the outputid in j.rivine.atomicswap

The refund and redeem command use the outputid  instead of the transactionid
This is a small change but would bring it in line with the rivine tooling where this has been modified for a while.

Fixed on development_simple branch


[sw, dif_uart] Add reset routine

This routine is useful to reset a peripheral to its default state.
This change is related to #1076

@alphan I just thought that this way is more flexible, as that removes the burden from boot_rom code to always reset the peripheral at the end. So the issue is if you require a state structure for the reset routine - you actually need to call dif_device_init before you can use dif_device_reset. However unless your init routine resets the peripheral internally, you will inherit some configuration and IRQ state from boot_rom. I actually had issue with my consecutive_irq_test, as I had additional IRQ firing, during to the line being asserted in boot_rom before a jump to flash.
Having mem_region_t as an input allows, for example, to reset the state and then run init in flash.
@lenary had some thoughts on whether it could be desirable to inherit some peripheral configuration from the boot_rom, to minimise the gap when we can process IRQs.
I am not sure what is the best way to go about it. We probably either want to force boot_rom to reset all the peripherals it has touched, or allow the drivers in flash to reset them before doing anything else, including init.
Another option would to reset the peripheral in the init routine, before actually initialising the peripheral.
Would be also interesting to see what @gkelly thinks about it.

@silvestrst, I think resetting in init is a good idea to guard against such cases but this is not best approach for peripherals that are also used in boot_rom. Maybe we can explore configuring all peripherals in boot_rom?

@alphan I have now created PR #1510  where I added a functionality that allows to choose the behaviour of the init routine. I might retire this PR later, as I haven't come across any use-cases so far where reset routine needs to be used.

Retiring this in favour of #1510 , at the moment I am not aware of the use-cases that require public reset routine. For the time being, to ensure that the state of the peripheral is consistent after a jump from boot_rom to flash, it is enough to reset peripherals on init.


Draft: Add a decorator method to record function calls with parameters

Related to #87

This looks quite neat. I assume this only works for class functions of the core class right now, no? Can we also make this work for methods form other classes? In particular, it would be great if we also could track the final settings selected in the interactive tools.
It also currently fails the tests, but this I suppose is quite easy to fix.

I've fixed the issues, progressed the workflow recorder through to the subclasses, added storing of the function class, and added tracking to the most relevant workflow items.
Might still need some tweeking.

Oh sorry. I wasn't sure why I was getting an error to merge changes currently but now it makes sense. Anyways, you can see that I made changes to the module to track any function calls within a single python session.
You're welcome to adjust the processor class accordingly, or I can also do it.

Would only be nice to include testing for it.

Yes, that's a fair point. I will do so once everything's been resolved.

Very nice addition!

Thanks!

I don't understand how your new version works. I disbled the changes in all other files, but I get:
TypeError: load() missing 1 required positional argument: 'self'
When I am trying to test it.
The addition I did to your previous code worked fine for me, and also included the class of the funktion.
How do you encompass to access the list of called functions? I found it nice to have it as part of the workflow processor, so that one does not need to manage an additional object, and e.g. feed it back in to propagate it to a metadata collection.
The previous version off course does not work for non-class functions, but actuall I did not see a need for this when checking the workflow.

I don't understand how your new version works. I disbled the changes in all other files, but I get:
TypeError: load() missing 1 required positional argument: 'self'
When I am trying to test it. The addition I did to your previous code worked fine for me, and also included the class of the funktion. How do you encompass to access the list of called functions? I found it nice to have it as part of the workflow processor, so that one does not need to manage an additional object, and e.g. feed it back in to propagate it to a metadata collection.
The previous version off course does not work for non-class functions, but actuall I did not see a need for this when checking the workflow.

I'll put here an example:
class Foo:
    @CallTracker
    def bar(self, x, y=1):
        return x + y

foo = Foo()
foo.bar(1, 2)
foo.bar(1, 9)
foo.bar(2, 2)
print(CallTracker.call_tracker)

should return
[MethodCall(name='bar', args=(1, 2), kwargs={}), MethodCall(name='bar', args=(1, 9), kwargs={}), MethodCall(name='bar', args=(2, 2), kwargs={})]

If we also want to include the classname, changing
self.func.__name__ to self.func.__qualname__ should do the trick.
I made the changes I did before you did, after reading your comment

Can we also make this work for methods form other classes?

So now the wrapper is fully independant from any modules or classes and keeps the state. Before, to keep the state, we'd need to store it seperately in each class.
I'd imagine that instead of keeping track in each class seperately, now we can just append it to the MetadataHandler. Would be much cleaner, wouldn't you say?

TypeError: load() missing 1 required positional argument: 'self'

Okay I see where the error occurs. It seems if we leave the arguments to default, it complains. I'll try to find a fix.

Have a look at 6b57ead93d4015ed0f1bc8a5e29afce101a0d92e
there I passed the list of calls along to each other class, so that they can access this, similar to the MetaHandler. I think that works sufficiently well, if fixing the class method issue is difficult.

I believe the issue is now resolved.
Currently, the default arguments are not stored in the list. It is possible to do that, if that is a useful feature. Perhaps to easily understand what parameter values were used.

I think it is not related to default arguments. This example reproduces the problem:
class Foo:
    @CallTracker
    def bar(self, x=0, y=1):
        return x + y

    @CallTracker
    def bar2(self, x=0, y=1):
        print(self)
        return self.bar(x,y)

foo = Foo()
foo.bar(1, 2)
foo.bar(1, 9)
foo.bar2(2, 2)
foo.bar2()
print(CallTracker.call_tracker)

Output:
<sed.core.workflow_recorder.CallTracker object at 0x7f27118c6400>
...
AttributeError: 'CallTracker' object has no attribute 'bar'

Apparently the "self" object passed to decorated functions is that of CallTracker, rather than the parent class.

The previous version I marked in the commit above (or the following one with linting) should do what we want without these problems, at least it looked like it to me. Only downside I see is that it only works for class methods, but it was anyways the idea to provide wrappers for all relevant functions, no?

Sorry for not continuing this request. I was a bit busy with exams, but seeing that Steinn has a different proposal, we can hold it off for the time being? @steinnymir or do you suggest, I finish this feature?
That'd be either the way I wanted to finish implementing or Laurenz already found working.

I am not yet sure how the new version might connect to this. My first impression is it would no longer be required, but I cannot yet say with certainty.

Not relevant with the new architecture.

Since, the new architecture will take time still, I thought we could finish this off and add it to sed. Possibly the branch is so old that making a new branch would be better. But opening for discussion.


Get create-wallet to 100% test coverage

Bounty: 100 tokens
The scope of this Issue is to add tests to the create-wallet tests in order to achieve 100% test coverage. It is currently at 70% test coverage. Make any changes needed to the create-wallet command necessary to facilitate mocks and test coverage.

The burn-tokens tests have achieved 100% test coverage. This provides a good example of the patterns that will be needed to complete this Issue.

This YouTube video covers JavaScript design and testing patterns that should be followed.

This YouTube video shows how to generate test coverage reports. These reports will help you identify the lines that are not being covered by current tests.

Acceptance Criteria

A Pull Request (PR) should be submitted that meet the above criteria. The PR should be from a branch and not a fork. In order to create a branch, you'll need commit to access to this repository.
All tests should pass when running npm test.
The command targeted by this Issue should show 100% test coverage when tests are run.
All commands should still be fully functional.
The bounty will be awarded upon successfully merging of the PR into the master branch.

This issue resolved by this PR:
https://github.com/Permissionless-Software-Foundation/slp-cli-wallet/pull/2


Discover services and devices defined by device

Devices can list their own services and (sub)devices in the serviceList and deviceList properties (and those can in their place list services and devices, etc). In the current implementation discovery is purely done by the SSDP.

I was under the impression that sub devices and sub services would advertise themselves over SSDP as well in which case they would get picked up. Are you saying they don't? If not do you have some description XML to test with?

They do as well, but the definition is also on the device, which makes it easier to discover related services (I need the MediaRenderer and the AVTransport of a single device, with multiple devices advertising)
This is a part of the description XML, it lists services and subdevices with their services:

<?xml version="1.0" encoding="utf-8" ?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
  <specVersion>
    <major>1</major>
    <minor>0</minor>
  </specVersion>
  <device>
   ...
    <serviceList>
      <service>
        <serviceType>urn:schemas-upnp-org:service:AlarmClock:1</serviceType>
        <serviceId>urn:upnp-org:serviceId:AlarmClock</serviceId>
        <controlURL>/AlarmClock/Control</controlURL>
        <eventSubURL>/AlarmClock/Event</eventSubURL>
        <SCPDURL>/xml/AlarmClock1.xml</SCPDURL>
      </service>
      <service>
        <serviceType>urn:schemas-upnp-org:service:MusicServices:1</serviceType>
        <serviceId>urn:upnp-org:serviceId:MusicServices</serviceId>
        <controlURL>/MusicServices/Control</controlURL>
        <eventSubURL>/MusicServices/Event</eventSubURL>
        <SCPDURL>/xml/MusicServices1.xml</SCPDURL>
      </service>
      <service>
        <serviceType>urn:schemas-upnp-org:service:AudioIn:1</serviceType>
        <serviceId>urn:upnp-org:serviceId:AudioIn</serviceId>
        <controlURL>/AudioIn/Control</controlURL>
        <eventSubURL>/AudioIn/Event</eventSubURL>
        <SCPDURL>/xml/AudioIn1.xml</SCPDURL>
      </service>
      <service>
        <serviceType>urn:schemas-upnp-org:service:DeviceProperties:1</serviceType>
        <serviceId>urn:upnp-org:serviceId:DeviceProperties</serviceId>
        <controlURL>/DeviceProperties/Control</controlURL>
        <eventSubURL>/DeviceProperties/Event</eventSubURL>
        <SCPDURL>/xml/DeviceProperties1.xml</SCPDURL>
      </service>
      <service>
        <serviceType>urn:schemas-upnp-org:service:SystemProperties:1</serviceType>
        <serviceId>urn:upnp-org:serviceId:SystemProperties</serviceId>
        <controlURL>/SystemProperties/Control</controlURL>
        <eventSubURL>/SystemProperties/Event</eventSubURL>
        <SCPDURL>/xml/SystemProperties1.xml</SCPDURL>
      </service>
      <service>
        <serviceType>urn:schemas-upnp-org:service:ZoneGroupTopology:1</serviceType>
        <serviceId>urn:upnp-org:serviceId:ZoneGroupTopology</serviceId>
        <controlURL>/ZoneGroupTopology/Control</controlURL>
        <eventSubURL>/ZoneGroupTopology/Event</eventSubURL>
        <SCPDURL>/xml/ZoneGroupTopology1.xml</SCPDURL>
      </service>
      <service>
        <serviceType>urn:schemas-upnp-org:service:GroupManagement:1</serviceType>
        <serviceId>urn:upnp-org:serviceId:GroupManagement</serviceId>
        <controlURL>/GroupManagement/Control</controlURL>
        <eventSubURL>/GroupManagement/Event</eventSubURL>
        <SCPDURL>/xml/GroupManagement1.xml</SCPDURL>
      </service>
    </serviceList>
    <deviceList>
      <device>
  <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
  ...
  <serviceList>
    <service>
      <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>
      <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>
      <controlURL>/MediaServer/ContentDirectory/Control</controlURL>
      <eventSubURL>/MediaServer/ContentDirectory/Event</eventSubURL>
      <SCPDURL>/xml/ContentDirectory1.xml</SCPDURL>
    </service>
    <service>
      <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
	    <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
	    <controlURL>/MediaServer/ConnectionManager/Control</controlURL>
	    <eventSubURL>/MediaServer/ConnectionManager/Event</eventSubURL>
	    <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>
	  </service>
	</serviceList>
      </device>
      <device>
	<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>
        ....
	<serviceList>
	  <service>
	    <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
	    <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
	    <controlURL>/MediaRenderer/RenderingControl/Control</controlURL>
	    <eventSubURL>/MediaRenderer/RenderingControl/Event</eventSubURL>
	    <SCPDURL>/xml/RenderingControl1.xml</SCPDURL>
	  </service>
	  <service>
	    <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
	    <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
	    <controlURL>/MediaRenderer/ConnectionManager/Control</controlURL>
	    <eventSubURL>/MediaRenderer/ConnectionManager/Event</eventSubURL>
	    <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>
	  </service>
	  <service>
	    <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>
	    <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>
	    <controlURL>/MediaRenderer/AVTransport/Control</controlURL>
	    <eventSubURL>/MediaRenderer/AVTransport/Event</eventSubURL>
	    <SCPDURL>/xml/AVTransport1.xml</SCPDURL>
	  </service>
          <service>
            <serviceType>urn:schemas-upnp-org:service:GroupRenderingControl:1</serviceType>
            <serviceId>urn:upnp-org:serviceId:GroupRenderingControl</serviceId>
            <controlURL>/MediaRenderer/GroupRenderingControl/Control</controlURL>
            <eventSubURL>/MediaRenderer/GroupRenderingControl/Event</eventSubURL>
            <SCPDURL>/xml/GroupRenderingControl1.xml</SCPDURL>
          </service>
	</serviceList>
      </device>
    </deviceList>
  </device>
</root>