docs(frontend): add architecture docs

Ref: #326
This PR documents the frontend architecture in its current state.
While writing this, I found some inconsistencies that we should fix:

[ ] Remove the icons folder -> should be under assets
[ ] Create a lib folder that holds the configurations for libraries (to follow bulletproof react - see Frontend Architecture Pattern Decision)
[ ] Merge bindings and generated folder.  ->

I would prefer a structure like this:
generated/

bindings.ts
docs/

@markus2330 we can either fix this here or in separate PRs.
The frontend architecture is not as rigid as the backend's, so I kept it short. Should I add more detail?

[X] References to issues, e.g. close #X, are in the commit messages.
[ ] The buildserver is happy.
[X] The PR is rebased with current master.

Checklist

[ ] I added unit tests for my code
[ ] I fully described what my PR does in the documentation
(not in the PR description)
[ ] I fixed all affected documentation
[ ] I fixed all affected decisions
[ ] I added code comments, logging, and assertions as appropriate
[ ] I translated all strings visible to the user
[ ] I mentioned every code or binary not directly written or done by me in reuse syntax

Review

[ ] I've tested the code
[ ] I've read through the whole code
[ ] Documentation is conforming to our Documentation Guidelines
[ ] Examples are well chosen and understandable
[ ] Code is conforming to our Coding Guidelines
[ ] Code is consistent to our Design Decisions

Remove the icons folder -> should be under assets

Great idea!

Create a lib folder that holds the configurations for libraries (to follow bulletproof react - see Frontend Architecture Pattern Decision)

Great idea, but there must be a clear distinction to utils etc. Imho it is not yet clear where to put what.

Merge bindings and generated folder. ->
I would prefer a structure like this:
generated/
bindings.ts
docs/

See comments, I had the same idea :wink:
But then the sentence "__mocks__ and generated are not used during runtime" also needs to be fixed, doesn't it?

@markus2330 we can either fix this here or in separate PRs.

Better in a separate PR.

The frontend architecture is not as rigid as the backend's, so I kept it short. Should I add more detail?

As short as possible but the basic questions must be answered. Especially it must be as clear as possible where to add which code and the general style of code (documentation, asserts, how generic, ...).

@markus2330 I included your suggestions in the latest commits. I added more details about the structure under the headings below the diagram.

Great idea, but there must be a clear distinction to utils etc. Imho it is not yet clear where to put what.

I think it is clear from the context. If the method in question is configuration code for libraries it should be in lib.
Like the axios configuration or the i18n configuration.
If it is a shared function that is not a hook it is a util.
If it is a shared hook then it should be in hooks.

But then the sentence "mocks and generated are not used during runtime" also needs to be fixed, doesn't it?

Yes I will fix this in the following PR.

@buenaflor is this how you envisioned it (or better)?

Great idea, but there must be a clear distinction to utils etc. Imho it is not yet clear where to put what.
I think it is clear from the context.

Imho only obvious parts of it.

If the method in question is configuration code for libraries it should be in lib.
Like the axios configuration or the i18n configuration.
If it is a shared function that is not a hook it is a util.
If it is a shared hook then it should be in hooks.

I think this text can also be included.
But there is more to it, the main question is: to which extend can/should we expose API from features and use them? If there is a heavy feature interaction the architecture quickly becomes a mess if we are not very careful. The guidelines should make clear what to add where so that we do not fall in such traps.
The architecture eventually should also include which features make use of APIs of other features.
Please create an issue describing what should be restructured or otherwise is not scope of this PR.

Imho only obvious parts of it.

@markus2330 Ok, I need a little more time on this.
While researching I found a gem I would like to share that talks about architecture in a front-end (react) application.
https://martinfowler.com/articles/modularizing-react-apps.html
I think our current structure with Bulletproof React combines nicely with the principles discussed there.
The Payment Feature that is discussed in the article would be, in our case, one of several features.

But there is more to it, the main question is: to which extend can/should we expose API from features and use them? If there is a heavy feature interaction the architecture quickly becomes a mess if we are not very careful. The guidelines should make clear what to add where so that we do not fall in such traps.

In my experience, the feature slices architecture tends to minimize interactions between features.
All concerns regarding one feature are self-contained, a case I can think of is, if the feature is service-like with multiple consumers, then there would be a public API and interactions.
In our case the dark-mode and map-store features are such service-like features, but I can not see the benefits of another architecture, like a strictly layered one, over ours.

Please create an issue describing what should be restructured or otherwise is not scope of this PR.

While researching I found a gem I would like to share that talks about architecture in a front-end (react) application.
https://martinfowler.com/articles/modularizing-react-apps.html

Thank you for sharing! The main purpose of a software architect is to see such patterns even before they are already implemented and guide others to use them rightly.

A case I can think of, where interactions would happen is, if the feature is service-like with multiple consumers.
In our case the dark-mode and map-store features are such service-like features, but I can not see the benefits of another architecture, like a strictly layered one, over ours.

The distinction of "service-like features" vs. features that do not share functionality is a very important one. Maybe we should even put dark-mode and map-store to "libs" instead to "features" to make this very clear? If not, it should be at least documented which features provide services to other features.

Yes, documenting this would be good. How about we document it in the index.ts files of the features?

If this means that it is also included in easily reachable parts of the Storybook it should be fine.

While researching I found a gem I would like to share that talks about architecture in a front-end (react) application. https://martinfowler.com/articles/modularizing-react-apps.html

@Bushuo Did you add this somewhere in the docs? I think it would be nice to have it as a reference still after this PR is merged.

@Bushuo Did you add this somewhere in the docs? I think it would be nice to have it as a reference still after this PR is merged.

@absurd-turtle Not yet. Where do you think would be an appropriate place for it? I thought about the Helpful Links section. Maybe there is a better place?

jenkins build please

@markus2330 I think we can leave the config folder as is and not add a lib folder. As it has no real benefit over our current structure.
Library configurations are done in the config as before.

jenkins build please


12893 fix poetry caching issues

Changes

cherry picked changes from PR https://github.com/python-poetry/poetry/pull/3301 so poetry removes corrupted files from its cache
changed poetry to download/write into a tempfile and move after successful download to allow two Poetry processes to download/install the same package in parallel
fix get-poetry.py to use blackshark-ai fork in favor of private one

Even with the changes above, Poetry is not 100% thread safe. However, the changes mitigate our current issues.

LGTM


Create new repository for QA builds, deprecate development repository

CHAI has asked their users to point their FDroid repositories to the "development" repository, instead of production. This makes it impossible to push new development releases to this repository.
Pending fixing this on all of the user's laptops. we should create a new "QA" repository and push all new builds there, instead of "development". "Development" should be deprecated and no longer used.

CHAI has asked their users to point their FDroid repositories to the "development" repository, instead of production. This makes it impossible to push new development releases to this repository.
Pending fixing this on all of the user's laptops. we should create a new "QA" repository and push all new builds there, instead of "development". "Development" should be deprecated and no longer used.
Going forward, all new development/qa builds will go to the "qa" repository, and all new production builds will go to the "production" repository.

development repository was deleted.
Fdroid repos are now:
http://lmisapp.dhis2nigeria.org.ng/fdroid/qa/repo/
http://lmisapp.dhis2nigeria.org.ng/fdroid/production/repo/


The "start" command is a bit unintuitive.

Wow this plugin is impressive.
I was, however, briefly confused how the "start" command worked. Here's why I was confused:
Example: I have a "take a walk" time entry in the "Exercise" project, and wanted to start the "take a walk" time entry.
-> I typed "tgl start take a walk" -> Enter -> That didn't work.
-> I typed "tgl start Exercise" -> Enter -> Now there was a "Start now" option, but I still didn't see how to start my "take a walk" entry. And pressing Enter again just started an untitled Exercise project. (Is that a common desirable use case?)
The actual solution is "tgl start Exercise" -> Enter -> "take a walk" (the full command here, however, is somehow "tgl start Exercise take a walk") -> Enter.
Perhaps you can see how that might be unintuitive to a new user^^.

I don't have a great suggestion for how to make this more intuitive. Maybe this command warrants some tutorialisation in the Readme, or some different presentation inside FlowLauncher in the step after one has selected a project (i.e. after "tgl start Exercise" -> Enter).

Thank you for the feedback!
This week is busy (2 tests and 2 assignments/projects in the next 4 days), but I'll be sure to take another look at your issues soon.

@tdnzr thank you again for the detailed suggestions and feedback, really appreciate your input!

I typed "tgl start Exercise" -> Enter -> Now there was a "Start now" option, but I still didn't see how to start my "take a walk" entry. And pressing Enter again just started an untitled Exercise project. (Is that a common desirable use case?)

That is a valid point; I suppose it isn't the most intuitive if you haven't yet used the plugin.
Regarding whether creating untitled entries is common—I find myself indeed using it occasionally if I can't yet think of a good description for what I'm about to start doing.
Further, I want to keep parity with Toggl—they let you create unnamed time entries, so I'd like to allow the same.

some tutorialisation in the Readme

This could work, but only for those users that actually check plugin repositories—normal users that are just browsing the Plugin Store wouldn't come across this, and I'd suggest that this would be the majority of users.

some different presentation inside FlowLauncher in the step after one has selected a project

This might be the play—I'll try adding another Usage Tip result while the description is empty to remind the user to keep typing if they wish to name their time entry.

Hi there, thanks for the reply :).

Regarding whether creating untitled entries is common—I find myself indeed using it occasionally if I can't yet think of a good description for what I'm about to start doing.
Further, I want to keep parity with Toggl—they let you create unnamed time entries, so I'd like to allow the same.

Yeah, I understand - I occasionally create unnamed time entries myself. I was mainly wondering if this specific use case, where you're sure enough about what you're tracking that you can already select a project, but not yet sure enough to name it, is common enough to warrant it being the "default" action when starting a time entry. If that action is rare enough, one could maybe restructure the "start" keyword so that the default action is choosing project plus time entry name. Whereas an unnamed time entry would be a special action, rather than the default one. But I can't quite envision how that might look like.

Re: the Usage Tip: That sounds like a decent solution. I had another idea, but don't know what options you have when developing plugins: is it possible to intentionally give the gray command hints, like the "start" in this screenshot? If so, you could add a gray hint of the form "Name your time entry" or whichever phrasing seemed suitable.

don't know what options you have when developing plugins: is it possible to intentionally give the gray command hints, like the "start" in this screenshot?

I had the same thought the other day—but I don't believe so.
I haven't been able to find any documentation on what sets that hint, and there is no code difference between those results (eg tgl start) and other results which provide no hints.
I'll ask on the Flow Discord server though, and see if there's something undocumented/that I've missed. 🙂

I haven't been able to find any documentation on what sets that hint, and there is no code difference between those results (eg tgl start) and other results which provide no hints.
I'll ask on the Flow Discord server though, and see if there's something undocumented/that I've missed. 🙂

Yeah, this isn't currently possible unfortunately.
This will roll out in the next release:


Add tighter criteria for package compliance

This PR aims to make the following changes to the 'repository', 'bugs url' & 'bugs email' scorecard check.

Repository
Currently the scorecard only checks if the 'repository' field has own property, but this PR checks that the repo url exists, and that it includes the name of the node, such as https://github.com/Paul-Reed/ 'node-red-contrib-simpletime'.
The url format is common amongst github, bitbucket & gitlab, and verifies accordingly.

Bugs url
This PR checks that the repository property exists, and that the url slug contain 'issues', which is a common format amongst github, bitbucket & gitlab, such as 'https://github.com/Paul-Reed/node-red-contrib-simpletime/ issues'

Bugs email
As an alternative to 2) above, users can provide a support email address, and this PR checks that the bugs email property exists, and that it passes a basic regex to check it's format.

Scoring changes
This PR proposes that the score is not accredited unless 2 conditions are met, the first being the repository link, so that users can see the code used and assure themselves that the node is safe to use, look at what changes have/are being made, and also to contribute to it's development.
The second condition as well as the above, is that either the bugs url OR the bugs email is provided, so that the author may be contactable, and issues could be recorded.
https://docs.npmjs.com/cli/v7/configuring-npm/package-json
Although the nodes are not named here, the PR has been tested against a number of nodes where current anomalies exist, and does correct the score.
Examples include where non-standard nested properties are being used, and where the repo url is used instead of a bugs url (and issues git disabled).
It has also been tested against nodes using github, bitbucket & gitlab.

No update or comment?

Almost 3 months old and still no response, so closing...

Hi Paul, sorry it hasn't been merged.
Closing it means it never will be, which would be a shame. Once 3.0 is out the way, we can get do some housekeeping across the other parts of the project and get this sorted.

@Paul-Reed Paul, any chance you can restore the branch and reopen this?
It will get reviewed but tbh it wasn't on my radar. For whatever reason I didn't spot this but now I'm aware I'll make sure I pick it up.
Please don't be afraid to give us a nudge once V3 is released.


no clean exit on shutdown, with disableBalancer: true

Prerequisites
Please answer the following questions for yourself before submitting an issue.

[ x] I am running the latest version
[ x] I checked the documentation and found no answer
[ x] I checked to make sure that this issue has not already been filed
[ x] I'm reporting the issue to the correct repository

Current Behavior
Maybe it correspond to this issue: https://github.com/moleculerjs/moleculer-channels/issues/49
I start a service with amqp-transport (rabbitmq) and moleculer-channels listen to a given topic. If i start
a client with( disableBalancer:true) which send to this channel and then exit afterwards, than i get this error message :
moleculer-channels-amqp-test/node_modules/moleculer/src/transporters/amqp.js:434
			.assertQueue(queue, this._getQueueOptions(PACKET_REQUEST, true))
			 ^

TypeError: Cannot read properties of null (reading 'assertQueue')
    at AmqpTransporter.subscribeBalancedRequest (/home/me/public_html/moleculer-channels-amqp-test/node_modules/moleculer/src/transporters/amqp.js:434:5)
    at /home/me/public_html/moleculer-channels-amqp-test/node_modules/moleculer/src/transporters/base.js:269:14
    at Array.map (<anonymous>)
    at /home/me/public_html/moleculer-channels-amqp-test/node_modules/moleculer/src/transporters/base.js:268:37
    at Array.map (<anonymous>)
    at /home/me/public_html/moleculer-channels-amqp-test/node_modules/moleculer/src/transporters/base.js:262:14

If i change disableBalancer:false the error-message went away.
Expected Behavior
The client should exit without error message, even with disableBalancer:true
Failure Information

Steps to Reproduce
I've created a minimal-repo here: https://github.com/me23/moleculer-channels-amqp-test.git

clone repo and change path to it

if you don't have an Rabbitmq running on localhost you could start one with docker:
docker-compose up

start the service: node source/service.js

start the client: node source/client.js

you get the error

start the client with disableBalancer:false: node source/clientOk.js

you get no error message

### Context

Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions.

* Moleculer version: 0.14.26
* NodeJS version: 17.9.0
* Operating System: Ubuntu 22.10

This is not related to channels as I can repro the issue even without it. Here's a repro code
"use strict";

const { ServiceBroker } = require("moleculer");

// Create broker
const broker = new ServiceBroker({
  disableBalancer: true,
  transporter: "amqp://localhost:5672",
});

broker.start().then(async () => {
  // broker.repl();
  console.log("Broker started");

  // await broker.Promise.delay(1000);

  await broker.stop();
});

Note: With added delay(1000) the issue disappears.
I also managed to repro the issue with amqplib ^0.8.0, ^0.9.0, ^0.10.0


How to re-generate correct MANIFEST file?

How to re-generate correct MANIFEST file?
Detailed Description

Our aptly server was shutdown suddenly. When we restarted it, seems aptly db crashed. The MANIFEST file only has 0 bytes.
And we always get error like:
ERROR: can't open database: leveldb: manifest corrupted (field 'comparer'): missing [file=MANIFEST-1197260]
We run "aptly db recover" to recover db, but still got the same issue.
How can I recover the db and re-generate the correct MANIFEST file?
Thanks.
Context

Possible Implementation

Your Environment

The error in LOG file like:
=============== Nov 2, 2017 (UTC) ===============
08:56:04.755149 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed

@syndtr could you please chime in?
I believe you can try removing corrupted MANIFEST file (which is part of error message) and try running aptly db recover which should rebuild MANIFEST from SSTables. But please make sure you have backup of db/ first!

Hmm, this is strange DB.Recover should also creates new MANIFEST file. @xingao0803 is it works if you remove the corrupted MANIFEST file first as @smira sugested?

I wonder if related to #654

I'm also seeing this issue as soon as I upgrade from 1.1.1 to 1.2.0.
I tried removing the MANIFEST file and regenerating it with aptly db recover
But, it fails with
syncDir: sync /media/xen/apt/db: invalid argument

Any ideas I could additionally try?

@mevatron what kind of filesystem is that? It complains on fsync() I believe?

@smira This is a cifs mounted filesystem.

I don't think this is supposed to work with goleveldb. Do you have a chance to try to copy to local filesystem and run aptly db recover?

@smira I just rsync'd the apt folder down locally and I am able to run aptly db recover successfully. So, currently I have a CI system and a developer box that both publish packages to the aptly repo, and they have been interacting with it using a network filesystem. What would be the best way to cover this use case do you think?
Thanks for all the assistance!

@mevatron aptly doesn't support network filesystems neither for DB nor for pool directory, as this is going to cause issues. the best way of course it use aptly as a service and interact via API

@smira Thanks I didn't realize I could interact with it via REST API. I will definitely convert my workflow over to that!


Add support for continuous joints

The support in ROD to build programmatically and parse models with continuous joints has been added in https://github.com/ami-iit/rod/pull/40.
A continuous joint, contrarily to revolute joints, does not have /joint/axis/limit/lower|/joint/axis/limit/upper. The new version of ROD allows to build a trivial Limit object with all attributes set as None. In this case, we set the upper and lower limits to the maximum/minimum floating point number in the active precision of JAX (either 64 bits or 32 bits).

📚 Documentation preview 📚: https://jaxsim--228.org.readthedocs.build//228/

Great question! I don't think we need to do that. The logic of this PR just introduces the support of parsing continous joints (supported in SDF). The difference between a continuous joint and a revolute joint is that continuous joints do not have position limits.
This PR basically parses continuous joints and treats them as revolute joints by setting position their limits as the maximum float in JAX precision.

Alright, thanks for the explanation!


[gmp] Fix shared windows cross compilation

To build dynamic/shared libraries when cross compiling gmp, we need to configure with
--disable-static --enable-shared

Is this only an issue on 19.03?

Is this only an issue on 19.03?

I doubt it, but I haven't looked into 18.09 or any others.

From what I can tell gmp on mingw32 should work:
https://hydra.nixos.org/job/nixpkgs/cross-trunk/crossMingw32.gmp.x86_64-linux

@matthewbauer this is more some peculiarity about how to properly build shared amp libraries on mingw. (See https://gmplib.org/manual/Notes-for-Particular-Systems.html)
I'm not saying the build doesn't work per-se. I'm just saying that we don't build proper .dlls when we claim we do, as gmp requires --disable-static --enable-shared to be set to be put into .dll building mode.

@matthewbauer @lheckemann so where are we with this?

@matthewbauer ping


Add a GDAL tilesource

Using mapnik as a geospatial raster tilesource under a projection only works with ortho-aligned and uniformly spaced datasets.  Using GDAL directly would work with non-aligned and non-uniform raster datasets.

Added in #418.


Composer removed other packages

When i run this command on my CMD.
composer require intervention/image
Using version ^2.3 for intervention/image
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)

Removing anouar/paypalpayment (1.1.1)

Removing paypal/rest-api-sdk-php (v1.3.0)

Removing league/glide (1.0.0)

Removing pqb/filemanager-laravel (2.0.7)

Removing barryvdh/laravel-elfinder (v0.3.7)

Removing barryvdh/elfinder-flysystem-driver (v0.1.5)

Removing studio-42/elfinder (2.1.11)

Removing league/flysystem-cached-adapter (1.0.3)

Removing psr/cache (1.0.0)

Removing barryvdh/laravel-dompdf (v0.6.1)

Removing laravel/cashier (v6.0.14)

Removing dompdf/dompdf (v0.6.2)

Removing phenx/php-font-lib (0.2.2)

Removing stripe/stripe-php (v3.12.1)

Removing psr/http-message (1.0)

Installing psr/http-message (1.0.1)
Loading from cache

Removing guzzlehttp/psr7 (1.3.0)

Installing guzzlehttp/psr7 (1.3.1)
Loading from cache

Removing intervention/image (2.3.7)

Installing intervention/image (2.3.8)
Loading from cache

Writing lock file
Generating autoload files

php artisan clear-compiled

I think this is rather a composer issue.


wallet-ext: support nft standard

Description

nfts page show only objects that define the display property
removes any other support for nft metadata

before
after

https://user-images.githubusercontent.com/10210143/226761928-32c0e68f-f7c9-4e4f-8a32-029a0cd6ebfa.mov
Test Plan
manual testing

Type of Change (Check all that apply)

[x] user-visible impact

Release notes
Sui wallet now supports NFT display standard. All other display nft metadata support is removed.
closes APPS-633

@Jordan-Mysten I think I addressed your comments. Please have another look!

@mystie711 I did the changes and updated the video in the description


GUI not displaying forwards

My /forwards page is blank.
I inspected the page with Chrome Dev Tools and saw:
Uncaught (in promise) TypeError: Cannot read properties of null (reading 'default')
    at Object.chan_in_alias (forwards:24:58)
    at Object.render (helpers.js:54:41)
    at build_routed (forwards:122:50)
    at HTMLDocument.<anonymous> (forwards:104:5)

In the network tab, I see the fetch http://localhost:8889/api/forwards/?limit=50&format=json and it is returning a successful list of JSON containing all the forwards.
So the data is there, but the JS is failing and so the page is blank.
Any ideas?

Here is some more added context. The line where it's crashing is this missing value.

chan_in_alias or chan_out_alias are sometimes blank

From what I can tell, they are blank when the channel was closed and no longer exists and LND can't look up the name anymore.

If anyone is having issues, it's a pretty easy fix, just update these two lines:
      "chan_in_alias": f => ({innerHTML: f.chan_in_alias != null ? f.chan_in_alias.default(f.chan_id_in) : ''}),
      "chan_out_alias": f => ({innerHTML: f.chan_out_alias != null ? f.chan_out_alias.default(f.chan_id_out) : ''}),

And the page should load forwards again.
Also, a good thing to keep in mind is that the forwards are loaded slowly from LND over time and many background job requests, so they might start off showing only very old forwards.
A good UI improvement would be to have some indicator that the data loading is still in progress.

Please try the fix that was deployed in the v1.8.0 branch.
"chan_in_alias": f => ({innerHTML: f.chan_in_alias || f.chan_id_in}),
"chan_out_alias": f => ({innerHTML: f.chan_out_alias || f.chan_id_out}),

Please try the fix that was deployed in the v1.8.0 branch. "chan_in_alias": f => ({innerHTML: f.chan_in_alias || f.chan_id_in}), "chan_out_alias": f => ({innerHTML: f.chan_out_alias || f.chan_id_out}),

It works for me!


Proof of Concept of "Typed Spans"

Primary goal is to maintain a simple and semantic interface for the code using it. See HttpClientTracerDemonstration for example usage.
It's proposed that these would replace the current decorator hierarchy.

My $0.02:
I like it. Great separation of concern. Spans become self-decorating and you concentrate all the knowledge on how a span should behave to the span itself. The Tracer knows everything about creating and naming spans. Nice and clean!
This is also great for testability. The entire instrumentation can easily be unit tested completely decoupled from any bytecode manipulation.
I'm assuming your aim is eventually to move all the typed spans to opentelemetry-java and turning the auto-project into more or less a bunch of Advice classes that delegate all the actual work to the typed spans and tracers. I love that!
My only VERY minor concern is that there may be a lot of boilerplate code to write for defining the tracer and span types for each instrumentation.

@prydin for the amount of code that would need to be written for each integration, see the SampleHttp*Typed* classes.  That is similar to the effort required currently for the decorators.
I think there's still some work remaining to ensure that the API is flexible enough for all our needs, but I think it's a good starting point.

FWIW, boilerplate doesn't bother me (I'm probably just numb 😁)

Related to https://github.com/open-telemetry/opentelemetry-java/pull/964


Insert publishDate

Hello,
Is there a way to insert publishDate at the beginning of an article?
Thanks.

Override one of the extension partials like content-header, heading-post, etc.


Add export_filename option to modeladmin

Allows modeladmin users to specify a filename for their spreadsheet exports without needing
to add a custom IndexView

@jacobtoppm - this sounds like an awesome feature.
Are you able to add a test for this.
Questions:
1. What happens if someone puts `people_spreadsheet.xls`, will the download be `people_spreadsheet.xls.csv`?

Note: filename.ext.ext.ext is still a valid filename, just wanted to flag that this might be something easily misunderstood.
1. String validation/parsing
   Should we add any cleaning of the input (e.g. other invalid filename scenarios) or trust that the developers doing this change understand these things.

@lb- : Thanks, added them to the tests now!

Yes. I've tried to flag up that this should be the filename without extensions in the documentation/example, but I'm very open to rewording this if you can think of something clearer.
I'd be inclined to trust developers on this - if it was coming from the admin I'd definitely suggest validation, but so far I don't think we've tended to do much validation of values in code. You could easily add an invalid value to list_filter in the same modeladmin without validation, for example.

Thanks @KalobTaulien for merging in & @jacobtoppm  thanks for fixing the items up.
I agree with your answers, makes sense, I think the wording is fine as is.


Native Script as Minting Policy / MintingPolicyNotFound

I am experiencing an unexpected error when trying to mint a token using a Native Script.
For example, I am trying to mint a token using a Native Script with a TimelockExpiry condition. See example: https://github.com/codybutz/ctl-examples/tree/minting-policy-issue You can run the example with nix build .#checks.x86_64-linux.ctl-scaffold-plutip-test -L
You will see that we get the following error:
Uncaught Error: (MintingPolicyNotFound (MintingPolicyHash (ScriptHash 51ccadf8b63ad3483381586afd8ff2e140fa54d28333b99fc3fcaaf3)))

I believe that this is because the lookup requires that a plutus script to be included with a minting policy. However, not all minting policies are Plutus Scripts. See https://github.com/Plutonomicon/cardano-transaction-lib/blob/7921daeda855f8822b678d44fe46ffd37e0f860c/src/Types/ScriptLookups.purs#L836 and https://github.com/Plutonomicon/cardano-transaction-lib/blob/7921daeda855f8822b678d44fe46ffd37e0f860c/src/Types/ScriptLookups.purs#L995
Is it intended that all minting policies in the CTL require the use of Plutus Scripts or can we change the interface to allow for native script tokens?

Thank you for reporting!
Yes, we can change the interface. In fact, we should.


Switching from telemetrygen to honeycombio

Switching telemetry generator from telemetrygen to honeycombio.
updating metrics to check.

/lgtm


KARAF-7282: fix autoRefresh setting treatment in Deployer

Issue: https://issues.apache.org/jira/browse/KARAF-7282

I reverted this change as the original code looks good to me.

I do not understand why you reverted this. I tried the global setting autoRefresh=false and saw that auto refresh takes place nevertheless. Interestingly, PR#1457 seems to reintroduce the change.

The original change breaks the build as the DeployerTest was not updated. In order to avoid to break all builds, I reverted and did a new fresh/clean PR with DeployerTest updated.


New version: ReplicateBE v0.2.0

Registering package: ReplicateBE
Repository: https://github.com/PharmCat/ReplicateBE.jl
Created by: @PharmCat
Version: v0.2.0
Commit: b10b5a741f3df680a4de0e8e60fe162bc0ab9128
Reviewed by: @PharmCat
Reference: https://github.com/PharmCat/ReplicateBE.jl/commit/b10b5a741f3df680a4de0e8e60fe162bc0ab9128#commitcomment-35632045
Release notes:

v0.2.0

bugfix
optimization
documentation
validation tests
memory caching
post optimization (can be done if Newton() failed)

Your new version pull request does not meet all of the guidelines for automatic merging.
Specifically, your pull request does not meet the following guidelines:

The following dependencies do not have a compat entry that has an upper bound: DataFrames, Distributions, ForwardDiff, LineSearches, Optim, PDMats, StatsBase, StatsModels

If you want to prevent this pull request from being auto-merged, simply leave a comment.
(If you want to post a comment without blocking auto-merging, you must include the text [noblock] in your comment.)

It is important to note that if your pull request does not meet the guidelines for automatic merging, this does not mean that your pull request will never be merged. It just means that your pull request will require manual review by a human.

These guidelines are intended not as requirements for packages but as very conservative guidelines, which, if your new package or new version of a package meets them, it may be automatically merged.

On a separate note, I see that you are registering a release with a version number of the form v0.X.Y.
Does your package have a stable public API? If so, then it's time for you to register version v1.0.0 of your package. (This is not a requirement. It's just a recommendation.)
If your package does not yet have a stable public API, then of course you are not yet ready to release version v1.0.0.

[noblock]

Your new version pull request does not meet all of the guidelines for automatic merging.
Specifically, your pull request does not meet the following guidelines:

The following dependencies do not have a compat entry that has an upper bound: LineSearches

If you want to prevent this pull request from being auto-merged, simply leave a comment.
(If you want to post a comment without blocking auto-merging, you must include the text [noblock] in your comment.)

It is important to note that if your pull request does not meet the guidelines for automatic merging, this does not mean that your pull request will never be merged. It just means that your pull request will require manual review by a human.

These guidelines are intended not as requirements for packages but as very conservative guidelines, which, if your new package or new version of a package meets them, it may be automatically merged.

On a separate note, I see that you are registering a release with a version number of the form v0.X.Y.
Does your package have a stable public API? If so, then it's time for you to register version v1.0.0 of your package. (This is not a requirement. It's just a recommendation.)
If your package does not yet have a stable public API, then of course you are not yet ready to release version v1.0.0.

[noblock]

Your new version pull request met all of the guidelines for automatic merging.
I will automatically merge this pull request during the next cron job.
If you want to prevent this pull request from being auto-merged, simply leave a comment.
(If you want to post a comment without blocking auto-merging, you must include the text [noblock] in your comment.)

On a separate note, I see that you are registering a release with a version number of the form v0.X.Y.
Does your package have a stable public API? If so, then it's time for you to register version v1.0.0 of your package. (This is not a requirement. It's just a recommendation.)
If your package does not yet have a stable public API, then of course you are not yet ready to release version v1.0.0.

[noblock]


[Feature] Caminte adapter

Create graphql-compose-caminte
https://github.com/biggora/caminte

I do not believe in silver bullet, that supports sql and nosql DBs. I think that caminte provide only basic operations and can bring problems for developers in future, when they needed some specific behavior. I will not use it in my app, and can not provide good support for caminte.
But I will be very happy if somebody create such adapter, who use it in their app.

@nodkz I would like to write a graphql plugin like this, but on top of knex instead of an orm. Reason: I like what you're doing with graphql-compose and would rather piggyback on what you've got going than rewrite my own "type composer", but I want to also do things like postgraphql's ACL/ authorization

Wow. Will be cool!
First time see knex and say that I'd like it.
Feel free to create your own plugin. I will help you with reviews and suggestions, and will try to answer your questions as fast as possible due my current load.
Try to build it on top of graphql-compose in future it allows to combine different dbs in one schema. Right now api of graphql-compose is stable. And it allows to create schemas with any type of db, rest services. Graphql-compose just bunch of useful methods that allows to create/edit graphql types and relate them. You may offer any additional useful methods (but try to keep them agnostic to db/data-sources).
All specific logic according to db/data source should be placed in separate plugin. Like graphql-compose-mongoose plugin, which is build on top of graphql-compose and do all mongoose tricks in it.
ACL may be also be provided as separate plugin, like graphql-compose-relay, which takes TypeComposer and tune/extend it with Relay specific things.
PS. Will be cool if you share your "type composer" for me. I think, that I can find new fresh ideas for future improvements.

@nodkz will do. Btw, what tool do you use to give things in commits like (feat), chore(build): docs(Changelog).

@cellis i'm using commitizen and semantic release for automatic versioning and NPM releasing.
Recommend to see Kent Dodds' awesome tutorials: https://egghead.io/lessons/javascript-how-to-write-a-javascript-library-writing-conventional-commits-with-commitizen

@cellis Great!
I think that a plugin based on Knex would be way better then on Caminte 👍
Will let this issue be open until the adapter is in place 😉

Knex does not have models. Close this issue.
New conversation with sequalize: https://github.com/graphql-compose/graphql-compose/issues/148


Feature/120 query related and top

Closes # 120
This branch was off of #115, so it should be reviewed after #119 is reviewed and merged into this branch.

Implements QueryRelated... and QueryTop... methods on FeatureLayer
Adds a FeatureLayerViewWrapper in javascript, and Filter to FeatureLayerView.
Adds two new samples pages
Imports calcite into the samples

I have personally reviewed this, merging so I can move ahead with related fixes.


TensorRT for EfficientNet model

I tried converting the EfficientNet-b4 model to TensorRT for optimized inference. It looks like there are some layers that don't have converters implemented and throws -
AttributeError: 'Tensor' object has no attribute '_trt'
Has anyone had luck with TensorRT or is there another way of achieving this?

Hi @aditya1709 , have you solved this problem? I am also trying to convert the model to trt4.1, but issue #47 claims that only trt > 5.1.5 works. Any updates?

@aditya1709
Depthwise conv is better on CPU. Nvidia has not improved it.

Hey! I'm  trying to convert the model to TensorRT (ver. <IP_ADDRESS>) and surprisingly everything work in the conversion process but when I'm doing an inference using the .pth saved model gives me only zeros (no classes detected).

Is it possible to do the conversion process using a TensorRT <IP_ADDRESS> version? I have issues while converting the depth wise convolution layer. (Depth wise Conv layer is supported in the latest version.)

Hey! I'm trying to convert the model to TensorRT (ver. <IP_ADDRESS>) and surprisingly everythin

did you resolve it?

Nop...but with the update of the repo (the memory usage optimizat) I don't need TensorRT to work because the model fits in the Jetson's nano 4Gb of RAM

Hey! does this issue still persists with tensorRT conversion of Efficientnet. I tried converting Efficientnet-b7 to TensorRT(ver 7.0.0) and everythings works perfectly during conversion. Its only when I start inferencing, it shows a sharp drop in accuracy and inferences not matching the pytorch model inference.
Are there anyone still facing the same issue.

@pshwetank  I'm facing the same problem, did you solve it ?

@xuatpham  Yeah...I feel that was mostly because of the preprocessing pipeline and less related to tensorRT model itself. Mostly, you will not see drop in performance if conversion was done without errors. Try to check the outputs from the torch model with trt model on same set of inputs. Chances are that they should match if the preprocessing pipeline is same.

@pshwetank  thanks for your quick response. But it seems like I can't figure out what's going on. Can you share the script that you used to convert to eff to TRT and re-load it to inference? thanks a lot !!!

I took the usual path to convert Pytorch model --> Onnx model --> TRT model. Once that is done, you can use your pytorch preprocessing and convert the torch tensors into numpy arrays to feed them to TRT or onnx model. If you are using same preprocessing, you should not have any issues.
I dont have specific scripts for the purpose but you can easily use onnxruntime to run onnx model and Torch-TRT to run TRT models.

Ahhhh, I got it. So you did normal_model-> ONNX->TRT !.!!! I used the torch2trt  for converting from torch_model to trt_model. many thanks @pshwetank.


How to send reactions to WhatsApp status?

If there is a code please let me know.

Just send react message like usual and add options statusJidList

Just send react message like usual and add options statusJidList

I don't understand, try giving me an example code

Just send react message like usual and add options statusJidList

I don't understand, try giving me an example code

const reactionMessage = {
react: {
text: 'teste,
key: your_messsage_key,
},
};
await client.sendMessage(jid, reactionMessage);

await client.sendMessage(jid, { react: { text: "", // emoji key: "" // key (m.key) }, { statusJidList: [] })


Checkboxes should have more prominent style

The checkbox of a task should have a prominent style in order to signify a task.
If possible, use existing css variables from the background/foreground to be in line with the current theme.

See also https://github.com/deathau/obsidian-snippets#checkboxes

I'm sort of poking around for a way to adjust theckboxes in editor view. I notice all this css is only for the preview.
Just curious; have you find a way to target checkboxes in the editor view? (especially, differentiating complete VS incomplete VS some of the new states like canceled)

Hey there, I wouldn't know how to style checkboxes in the editor view. How do you edit the [ ] text in the editor if it is styled as a checkbox? Or maybe I don't get what you want to achieve?

Ah, didn't realize the use case isn't obvious.

I only use edit mode, and I use a lot of checkboxes.
I have keyboard shortcuts to toggle checkbox, complete, incomplete. You can also just type an x
having the checkbox colorized is useful for scannability. Also it's psychologically rewarding to see green ✅ completed checkmarks. I think there might be some research supporting this claim :)

I did hack in some css, but it relies on selectors that were clearly not named for what I'm using them for, so I expect it to break at any time. It's been stable for a few months though, which is great.
I prepared a video showing how I use checkmarks in edit mode:
https://user-images.githubusercontent.com/548809/148916994-d9499d95-1a61-4641-8586-29d3cf45abe6.mov
There's some existing precedent I've found for doing things with checkboxes in edit mode:

Code Mirror, syncing checkbox clicks: https://stackoverflow.com/questions/62684743/sync-checkbox-click-in-html-to-content-of-markdown-editor
HyperMD's click to toggle checkbox, and also here

The new wysywig mode isn't really something I'm looking for, personally. I still want to see the MD syntax, but I do like a color or other hint when the syntax is picked up.
Here is the CSS snippet for how I style these (really bad, would like to add more obvious sigils and be able to support in progress/indeterminate tasks too):
/*
 * Make checklists easier to see in "edit mode" (normal text editor mode)
 * Styling for checkboxes in edit mode.
 * completed task: "good"
 * incomplete task: "notice"
 *
 * would love to support the other checkbox states, but need to enhance codemirror annotation first.
 */
/* The checkbox itself */
.HyperMD-list-line .cm-property {
	color: #499c49 !important;
	font-weight: bold;
        background-color: rgba(120,255,120,0.05);
}
/* The text of this task (sibling of the checkbox) */
.HyperMD-list-line .cm-property + [class^="cm-list-"] {
	/* Goal: make it look happy & successful, but also toned down a little bit, since the task is finished */
	color: #91dd91 !important;
}

/* Incomplete Tasks are kind of amber/yellowish */
.HyperMD-list-line .cm-meta {
	color: orange !important;
	font-weight: bold;
	/* bg could be cool, but the padding isn't quite right to have it look nice */
  background-color: rgba(255,200,200,0.10);
}
/* The text of this task (sibling of the checkbox) */
.HyperMD-list-line .cm-meta + [class^="cm-list-"] {
	/* Goal: make it look a little different/brighter than normal text, but not too much */
	color: palegoldenrod !important;
}

the new task collector plugin allows different styles to say a task is in progress and the like.  They do this by placing different characters in the checkbox ( a > or / or ..).  It would be great if tasks could work with this and only sow items as completed if a certain set of characters were present in the checkbnox.  So [x] or [-] might be completed but anything else, [>] would not be treated as completed.

Thanks, @pcause. It would be nice to have these semantics in Tasks and I'd be happy to review a PR with those changes. However, due to my limited time, I won't be able to provide this soon.

I have been playing with a change that allows multiple states for a task, I have the basics in place for switching between them. For the query part there would be a new filter type called state.
So the pattern below would apply. For rendering the user can do what they want based on the status character via CSS like task collector.
state (includes|does not include) ( |x|-|/|etc....)
@SimplGy and @pcause would that help out your scenarios?

I have been playing with a change that allows multiple states for a task, I have the basics in place for switching between them. For the query part there would be a new filter type called state.

That's awesome news - thanks @sytone !

So the pattern below would apply. For rendering the user can do what they want based on the status character via CSS like task collector.
state (includes|does not include) ( |x|-|/|etc....)
@SimplGy and @pcause would that help out your scenarios?

I can't find it at the moment, but somewhere recently I pasted in this repo a link to a dataview issue or discussion where progress on its implementation of custom task status characters was being used.
I was thinking it might be worth seeing if that feature in Tasks might try to use the same vocabulary and search approach as Dataview, if possible and not difficult.
Ahah - here it is:
https://github.com/blacksmithgu/obsidian-dataview/issues/812
And I had posted it in #628. Oh, which you just commented in earlier!

Sounds like interesting stuff sytone. In my case, I'm only ever in edit mode, and I'm not super interested in the scraping/collecting aspect of things. Of course I'm not the only user, but I'm most interested in simple things on top of the basic text file behavior:

a keyboard shortcut (there's one for "toggle checkbox status" now, that should probably be changed to "cycle checkbox state" for heavy users of the in progress and other states of checkboxes
easy CSS targeting of done, in progress, not done (etc) in the edit mode. For the whole line of text ideally, but also for the checkbox chars. I have a workaround in place for this now.

I have it hooked up locally to cycle through the states on click, as I am using the minimal theme it already has styles for the different states. Ill look at the state code first once my PR for tags and filtering them is out of the way. For the style it would be better to define this as a snippet so users can use the theme and augment or just take a simple version from the documentation/config. Also I am not a designer and CSS is always a pain 😉

ok, have the draft PR in place and using it locally for my Vault. Working well and I will tweak as I go. The minimal theme already has styling in place so this should help support the https://github.com/blacksmithgu/obsidian-dataview/issues/812 conversation.
The settings will now take a set of custom status types with four defaults in place. When adding you can also specify the next status that should be selected when toggled.

At the bottom you can add new ones in and also bulk add all the ones that the CSS in Minimal Theme supports.

@SimplGy & @claremacrae as a FYI.


Added (failing) test case find-sort-many

To demonstrate that sort does not work for more than 1000 results.
This test case demonstrates this issue: https://github.com/mafintosh/mongojs/issues/293
When fixed this could make sure we don't have this regression again.

Funny how this test case succeeds on the CI server but fails on my computer. Maybe this is a mongodb issue after all..

After upgrading from mongo 2.3 to 3.2.4 this test is now also passing on my computer.


一些prompt无法跟踪进度

如下 prompt 通过接口已经发到官方了，但无法跟踪其进度
https://tc.cos.cdn.jchdnet.cn/tables/ae6df381-4f32-424b-b1ec-f1589e7ae000_1688096451480.png Empty mountain style, full-length portrait, traditional clothing, a cool girl wearing futuristic and intricate clothing, vibrant and colorful. This artwork combines elements of futurism, avant-garde, and high technology, featuring complex patterns, sparkling embellishments, sci-fi glasses, and robots. A digital painting with vibrant colors and intricate details, inspired by the works of Syd Mead. Best quality 4K --aspect 9:16 --seed 25736

可能是prompt太长导致

你这个 prompt 我能获取进度，但是我没办法获取下面 prompt 的进度：
hanfu, tang style outfits,<lora:hanfuTang_v35:0.4> ,hanfu, tang style outfits, red long upper shan, red chest po skirt, purple pibo, orange waistband, 1girl, slender, brown hair, light smile, in  autumn,


Scav arms and legs do not match when generated for player scav

matching info is found in the globals.json file

Originally written by chomp

had a quick look at this, is there actually matching items? there are alot of bodies without "matching" feet in globals, unless im missing somekind of presets, or having our own "presets", dont see this being worth.
if someone can chip in, i'd be greatful

Originally written by CWX

changed to backlog, imo doesnt need to be in 3.7.0

Originally written by CWX

Fixed with: https://dev.sp-tarkov.com/SPT-AKI/Server/commit/5917fbce38315f2cf0a129abe6316a34afdd5b01

Originally written by chomp


Use a core flag parser other than stdlib flag to unlock wider range of arg types

tl;dr - By switching away from stdlib flag, we will be able to support a wider range of capabilities with significantly less workaround code.
Much of the code around here is arguably working around stdlib flag, for example:

concept of commands

nesting of commands
commands with aliases

persistent flags (in progress)
flags with aliases
flags of types not already supported in stdlib (via FlagSet.Var)

slice-specific (de)serialization hacks
other inconsistently-implemented (de)serialization hacks

probably other stuff!

By building on top of stdlib flag, we are limited to two categories of string arguments:

flags

must start with -
may accept zero or one argument

non-flag string literals

must not start with -
no additional help from stdlib flag 🤷🏼

There are many other command line argument parsers available in the Go third-party package ecosystem such as:

pflag, a lower-level library that provides a compatibility layer with stdlib flag

typically seen via this fork which isn't being actively maintained

cobra, a holistic command and flag building solution that encourages imperative construction of command contexts (depends on pflag)
kong, a holistic command and flag building solution with strong support for deriving applications from nested struct variables
argparse, an imperative solution which aims to provide functionality like the Python stdlib argparse

(https://github.com/urfave/cli/issues/833#issuecomment-1312834335)

flags: must start with -

This is reasonable imo, I haven't seen any use for not starting (non-argument) flags without -. It also majorly simplifies parsing.

flags: must start with -

This is reasonable imo, I haven't seen any use for not starting (non-argument) flags without -. It also majorly simplifies parsing.

@jtagcat it's a unix-y-centric way of working, imho. For example, in Windows there's strong precedent for / as prefix and : as assignment like /{flag}:{value}, although this also conflicts with the idea of "compound short flags" 🤷🏼  I'd like to provide a flexible way to allow for different argument styles if possible, e.g. how argparse does it.

Ok, fair point.
I'd say multiple prefixes at once gets unreasonably complex. Yet swapping out (not adding to) the prefix and/or the non-space delimiter (=) is doable. Multiple parse calls with different delimiters gets you any result you could want.
For arguments without a key (eg. @file.txt), the caller (or a library wrapping harg) can just do a for range against (parsed) args with strings.HasPrefix() tailored to the use-case.
Performance of multiple parses isn't an issue. First, arguments are only parsed once (on app startup). With modern processors, multiple calls may even be more performant vs a messy monolithic do-all parser.
But I'd not touch the topic right now at all. A bad standard is better than 5 standards. In my opinion, the spec I have in FORMAT.md is fairly good, well-known, and used. Even (new) Microsoft CLI utilities use GNU-like arguments.
Everone is free to fork (and wrap the library or whole cli binary) for their own niche. I want to make the codebase maintainable (and workable) for as many as possible, including myself. One niche use-case just isn't worth it.
I want to keep it as simple as possible. There isn't anything we are removing compared to stdlib flags. Right now, getting v3 released is the priority.

@jtagcat I appreciate the points you're making.
I'd love to see what an integration of harg for the purpose of addressing this issue looks like, if you're up for doing that work.
I'm personally interested in exploring this approach, if only to better understand how the urfave/cli layer can change.

@meatballhat @jtagcat Both of you make good points. I think as software devs we'd like to make software perfect - covers all use cases, very performant, infintely extensible and so on. While a complete new parser is good, we need to see how much we can stretch stdlib flag to the max to cover most of the use cases. We cannot satisfy every user's use cases so its better to list what features beyond what urfave/cli/v2 offers do we want to achieve.

@dearchap Are you suggesting that this issue is not worth pursuing (yet)? 😅 imho the workarounds in place to support nested commands and compound short flags are indications that we've already gone past the point of stretching stdlib flag to the max. Or do I misunderstand what you mean? ❤

@meatballhat What are the most requested features of this library ?

Global/Persistent flags
Help consistency(and with being able to do help without required flags)

if we have those two knocked out, rest of the features are icing on the cake no ?

Requesting for comments, especially about the AlsoBool feature: https://github.com/jtagcat/harg/blob/7c7228774ec1fd7d593c5e24f82a2af1827eb06f/FORMAT.md#requesting-for-comments

update: https://github.com/jtagcat/harg is tested and ready to integrate
@dearchap @meatballhat requesting review, if you have the time

@jtagcat imho https://github.com/jtagcat/harg is lovely as heck and I would very much like to see what an integration with urfave/cli/v3 looks like 😁 Is this work you're planning to do soon?

Soon, but not soon. I have half a workday today, then maybe next Sunday, then longer periods starting around 18. dec.
Honestly, it plays such a major role in the cli package, a complete rewrite (creatively egoistically named hcli) for v3 might be doable.
What components are there?

Flags wrapper:

Help prompt
Shell completions [^notv3]
Default values

In Flag, replace Required bool with Action, renamed to Condition. It is trivial to write common implementations with generic functions. The library can provide commonly used ones, such as NotDefault (must be set by user, --foo="" is valid) and NotEmpty. In most cases, omitted or looking like cli.StringFlag{Name: "foo", Condition: cli.NotEmpty}.
Ideas for changes I've had so far. I've asked around for feedback, and clarifying what Required did come up.

Validation (after type conversion)
Supporting yaml with nested flag definition structure and/or exposing setting flags in context [^notv3]

Context

Signals [^notv3]

Make it clear on how interrupts are expected to be handled

Exit codes [^notv3]

Documenting and handling exit codes: Exit code caller should reference an already-defined code, similar to calling up a flag, not just 'exit 1'. [^notv3]

Commands

Before/After
Subcommands

Flag-dependant subcommands: Quick example: $ app' → ls $(pwd) $ app →cd ` [^

It should also include everything in the v3 milestone. Anything I missed? The only part I would expect to get stuck is shell completions. Though, it is not critical for a v3 beta.
[^notv3]: Not needed for a functional beta release. No changes are necessary for adding it without breaking changes.

@jtagcat do I understand correctly that you are recommending against integrating jtagcat/harg directly with this library, but instead to make a jtagcat/hcli project that uses it, and then use jtagcat/hcli in this library?

@jtagcat could you provide some examples of how users would use the harg library ? Maybe a definition for a int flag and a float slice . Thanks

@jtagcat do I understand correctly that you are recommending against integrating jtagcat/harg directly with this library, but instead to make a jtagcat/hcli project that uses it, and then use jtagcat/hcli in this library?

I meant hcli = urfave/cli@v3, maybe.

@jtagcat could you provide some examples of how users would use the harg library ? Maybe a definition for a int flag and a float slice . Thanks

One way would be to do as it is now: Define flags (and aliases, etc), and then retrieve by string. Just the underlining library differs. I would expect a flag to be available for all subcommands unless explicitly marked as local.
I don't know if it is ergonomically possible to type the lookup string.

What I came up with atm:

One thing maybe needing explaining is Source. It defines the priority (opt overrides env, or other way around).
Value-typing is still available:
var (
  flagFoo = "foo"
)

_ = hcli.Command{
	Flags: []hcli.Flag{
		hcli.StringFlag{Options: []string{flagFoo, "f"}},
	}
	Action: ... {
		ctx.SlString(flagFoo)
	}
	...
}

This provides completion and validation in the IDE, and ctrl-clicking (jump to definition, or show all uses).

I have a chicken and egg problem. It originates from boolean flags not consuming the next argument, thus options in general maybe consuming the next argument, what is a problem when determining whether a subcommand is a value for an option, or a subcommand.
One could expect all of the following to work (using only long options for sake of simplicity):
$ hello subcommand --world val # subcommand with world=val
$ hello subcommand --yes # boolean yes
$ hello --world val subcommand --world val # depending on globals, subcommand:[val val] or global:val, world:val
$ hello --yes subcommand # boolean yes
$ hello --world subcommand # root command with world=subcommand

I would prefer globals to be explicitly defined. Helptext can be managed with categories (and optionally hiding globals in subcommand helptext). This would mean that globals have to be defined in all subcommands (flag definitions can be reused with variables).
Explicit globals would mean that order does not matter ($ hello --world val subcommand --world val, where --world is the same). The problem here is that the parser does not know what subcommand flags it parses against before parsing (--world could be a bollean, like --yes). This could be solved by restricting flags to be allowed only after subcommands ($ hello --world val subcommand would be invalid).
Implicit globals would mean that flags have a recursive flag in their definition, and only ever defined once. While parsing, the arguments are parsed against root command's definitions. When a subcommand (choke) is found, everything until the subcommand is parsed again for only recursive definitions. Next, the subcommand arguments are parsed (recursively). Option order would always matter.
Right now, implicit globals sound better. This might need more examples.

Progress at https://github.com/jtagcat/harg/tree/hcli. It's coming together beautifully imo, needs a workweek more (x2 for unused feature creep).

@jtagcat We have support for persistent flags in v3 right now. So if you mark a flag as persistent it will be available to all subsequent sub commands. if sub command defines same flag it will take precedence over persistent one.

@jtagcat Right now we have 2 competing arg parsers, yours and @meatballhat 's argh. At some point we have to make a decision which path is preferred.

Above is now released,  you can see my tests here: https://github.com/taubyte/tau/blob/main/cli/args/args_test.go

@skelouse sorry for the long delay! I think your requests are accounted for, but I'll definitely want more feedback once this is closer. I've been occupied with other life adventures since ~January-ish but I've got some vacation time coming up 🤞🏼

I have lost focus on this more than once, and IIUC others in threads here have also moved on, so I'd like to propose that this is not a blocker for v3 release. @urfave/cli WDYT?

I agree. We probably handle most of the use cases for a cli utility. Refitting a new parser is a nice engineering project but adds only incremental value

I am closing this as we are able to extend golang flag library to the max extent possible. We have support for pretty much every requirement that was required of a new parser


[Bug]:how to return true/false variable in using tool

with example for git ? output tool is "ServiceResponse" . how to tool output return true/false can Ai so that the agent can receive?

You can use the parser module to obtain structured output from LLMs, and parse them into required format (e.g. int, float, ...).
Detailed examples refer to https://github.com/modelscope/agentscope/blob/main/src/agentscope/agents/dict_dialog_agent.py


GraphRagConfig in essex-config

This issue is to track and discuss if GraphRagConfig should be tested inside of essex-config python package instead of #276

Thanks for opening this issue.
I consider having all of GraphRAG{s config in essex-config a bad approach.
If we want to test functionally of the essex-config library we should focus on edge cases and proper coverage. Adding GraphRAG introduces a lot of objects, concepts and such that are irrelevant for the config library.
If what we want to test is that GraphRAG can work with essex-config it should be the other way arounf and we then migrate and test in the proper package. GraphRAG should be irrelevant or unknown to essex-config.

Closing this out since it's OBE


Square size test: blob transactions missing

Summary of Bug
When running square_size_test, I noticed that blocks that are created are always of a very small size (mostly 1, rarely 4). Upon digging deeper, I understood there are never any blobTx transactions reaching PrepareProposal.
I don't fully understand why that is so, but there seems to be a problem in this check inside UnmarshalBlobTx.
Version
ce0be9516e6e7292cf41f7a073b55fab8346ca3f
Steps to Reproduce
In the fork of the repo, I added logs showing that blobs are missing.
Run with go test -v -timeout 300s -run TestSquareSizeIntegrationTest -testify.m TestSquareSizeUpperBound_Flaky
For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged
[ ] Contributor assigned/self-assigned

can we close this issue? @cmwaters do you remember if we ever found the reason for this? the test appears to be checking that the actual square size is being hit

closing as this issue does not appear to be present. please reopen if need be

@evan-forbes , sorry for joining the discussion late. Could you clarify how did you check that the actual square size is being hit? In the fork I mentioned, upon running the test, I get output like this one:
totalSize of the block
	normal: 257
	blob: 0
proposal block 31 created with 1 txs and 257 bytes

@ivan-gavran I see! thanks for bringing this back up! I'm not sure if I glanced over the greater than there or assumed it was already fixed on main relative to the fork you had on main. Changed to a require.Equal in #2446, along with decreasing the pfb size so that they don't get rejected. I think we accidently changed the test in #1768
We're not deciphering between the errors returned by txsim there because it always returns an error, which is a whole other issue.


[DO NOT MERGE] Experimenting with Gemini 1.5 in a full experiment

Comparing against vertex_ai_code-bison-32k:
https://llm-exp.oss-fuzz.com/Result-reports/scheduled/2024-05-07-weekly-all/
This is based on #208, just like the one above.

All Cloud build instances have terminated, yet the report still shows 88 projects are Running.
I will pause the experiment instance and launch another one with Gemini-1.5

/gcbrun request_pr_exp.py -n dg -m vertex_ai_gemini-1-5

/gcbrun request_pr_exp.py -n dg-g15 -m vertex_ai_gemini-1-5


Wrong Realization of Function.length

Wrong Realization of Function.length by ChakraCore
function func01(a, b) {
    return a + b
}
print(func01.length)
Object.defineProperty(func01, "length", {
    writable: true
})
func01.length = "0x1234"
print(func01.length)

the expected output: 2<--Number ,0x1234<--String
ChakraCore output : 2<--Number ,2<--Number
V8|JSC|SpiderMonkey  output : 2<--Number ,0x1234<--String

This was fixed in master in #5405 unfortunately the release branch does not yet include that.


Theme setup

The hero image on the landing page looks skewed in Firefox:

This might have been introduced recently. I don't remember seeing it when I checked the PR last night.

The hero image on the landing page looks skewed in Firefox:

Wast this introduced recently? I don't remember seeing it when I checked the PR last night.

Ah darn it, I've introduced and fixed that a couple times now... I'll patch it out, hold that thought

@tkeemon just pushed an update

Looks good!


Fix (some) multiple chooser search issues

Fixes #10451 (I know this one was closed as a duplicate of #10754, but it feels like there's multiple issues)
Partial fixes towards #10754
To test:
Feel free to use https://github.com/tomkins/multichooserdemo/tree/page-chooser-demo as a demo project. Quick script to create a bunch of Standard Pages in that demo:
from home.models import HomePage, StandardPage
home_page = HomePage.objects.get()

for i in range(100):
    home_page.add_child(instance=StandardPage(title=i))

Go to: http://<IP_ADDRESS>:8000/admin/pages/3/edit/ - and use the multi chooser. It should fix the following issues:

When searching, the chooser on the left hand side disappears
When searching, a "Parent" column appears, when you click this it breaks the multi chooser experience a bit

It should now look like:

Thanks @tomkins! Some initial thoughts:

#11955 appears to be the issue being fixed here. I think #10754 is something different - that's about the state of the checkbox not being remembered while navigating around the chooser, as a general user-experience thing applicable to all chooser types. The description in #10451 is a bit too vague for me to tell which of #11955 or #10754 it's referring to ("make the checkbox select dissapear" could mean the checkbox losing its selected state or disappearing entirely), but it's a duplicate either way :-)
The underlying problem with the "Parent" column is that it's not preserving any of the URL parameters. This is most obviously seen here with the multiple parameter, but it also affects page_type - for example, if after selecting some related pages you select "Choose another page" to open the single-select interface, then run a search and click on a "Home" parent link, the subsequent page will allow you to select "Home" when it shouldn't. I'd rather that we fixed that underlying problem rather than just removing the parent column in multiple-select mode, since at the moment this is introducing a difference between the two modes for no real reason.
I agree it would be better to do the URL construction on the Python side rather than making the template code more complex. If I remember correctly, there's already some fairly extensive code in ChooserViewSet for determining which URL variables to pass on in links, which is used for the pagination (and evidently the search bar in the snippet chooser, because that doesn't suffer from this issue...) - I think that could probably be re-used here for both the search bar and the 'parent' link. Happy to take a look at this later (if you don't get to it first)...

Thanks for the initial feedback - will get onto this in a couple of days

@tomkins any chance you have time to keep this moving. I know my team would be very happy to see a MultipleChooserPanel that worked. It's been unusable since it was shipped in May 2023.

Will get back on this one shortly (apologies) - as yes, it's definitely an issue I'd like to see squashed!

Superseded by #12643


docs: Rename blog post

Jekyll apparently considers posts without a date as drafts: rename the
latest post.
Signed-off-by: Jussi Kukkonen<EMAIL_ADDRESS>
The post title should come from the metadata inside the file: so shortening the filename should not matter

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1203

Relevant Lines:
1219

💛  - Coveralls


ReadDir() cannot read windows hosted ftp directories

	fsi, err := client.ReadDir(".")
	if err != nil {
		panic(err)
	}

Panic'd with this error:
panic: failed parsing LIST entry: 03-02-2023  03:15PM       <DIR>          Archived Tracking

Got the same error on windows ftp server, can I open pull request for this?


BarGroupHorizontal expects an inverse x scale?

Hey folks! I find it odd that BarGroupHorizontal expects an inversed x scale (passing in .range([xMax, 0]) as opposed to .range([0, xMax])) even though the chart itself isn't supposed to be rendered right to left.
To demonstrate with the demo in https://vx-demo.now.sh/bargrouphorizontal, if I use a bottom axis such as:
<AxisBottom
  top={yMax}
  left={0}
  scale={xScale}
  stroke="#e5fd3d"
  tickStroke="#e5fd3d"
  tickLabelProps={() => ({
    fill: '#e5fd3d',
    fontSize: 11,
    textAnchor: 'middle',
    dy: '0.33em',
  })}
/>

The axis will be rendered backwards:

This seems unintuitive to me where you have to take the same scale and invert it just to accomodate the axis, and even potentially with markers as well.
This is caused by the line in:
https://github.com/hshoff/vx/blob/51f5cc3cfa12db6eb1703aceba1e204b19ca505d/packages/vx-shape/src/shapes/BarGroupHorizontal.tsx#L66
If you agree that the inversion based on width is unnecessary I'm happy to make a PR and fix it.

Hey @diagramatics! Thanks for checking out vx and reporting this 🙏
I agree this is unintuitive and not the right behavior, it's also inconsistent with the expected scale configuration for the BarStackHorizontal xScale which is not inverted. I would guess that this ended up happening when the (vertical) BarGroup (which has a standard inverted y-axis due to the SVG coord system) was modified for horizontal use.
If you would be open to helping fix it, we would happily welcome a PR!


Is there a way to know the satellites that will be generated ???

It would be better if we can generate the SV that we want .

http://www.taroz.net/GNSS-Radar.html

by the way ... is doppler effect added in the code ???

https://github.com/osqzss/gps-sdr-sim/issues/54

thanks


Remove blob type from BlobCheckpointData

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
API changes are not detected in this pull request.


DataArray.apply is missing

In essence, I'm looking for the functionality of xarray.core.utils.maybe_wrap_array. I guess you are waiting for #964 to unify such functionality?

We could try to get in a simple version of this before #964.
My only concern is that the functionality here is slightly different from Dataset.apply, which takes functions that map DataArray -> DataArray or DataArray -> numpy.ndarray.
For DataArray.apply, we really want something that maps numpy.ndarray -> numpy.ndarray, which is now inconsistent. I guess we could pass the original DataArray to the function, but we already have a .pipe method for that.
This is also a concern for #964, because any new xarray.apply function would have similar consistency issues with Dataset.apply.
Two possible solutions, neither of which is fully satisfying:

New keyword argument raw to Dataset.apply, defaulting to False. Works like the raw argument to DataFrame.apply. If raw=True, then Dataset.apply passes unlabeled arrays to the provided function, like DataArray.apply. This makes the difference a little less jarring.
Pick a new name for one of these uses of apply, e.g., apply_raw for this use case. xarray.apply_raw or DataArray.apply_raw is pretty verbose, though.

Aha! For my use-case, DataArray.pipe is perfectly fine, I just didn't know about it. I have to admit that I know nothing about pandas. Before I learned about xarray, pandas was not interesting to me at all. My datasets are often high-dimensional which does not work well with pandas' orientation towards (one-dimensional) collections of observations. In that sense, I could rather relabel this issue (or create a new one) as a documentation problem. The API reference does not indicate the existence of DataArray.pipe at all (only Dataset.pipe, even though that one mentions it works on DataArrays too). Also, there could possibly be a see-also link to pipe from apply. Shall I have a go at a PR?

As for the consistency concern, I wouldn't have expected that to be a big issue. I'd argue that most functions mapping np.ndarray -> np.ndarray will not mind receiving a DataArray instead. On the other hand, functions mapping DataArray -> np.ndarray would seldom prefer to receive the raw np.ndarray. So I see no use to the raw parameter (but then again, I do not know pandas and their use-case), such that my hypotetical DataArray.apply and the existing DataArray.pipe are essentially the same.

I think #1130 is related. I also think that apply is somewhat synonymous to pipe and is a lot more understandable for people without a pandas background. It would also be more consistent to have them both named the same on both Dataset and DataArray.

@burnpanck I missed your comments from a few weeks ago. Yes, please do make PRs to update the docs.
I am OK with adding DataArray.apply for consistency and discoverability, even if it's basically an alias of DataArray.pipe. And if we add a raw argument I suppose it should probably default to raw=False for both .apply methods.

Actually, I think that pipe should default to raw=False if there even is to be such a parameter. the reason is that one usually uses pipe to chain together functions, each of which usually expect a DataArray and "downcasting" to ndarray often breaks such a chain. If you insist on having one method behave as if raw=True, then I think it should be apply in order to be constsent with the python apply function which simply applies the function and nothing more.

Not stale!

I want to apply a function over a given axis. This functionality is well defined and not covered by pipe (well, you can select the axis INSIDE the function passed, but it's bad practice because that means the function has an extra parameter to select the axis, not very KISS imo)


[Help] SDL2 addon libraries

I'm having a hard time using CPM with the SDL2 libraries.
I've used the ModerCppStarter repository to start this project.
Adding SDL2 works fine:
CPMAddPackage(
  NAME SDL2
  VERSION 2.0.12
  URL https://libsdl.org/release/SDL2-2.0.12.zip
)

But I can't make TTF and Mixer libraries to work as intended:

CPMAddPackage(
  NAME SDL2_ttf
  VERSION 2.0.15
  URL https://libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.15.zip
  DOWNLOAD_ONLY TRUE
)

CPMAddPackage(
  NAME SDL2_mixer
  VERSION 2.0.15
  URL https://libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.4.zip
  DOWNLOAD_ONLY TRUE
)

...

add_library(PacMan ${headers} ${sources})

target_include_directories(PacMan
  PUBLIC
    $<BUILD_INTERFACE:${SDL2_ttf_SOURCE_DIR}>
)

target_include_directories(PacMan
  PUBLIC
    $<BUILD_INTERFACE:${SDL2_mixer_SOURCE_DIR}>
)

...

target_link_libraries(PacManStandalone PacMan cxxopts SDL2 SDL2_ttf SDL2_mixer glm)

When linking the SDL2_ttf and SDL2_mixer libraries to the project, in the CMakeLists.txt file of the standalone source, I've get the following error:
[ 47%] Built target SDL2
[ 51%] Built target PacMan
[ 51%] Linking CXX executable PacMan
/usr/bin/ld: cannot find -lSDL2_ttf
/usr/bin/ld: cannot find -lSDL2_mixer
/usr/bin/ld: cannot find -lSDL2::SDL2
/usr/bin/ld: cannot find -lFreetype::Freetype

Apparently, I need to build the SDL2_ttf and SDL2_mixer linking to the SDL2 target, but I have no clue of how to do that.
Thanks in advance.

Hey,
unfortunately, SLD2 and its plugins don't seem to have great CMake support, so while it should be possible using CPM.cmake, in this case I'd recommend using the traditional approach of installing them locally on your system using a package manager such as brew or apt-get and using find_package to bring them in. Of course this will mean that others using your project will have to install the same versions of the libraries using their system package managers.
Some notes in case you still want to go forward using CPM.cmake:

The SDL2 library does not define required alias targets in the CMakeLists. To do so manually you can add the following after adding SDL2:

if (SDL2_ADDED)
  add_library(SDL2::SDL2 ALIAS SDL2)
endif()

SDL2_ttf seems to have CMake support, so it should work after removing DOWNLOAD_ONLY TRUE flag. However, it depends on FreeType, which means you should add FreeType using CPM.cmake as well if you wan't better system independence.

it seems that sdl2_mixer does not support CMake at all, so you will need to either create the CMake target yourself.

The final script could look something like this:
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)

# ---- Project ----

project(Playground LANGUAGES CXX C)

# ---- Fetch CPM ----

set(CPM_DOWNLOAD_VERSION 0.27.1)
set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")

if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION}))
  message(STATUS "Downloading CPM.cmake")
  file(DOWNLOAD
    https://github.com/TheLartians/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
    ${CPM_DOWNLOAD_LOCATION}
  )
endif()

include(${CPM_DOWNLOAD_LOCATION})

# ---- Add dependencies via CPM ----
# See https://github.com/TheLartians/CPM.cmake for details and examples

CPMAddPackage(
  NAME SDL2
  VERSION 2.0.12
  URL https://libsdl.org/release/SDL2-2.0.12.zip
)

if (SDL2_ADDED)
  add_library(SDL2::SDL2 ALIAS SDL2)
endif()

CPMAddPackage(
  NAME freetype
  GIT_REPOSITORY https://github.com/aseprite/freetype2.git
  GIT_TAG VER-2-10-0
  VERSION 2.10.0
)

if (freetype_ADDED)
  add_library(Freetype::Freetype ALIAS freetype)
endif()

CPMAddPackage(
  NAME SDL2_ttf
  VERSION 2.0.15
  URL https://libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.15.zip
)

CPMAddPackage(
  NAME SDL2_mixer
  VERSION 2.0.15
  URL https://libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.4.zip
  DOWNLOAD_ONLY TRUE
)

if (SDL2_mixer_ADDED)
  # quick and dirty target definitions
  # might need extra configuration and install commands to work properly
  file(GLOB SDL2_mixer_SOURCES "${SDL2_mixer_SOURCE_DIR}/*.c")
  add_library(SDL2_mixer ${SDL2_mixer_SOURCES})
  target_link_libraries(SDL2_mixer SDL2::SDL2)
  target_include_directories(SDL2_mixer PUBLIC ${SDL2_mixer_SOURCE_DIR})
endif()

add_executable(test main.cpp)
target_link_libraries(test SDL2 SDL2_ttf SDL2_mixer)

I hope this helps you move forward with your project!

I wanted to use CPM.cmake for the convenience on multi-platform build, so I'll insist on it.
The option you mentioned on SDL2_mixer it's truly hard to get right. After doing some more research on SDL2_mixer, I've decided to switch to OpenAL.
Thanks for the help!

Sounds good. I'll close the issue for now, but feel free to re-open if you run into further SDL2/CPM.cmake related problems!


Ads Links not showing

I trying to scrape google with simple http requests results but no paid links (ads) are being collected? is there a problem with the selectors? or is it something else

Might be the selectors. Try to modify them in parsing.py in the class GoogleParser and let us know what works for you, such that I can incorporate it back. Thanks :)

I played around with the selectors, and it starts to work for me. When I will have the final robust selectors I will post it.
And now I have two options:

My selectors that work without selenium
Your selectors that seem to be working with selenium.

My question is, what are the pros and cons, and I guess that the answer is that the selenium will require less proxy IPs because it is less detectable. Am I right? Is this difference significant?

You can specify whatever string to your selectors that you like. Best is of course a good description:
        'ads_main': {
            'us_ip': {
                'container': '#b_results .b_ad',
                'result_container': '.sb_add',
                'link': 'h2 > a::attr(href)',
                'snippet': '.sb_addesc::text',
                'title': 'h2 > a::text',
                'visible_link': 'cite::text'
            },
            'ONLY_HTTP': {
                'container': '#b_results .b_ad',
                'result_container': '.sb_add',
                'link': 'h2 > a::attr(href)',
                'snippet': '.b_caption > p::text',
                'title': 'h2 > a::text',
                'visible_link': 'cite::text'
            }
        }

that the selenium will require less proxy IPs because it is less detectable.
Not very significant in Bing, Baidu and others. Very significant with Google (but they fixed that a while ago). I could scrape 10000 keywords in 2 hours with Google some months ago in selenium mode. Now after 50 queries they block you :)
Still works for bing though. They don't have rate limits. I can scrape 500 keywords in a second with http-async mode. Do it if you feel frisk :D


Indexing turns 1D coordinates into scalar coordinates

Starting with
arr = xr.DataArray(np.arange(0, 7.5, 0.5).reshape(3, 5),dims=('x', 'y'))
This will drop the index on x:
arr[0, :]
but this won't:
arr[slice(0,1), :]
While the laymen would expect them both to return the same thing.  Is there a reason to this design choice, or could I file a PR for it?

This is intentional -- it matches the behavior of numpy.


Trivial patch for SAMPLE-AES support

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Bug fix
[x] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
Trivial patch to support SAMPLE-AES in video streams, which appears to just be AES-128 by another name.
Worked on the stream I initially ran into SAMPLE-AES with - without this patch, I get a lot of "SAMPLE-AES encryption is not supported yet"; with this patch, I get an intact media file with audio and video.
It appears to also work on the URL linked in #15720.

SAMPLE-AES != AES-128 in the first place. Second, this PR effectively solves nothing. Native HLS downloader does not support SAMPLE-AES and will download encrypted media that won't play in media players.

Really? Because the media I mentioned this "working" on certainly plays in media players after this.
I could certainly buy this not being the correct way to implement it, but it does produce working media.

Try it yourself with URL from the issue you linked.

Huh, it worked and produced a playable file on the URL I tested that wasn't from that, but the one from that produces, as you say, a nonsense but structurally playable MP4 file.
I wonder if it's just that the URL I was trying advertises the option but has unencrypted options in the playlist, and it was bailing out early, or what. Because that certainly produces a watchable stream.


Consider creating ClassValue for storing Logger instance per class

That would allow implementing an interface, say LoggerPerClass, which would have default method log() which would obtain do something like LoggerClassValue.of(getClass()).

@armiol, FYI.

Implemented. See Logging interface.


I have added one project using openCV-python library. This is virtual  mouse.

This is virtual mose using Python programming language and OpenCV-Python library.

Please merge this PR adding lables "hactoberfest-accepted" and "Hactoberfest"


iOS 10.3 - ASL Depreciation warnings

Just upgraded to the latest xcode for iOS 10.3 and noticed warnings saying ASL is now deprecated as of 10.3. Are there any plans to replace ASL calls with the new OS logging methods?
Issue Info

Info
Value

Platform Name
e.g. ios

Xcode Version
e.g. Xcode 10.3

fwiw - the same ASL deprecation warnings show up in watchOS 3 as well

I recommend you use DDOSLogger instead of DDASLLogger with iOS 10+, macOS 10.12+, tvOS 10.0+, and watchOS 3.0+. You can use it from CocoaLumberjack 3.2.0.
And DDOSLogger uses <os/log.h> that comes from a new OS logging system. If you are interested in it,  see here.

os_log replacement for asl_search? Does anyone know of a way to read the printed log using the new os_log api?


Avoid waiting for $timeout()s

The issue https://github.com/angular/protractor/issues/169 is closed but a lot of people would like a real solution for this so I (re)opened this issue.

There was a feature added yesterday that allows plugins to skip waiting for $timeout and $http, but leaves custom plugin synchronization intact. Does this address the issue?

Not really, I would like something easier (like a protractor option).
And I would like to be able to avoid $timeout but not $http for instance

We'll look into this as a feature request and see what we can do about addressing it.

+1. We've run across this problem too and would like to see it fixed.

This is a difficult feature request because we'd like Protractor to work well by default, and waiting for anything deferred is deeply baked in to how we interface with Angular. Right now, waiting for any deferred behavior is all-or-nothing (note that you can turn off all waiting with browser.ignoreSynchronization = true. Also, you probably don't want to avoid waiting for all timeouts, just particular ones.
We could potentially do this with a change to Angular which would add a third parameter to $timeout - so if you wanted to ignore a particular call, you could do
$timeout(fn /* function */, timeout /* number */, ignoreMe /* boolean */)

Note that this is just a design idea now (not approved). Note also that this would require changes to the application code - there's not a clean way to say what you'd like to ignore from your test code.

Also, as mentioned in #169, you can accomplish this today by using $interval instead of $timeout for those callbacks you'd prefer protractor to not wait for.

We could also probably make a plugin that allows users to wait for outstanding $http requests but not for $timeout. It would request wrapping $http or $httpBackend and doing our own way of waiting on outstanding requests, instead of relying on $browser. There might be subtle edge-cases around doing that, but implementing it as a plugin in allows people to opt-in to that functionality if they need it.

If this feature interests you, please try this plugin: https://github.com/mgiambalvo/protractor-xhr-only-plugin. It adds the ability to switch protractor between waiting for all Angular operations (ie, $http and $timeout calls) and waiting for only outstanding $http requests.
Note that this plugin requires a feature added to Protractor 3.2.0, so you'll need to update before you can try it.

The plugin is now available on NPM https://www.npmjs.com/package/protractor-xhr-only-plugin

The plugin cannot be used with Angular 2.0 and Protractor 4.x.x though.. Issue remains..

for angular 2.0 and protractor at least 5.x, i developing this one:
https://www.npmjs.com/package/protractor-sync-options-plugin


sqlite ambiguous column name regression

objection v1.6.2 introduces a breaking change resulting in sqlite throwing an error saying ambiguous column name. I've reproduced this with the reproduction template as simply changing the query as follows:
  const jennifer = await Person.query().debug()
    .joinEager()
    .findOne({ firstName: 'Jennifer' })
    .eager('pets')
    .orderBy('id', 'asc')

To make the code work with v1.6.2 you need to change .orderBy('id', 'asc') to .orderBy('person.id', 'asc').
v1.6.1 produces the following sql:
SELECT
    `Person`.`id` AS `id`,
    `Person`.`parentId` AS `parentId`,
    `Person`.`firstName` AS `firstName`,
    `Person`.`lastName` AS `lastName`,
    `Person`.`age` AS `age`,
    `Person`.`address` AS `address`,
    `pets`.`id` AS `pets:id`,
    `pets`.`ownerId` AS `pets:ownerId`,
    `pets`.`name` AS `pets:name`,
    `pets`.`species` AS `pets:species`
FROM
    `Person`
        LEFT JOIN
    `Animal` AS `pets` ON `pets`.`ownerId` = `Person`.`id`
WHERE
    `firstName` = ?
ORDER BY `id` ASC

v1.6.2 produces the following sql:
SELECT
    `Person`.`id`,
    `Person`.`parentId`,
    `Person`.`firstName`,
    `Person`.`lastName`,
    `Person`.`age`,
    `Person`.`address`,
    `pets`.`id` AS `pets:id`,
    `pets`.`ownerId` AS `pets:ownerId`,
    `pets`.`name` AS `pets:name`,
    `pets`.`species` AS `pets:species`
FROM
    `Person`
        LEFT JOIN
    `Animal` AS `pets` ON `pets`.`ownerId` = `Person`.`id`
WHERE
    `firstName` = ''
ORDER BY `person`.`id` ASC

Note this is only broken on sqlite, mysql does not complain about the sql produced by v1.6.2

Oh crap! sqlite uses the aliases in order by. Didn't know about that.
Thanks for bringing this up. I'll add a test and fix this soon. In the meanwhile, stick with 1.6.1.

But it's a good idea to always be explicit about your column references. It's difficult, even for people reading that code, to know which id this means.

By the way, why are you calling both joinEager and eager? There's no reason to do that

https://vincit.github.io/objection.js/api/query-builder/eager-methods.html#joineager
Shorthand for eagerAlgorithm(Model.JoinEagerAlgorithm).eager(expr)

Yes, you just proved my point :smile: Did you even read that yourself?
  const jennifer = await Person.query().debug()
    .findOne({ firstName: 'Jennifer' })
    .joinEager('pets')
    .orderBy('id', 'asc')

Ah, the docs don't show that it takes arguments which is probably why I did that. Thanks for the tip. Just saw more of the docs now and mergeEager has examples which clarify that at least.

Oh, that's true :confused: Sorry, I didn't realise that. I'll improve the documentation.

Hi<EMAIL_ADDRESS>breaks objection-find<EMAIL_ADDRESS>in that a query like
const findQuery = require('objection-find');
router.get('/', (req, res) => {
findQuery(Campaign)
.build(req.query)
.then(allCampaigns => sendSuccess(res, allCampaigns))
.catch(err => sendError(res, err));
})
where the query param has a subquery as:
qs : {
'statusId:eq' : 1, // active
'sources.typeId' : 1, // <------ this breaks
'startDate:lt' : now,
'endDate:gt' : now,
'eager' : '[sources, priority]'
}
I tested that<EMAIL_ADDRESS>works fine.
The error stack has :
TypeError: subQuery.build is not a function
at PropertyRef.buildFilter (/Users/milydahlke/dev/web-services/node_modules/objection-find/lib/PropertyRef.js:147:36)
at FindQueryBuilder._buildFilter (/Users/milydahlke/dev/web-services/node_modules/objection-find/lib/FindQueryBuilder.js:420:11)
at _.each.param (/Users/milydahlke/dev/web-services/node_modules/objection-find/lib/FindQueryBuilder.js:408:12)
at arrayEach (/Users/milydahlke/dev/web-services/node_modules/objection-find/node_modules/lodash/lodash.js:516:11)

@shzmilydahlke Support for latest Objection.js version was fixed in objection-find 2.0.0. Could you please try updating and report back if it works well for you?


/age2 not working

Related to #349

That was fixed in 09b59acbb8a0f9c6763857fab2302ce6613d6034 or earlier, because it works for me.


[Builtins] [Costing] Add 'paramMultiplyIntegerV2'

This shows how to add a new way of costing an already existing builtin.

This would require the cost model to have parameters for both "versions" of the builtin, right? Even though one is unused.

This would require the cost model to have parameters for both "versions" of the builtin, right? Even though one is unused.

Yes, but the unused ones are still used somewhere and so they need to be stored somewhere, so we could probably as well store them here?
Anyways, what's the alternative? To have extensible built-in models, create those huge BuiltinCostModelBase-like records each duplicating 90% of the previous one as well as a whole lot of supporting code? Have "delta" records overloading behavior for certain builtins and complicating the logic by a huge margin? Like what else can we possibly do?

That's why there was a big spike for thinking about it! I haven't thought about it much, but maybe there's a way? Maybe not, though.

@kwxm requesting your review just so you can take a look.
I think this PR has served its purpose of providing an example of having versioned costing, so I'm closing it.


Build failure: vscode

Steps To Reproduce
Steps to reproduce the behavior:
I want to install vscode with the following configuration
programs.vscode = {
    package = pkgs.vscodium;
}

and the installation is failing with:
error: collision between `/nix/store/5fcw0rdmqczarh16k0lzhyzks9vx7529-vscodium-<IP_ADDRESS>19/lib/vscode/LICENSES.chromium.html' and `/nix/store/k5ywwrx88xls06dklq2alvfaz7vdii68-vscode-1.86.1/lib/vscode/LICENSES.chromium.html'

Additional context
It's only failing on linux. On mac, it works.
Notify maintainers
@eadwu @synthetica @amaxine @bobby285271 @Enzime
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"aarch64-linux"`
 - host os: `Linux 6.6.3-413.asahi.fc39.aarch64+16k, Fedora Linux Asahi Remix, 39 (Thirty Nine), nobuild`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.1`
 - nixpkgs: `/nix/store/j4zjf3ph0lr39sg02zl0mk4vpf059r0z-source`

sorry for the noise. I've found the issue. code  was twice in my config.


Gosu Dependency qoefully out of date

The Gosu library has been updated to 1.4.3, but RTanque relies on 0.13.1 which will not install on a modern version of OSX.  I'd love to get this working, as I used to use RTanque to teach beginning rubyists, and I'd like to do it again.

Hello @bokmann and thanks for your interest in RTanque. If you'd like to tackle upgrading this dependency, I'd be happy to accept a PR.


Bump release version.

Bump release version to be 1.6.0

Codecov Report

Merging #253 into master will not change coverage by %.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #253   +/-   ##
=========================================
  Coverage     70.27%   70.27%
  Complexity      282      282
=========================================
  Files            32       32
  Lines          1497     1497
  Branches        155      155
=========================================
  Hits           1052     1052
  Misses          389      389
  Partials         56       56