Recommended approach for running tape continuously as soon as watched files are edited?

Hi. What do you recommend for running tape continuously as soon as you change files? Runners like karma have this ability built in. Do we need to wrap tape in a gulp (or grunt, etc...) task? It's quite icky. It would be nice to have it builtin inside tape.
Thanks.

https://github.com/Qard/onchange

Thanks. I assume there are no plans to have it built in within tape?

I assume that it is out of the scope of the tape project. It all composes well together though.

tape focused on outputting TAP to stdout so that other tools can focus on things like file watching. onchange is pretty good if you want something very simple. There are some tape runners like prova to give more integrated higher-level features like file-watching.

I've built a tool to handle this: https://github.com/rstacruz/tape-watch
It works differently from watchers like onchange in that it doesn't invoke your tape tests in a separate process. This may lead to some side effects in some edge cases of course, but for most cases it works pretty well. It's like mocha --watch for tape.

Cool :)

@rstacruz
Is tape-watch still operational?
Some tests are failing and the project looks like kind of abandoned, is it?

My rule of thumb: if you need to ask whether a project has been abandoned, it usually has.

@gotofritz

My rule of thumb: if you need to ask whether a project has been abandoned, it usually has.

That is a sad rule and I've seen projects revived that way with former owner offering help or sometimes they don't make any changes because they consider the project completed.
The tape-watch seems to be offering some better performance than other solutions:

tape-watch is an auto-test runner for tape. It will re-run your tests when any of the files in your project changes. This is better than using watch or nodemon: it will reload your tests in the same Node.js process, saving you precious startup time.

And if I understand correctly, onchange works similar to watch or nodemon, while the other mentioned https://www.npmjs.com/package/prova had been last published 3 years ago.
That leaves the question, whether @rstacruz would still be interested to help fixing tape-watch.


Some Bullet bug fix

Fixed move_and_slide on concave shape - Fixes #13002
Fixed is_on_floor - Fixes #12853
Fixed compilation fail in Webassembly - Fixes #12720
Fixed gravity scale - Fixes #12770
Added NULL check in cast_motion API - Fixes #12683

@akien-mga I know that you want one commit per PR but can you accept these 4 bug fix in this single PR? (So I don't have to craete 4 branch)

I know that you want one commit per PR but can you accept these 4 bug fix in this single PR? (So I don't have to craete 4 branch)

Yep that's fine like that :)

@AndreaCatania Note that you can use "Fixes #<PR number>" in your commit or PR message so that the mentioned issues get automatically closed when merging. I've edited the OP for that already.

@akien-mga Good to know Thanks you!!


Feature/check tag exists

Add a reserved property _exist for tag, true if tag attached to vertex false if not.Both getProps and getNeighbors supported.

Generally LGTM, one little question, do we need this for fetch edge as well?

Generally LGTM, one little question, do we need this for fetch edge as well?

I don't think so , the edge type is part of the edge quaternion

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


Ansible request for jq for test machines

jq is need to install for reproducible comparing tests with sbom json file.
For windows with cygwin, cygwin need install jq
https://github.com/adoptium/temurin-build/issues/3687#issuecomment-1979626054

Based on discussions elsewhere I think the important thing will be to have this in the operating systems that we use on the Linux test machines that can run docker so that, plus Windows, should be the scope of this change.
Noting that jq does not exist in the repositories for CentOS7, so while there are CentOS74 and RHEL7 machines in that set, I am tempted to exclude them from this (maybe we should remove sw.tool.docker freom those hosts now?) since it would require installing from the repositories and since those OS versions are soon to be out of support I'm not sure there is benefit to doing that workaround. If anyone disagrees, please let me know.

Note: We may have to deploy jq under cygwin manually on the existing windows machines, as the change in the PR will only apply it to new installs of cygwin.

Thanks @steelhead31 to deploy it manully on jenkins windows machines!


Change DUSK denomination from 8 to 10 decimals

Fixes #816

Codecov Report

Merging #820 (bf377de) into master (671f161) will increase coverage by 0.17%.
The diff coverage is 56.77%.

@@            Coverage Diff             @@
##           master     #820      +/-   ##
==========================================
+ Coverage   48.42%   48.60%   +0.17%
==========================================
  Files         140      142       +2
  Lines        6914     7002      +88
==========================================
+ Hits         3348     3403      +55
- Misses       2969     2991      +22
- Partials      597      608      +11

Impacted Files
Coverage Δ

pkg/core/consensus/comms.go
0.00% <ø> (ø)

pkg/core/consensus/fixtures.go
0.00% <ø> (ø)

pkg/core/data/wallet/wallet.go
58.22% <ø> (ø)

pkg/p2p/wire/topics/topics.go
68.00% <ø> (ø)

pkg/core/consensus/reduction/firststep/step.go
50.42% <11.53%> (-5.24%)
:arrow_down:

pkg/core/consensus/selection/step.go
48.20% <25.00%> (-0.71%)
:arrow_down:

pkg/core/consensus/reduction/secondstep/step.go
73.77% <33.33%> (-1.23%)
:arrow_down:

pkg/core/chain/sequencer.go
66.66% <40.00%> (-33.34%)
:arrow_down:

pkg/p2p/peer/peer.go
36.45% <43.10%> (-0.72%)
:arrow_down:

pkg/core/candidate/validator.go
57.14% <50.00%> (ø)

... and 14 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4ea8ea6...bf377de. Read the comment docs.


CSS Modules classes can't be used in computed properties with noUncheckedIndexedAccess tsconfig.json option enabled

Describe the bug
There's a following TypeScript error:
TS2464: A computed property name must be of type 'string', 'number', 'symbol', or 'any'.

when I import a CSS class from a CSS module (*.module.css) if noUncheckedIndexedAccess option is enabled in the tsconfig.json file.
Did you try recovering your dependencies?
The issue is reproduced from a new project.
Which terms did you search for in User Guide?
Combination of:
typescript
css modules
computed property
noUncheckedIndexedAccess
TS2464

Environment
Environment Info:

  current version of create-react-app: 4.0.3
  running from /Users/baybulatov.artur/.npm/_npx/c67e74de0542c87c/node_modules/create-react-app

  System:
    OS: macOS 10.15.7
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
  Binaries:
    Node: 14.12.0 - /usr/local/bin/node
    Yarn: Not Found
    npm: 7.13.0 - /usr/local/bin/npm
  Browsers:
    Chrome: 91.0.4472.114
    Edge: Not Found
    Firefox: Not Found
    Safari: 14.1.1
  npmPackages:
    react: ^17.0.2 => 17.0.2
    react-dom: ^17.0.2 => 17.0.2
    react-scripts: 4.0.3 => 4.0.3
  npmGlobalPackages:
    create-react-app: Not Found

Steps to reproduce
Create a CSS module file, e.g. example.module.css and try using it:
import styles from './example.module.css';
const classes = {[styles.message_color_orange]: true}; // <-- Error here

Expected behavior
No typings error should happed.
Actual behavior
Typings error happening.
Reproducible demo

npx create-react-app my-app --template typescript

cd my-app/

Apply the following git patch:
https://gist.github.com/ArturBaybulatov/34b650e18c1507bd79be6e9837fc7895
The patch can be applied as follows:

Copy the patch contents to the clipboard

git apply

Paste the copied patch, enter a new line at the end, finish input (press Ctrl+D)

npm ci --also=dev

See the typings error on a line 14 of a file src/App.tsx.
Notes
Currently the issue can be worked around by using the non-null assertion operator (!):
import styles from './example.module.css';
const classes = {[styles.message_color_orange!]: true};

Don't think this is a bug and definitely not in CRA. noUncheckedIndexedAccess just tells Typescript any key you request from a Record type can be undefined and CSS Modules type generation probably works with Record-typings. It does so in Next.js. Not sure if you can tweak that to have more ideal typing.
You can resolve this error in two ways:
Safest solution:
import styles from './example.module.css';

if (!styles.message_color_orange) {
    throw new Error('Unexpected error with CSS Modules')
}

// At this point the undefined value is ruled out and we can safely assume it is a string
const classes = {[styles.message_color_orange]: true};

But if that Error was thrown, your whole build pipeline would probably be broken and you'd have way bigger problems, so you can simply tell Typescript that you know better and the classname is never undefined by using the non-null assertion operator (!). That will convert the type string | undefined (or even string | undefined | null) to string, which makes  that a valid type to use for the classes object.
import styles from './example.module.css';

const classes = {[styles.message_color_orange!]: true};


Create ErlangCalculator

What the program do?
This program provides the functionality of the addition, subtraction, multiplication, division and exponentiation functions of a calculator as well as displaying the subtotal, and clearing the subtotal back to 0.

In what programming language it is written?
Erlang

This pull request do not contains files in specific folders. Please fix it and reopen


Parquet Scan Filter

I hope to work on this after finishing up dictionary preservation (#1180) and async (#1154), creating now for feedback and visibility
Background
IOx is a columnar, time-series database that uses parquet for its persistence format. The data model consists of a number of relatively low cardinality tag columns, a timestamp column and a number of value columns. Data is stored in order of column cardinality, with the lowest cardinality columns first.
Almost all IOx queries contain highly selective predicates on tag columns, and therefore predicate pushdown is very important to IOx's performance story.
Currently the parquet crate only supports predicate pushdown in the form of row group pruning, that is using statistics to skip reading entire row groups. Unfortunately this is only very effective if a file is both large enough to contain multiple row groups, and the predicate is on a column early in the sort order.
An obvious next step might be to perform page-pruning, that is using page metadata to skip pages. However, the page metadata is typically stored inside the page header, and so you likely end up reading the entire page from the backing store and decompressing it only to then throw it away, which is not ideal.
There is an optional extension to parquet called PageIndex that tries to address this. However, I'm not aware of any systems outside of Impala that support this functionality, and it is still constrained by the page granularity and the limitations of relying on aggregate statistics.
Proposal
Instead I would like to propose adding functionality to allow providing a row selection mask when scanning a column chunk. When provided, only values (null or otherwise) with a corresponding set bit in the selection mask will be returned in the output. For simplicity nested data will not be supported, at least initially.
This would allow IOx, or potentially DataFusion depending on where the logic for this eventually sits, to do the following for pushing down predicates, in addition to the current row group filtering:
For each column in an order determined by some heuristic:

Stream out the data for the column with the current selection mask (initially all true)
Evaluate the column predicate on the returned array
Use this to refine the selection mask for the next column

Once all the predicates that can be evaluated in this way have been evaluated, a final scan can be performed with the final selection mask across the full set of projected columns.
Potential Problems
I'm currently aware of the following potential problems with this approach, but let me know if I've missed something:

Columns may be scanned twice. My hope is with (#1180) this won't be too problematic
For heavily compressed column chunks with many rows, the selection mask may be prohibitively large
Would add non-trivial additional complexity to the decoder implementations

Despite this I am optimistic about the feasibility of this approach, as it is very similar to the one @e-dard has successfully applied to IOx's read buffer - an in-memory, read-only, queryable data structure.

This would allow IOx, or potentially DataFusion depending on where the logic for this eventually sits, to do the following for pushing down predicates, in addition to the current row group filtering:

I think it would be best to implement in DataFusion if at all possible -- this logic and need is not at all specific to IOx and so the community would benefit (and also likely help maintain this) if it were in IOx
One thing to consider  for the strategy described is that it may actually slow down parquet scanning for non selective predicates (e.g. predicates that filter out none of the rows).
Another thing is that the order in which the predicates are evaluated may make a difference (e.g. if there is a predicate that filters out all but a few rows, and a predicate that doesn't filter any, applying the predicate that filters out most of the rows first is likely to be faster
I think the challenge of non-selective predicates and order should not be handled by the actual parquet reader (that is the query engine should specify what predicates and in what order to apply them).

In the Impala implementation, there was negligible impact on unsorted/random data https://blog.cloudera.com/speeding-up-select-queries-with-parquet-page-indexes/. If parquet-rs can correctly store and retrieve the column sort statistics, that would help with the evaluation decision of whether to use a page index or not.
I think the predicate evaluation would best live in parquet as it can get complex for some pages. So datafusion and other processing engine implementing the logic on their own would repeat this non-trivial work.

I think it would be best to implement in DataFusion if at all possible

Agreed, I was somewhat hedging here :laughing:

In the Impala implementation, there was negligible impact on unsorted/random data https://blog.cloudera.com/speeding-up-select-queries-with-parquet-page-indexes/.

That's a great link :+1:, and yeah the ability to prune on aggregate statistics is very dependent on the sort order.

that would help with the evaluation decision of whether to use a page index or not.
I think the predicate evaluation would best live in parquet as it can get complex for some pages

I was somewhat hoping to avoid using the page index, in part for this reason, as it would require pushing predicate evaluation into the parquet crate, but also because of the small matter that we don't currently read or write it :sweat_smile:
I believe in most cases a selection mask will perform similarly or significantly better, allowing skipping pages and even runs within pages, whilst also not requiring predicate evaluation logic to leak into the parquet crate?

I think the predicate evaluation would best live in parquet as it can get complex for some pages. So datafusion and other processing engine implementing the logic on their own would repeat this non-trivial work.

I agree that predicate evaluation should be done in parquet -- what @e-dard did in the IOx ReadBuffer was to implement  predicates that could be evaluated very fast (e.g. =, !=, <, etc of a column and a literal)
https://github.com/influxdata/influxdb_iox/blob/main/read_buffer/src/row_group.rs#L1517-L1524
I recommend a similar (or the same!) approach in parquet

Shall I create a separate ticket in that case for directly evaluating predicates against encoded data, I think the two problems are separable?

Shall I create a separate ticket in that case for directly evaluating predicates against encoded data, I think the two problems are separable?

I probably don't fully understand what "evaluating predicates against encoded data" means compared to what you have proposed in this ticket. Thus I am not sure about the need for a second ticket

A further optimisation would then be to actually evaluate the predicates directly on the underlying parquet data, without first decoding to an arrow representation. This is what I'm wondering if I should create a ticket for? This still needs the "take" support in order for the generated masks to be useful, but it likely will speed up their generation vs decoding to an arrow representation first

I think that makes sense as a follow up item; 👍

We can also explore lazy materialization, that is, only decode & decompress (or even pay the IO cost), when a Parquet page is actually needed. I think this is especially useful when many columns are selected and only a few very selective predicates are applied on some of the columns. It in some sense is similar to page skipping based on column index, but more powerful.
It'd be very nice to implement row group and page level skipping in arrow-rs also, so that engines don't have to duplicate the work.

Definitely. Irrespective of how the pruning takes places - whether a scan mask as proposed here, or information derived from a page index, or some other mechanism, there's definitely no point doing IO for pages that aren't going to be used. :+1:
My hope with the scan masks is to provide an API that allows query engines to express what rows they want, without having to worry about the mechanics of what pages, etc... to fetch and decode for those rows, what statistics are available, how the writer interpreted the ambiguous parquet specifications, etc...
This would leave the implementation in arrow-rs free to choose the most efficient way to get the requested rows of data. As an added benefit this approach would integrate well with the async plumbing I stubbed out in #1154, which needs to know what data is going to be needed ahead of time.
This scan mask approach is heavily geared to the use-case of IOx where the page index is likely to not be very helpful, but they're definitely complementary approaches. I'd imagine it is possible to construct the partial scan logic in such a way that it works well for both. Ultimately the page index is just a way to generate a low granularity scan mask :smile:
All that is to say, I agree entirely with handling these concerns in arrow-rs as you suggest.

I mean I was just planning to use an arrow BooleanArray that you'd pass in... I'll give the linked paper a read 👍

Just wanted to chip in and say that implementing PageIndex would be great even if parquet-rs doesn't use it internally for predicate push down as it can be used by other engines/implementation that do. In analytics systems these files get passed around between different systems.
I'm currently rewriting a project in Java, to Rust, that uses parquet 1.11.1 (so no hadoop or Impala or Spark) which uses predicate pushdown using ColumnIndex and OffsetIndex.
I'm using parquet-rs to write the file and datafusion to read the file back, unfortunately the current system can't read the file due the absent of the PageIndex.
Having current systems to be able to read parquet-rs files would be a boon for backward/forward compatibly.

@ParadoxShmaradox makes sense. I can try to find some time to bash something out in the next few weeks, time permitting. If you were willing to assist that might speed things along, but if not, no worries 😅

@tustvold Sure! Hit me up and I can test file generation in rust and read in Java, I can probably share the files from both implementations.

Filed https://github.com/apache/arrow-rs/issues/1705 to track adding PageIndex support

I think the high-level work to support this is now complete, so marking this as done. There is definitely further improvements to be made, but that can be tracked separately

🎉


Expect EXIT_FAILURE when storage id is not present

as per title

Based on the title of this test - maybe it should also be EXPECT_NO_THROW?

@Karsten1987 Am I understand correctly that rational for this changes is the same as I have described in https://github.com/ros2/rosbag2/pull/763?
If so, it looks like we need to change the test name as well. We are not handling exceptions and not exiting gracefully anymore.


Win condition, not allowing you to win.

Describe the bug
Win condition, doesn't allow you to actually win.
To Reproduce
Solve all the riddles on the map.
Note that all zones have been exhausted.
You don't get the win message.
Expected behavior
I expect that after solving all the riddles you will have won the game.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Issue has been fixed.


[IOTDB-782] [Experimental] Clear mlog when creating snapshot

Clear mlog.txt when creating snapshot, and thus avoid reading and skipping the lines which are already in mtree.snapshot.

Experiment result: (just in my computer)
When recovering from 3000K timeseries, deserializing MTree from mlog.txt (including reading and skipping the useless lines) takes up to 7845ms:
02:22:05.232 [main] DEBUG org.apache.iotdb.db.metadata.MManager - spend 7845 ms to deserialize mtree from mlog.txt

After deleting this useless part, the time could reduce by up to 19.5%. Maybe when the number of timeseries is larger (for example, 10M), the "useless lines" are more, so we could save more time.
Could you please help and do an experiment with 10M timeseries and compare the result with the origin method @jixuan1989 ? I hope the result will be better this time.


Migration from UltraPermissions

I've seen some dead issues on the repo before regarding this but no answer for it, as I'd like to learn LuckPerms and I've been intending to for awhile. Also UltraPermissions has a MySQL DB hook if that makes anything easier/harder in terms of figuring a way to migrate

Major issue is that UltraPerms doesn't offer any form of public API, so; LP cannot be compiled against UP, would basically require to support their data format directly, which as I said on another issue relating to this is a bit icky and far from ideal, do they maybe have a sane export format (if they support that)

I agree with @electronicboy, this is hard for LP to implement unless the UltraPermissions author decides to publish a publicly available API for us to build against - and unfortunately even when/if they do, implementing this is unlikely to be a priority for me.


Creatures consider their own squares difficult terrain when moving

If the creatures path intersects with its current location, the cost function will treat that square as difficult terrain, when Tokens Cause difficult terrain is enabled.
This is particularly notable for large or larger creatures, since they count their own squares as difficult terrain, meaning their first move includes squares with difficult terrain.
This issue vanishes when the setting is off. When I check the cost function for a large creatures first step the cost for walking through another creatures squares segment resulted in a cost array of 1, 1, 1, 1 for large creatures rather than 1,2,1,2.

Resolved in 1.0.14


Mongo timeout value only works if passed directly to query

Hey!
For me it seems that the only way to increase default Mongo timeout limit is to add it as a parameter in the query, for example like this: Mongo.find(:mongo, "collection", %{}, timeout: 60_000). If I just add the timeout param to Mongo.start_link() and then later make a query it uses the default timeout value (15 sec).
The exact timeout error I receive is this: Mongo.MongoDBConnection (#PID<0.6890.0>) disconnected: ** (DBConnection.ConnectionError) client #PID<0.18881.3561> timed out because it queued and checked out the connection for longer than 15000ms.
This is the config that I'm using:
config :fraud_engine, Mongo,
  name: :mongo,
  url: "#{System.get_env("MONGO_URL")}",
  timeout: 60_000,
  connect_timeout: 60_000,
  checkout_timeout: 60_000,
  pool_timeout: 60_000,
  pool_size: 20

And this is how it looks in application.ex:
children = [
  ...
  %{id: :mongo, start: {Mongo, :start_link, [Application.get_env(:my_app, Mongo)]}}
  ...
]

Supervisor.start_link(children, opts)

I have verified that the correct config values are retrieved in Application.get_env(:my_app, Mongo) call.
I'm not sure if this is a bug or not but any help would be appreciated!

Hey!
One question: does the URL contain a timeout?
%{id: :mongo, start: {Mongo, :start_link, [Application.get_env(: fraud_engine, Mongo)]}}

I guess, you mean : fraud_engine instead of :my_app?

Hey, sorry forgot to substitute :fraud_engine to :my_app in the example.
The URL does not contain a timeout, it looks like this mongodb://root:example@localhost:27018/admin.

I used the same configuration above and it seems to work. For me, it is not reproducible. You can check out the master branch and edit the following line in the lib/mongo/mongo_db_connection.ex file:

This prints the timeout value to the stdout. Then you can see, what value is used. In my case, the specified 60_000 is always used.

Hey, thanks for your reply. Indeed, when I log it there it works as you mentioned.
I also tried logging in the actual place I get the error in production, which is in (db_connection 2.5.0) lib/db_connection.ex:1432: DBConnection.run_execute/5, like this:
  defp run_execute(conn, query, params, meter, opts) do
    %DBConnection{pool_ref: pool_ref} = conn
    meter = event(meter, :execute)

    IO.inspect(opts, label: :opts)

When I open up iex and run Mongo.find_one(:mongo, "Collection", %{}, timeout: 60000), it prints out opts: [batch_size: 1, timeout: 60000]. But when I don't specify timeout in query and just run Mongo.find_one(:mongo, "Collection", %{}), it prints out opts: [batch_size: 1]. So based on this it seems to me that the timeout option gets lost somewhere but I'm not sure if it is an issue in driver or db_connection itself. It might also be that this is expected and I'm looking at it wrong 🤔

For reference, this is the actual error I get in production:
Mongo.MongoDBConnection (#PID<0.6886.0>) disconnected: ** (DBConnection.ConnectionError) client #PID<0.5522.8060> timed out because it queued and checked out the connection for longer than 15000ms

#PID<0.5522.8060> was at location:

    :prim_inet.recv0/3
    (mongodb_driver 1.2.0) lib/mongo_db_connection/utils.ex:105: Mongo.MongoDBConnection.Utils.recv_data/3
    (mongodb_driver 1.2.0) lib/mongo_db_connection/utils.ex:21: Mongo.MongoDBConnection.Utils.post_request/3
    (stdlib 4.0.1) timer.erl:235: :timer.tc/1
    (mongodb_driver 1.2.0) lib/mongo/mongo_db_connection.ex:356: Mongo.MongoDBConnection.send_command/3
    (mongodb_driver 1.2.0) lib/mongo/mongo_db_connection.ex:101: Mongo.MongoDBConnection.handle_execute/4
    (db_connection 2.5.0) lib/db_connection/holder.ex:354: DBConnection.Holder.holder_apply/4
    (db_connection 2.5.0) lib/db_connection.ex:1432: DBConnection.run_execute/5

Now that I look at it, I realized that it ends up in lib/mongo/mongo_db_connection.ex in send_command/3 anyway (where it works as expected), so you can disregard my previous comments 🤦

Ok! Maybe the DBConnection.run_execute/5 is complaining about the timeout. This could be the reason. If you run a query the driver doesn't use the predefined timeout and therefore the DBConnection is using the 15_000 ms.

I think it is a bug because the DBConnection module times out and not the underlying TCP connection. I will fix it!

You can try this PR: https://github.com/zookzook/elixir-mongodb-driver/pull/215
The interesting point is, that the :timeout option is not recognized by the underlying DBConnection module. The driver needs to update the timeout options for each query/update unless the client provides its own timeout value.

I tried this out and the issue seems to be fixed now, thank you!

Thanks for the response. The PR is merged to the master branch and in a few days I will release a new version.


[Metadata]: Notion.Notion version 2.0.28

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[x] Does your manifest conform to the 1.6 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Hi @og-mrk,
This manifest adds Apps and Features entries that aren't present in previous PR versions. These entries should be added to the previous versions, or removed from this version.
(Automated response - build 857.)


fix: stop retryablehttp from debug logging

This PR fixes the issue in https://github.com/openfga/openfga/issues/877. The retryablehttp client produces unstructured logs by default. This change disables its logger.
Description

This PR initialises the retryablehttp client and sets its logger to nil to disable its internal logging.
References

Closes https://github.com/openfga/openfga/issues/877
Info https://github.com/hashicorp/go-retryablehttp/issues/31
Review Checklist

[x] I have clicked on "allow edits by maintainers".
[ ] I have added documentation for new/changed functionality in this PR or in a PR to openfga.dev [Provide a link to any relevant PRs in the references section above]
[x] The correct base branch is being used, if not main
[ ] I have added tests to validate that the change in functionality is working as expected

LGTM, but needs a rebase on main. Please rebase and then I'll approve 👍

Done and thank you

Thank you @KlausVii for your PR!


Implement sane default button sizes

Fixed in https://github.com/Impria/ghast/commit/23ae2d20bb70ecc944a642616c63c6fc5fbc0dfe


System-tests: brokered/standard: authorization tests

We need to validate that messaging clients can only create queues for addresses they have permission to subscribe to.

Completed


PredictableMemOpt: fix wrong handling of re-borrows of a load_borrow

When promoting a load_borrow, the re-borrows were not considered which lead to leaked values. Now, just bail if a load_borrow has re-borrows.
rdar://118402432

@swift-ci test

@swift-ci smoke test windows


exploitdb: 2023-08-11 -> 2023-08-12

Diff: https://gitlab.com/exploit-database/exploitdb/-/compare/refs/tags/2023-08-11...2023-08-12
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

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

1 package built:

exploitdb


add support fo jsdoc const tag

Fixes #19672
TODO:

[x] checker
[x] emitter

I'm wary of supporting jsdoc alternatives to existing JS/TS features after my experiences with @enum, @private and @implements, unless there's a good concrete motivation. Even a perfect equivalent adds to the difference between JS and TS code by making the two languages different rather than TS adding to JS.
In this case, I feel like a concrete motivation is going to be hard to find, given the prevalence of Babel, Typescript, and ES2015 runtimes, all of which support const.
From reading the issue and the PR, here's what I think the semantics should be. @Kingwl can you take a look at this and write out what is actually implemented in this PR?

@const can be applied to any variable declaration in JS or TS.
@const additionally behaves like @type when it's followed by a type in braces, including @type's expression-statement-as-declaration semantics:

constructor() {
  /** @const {12} */
  this.k
}

In JS, @const makes the declaration const, even if it was a var or let. This sounds hard to implement given const's support in the binder, so it might suffice to make it readonly.

Use of @const instead of const and a transpiler makes the JS -> TS upgrade path even rockier, so we should provide a codefix to turn @const into const in both JS and TS.

@Kingwl do you want to keep working on this? If not, I'll probably close it to keep the number of open PRs down.


A problem with watchgod was discovered

A problem with watchgod was discovered when a business program was running. When a batch file to delete files was started in the background, the information monitored by watchgod seemed to have some problems, including some Change.added actions that did not actually exist. What is going on? Thank you.
The batch file is as follows:
@echo off
forfiles -p "E:\GDS\TEST" -s -m . -d -1 -c "cmd /c del @path"
for /f "delims=" %%a in ('dir /ad /b /s E:\GDS\TEST^|sort /r') do (
rd "%%a">nul 2>nul &&echo emptydir"%%a"deleted!
)
exit
The monitoring information is as follows:
2020-06-04 09:06:03,350 - main.Watcher - INFO - E:\GDS\TEST monitoring... - [watcher.py:92]
2020-06-04 09:06:03,379 - main.Watcher - INFO - E:\CODES\Python\transfer\test1 monitoring... - [watcher.py:92]
2020-06-04 09:06:15,900 - main.Watcher - INFO - Received E:\GDS\TEST 4859 changes - [watcher.py:58]
2020-06-04 09:06:15,902 - main.Watcher - INFO - Received 52 Change.added changes - [watcher.py:61]
2020-06-04 09:06:15,903 - main.Watcher - INFO - Received 1 Change.deleted changes - [watcher.py:61]
2020-06-04 09:06:15,933 - main.Watcher - INFO - Received 15 Change.added changes - [watcher.py:61]
2020-06-04 09:06:15,961 - main.Watcher - INFO - Received 1 Change.deleted changes - [watcher.py:61]
2020-06-04 09:06:15,963 - main.Watcher - INFO - Received 121 Change.added changes - [watcher.py:61]
2020-06-04 09:06:15,964 - main.Watcher - INFO - Received 1 Change.deleted changes - [watcher.py:61]
2020-06-04 09:06:15,966 - main.Watcher - INFO - Received 10 Change.added changes - [watcher.py:61]
2020-06-04 09:06:15,967 - main.Watcher - INFO - Received 1 Change.deleted changes - [watcher.py:61]
2020-06-04 09:06:15,969 - main.Watcher - INFO - Received 2 Change.added changes - [watcher.py:61]
2020-06-04 09:06:16,025 - main.Watcher - INFO - Received 1 Change.deleted changes - [watcher.py:61]
2020-06-04 09:06:16,052 - main.Watcher - INFO - Received 60 Change.added changes - [watcher.py:61]
2020-06-04 09:06:16,054 - main.Watcher - INFO - Received 1 Change.deleted changes - [watcher.py:61]
2020-06-04 09:06:16,055 - main.Watcher - INFO - Received 19 Change.added changes - [watcher.py:61]
2020-06-04 09:06:16,056 - main.Watcher - INFO - Received 1 Change.deleted changes - [watcher.py:61]
2020-06-04 09:06:16,057 - main.Watcher - INFO - Received 47 Change.added changes - [watcher.py:61]
2020-06-04 09:06:16,058 - main.Watcher - INFO - Received 1 Change.deleted changes - [watcher.py:61]
2020-06-04 09:06:16,059 - main.Watcher - INFO - Received 22 Change.added changes - [watcher.py:61]
2020-06-04 09:06:16,060 - main.Watcher - INFO - Received 1 Change.deleted changes - [watcher.py:61]
2020-06-04 09:06:16,061 - main.Watcher - INFO - Received 2 Change.added changes - [watcher.py:61]
2020-06-04 09:06:16,062 - main.Watcher - INFO - Received 1 Change.deleted changes - [watcher.py:61]
2020-06-04 09:06:16,064 - main.Watcher - INFO - Received 11 Change.added changes - [watcher.py:61]
2020-06-04 09:06:16,065 - main.Watcher - INFO - Received 1 Change.deleted changes - [watcher.py:61]
2020-06-04 09:06:16,066 - main.Watcher - INFO - Received 7 Change.added changes - [watcher.py:61]
2020-06-04 09:06:16,067 - main.Watcher - INFO - Received 1 Change.deleted changes - [watcher.py:61]
2020-06-04 09:06:16,105 - main.Watcher - INFO - Received 8 Change.added changes - [watcher.py:61]

there's not enough information here to investigate.
I'm afraid you'll need to look into this ourself and come back here when you can reproduce the bug.
I also don't have access to windows.


Upgrade to Lottie 4.1.3.

This xcframework was built from the Lightricks's fork of Lottie:
https://github.com/Lightricks/lottie-ios/ by using the tag 4.1.3..
The log can be found here
https://github.com/Lightricks/Foundations/actions/runs/4722559448

@khasin-dev this is part 1

LGTM


AttributeError: 'VariableScope' object has no attribute 'current_scope'

Someone can help me? Thank you

What python version are you using? For python3 and above, the prettyTensor API does not work


FoundationInternationalization: add explicit type signature

Add an explicit type signature for the closure as it was being inferred as () -> WeekendRange rather than () -> WeekendRange? which results in a failure to build as nil does not conform to WeekendRange.

@swift-ci please test

it was being inferred as () -> WeekendRange rather than () -> WeekendRange?

Is this perhaps worthy of investigating as a potential bug in the compiler? Seems like there might be a type inference bug lurking in here, unless this is just an unsupported inference case

it was being inferred as () -> WeekendRange rather than () -> WeekendRange?

Is this perhaps worthy of investigating as a potential bug in the compiler? Seems like there might be a type inference bug lurking in here, unless this is just an unsupported inference case

I wouldn't be surprised if that's the case. I've hit so many weird compiler errors like "can't resolve expression" only to have them resolved by explicitly annotate the types...


Is there a way to cache typechecking (like via cache-loader)?

I used ts-loader along with cache loader and seems it helped pretty much. But now with ForkTsCheckerWebpackPlugin I seems unable to do that. Is there a way to cache results of ForkTsCheckerWebpackPlugin?

As they are working very differently, unfortunately not.
(loaders only get one input file and compile that - that can be cached. fork-ts-checker-webpack-plugin checks types for all files in your sources and then watches to only check for differences from there on - that can't be cached by any other loader)


Document adding custom eject quotes

Got added with https://github.com/R2Northstar/NorthstarMods/pull/527
Assigning to @JMM889901 who made the PR.

I think that was #121? unless I missed something


Subgrid Icons Not Displayed if Metadata Present

Fix for the following issue:
The component or characters that are added into the first column of a subgrid row
(parentRowCollapsedComponent and parentRowExpandedComponent, default or custom) are
not displayed when a metadata object (from columnMetadata) exists for this first column.

Nice! This should fix https://github.com/GriddleGriddle/Griddle/issues/185.


use slugs for tags and categories urls

This PR solves issue #2

@all-contributions please add dcyar a11y


Name?

This looks great, but I came here wondering what BONs are!
What do you think of just using BiodiversityObservationNetworks.jl?
Julia package name guidlines:
https://pkgdocs.julialang.org/v1/creating-packages/index.html#Package-naming-guidelines

Yeah that works for me


Pass file extension as param

Hey!
I've been using hoganify and I have to say it's really nice, no pain to setup, it just works™.
I'd like to be able to specify the extension of the templates, like using .html or other (like mustache server-side). Is it possible to pass parameters to a browerify transform via the package.json?
If not possible, would you consider adding html to the supported extensions list ? I know it's more "comestic" but I sometime have to re-use .html mustache templates from the server.
Thanks!

Hi!
Thanks for your kind words, I'm glad you've found good use of hoganify :)
With my 0.2.0 release I added support for custom extensions, and part of it was to allow usage of .html if one needed. I do not want that as one of the default extensions since it's such a generic extension.
But it should be perfectly fine to supply the ext option through package.json too, with something like this:
"browserify": {
  "transform": [
    ["hoganify", {"ext": ".html"}]
  ]
}

The ext option allows a comma separated string of extensions, so if you need to support other extensions than .html you could just add it to the value, like: {"ext": ".html,.hg"}.

Damnit, it's even in the docs, how did I miss that !
Thanks a bunch, will try!

Hehe, yes, that's where I had to double check before suggesting it. No problem, hope it works for you :) By the way, some really cool animation experiments you've got on your site!

Thanks :)
Just tested, works like a charm.


Use os.PathSeparator to find files

There was an issue on Windows where the path separator for !windows was hardcoded,
which did not play nice with the filepath.Clean() function.
It replaces all / with \.
The fix is to use the right path separator which makes it portable.
I don't think it impacts anything, since / in URLs will just be resolved
internaly to \.

Since #90 is merged, is this still needed?


String search ignores stop-words

User Driven: https://medplum.slack.com/archives/C05C5KXTPJA/p1693258742269849
Repro
Create the following Patient resource
{
  "resourceType": "Patient",
  "name": [
    {
      "given": [
        "Justin"
      ],
      "family": "Bieber",
      "use": "usual"
    }
  ]
}

Search Patient?name=Just
Root cause
This translates to into the query
SELECT "Patient"."id", "Patient"."content" FROM "Patient" LEFT JOIN "HumanName" AS "T1" ON ("Patient"."id"="T1"."resourceId" AND "T1"."name_tsv" @@ to_tsquery('english','Just:*')) WHERE ("Patient"."deleted"=false AND "T1"."resourceId" IS NOT NULL) GROUP BY "Patient"."id" ORDER BY "Patient"."lastUpdated" DESC, MIN("T1"."name") LIMIT 21

However:
to_tsquery('english','Just:*') filters out english stopworlds.
This causes postgres to ignore the query and return 0 results:
NOTICE:  text-search query contains only stop words or doesn't contain lexemes, ignored

We should switch all tsvectors from 'english' to 'simple'

Alternatively, we could explore switching from tsvectors to trigrams (pg_trgm), but that is a bigger and more involved change.

@codyebberson I agree, seems like switching ts_vectors to simple would complete this ticket.


Pedersen cleanup

Problem
Now that Pedersen has been merged, the codebase is a lot cleaner however we still have a bit of tech debt related to the old pedersen implementations.
This is a tracking issue to note down all of these tech debt tasks

The first is use of compress and the plookup prefixed function names

We also have c_bind and c_bind_new -- since the generator runs on c_bind_new, we can get rid of c_bind and parties which rely on c_bind should switch to that calling convention

General investigation of hash/commit methods which are not used

We have a pattern of exposing hash methods which can be implemented by other exposed hash methods. One example is plookupCompress and PlookupCompressWithHashIndex, where the former is the latter with an index of 0

This can be a separate issue.
Investigate implementation of hash_buffer:
template <typename Curve>
typename Curve::BaseField pedersen_hash_base<Curve>::hash_buffer(const std::vector<uint8_t>& input,
                                                                 const GeneratorContext context)
{
    std::vector<Fq> converted = convert_buffer(input);

    if (converted.size() < 2) {
        return hash(converted, context);
    }
    auto result = hash({ converted[0], converted[1] }, context);
    for (size_t i = 2; i < converted.size(); ++i) {
        result = hash({ result, converted[i] }, context);
    }
    return result;
}

Intuitively, I would have expected it to cnvert a buffer into fields, then call hash with those fields and the context

check for stale comments/TODOs in some of the pedersen files, the most obvious would be to grep for delete this file

Investigate whether we should get rid of pedersen__init -- it currently does nothing in the cbinds

Linking #3045 and #3046

Marking this as completed, #3076 and #3077 have been spun out into their own issues for further discussion


ValueError: Variable conv1/W already exists, disallowed. Did you mean to set reuse=True or reuse=tf.AUTO_REUSE in VarScope?

I am trying to implement a siamese network for the first time. I don't have an experience with variable sharing. I don't know why I become this Error. Any help will be appreciated
`from future import division, print_function, absolute_import
import tensorflow as tf
import tflearn
from tflearn.layers.core import input_data, dropout, fully_connected
from tflearn.layers.conv import conv_2d, max_pool_2d
from tflearn.layers.normalization import local_response_normalization
from tflearn.layers.estimator import regression
Data loading and preprocessing
import tflearn.datasets.mnist as mnist
X, Y, testX, testY = mnist.load_data(one_hot=True)
X = X.reshape([-1, 28, 28, 1])
testX = testX.reshape([-1, 28, 28, 1])
def tower_network(reuse= False):
network = tflearn.input_data(shape=(None,28,28,1))
network = tflearn.conv_2d(network, 32,1, activation='relu',reuse=reuse, scope='conv1')
network = tflearn.conv_2d(network, 64,1, activation='relu',reuse=reuse, scope='conv2')
network = tflearn.conv_2d(network, 128,1, activation='relu',reuse=reuse, scope='conv3')
network = tflearn.max_pool_2d(network, 2, strides=2)

network = tflearn.fully_connected(network, 512, activation='relu',reuse=reuse, scope='fc1')

network = tflearn.dropout(network, 0.5)
return network

def similarity_network( net1, net2):
num_classes = 2
network = tflearn.merge([net1,net2], mode='concat', axis=1, name='Merge') # merge net1 and net2 networks
# fully connected layers
network = tflearn.fully_connected(network, 2048, activation='relu')
network = tflearn.dropout(network, 0.5)
network = tflearn.fully_connected(network, 2048, activation='relu')
network = tflearn.dropout(network, 0.5)
# softmax layers
network = tflearn.fully_connected(network, num_classes, activation='softmax')
return network
net1 = tower_network()
net2 = tower_network(reuse=True)
#similarity network
network = similarity_network( net1, net2)
#output layer
#network = tflearn.regression(network, optimizer='sgd', loss='hinge_loss', learning_rate=0.02)
network = tflearn.regression(network, optimizer='sgd', loss='categorical_crossentropy', learning_rate=0.02)
Training
model = tflearn.DNN(network, tensorboard_verbose=0)
model.fit({'input': X}, {'target': Y}, n_epoch=20,
validation_set=({'input': testX}, {'target': testY}),
snapshot_step=100, show_metric=True, run_id='convnet_mnist')`

Closed because it is not at all related with the purpose of this repository. Please ask this kind of questions at stackoverflow or similar