Developer Labs / next Twitter API

Hello from Twitter Developer Relations!
We really appreciate the Tweepy team and community for building on our API, and for supporting our developers! You, and many projects like this one, are among the reasons why Twitter data is much-appreciated by developers. We historically haven't built libraries and SDKs - the communities, YOU, have done so - and I'm here to tell you how much we appreciate that, and that we know you're around! Tweepy is hugely popular, and we recognise that history and background.
We're currently building a brand new API platform that (over time) will replace the current one. I would love to connect with you on any plans to add support for Twitter Developer Labs! We're looking to be much more focused on proper API versioning, and are basing our specification on OpenAPI.
As we hope you know, we do list tweepy on our developer libraries page https://developer.twitter.com/en/docs/developer-utilities/twitter-libraries and we would really love to continue to do so as you continue to help the Python community. Do you have any plans to support the latest Labs APIs as they will eventually replace the existing ones?
Thank you, again!

I'm going to close this in favor of #1472, now that Twitter API v2 has been launched.
I greatly appreciate the support and encouragement, and I apologize for the delay in responding.
As for supporting any other current or future Labs endpoints, I've added that as an addendum to #1472 for now.


Rename Generic System technology to Custom Generation Profile

Description
-Rename all Generic System configs and references to Custom Generation Profile:
-Update configs in startup, reference former name in technology tree setup
-Update UI forms and defaults files
-Update references in metrics.lk, autographs.lk, version upgrade, etc.
-Key word replace in help system, update file names (@cpaulgilman need to see if help system builds correctly, if not will have to revert and try another way).
-Update hybrid configs with custom generation, battery configs as well
-Update API, export_config
Fixes #1849
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] This change modifies variables in existing compute modules. Please see Checking for PySAM Incompatible API Changes.

Checklist:
If you have added a new compute module in a SSC pull request related to this one, be sure to check the Process Requirements.

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[ ] I have checked my code and corrected any misspellings

-Key word replace in help system, update file names (@cpaulgilman need to see if help system builds correctly, if not will have to revert and try another way).

Help revisions need to be done to the proprietary source files using the Help & Manual software. Editing the HTML files in the code repository will not work because they are replaced by the HTML output of Help & Manual. I will make the necessary changes to Help in a separate pull request for the Fall 2024 release.

-Key word replace in help system, update file names (@cpaulgilman need to see if help system builds correctly, if not will have to revert and try another way).

Help revisions need to be done to the proprietary source files using the Help & Manual software. Editing the HTML files in the code repository will not work because they are replaced by the HTML output of Help & Manual. I will make the necessary changes to Help in a separate pull request for the Fall 2024 release.

I will update the Help source files, generate a new set of HTML files, and commit them to this branch so we can make sure Help is working properly before merging.

For hybrid CustomGeneration-PVWatts-Wind-FuelCell-Battery configuration, the fuel cell capacity and custom generation capacity on the Hybrid System page is zero instead of being the value from the Custom Generation Profile and Fuel Cell input pages, respectively.

There were a few missing updates in variable names and string checks in the UI equations for Hybrid System and Hybrid Cost pages, should be fixed with latest push.

I found one more thing. Fuel Cell cost is missing from the Hybrid System Costs page for CustomGeneration-PVWatts-Wind-FuelCell-Battery configurations:

I found one more thing. Fuel Cell cost is missing from the Hybrid System Costs page for CustomGeneration-PVWatts-Wind-FuelCell-Battery configurations:

Fixed the callback for this.


Is there a way to use global middleware to stop event processing?

The docs for Global middleware say:

Both global and listener middleware must call next() to pass control of the execution chain to the next middleware.

I'm looking for a way to use global middleware as a type of "event filter". For example, one use case is checking a list of users that the bot should ignore. Having a way to do this globally (basically, a way to "stop event processing, don't continue") would be easier than having to set a flag in the context dict and checking it in every event handler.
Thanks for any insight.

@eddyg You can use global middleware for the purpose!
allowed_user_ids = ["U12345XYZ"]

@app.middleware  # or @app.use
def verify_allowed_users(context: BoltContext, next):
    if context.user_id in allowed_user_ids:
        # continue only when an event generated by a known user
        return next()
    return BoltResponse(status=401, body="unknown user detected")

@app.event("app_mention")
@app.event("message")
def handle_events(event, say):
    # do something here
    pass

Ah, that's the part I was missing! Thanks for the example. Does the value of the status code have any effect?
I have a couple somewhat related questions, so I'm going to ask here (if you'd prefer a new issue, let me know):
When I asked our Slack Admins to approve my app development instance for installation in our Workspace, I selected all of the scopes that I expected to need for the complete project. (This is much easier and has much less administrative overhead than adding each scope individually as-needed and submitting a new request to re-install the app each time.)
Since I am in the early stages of implementation, obviously there are scopes that aren't implemented yet. Is there some way to create a global "catch all" for unhandled events so my app can log "Not yet implemented: {event_type}" (and acknowledge the event to the API)? I know this situation is handled by Bolt internally, but I'd like to be able to just catch everything and log it as a reminder. (I know I can see an "Unhandled request" warning logged by Bolt's async_dispatch, but it would be nice to have a catch-all in the app.)
Also, I've noticed that sometimes the API is re-sending events to my app with a "timeout" retry_reason, incrementing the retry_attempt value. Specifically, I've noticed this with "app mentions", where I process the app_mention event, but I also receive message events, and those are the ones that the API is re-sending. What is the "best practice" for dealing with this in Bolt?
Thanks again for taking the time to answer my questions as I come up to speed on using Bolt!

Does the value of the status code have any effect?

Your app returns the HTTP status code as long as you use HTTP mode.

Is there some way to create a global "catch all" for unhandled events so my app can log "Not yet implemented: {event_type}" (and acknowledge the event to the API)? I know this situation is handled by Bolt internally, but I'd like to be able to just catch everything and log it as a reminder. (I know I can see an "Unhandled request" warning logged by Bolt's async_dispatch, but it would be nice to have a catch-all in the app.)

As long as your app already has commands scope, your app can add slash commands / shortcuts after the app installation. Adding new commands does not re-installation. It's the same for event subscriptions. You need to have all necessary scopes before installation but you do not need to turn subscriptions on if your app is not ready for it. So, my primary recommendation is to enable a functionality when it's ready.
If you really need to add functionalities in advance, you can use a global middleware for acknowledging requests from Slack. You can have a line return BoltResponse(status=200, body="") to do this. As long as your app returns 200 OK in response to incoming requests, you won't receive retried requests.
But the situation where an end-user does not get any response from the app may be confusing or awkward. For interactivity features such as slash commands, shortcuts, app_mention events, your app should send a reply message or open a modal in response to user actions.
@app.command("/run-something")
def run_something(ack):
    ack("Thanks for using this command! We're still working on this feature. Stay tuned!")

@app.shortcut("submit-request")
def submit_request(client):
    # open a modal, which tells end-users the feature is not ready yet
    client.views_open(...)

What is the "best practice" for dealing with this in Bolt?

You can have multiple event listeners. As long as your listeners match the event types, Bolt automatically acknowledges the incoming requests for you.
@app.event("app_mention")
def handle_app_mention_events(event, say):
    # do something meaningful here

@app.event("message")
def handle_app_message_events(event):
    # do something meaningful here

If you do not have anything to do at the moment (say, you're going to implement the feature later), you can disable the event subscriptions in the Slack app admin pages or have a simple listener which just matches and does nothing.
@app.event("message")
def just_ack(event):
    # do nothing - just for acknowledgement
    pass

Your app returns the HTTP status code as long as you use HTTP mode.

Oops, I should have clarified: does the status value returned by my app have any effect in Socket Mode?

Adding new commands does not re-installation. It's the same for event subscriptions. You need to have all necessary scopes before installation but you do not need to turn subscriptions on if your app is not ready for it.

A-ha! 💡 Now I understand the difference between scopes and subscriptions! Thanks.

So, my primary recommendation is to enable a functionality when it's ready.

Yes, this makes sense and is less work than trying to (temporarily) deal with unwanted event types. 😄

As long as your app returns 200 OK in response to incoming requests, you won't receive retried requests.

Great to know. 👍

But the situation where an end-user does not get any response from the app may be confusing or awkward.

A very good point!
Re: app_mention and message events with the same message contents:

You can have multiple event listeners.

It seems like if a bot has message:* scopes, there's probably not much need to subscribe to app_mention events? (Trying to think of a case where it would be beneficial/useful to deal with processing both.)

If you do not have anything to do at the moment (say, you're going to implement the feature later), you can disable the event subscriptions in the Slack app admin pages or have a simple listener which just matches and does nothing.

Appreciate the insight here.
Out of curiosity, your just_ack example made me think of another question: when is it necessary to explicitly call ack()? Is that only if there's a chance my event handler won't return within ~3 seconds, or are there other reasons to explicitly call it? For example, I was looking at this test code and noticed it always calls ack().
As always, thanks for your time!

Oops, I should have clarified: does the status value returned by my app have any effect in Socket Mode?

Yes, it does if it's not 200.

It seems like if a bot has message:* scopes, there's probably not much need to subscribe to app_mention events? (Trying to think of a case where it would be beneficial/useful to deal with processing both.)

It depends what you want to do but in general, your app may not need to subscribe to app_mention along with message events. Subscribing to app_mention events can be beneficial for apps that are interested in only mentioned messages.

when is it necessary to explicitly call ack()? Is that only if there's a chance my event handler won't return within ~3 seconds, or are there other reasons to explicitly call it?

Only Bolt does automatic acknowledgement for app.event listeners. For other types of listeners, having ack() calls in a listener is required.

Sorry, the above comment was initially confusing. I've updated it.

Thank you, Kazuhiro-san, for your time and explanations!


Update Podspec version

Now when you do pod install cocoapods tries to clone tag 0.11.7 but the tags are v0.11.7. I updated the podspec to used the correct tag that adds a v.
This fixes the following error:
[!] Error installing react-native-config
[!] /usr/bin/git clone https://github.com/luggit/react-native-config.git /var/folders/tj/8qdrhkns4ml4r6j9mpy92y6w0000gn/T/d20190918-39540-1ioq1kg --template= --single-branch --depth 1 --branch 0.11.7

Cloning into '/var/folders/tj/8qdrhkns4ml4r6j9mpy92y6w0000gn/T/d20190918-39540-1ioq1kg'...
warning: Could not find remote branch 0.11.7 to clone.
fatal: Remote branch 0.11.7 not found in upstream origin

Looks like it was already a PR: https://github.com/luggit/react-native-config/pull/385
Closing this one.


Add (re-)rendering container runtime config to flatcar upgrades

What type of PR is this?

/kind bug
What this PR does / why we need it:
This PR fixes a bug where it's only possible to render the containerd-config on control-plane nodes during the initial kubeone installation, but not re-render it during (forced) cluster upgrades using kubeone.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #1901
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Regenerate container runtime configurations based on kubeone.yaml during control-plane upgrades on Flatcar Linux nodes, not only on the initial installation.

/cherrypick release/v1.4


⚠ Status condition clean up

RFC: ClusterCatalog Status Conditions implementation.
Closes 363 Closes 364 Closes 365

Seems like we should also update here and here and update the demos.
If you prefer, we can do this as a follow-on issue, but we should generally strive to keep the demos up to date.

great work!
There are a few more mentions of the Unpacking condition we should probably clean up in the README.md, docs/fetching-catalog-contents.md, test/tools/imageregistry/pre-upgrade-setup.sh and hack/scripts/gzip-demo-script.sh and hack/scripts/demo-script.sh.
We'd want to at least update the pre-upgrade-setup script since that's part of upgrade testing, but it'd be good to keep everything else up to date

Thanks for pointing this out @ankitathomas ! I updated most of it, except for the pre-upgrade-setup.sh file. Correct me if I'm wrong, but this has to remain unchanged in this PR, since main (pre this commit) still has the Unpacking condition, which mean the script will expect that condition. There needs to be a follow up PR, that has to change this script.
Or did I get that wrong?  The pre-upgrade test is passing with this setting though....
Also, I'll look into the updating of the actual demo file after lunch, but for now I ran into this issue, not sure if @grokspawn can help
make demo-update
hack/scripts/generate-asciidemo.sh
hack/scripts/generate-asciidemo.sh: line 40: [: /var/folders/9p/q0l_ddk11jqd05vb098xk9f40000gn/T/d.mVVVtAWPPU: binary operator expected
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  5481  100  5481    0     0  17382      0 --:--:-- --:--:-- --:--:-- 17400
curl: (6) Could not resolve host: generate-asciidemo.DTJEN
chmod: generate-asciidemo.DTJEN/asciinema-rec_script: Not a directory
/var/folders/9p/q0l_ddk11jqd05vb098xk9f40000gn/T/d.mVVVtAWPPU: line 155: generate-asciidemo.DTJEN/asciinema-rec_script: Not a directory
asciinema: /Users/anbhatta/go/src/github.com/operator-framework/catalogd/hack/scripts/demo-script.sh already exists, aborting
asciinema: use --overwrite option if you want to overwrite existing recording
asciinema: use --append option if you want to append to existing recording
usage: asciinema [-h] [--version] {rec,play,cat,upload,auth} ...
asciinema: error: unrecognized arguments: generate-asciidemo.DTJEN/catalogd-demo.cast
hack/scripts/generate-asciidemo.sh: line 17: [: /var/folders/9p/q0l_ddk11jqd05vb098xk9f40000gn/T/d.mVVVtAWPPU: binary operator expected
make: *** [demo-update] Error 2

Everything looks good!

There needs to be a follow up PR, that has to change this script.

If we're ok with the test breaking before we're done with the API review work, it may be easier to have this change on your PR and cut a new release immediately after, but you're right - we can also update the upgrade-e2e script in a followup PR if we want to keep the test passing.

Correct me if I'm wrong, but this has to remain unchanged in this PR

IMO, we're making these changes in full awareness that we are breaking the API.  We have opted not to create an interim API version to avoid it, and in the past we've committed and tried to cut a new release of the component to get the test passing again.

/retest

/retest

@ankitathomas thoughts on squashing the commits? (we'll be coauthors of one giant commit 😃)

@ankitathomas fyi I removed the changes to the demo scripts and related stuff. The cognitive load required for review was probably getting a little heavier because of those changes, at least for me. We'll most definitely have more high quality reviews on the changes you want to make there if we put it up as a separate PR anyway.

@ankitathomas @joelanford @everettraven ready for review again.

codecov/project is complaining about a test not being included for the panic being introduced


List Flux events in CNCF Public Events calendar

I wanted to join a CNCF slack SIG Contributor Strategy meeting and just happened to notice that some projects use their lists.cncf.io group calendar, while others list on the CNCF Public Events calendar https://www.cncf.io/calendar/.
That SIG also has their events listed in their lists.cncf.io group calendar, but it's out of date. In the CNCF #sig-contributor-strategy channel I was told the CNCF Public Events calendar is the source of truth.
Because of that, and also for greater visibility to potential new contributors, perhaps we should request to list Flux events on the CNCF Public Events calendar as well.

AFAICS this is now done? https://www.cncf.io/calendar/

Yes ✅


added neuroML file links

Is this PR complete? I'd expect more channels to be added.

so as of now, there is just one, this PR is meant more like a system to add the neurML Files as and when they are generated and are available.


image scaling

I have the following page with the marking showing - obviously they don't match up. There seems to be some scaling going on but by how much?

@ggdhines has solved this for now with a transform, as it appears to be consistent, but this should be investigated


About Database

Hello! I have some questions. I need more data about whether a commit is about bug-fix or not.
So I download release 2.1 of the SmartSHARK MongoDB (small version) because you said this version extended more projects.
And I still used following code you offered on github to mine bug-fix:
tmp_hunks = [h for h in Hunk.objects(lines_manual__exists=True).only('id', 'lines_manual', 'file_action_id')]
But I found that many cases have the key "lines_manual" but its value is empty.
Can you tell me why? Should I download full version to get full datasets?
In fact, I tried used commit.labels.validated_bugfix to identify whether a commit is about bug-fix or not.
But I found that it's not accurate. Some commits without issue-id is about bug-fix but its  commit.labels.validated_bugfix is false.
So I guess that if commit.labels.validated_bugfix is true, it must a bug-fix commit.
But if commit.labels.validated_bugfix is false, we can't detemine whether it is about bug-fix or not.
I wish you can help me with these confusion.
Thank you so much.

That is some strange behavior of MongoDB (or our OR mapper) that I also observed sometimes. Basically, just checking if a field exists is not sufficient as query, you need to check if it exists and is not empty.
As for the bugfix question: The labeling is described in this paper. Basically, anything that is not tracked in Jira is not considered as a bug, as it was not reported as such. For example, "fix" is as keyword in itself insufficient, as there are often commits with such a message during the development of an unreleased or experimental feature as well. Thus, these are not yet (post-release) bugs, but rather incomplete implementations. This is usually avoided by considering tracked bugs only, as was already the case with the original SZZ implementation, which required that an issue in Bugzilla is referenced.


Localisation: folders structure and content of locale files

In src/locales, there should be created directories named as [lang] (e.g. enUs). In these directories, there would be *.mjs files with the following names:

saints.mjs

it would contain individual or collective names of saints and blesseds (including Jesus and Mary) both from GRC and particular calendars;
it would contain names of saints/blesseds from all calendars, current or historic;

celebrations.mjs

it would contain celebration names from all calendars, current or historic, even those that include life events like the Beheading of St John the Baptist;

titles.mjs

it would contain titles of saints/blesseds like virgin or pope, but also those like patron of Europe and historic ones (like widow);

canonisation.mjs

canonisation level of persons, i.e. saint or blessed;

companions.mjs

this contains companions only—in my opinion, it does not fit in any file listed above;
it is used in celebrations of saints/blesseds like Saint Paul Miki and Companions, Martyrs or Saint Ursula and Companions, Virgins and Martyrs;

seasons.mjs

season names;

ordinary.mjs

it would contain names of ferias and Sundays, of course without numbers;

numbers.mjs

it would contain ordinary and cardinal numbers;

ui.mjs

it would contain strings used in the user interface.

The reasons behind this behind this division are as follows:

separation of celebrations of multiple individual persons (#12);
it would be useful the localisation tool (#43);
to eliminate duplicity of words (e.g. titles.mjs or canonisation.mjs, keys etc;
to be able to localise everything, not just the calendar items (celebrations);
shorten the key names.

Here are some rules I would suggest to abide (they are a work in progress):

key is generated from name and surname only; all non-Latin chars and substituted and non-alfanumeric chars are omited; also all spaces are removed and the letter that followed a space is capitalised (to form lowerCamelCase); e.g. St Adalbert of Prague, Bishop and Martyr → adalbertOfPrague;
if an apostroph is used, use ’ instead of '; similarily use the double quotes, too;
use primarily English name of saints and celebrations found in the (latest) official English liturgical books; secondarily anglicised Latin ones from the (latest) Latin liturgical books; tertiarily anglicised names from native tongues;
if there should be any differences between celebration naming between different countries (like the UK and the US) or between Englishes (like enUs and enGb), enUs (or enGB?) will be standard English celebration name, other names would be in a form of a override in a separate file;
evangelist and apostle are titles, therefore there is no the like in St James the Apostle, rather St James, Apostle.

Just a sidenote: it would be nice to create a test if all keys (from saints.mjs and celebrations.mjs) are actually used.

We should add somewhere strings for liturgical years (keys year, a, b, c), ferial cycles (i, ii, cycle).

I think we can close this issue, because:

some of the stuff in here is already implemented:

seasons remain where they are, as they are;
ordinary, numbers and ui are left unimplemented;

some of the stuff still needs some attention, but they are moved into separate issues:

saints are implemented as sanctoral; there is a pending issue to rename it to sanctorale (see #242);
celebrations:

celebrations.ts will be merged into general.ts (see #210);
the fate of celebrations object in l10n files is still to be decided (IMHO they’ll be renamed and additional keys will be included; see #210);

titles are dealt in #232, #221, #222, and #201;
canonisation is dealt in #238.


MouthRight/Left Logic

(Unified Expressions) Debug menu lists MouthRight and MouthLeft, but corresponding animations have been changed to the split MouthUpper/LowerRight/Left.
Avatars that do not have this split will render unusable. Possibly leave it combined?

I am not sure what you are referring to because all the MouthLeft and MouthRight are not split

It seems to have been resolved in v6.3.3, but was present in the previous version.


Fix eswifi driver building

Fixed issue with eswifi driver building due to -fno-common.  Also removed some dead code in the driver.

Codecov Report

Merging #11988 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #11988   +/-   ##
=======================================
  Coverage   48.13%   48.13%
=======================================
  Files         281      281
  Lines       43425    43425
  Branches    10406    10406
=======================================
  Hits        20902    20902
  Misses      18368    18368
  Partials     4155     4155

Continue to review full report at Codecov.

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

yeah, commit message needs fixing.


fix: Prevent type name numbering like ".o1"

I prevented values like “.o1” from being appended if they have the same name, except when the typename is “__type”.
This keeps the ts.type objects internally distinct enough to use as keys, but I suspect they will be represented as one type when converted to openapi, etc.
However, there are cases where separate ts.Type objects are created for the same ts type, and i didn't prevent this, so this change may need further review.
And I didn't really get to see if the results were what I wanted in the nestia environment. Because I couldn't find a way to test it.
related with nestia/1016

@samchon
I completely agree with you.
But isn't the duplicated type that happens in this case different from the case you are talking about? Even if it is different, I think this is fundamentally a bug in TSC, but is there anything else we can try in typia? I'd like to think about this a bit more.

Just be tolerance about the duplicated name on  the OpenAPI document. No way.


fix:issues 678

Improve the annotation processor, so that the internal registration logic of the generated Index file is sorted by the fully qualified name of the class. issues 678

Thanks for this! As we're busy I can't promise that we will look at this anytime soon.
Note that a later issue about this has received more attention, so this fixes #715.

Thanks for this! As we're busy I can't promise that we will look at this anytime soon.
Note that a later issue about this has received more attention, so this fixes #715.

ok, thanks, It fits my needs.

Still want to do this, so re-opening.


[REST API Doc]Sink API refinement

This PR aims at refining the documentation of Sink REST API.
I've updated the documentation part as well as HTTP return code.

@jerrypeng Thanks for pointing out the right options for sink config.
I got the list from the CLI command: bin/pulsar-admin sinks, so you mean these configurations listed there are outdated as well? I will update my PR based on SinkConfig later, thanks.

@yjshen,

I got the list from the CLI command: bin/pulsar-admin sinks, so you mean these configurations listed there are outdated as well?

No, those are command line arguments to facilitate running running sinks from the CLI.  While many of the arguments have a direct counterpart in SinkConfig, the formatting among other things are different,

@jerrypeng Thanks for the explanation.

@jerrypeng PTAL, thanks.

rerun cpp tests


Update README.md

Added Posteo under Secure WebMail Providers
Ordered the names of the Secure WebMail Providers alphabetically

Please see this.

I read all the posts in this Reddit thread and cannot find a reason against Posteo that justifies closing the PR.
P.S.: I am in no way associated to Posteo.


correct netch url

#86 #85

<EMAIL_ADDRESS>uses zip instead of 7z as the archive format which can cause #86 #85.


RFE: dd in the docs

Request for Enhancement: please add dd to the "routine" docs
https://docs.perl6.org/routine/dd
404: Page Not Found
Search does not work either
$ p6 'my Real $x; $x = 3.1415; dd $x;'
Rat $x = 3.1415
And in the description, please state why dd thinks a Real is a Rat
Many thanks,
-T

The Real vs. Rat issue is something completely different, and it has to do with the dynamics of assignment. First,
say 3.1416.^name;# OUTPUT: «Rat␤»

Then, Real is just a Role, it's not a class or Type. While $x is not a Real, it still does Real:
my Real $x := 3.1415;
say $x ~~ Real; # OUTPUT: «True␤»

You can use Roles to declare variables, but their class is not going to be changed.

On 9/16/18 10:24 PM, Juan Julián Merelo Guervós wrote:

|dd| is not part of the language, but part of the implementation; that
is, it's Rakudo-specific, not Perl 6-specific. #2057
https://github.com/perl6/doc/issues/2057 specifically forbids from
using it in the documentation, and as a matter of fact, it's not part of
the test set (roast) either. All uses of |dd| were changed in #1680
https://github.com/perl6/doc/issues/1680 . S

Hi Juan,
I got dd from Timo on the chat line.  Timo is a genius lever
developer who is extremely gracious with helping us beginner
riff-raff.  How was I suppose to know he was using something
that wasn't real Perl?  It was Timo!
But that could be easily fixed by creating a special section
in the docs for Rakudo extensions.  Rakudo IS NOT going away.
If you were to do so, us riff-raff would easily find it with
the search function and know what was going on.  dd would
be a good place to start.
Would you please consider reopening?
Many thanks,
-T

Thanks for taking this in good stride. No, Rakudo is not going away. yes, @timotimo is great. Yep, you can use it however you want.
But.
This repo is for "Perl 6" documentation. Not for "This implementation which is immensely popular, and, to be sincere, the only one". When there's no other way out than describing something that is Rakudo specific (say, when it's used for implementing some feature and is also user-facing) we take extreme care to do so. In general, we would like Rakudo to implement their specific things, but they are not doing it: rakudo/rakudo#1941.
So see, this is not per se about dd. It's about documenting Rakudo specific features, which is totally not my turf. And even if it was, rules as I have pointed out are quite strict: don't. So I'm really sorry about this. If you want to reopen my issue in Rakudo, or open your own asking for documentation of Rakudo-specific routines and classes, I'll thumbs-up it, because that's something that is missing.

But dd is documented. Here: https://docs.perl6.org/programs/01-debugging#index-entry-dd
@ToddAndMargo what is there any reason why you were looking at https://docs.perl6.org/routine/dd ?

On 9/17/18 3:10 PM, Aleks-Daniel Jakimenko-Aleksejev wrote:

But |dd| is documented. Here:
https://docs.perl6.org/programs/01-debugging#index-entry-dd
@ToddAndMargo https://github.com/ToddAndMargo what is there any reason
why you were looking at https://docs.perl6.org/routine/dd ?

Because it is a routine.  Also because it did not show in the
search tool.  And until you become familiar with it, no
one will know it is a "debugging" function.
If it is documented elsewhere, I would be happy if you put a
remark to that in the routines:
Suggested working:
Dumper function
see https://docs.perl6.org/programs/01-debugging#index-entry-dd
That way it shows up in "routines" and is caught by the
search function.
And it keeps in mind that the reason folks are looking in the
documents is because they don't know what they are doing
and are trying to figure things out.  You should never
figure that folks already know what they are doing.

is there any reason why you were looking at https://docs.perl6.org/routine/dd ?

FWIW, I always look up types and routines by just going to /routine/ or /type/ URLs directly. The perl6.party website even has markup shortcut for linking to docs that works on that assumption...

On 9/19/18 5:37 PM, Zoffix Znet wrote:

is there any reason why you were looking at
https://docs.perl6.org/routine/dd ?

That is where I expect to find routines.  The search
tool is nice but sometimes can be overwhelming, especially
when the term searched for is also a common term, such as
"perl" or "contains". So, I just tack the routine name on
the end of
    https://docs.perl6.org/routine/

Works pretty well, except this time.
When I program, I have my code editor open, a run terminal,
a test "one liner" terminal, and the manual open, usually
with multiple tabs open.  I make the RTFM (now called
"just Google it") wish they had never coined the term.

So, given that 'dd' is searchable, I think that's fine. There's another ticket (long open but I still hope we get there: #1099) about adding a server side search feature, which would let you do a real search for dd (or subs, or methods) without having to assume the structure of the website.

On 9/21/18 11:02 AM, Will Coleda wrote:

So, given that 'dd' is searchable, I think that's fine. There's another
ticket (long open but I still hope we get there: #1099
https://github.com/perl6/doc/issues/1099) about adding a server side
search feature, which would let you do a real search for dd (or subs, or
methods) without having to assume the structure of the website.

Hi Will,
When I go to
https://docs.perl6.org/routine.html
and search, I get
https://docs.perl6.org/type/X::Syntax::Comment::Embedded
When I go to
https://docs.perl6.org/
and search, I get a big drop down, with a lot of things with "dd"
in it such as "add" an "additional", but no link to the "dd" routine.
My suggestion of putting a reference/link to where "dd" is actually
located in the "routines" section would solve this issue.
Please consider reopening.
-T

BTW, When I search for dd, there is a response that is just dd. It's under the "Reference" section.
There are other search related tickets for improving the results of the search process; forcing dd to sit in a certain URL path is a very specific way to fix this issue; Improving the search mechanism is a much more generic way that will, I think, have a bigger positive impact.

On 09/25/2018 09:30 AM, Will Coleda wrote:

BTW, When I search for dd, there is a response that is just dd. It's
under the "Reference" section.
There are other search related tickets for improving the results of the
search process; forcing dd to sit in a certain URL path is a very
specific way to fix this issue; Improving the search mechanism is a much
more generic way that will, I think, have a bigger positive impact.

Hi Will,
The big issue here is how to get all the different camps to
agree on a compromise.
From my viewpoint, it is a "routine", so it belongs in Routines.
Other's viewpoints is that is is a Rakudo Extension, so it
belongs somewhere else, such as debugging.
My viewpoint is that Rakudo is what everyone uses, so it should
be catered to.  If one does not want it is the "pure" Perl section,
create a "Rakudo Extensions" section.
Or, place a link to somewhere else in the regular routines section that
says it is a Rakudo extension and can be found .
Other's think that because, with some effort, you can find dd
eventually in the search functions, that nothing should be done.
Right now dd resides in an "obscure" section called "Programs":
https://docs.perl6.org/programs.html
What is the world does the "Programs" sections have to do
with a routine?
So how do we come up with a compromise that makes everyone happy and
that makes the routine easy to find?
Everyone remember the term RTFM (Read The Freakin' Manual). Those
seeking wisdom from the manuals have no idea what is and what is not
"pure" Perl.  The object is to make finding things in the manual
"intuitive".
-T


Observe if SonarCloud cache is being used

Cache should be fixed in #18 , however it needs more tests.

It seems so.


Unnecessary key compare in DBIter::Next

The entry could be skipped in DBIter::Next() method avoid comparing with itself every Next() operation.

Fixed in 9a56c49ed415df1b72ba1c84c8e7ed00de497f68


Impossible to generate the PCN of the preloaded Example 12

As reported in the title it is impossible to generate the PCN of the preloaded Example 12.
The error in the console is an object with the following message property: "fields with a merge policy with specials should always be objects"

Problem correctly fixed. Tank you!


Tiktok direct video uploader functionality

Ideally detecting when a tiktok URL is sent, but could also work as a slash command directly
Possible solutions
Method 1: Downloads a video from tiktok, posts it to discord, and then deletes it from local storage.
Method 2: Grabs a direct-link to the video and posts that.
Properly managing storage space is a MUST!!!

@IAmBitfrost Is this something we still want to do anymore?


Open F3 hud button, at least with BetterF3 mod, overrides inventory slot select controls with D-pad buttons

Describe the bug
I've set my open F3 hud button to my D-pad down button and it overrides my inventory slot select down button when the inventory is open even though the default button for D-pad down when in the inventory is still set in the controller keybind options. It just causes the F3 hud to toggle while the inventory is still open. Might be a BetterF3 mod exclusive issue.
To Reproduce
Steps to reproduce the behavior:

Just do as described above

Expected behavior
The F3 hud should not toggle while the inventory is still open during the conditions described above.
Screenshots
None.
Desktop (please complete the following information):

OS: Windows 10
Minecraft 1.19.2
Fabric 1.14.10
Mods Sodium 0.4.4, Lithium 0.10.2, Starlight 1.1.1, Iris 1.4.0, Mod Menu 4.1.0, BetterF3 4.0.0, No Chat Reports 1.13.12
Version MidnightControls 1.7.1, MidnightLib 1.0.0
Branch CurseForge Release

Additional context
None.

Have you tried changing the "Open Debug Hud" button binding?

Have you tried changing the "Open Debug Hud" button binding?

that's not the point of the bug report, the debug hud should not open when the inventory is open


0.6.1 prevents dashboard access

After upgrading to the Rider Aspire Plugin 0.6.1, I'm unable to access the Aspire dashboard when launching via Rider using the Aspire Plugin configurations for either AppHost http or AppHost https.
I'm now encountering an "Enter token to login" dashboard screen I've never seen before, and, critically, when I look in the console logs I no longer see the console message that used to be there, telling me the login token url (which I'd previously not needed to use).
This change happened when I upgraded my plugin version.
The dashboard works as expected when launching the AppHost via dotnet run or in Rider using the non-Asipire-Plugin AppHost http launch config.

What do you have in the console log view? This is not part of the plugin, the Aspire Host project should write this log to the console with the correct link after startup.

Could you also check what is in the .idea\.idea.{Your solution name}\.idea\workspace.xml file. There should be a RunManager section there with a similar configuration (sometimes it can be corrupted due to changes in aspire).
<configuration name="AspireApp.AppHost" type="AspireHostConfiguration" factoryName="Aspire Host" activateToolWindowBeforeRun="false">
  <option name="PROJECT_FILE_PATH" value="$PROJECT_DIR$/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj" />
  <option name="LAUNCH_PROFILE_NAME" value="http" />
  <option name="TRACK_ENVS" value="1" />
  <envs>
    <env name="DOTNET_ENVIRONMENT" value="Development" />
    <env name="ASPNETCORE_ENVIRONMENT" value="Development" />
    <env name="DOTNET_DASHBOARD_OTLP_ENDPOINT_URL" value="http://localhost:19253" />
    <env name="DOTNET_RESOURCE_SERVICE_ENDPOINT_URL" value="http://localhost:20176" />
    <env name="ASPNETCORE_URLS" value="http://localhost:15064" />
    <env name="DOTNET_LAUNCH_PROFILE" value="http" />
  </envs>
  <option name="TRACK_URL" value="1" />
  <browser url="http://localhost:15064/login?t=947c36ef-9b11-4db1-a2ce-036503d686c8" start="true" />
  <method v="2">
    <option name="Build Solution" enabled="true" />
  </method>
</configuration>

I believe this was cause by a mismatch of preview aspire versions 5 & 6, and dotnet aspire workload versions. After cleaning that version mess up the plugin seems to be working as expected. That's for checking on this.


fix(curriculum): description improvement case converter program

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Also Closes: #54232

The changes are good to go from my end. 🎉

If this is ready, you can take it out of draft mode @larymak. There should be a button below that says "ready for review" you can click.

I think some important changes are required to clarify how to work with list comprehensions:

step 17
I'd leave the snake_cased_char_list list empty for this step. Let's add the
return ''.join(snake_cased_char_list).strip('_') here to add interactivity, so the campers can actually see what happens.
step 18
snake_cased_char_list  becomes
 ['_' + char.lower()  for char in pascal_or_camel_cased_string]
step 19
snake_cased_char_list = ['_' + char.lower()  for char in pascal_or_camel_cased_string if char.isupper()]
step 20
snake_cased_char_list = [ '_' + char.lower() if char.isupper() else char for char in pascal_or_camel_cased_string ]

In this way:

we add a bit of interactivity
we write comprehensions that work in each step
we teach the difference between having an if and an if/else (which is quite annoying)

Need more clarity on this

Need more clarity on this

We should change the following step:

step 17
Ask the camper to add return ''.join(snake_cased_char_list).strip('_') so in the following steps we can see something that is not None printed on the screen.

seed code
def convert_to_snake_case(pascal_or_camel_cased_string):
    # snake_cased_char_list = []
    # for char in pascal_or_camel_cased_string:
    #     if char.isupper():
    #       converted_character = '_' + char.lower()
    #       snake_cased_char_list.append(converted_character)
    #     else:
    #         snake_cased_char_list.append(char)
    # snake_cased_string = ''.join(snake_cased_char_list)
    # clean_snake_cased_string = snake_cased_string.strip('_')

    # return clean_snake_cased_string

    snake_cased_char_list = [ ]
--fcc-editable-region--

--fcc-editable-region--
def main():
    print(convert_to_snake_case('aLongAndComplexString'))

if __name__ == '__main__':
    main()

step 18
Go back to the snake_cased_char_list list. Teach how a basic list comprehension works and ask the campers to turn the empty list into ['_' + char.lower()  for char in pascal_or_camel_cased_string].

seed code
def convert_to_snake_case(pascal_or_camel_cased_string):
    # snake_cased_char_list = []
    # for char in pascal_or_camel_cased_string:
    #     if char.isupper():
    #       converted_character = '_' + char.lower()
    #       snake_cased_char_list.append(converted_character)
    #     else:
    #         snake_cased_char_list.append(char)
    # snake_cased_string = ''.join(snake_cased_char_list)
    # clean_snake_cased_string = snake_cased_string.strip('_')

    # return clean_snake_cased_string
--fcc-editable-region--
    snake_cased_char_list = [ ]
--fcc-editable-region--
    return ''.join(snake_cased_char_list).strip('_')

def main():
    print(convert_to_snake_case('aLongAndComplexString'))

if __name__ == '__main__':
    main()

step 19
Now the output is wrong because we are doing the same thing for every character. Teach how to add an if to the comprehension and ask the camper do it. At the end of this step we should have
snake_cased_char_list = ['_' + char.lower()  for char in pascal_or_camel_cased_string if char.isupper()]

seed code
def convert_to_snake_case(pascal_or_camel_cased_string):
    # snake_cased_char_list = []
    # for char in pascal_or_camel_cased_string:
    #     if char.isupper():
    #       converted_character = '_' + char.lower()
    #       snake_cased_char_list.append(converted_character)
    #     else:
    #         snake_cased_char_list.append(char)
    # snake_cased_string = ''.join(snake_cased_char_list)
    # clean_snake_cased_string = snake_cased_string.strip('_')

    # return clean_snake_cased_string
--fcc-editable-region--
    snake_cased_char_list = ['_' + char.lower()  for char in pascal_or_camel_cased_string]
--fcc-editable-region--
    return ''.join(snake_cased_char_list).strip('_')

def main():
    print(convert_to_snake_case('aLongAndComplexString'))

if __name__ == '__main__':
    main()

step 20
The output is still wrong because now the comprehension is doing something only with uppercase characters. Teach how to write if/else inside the comprehension. At the end of this step we should have
snake_cased_char_list = [ '_' + char.lower() if char.isupper() else char for char in pascal_or_camel_cased_string ]

seed code
def convert_to_snake_case(pascal_or_camel_cased_string):
    # snake_cased_char_list = []
    # for char in pascal_or_camel_cased_string:
    #     if char.isupper():
    #       converted_character = '_' + char.lower()
    #       snake_cased_char_list.append(converted_character)
    #     else:
    #         snake_cased_char_list.append(char)
    # snake_cased_string = ''.join(snake_cased_char_list)
    # clean_snake_cased_string = snake_cased_string.strip('_')

    # return clean_snake_cased_string
--fcc-editable-region--
    snake_cased_char_list = ['_' + char.lower()  for char in pascal_or_camel_cased_string if char.isupper()]
--fcc-editable-region--
    return ''.join(snake_cased_char_list).strip('_')

def main():
    print(convert_to_snake_case('aLongAndComplexString'))

if __name__ == '__main__':
    main()

step 21 and 22 remain the same

Need more clarity on this

We should change the following step:

step 17
Ask the camper to add return ''.join(snake_cased_char_list).strip('_') so in the following steps we can see something that is not None printed on the screen.

seed code
def convert_to_snake_case(pascal_or_camel_cased_string):
    # snake_cased_char_list = []
    # for char in pascal_or_camel_cased_string:
    #     if char.isupper():
    #       converted_character = '_' + char.lower()
    #       snake_cased_char_list.append(converted_character)
    #     else:
    #         snake_cased_char_list.append(char)
    # snake_cased_string = ''.join(snake_cased_char_list)
    # clean_snake_cased_string = snake_cased_string.strip('_')

    # return clean_snake_cased_string

    snake_cased_char_list = [ ]
--fcc-editable-region--

--fcc-editable-region--
def main():
    print(convert_to_snake_case('aLongAndComplexString'))

if __name__ == '__main__':
    main()

step 18
Go back to the snake_cased_char_list list. Teach how a basic list comprehension works and ask the campers to turn the empty list into ['_' + char.lower()  for char in pascal_or_camel_cased_string].

seed code
def convert_to_snake_case(pascal_or_camel_cased_string):
    # snake_cased_char_list = []
    # for char in pascal_or_camel_cased_string:
    #     if char.isupper():
    #       converted_character = '_' + char.lower()
    #       snake_cased_char_list.append(converted_character)
    #     else:
    #         snake_cased_char_list.append(char)
    # snake_cased_string = ''.join(snake_cased_char_list)
    # clean_snake_cased_string = snake_cased_string.strip('_')

    # return clean_snake_cased_string
--fcc-editable-region--
    snake_cased_char_list = [ ]
--fcc-editable-region--
    return ''.join(snake_cased_char_list).strip('_')

def main():
    print(convert_to_snake_case('aLongAndComplexString'))

if __name__ == '__main__':
    main()

step 19
Now the output is wrong because we are doing the same thing for every character. Teach how to add an if to the comprehension and ask the camper do it. At the end of this step we should have
snake_cased_char_list = ['_' + char.lower()  for char in pascal_or_camel_cased_string if char.isupper()]

seed code
def convert_to_snake_case(pascal_or_camel_cased_string):
    # snake_cased_char_list = []
    # for char in pascal_or_camel_cased_string:
    #     if char.isupper():
    #       converted_character = '_' + char.lower()
    #       snake_cased_char_list.append(converted_character)
    #     else:
    #         snake_cased_char_list.append(char)
    # snake_cased_string = ''.join(snake_cased_char_list)
    # clean_snake_cased_string = snake_cased_string.strip('_')

    # return clean_snake_cased_string
--fcc-editable-region--
    snake_cased_char_list = ['_' + char.lower()  for char in pascal_or_camel_cased_string]
--fcc-editable-region--
    return ''.join(snake_cased_char_list).strip('_')

def main():
    print(convert_to_snake_case('aLongAndComplexString'))

if __name__ == '__main__':
    main()

step 20
The output is still wrong because now the comprehension is doing something only with uppercase characters. Teach how to write if/else inside the comprehension. At the end of this step we should have
snake_cased_char_list = [ '_' + char.lower() if char.isupper() else char for char in pascal_or_camel_cased_string ]

seed code
def convert_to_snake_case(pascal_or_camel_cased_string):
    # snake_cased_char_list = []
    # for char in pascal_or_camel_cased_string:
    #     if char.isupper():
    #       converted_character = '_' + char.lower()
    #       snake_cased_char_list.append(converted_character)
    #     else:
    #         snake_cased_char_list.append(char)
    # snake_cased_string = ''.join(snake_cased_char_list)
    # clean_snake_cased_string = snake_cased_string.strip('_')

    # return clean_snake_cased_string
--fcc-editable-region--
    snake_cased_char_list = ['_' + char.lower()  for char in pascal_or_camel_cased_string if char.isupper()]
--fcc-editable-region--
    return ''.join(snake_cased_char_list).strip('_')

def main():
    print(convert_to_snake_case('aLongAndComplexString'))

if __name__ == '__main__':
    main()

step 21 and 22 remain the same

Changes incorporated, share feedback

index.md file needs to be fleshed out, see https://github.com/freeCodeCamp/freeCodeCamp/issues/43289#issuecomment-2135587871

index.md file needs to be fleshed out, see #43289 (comment)

Can we do that in a separate PR?

Except the two comments I left, everything else is fine.

The test in step 13 is still broken:

@larymak what is blocking you?

Except the two comments I left, everything else is fine.

The test in step 13 is still broken:

Okay yes, just now went through the steps and the test on 13 is broken.

@larymak what is blocking you?

Had not pushed the changes, but now everything should work fine

Except the two comments I left, everything else is fine.

The test in step 13 is still broken:

Solved

Once @Dario-DC also approves, here it needs the i18n-sync script to remove those errors from the italian and portuguese builds


raftstore: check state after resuming apply fsm

Signed-off-by: Liqi Geng<EMAIL_ADDRESS>What problem does this PR solve?
Problem Summary:
What is changed and how it works?
In https://github.com/tikv/tikv/pull/6487, we introduce a new case to interrupt the execution of apply fsm except merging. Applying log after resuming may encounter another yield or commit merge, but we can't release this apply fsm if it is interrupted due to yield. (The source region will send a message to the target region if it has applied all needed logs so we can safely release the target region's apply fsm.)
If we release apply fsm incorrectly and this region A should be merged another region B, region A and B may be stuck forever because no new message will be sent to A and B still wait for A to apply all needed logs.
Related changes

Need to cherry-pick to the release branch
Need to cherry-pick to release 3.0, 3.1, 4.0 and 3.0.5.hotfix

Check List
Tests

Integration test

Side effects
No.
Release note
Fix an issue that a region may be stuck during multi-times merging

The test fails occasionally on my local machine
thread 'raftstore::test_merge::test_merge_cascade_merge_isolated' panicked at 'region id: 1000 end_key: 6B32 region_epoch { conf_ver: 1 version: 2 } peers { id: 1001 store_id: 1 } peers { id: 1002 store_id: 2
} peers { id: 1003 store_id: 3 } is still not merged.', components/test_raftstore/src/pd.rs:904:21

The test fails occasionally on my local machine
thread 'raftstore::test_merge::test_merge_cascade_merge_isolated' panicked at 'region id: 1000 end_key: 6B32 region_epoch { conf_ver: 1 version: 2 } peers { id: 1001 store_id: 1 } peers { id: 1002 store_id: 2
} peers { id: 1003 store_id: 3 } is still not merged.', components/test_raftstore/src/pd.rs:904:21

Because there may be some leader on store 3 which will be isolated soon. I add some transfer leader to make test stable.

/run-all-tests

/run-all-tests

/merge

May need to pick to 3.0.5-hotfix /cc @AndreMouche


Angular HTTP interceptor executed for embedded ng-templates

see here:
https://stackoverflow.com/questions/16747705/angular-http-interceptor-executed-for-embedded-ng-templates

any update on this?

As a workaround, I'm currently checking the cache before doing anything:
...
.factory('myIntelligentInterceptor', function($log, $templateCache) {
		return {
			request : function(config) {
				config.alreadyCached = $templateCache.get(config.url);
				if (!config.alreadyCached) {
					// do intercept-things with request
				}
				return config;
			},
			response : function(response) {
				if (!response.config.alreadyCached) {
					// do intercept-things with response
				}
				return response;
			}
		};
	});
})();

I believe that not running interceptors for (cached) templates, would be too much of a breaking change (not to mention there are valid cases where you might want to indeed intercept the template requests).
That said, now we are using $templateRequest (which is a wrapper around $http) for all template requests (duh) and since v1.5.0-beta.2 there is $templateRequestProvider.httpOptions(), which can be used to (among other things) set a special flag on your configs. Then you can easily check the flag from your interceptors and skip interception (if you interceptor does not apply to template requests).
This is similar to checking the $templateCache, but avoids the overhead.
E.g.:
// During config phase
.config(function ($templateRequestProvider) {
  $templateRequestProvider.httpOptions({_isTemplate: true};
})

// In the interceptor
.factory('myInterceptor', function () {
  return {
    ...
    request: function (config) {
      if (config._isTemplate) return config;

      /* Do intercept */
    }
  };
})

Demo pen
--
A viable "built-in" solution (that wouldn't break existing apps), would be to have $templateRequest add a special flag (pretty much as shown in the example above) and (somehow) allow interceptors to specify an ignoreTemplateRequests option. Then $http could check the flag added by $templateRequest and not pass the template request/response/error through interceptors with ignoreTemplateRequest: true.
Considering all the above, I don't think this is a high priority, but if anyone want's to take a shot at a PR, they're more than welcome :smiley:

I agree that changing this would be a BC and that there's an adequate workaround

sfsfgdgdfgdfg


Update bootstrap theme

What is proposed?
Update bootstrap to the latest version
TL;DR:
Present bootstrap code has breaking changes.

The present bootstrap code is 3.3.0. Latest bootstrap version is 5.x.
There are breaking changes from 3 to 4, and 4 to 5 .


renaming more redis -> valkey entries

most redis.io doc pages have a valkey.io equivalent
there is no valkey:// protocol
I think we need to make a statement about if/how this will track ioredis

e.g. should redis.ts files be renamed valkey.ts? doing so would make it hard to copy upstream changes

Can you sign the dco?


Decelerating

If the collectionView is decelerating and you scroll the base tableView (e.g down), different rows are decelerating as well (same with your example)

Good catch, there was a similar issue reported on the Swift version of this repository, it has a corresponding fix. Let me know if I can clarify anything!

This seems to be working.

Awesome! Could I persuade you to open a pull request to fix the code in this repository?

Yes, I also fixed the wrong indexedCollectionView implementation
#16


Is it possible to set the buttons to be side by side?

I'd like the buttons to be side by side, instead of on top of each other, because my project is for iPad only and I think buttons which are one on top of another are easier to miss click. Thanks guys!

@viniciusvieir did you ever found an answer for this?

@hpbl unfortunately no answer so far


[Feature] Add hover color

Description
Add hover color to the footer section
Screenshots

Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[X] I am a GSSoC'24 contributor.
[X] I want to work on this issue.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

I would like to work on this issue.


Using storage does not register files for build process

Environment
Node: LTS
Nitro: 0.5.1
Reproduction

Clone https://github.com/manniL/nitro-485
Run pnpm i --shamefully-hoist
Run pnpm dev
See {  "data": "This is a test file" }
Run pnpm build
Run node .output/server/index.mjs
See same result (still)
Run pnpm build:vercel and see that there is no test.mjs generated
Alternative: deploy to Vercel, see { "data": null }
Comment in the serverAssets part in nitro.config.ts
Run pnpm build:vercel and see that there is a test.mjs now
Alternative: deploy to Vercel, see correct result

Describe the bug
When using storage in the nitro.config.ts, the corresponding files are not registered to be processed when building for platforms like e.g. vercel. That means, using them via useStorage creates a different result between dev (and normal server preset) vs. Vercel preset (or any other platform I suppose).
Additional context
Is that behavior intended?
Logs
No response

Same issue here deploying to Netlify.

Same issue here.

Operating System: Windows_NT
Node Version:     v21.6.1
Nuxt Version:     3.11.2
CLI Version:      3.11.1
Nitro Version:    2.9.6
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      modules, i18n, routeRules, experimental, colorMode, googleFonts, runtimeConfig, nitro, ogImage, app, pinia, typescript, site, devtools, eslintConfig, content, tailwindcss
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -

serverAssets is probably the right way to bundle assets for universal production.
While we can try to improve mounts to handle relative paths better, it is not always predictable about deployment target fs support or relative path handling...


Option to set a keybind to nil

I don't really want a keybind to clear the console. Can there be an option to set this to nil?

I have actually removed this keybind in the coming release.  I will also add an option of clearing keybinds, as you ask.
I will push the release later this week.


[New Workflow Submission] 'TTS Converter' workflow

Issue #, if available: #28
Description of changes:
Add new workflow 'TTS Converter'.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thanks for the pull request @ottl-seo , just looking now


Issue running headless

I updated the version of the package (npm update) and it appears also updated the dependencies
The error "TypeError: page._client.send is not a function" was happening when running it with headless :  true
When running it with headless : false this error is not occurring
Probably related to this issue
https://github.com/berstend/puppeteer-extra/issues/651
I added this to my package.json with forces a lower version of puppeteer, which fixes this issue (for now),
"overrides": {
  "puppeteer": "14.3.0"
},

This Should be fixed in latest version, please open a new issue if the issue still persists


Can't install python3.8

Issues and Contributing
Please note that only issues related to this Docker image will be addressed here.

If you have Docker related issues, please ask in the Docker user mailing list.
If you have Jenkins related issues, please ask in the Jenkins mailing lists.
If you are not sure, then this is probably not the place to create an issue and you should use any of the previously mentioned mailing lists.

If after going through the previous checklist you still think you should create an issue here please provide:
Docker commands that you execute
Actual result
Expected outcome
Have you tried a non-dockerized Jenkins and get the expected outcome?
Output of docker version
Other relevant information

Here is a fork of this repo, where the main Dockerfile uses the image ubuntu focal-fossa that already has python3
https://github.com/parrotrueper/docker

You are welcome to create a PR for a focal based image, but it is not currently on our roadmap to implement support for it ourselves.


Logging loading  filesystems failures.

Please add a meaningful description for your change here
fixes #31218
This PR contains these changes;

Added a new error handling for ModuleNotFoundError

no logging

Changed the error handling for ImportError

logging warn log with the exception to identify any issues around import.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

@Abacn had some suggestions about the proposal, so passing to @Abacn for review. Re formatter & lint errors: see: s.apache.org/beam-python-dev-wiki for pointers on linters and yapf. You can find information about error logs by clicking "Details".


added pause/set video to position 0 ON new file

TODO: Add support for this setting in the GUI Config.

Also this behaviour is not necessarily wanted in all user cases so I'd be very reluctant to accept it as it is.
Examples:

User opened wrong episode, currently he can switch seamlessly
User prepares next file while others are finishing old one
User joins a room that already has file playing without resetting the state

Also why would you toggle someone's ready state after a file change? This is wrong.
Also "Shared Playlists" are solving most issues with switching files / rewinding too.

1 and 3 can be fixed with an option in the GUI to enable/disable.
The ready status was idea from the if user disconnect->pause, but in the case of file switch by accident but would need to be optional per situation to work.

Resetting the position to 0 when you hold shift while dragging in already exists in experimental form as per http://syncplay.pl/guide/client/ 'Main Window' -> 'Drag in file') and https://github.com/Syncplay/syncplay/issues/57 - I think if you want this feature it would be best to improve that functionality rather than add something that changes default Syncplay behaviour for dragging in a file (as this might result in inadvertent resets which is annoying).

In addition to this mostly already being a featute, it is also now made somewhat moot by the new shared playlist feature introduced in Syncplay 1.4.0.


Fix java-version-checker source/target compatibility settings

Signed-off-by: Andriy Redko<EMAIL_ADDRESS>Description
Fixing java-version-checker build
Issues Resolved
Fixes https://github.com/opensearch-project/OpenSearch/pull/2352
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dblock please


Issue Opening huge images in Android

Platform
What platform is your issue or question related to? (Delete other platforms).

Android

Author or host
Host
Version of SDK
android v 1.0
Issue
I am having trouble rendering huge/big size images on the adaptive cards. It throws an OutOfMemoryError while decoding thee byte array for the bitmap. The image in question is https://res.cloudinary.com/zerocater/image/upload/v1439520196/zhdam4pyoauurj6uomzn.jpg
I agree that the image in question is a very big image, but I am looking for a solution where I can override SDK methods to downsize the image, so that it fits.
I have tried using Loading Large Bitmaps but in vain.
I hope this is an issue, you guys can help me fix.

@khouzam can we harden our Android renderer to handle large image sizes? Seems like a risk that an author could send a huge image and eat up all of the host app's memory.

As a potential solution, you can use our resource resolver model for you to intercept the bitmap call and provide back a reduced image avoiding the OutOfMemory exception.
@andrewleader, that's an interesting idea, I'm not sure though what limits should be enforced. Perhaps simply catching the out of memory exception and failing the card, so that the app doesn't get terminated.

@khouzam Thank You for your tip, but I was not able to locate any resource resolver model in the adaptive cards sdk. I have tried overriding OnlineImageLoader and registered my own ImageLoader, if that is what you mean by a resource resolver, but that has not helped me yet.

Yes, the OnlineImageLoader is the way to handle this case. When you get invoked with the call to loadImageOnline, you should do the resize and return the scaled down bitmap. Is this not working?

Sorry @desaibijon, 'm not sure that I understand the comment: the scaled down image is too small for the max scale factor I can pass through.
How are you scaling the image and to what resolution? You should have control over those parameters and find an adequate size for the card.

I am sorry if I was not clear with my comment. Thank You for your tip, I will look into my methods of resizing the image. For now, I am using BitmapFactory.options and Loading Large Images using Bitmap as my guide.

We'll need to think about perhaps being smarter in the platform about this situation.


chore: release main

:robot: I have created a release beep boop
dev-dependencies-common: 3.2.9
3.2.9 (2024-04-20)
Bug Fixes

refined biome rules + extend via node_modules (#288) (4e2f5fb)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/aversini/dev-dependencies/releases/tag/dev-dependencies-common-v3.2.9 :sunflower:


Flaky test OOM: test_optimizers:test_sgd

tests/ci_build/ci_build.sh gpu_mklml PYTHONPATH=./python/ nosetests-3.4 --with-timer --verbose tests/python/gpu
test_operator_gpu.test_sgd ... terminate called after throwing an instance of 'dmlc::Error'
  what():  [01:21:52] src/engine/./threaded_engine.h:359: [01:21:52] src/storage/./pooled_storage_manager.h:107: cudaMalloc failed: out of memory

Stack trace returned 10 entries:
[bt] (0) /workspace/python/mxnet/../../lib/libmxnet.so(_ZN4dmlc10StackTraceB5cxx11Ev+0x5b) [0x7f3adc78f7cb]
[bt] (1) /workspace/python/mxnet/../../lib/libmxnet.so(_ZN4dmlc15LogMessageFatalD1Ev+0x28) [0x7f3adc790218]
[bt] (2) /workspace/python/mxnet/../../lib/libmxnet.so(_ZN5mxnet7storage23GPUPooledStorageManager5AllocEPNS_7Storage6HandleE+0x16d) [0x7f3adf0eb82d]
[bt] (3) /workspace/python/mxnet/../../lib/libmxnet.so(_ZN5mxnet11StorageImpl5AllocEPNS_7Storage6HandleE+0x5d) [0x7f3adf0ef78d]
[bt] (4) /workspace/python/mxnet/../../lib/libmxnet.so(_ZNK5mxnet7NDArray13CheckAndAllocEv+0x122) [0x7f3adca7c9a2]
[bt] (5) /workspace/python/mxnet/../../lib/libmxnet.so(_ZN5mxnet6common22SetupDefaultBlobsInOutERKSt6vectorINS_7NDArrayESaIS2_EES6_PS1_INS_5TBlobESaIS7_EESA_PS4_SB_SB_SB_PSt13unordered_mapIjjSt4hashIjESt8equal_toIjESaISt4pairIKjjEEERKS1_IjSaIjEE+0x1cf8) [0x7f3adecbe2b8]
[bt] (6) /workspace/python/mxnet/../../lib/libmxnet.so(_ZZN5mxnet10imperative12PushFComputeERKSt8functionIFvRKN4nnvm9NodeAttrsERKNS_9OpContextERKSt6vectorINS_5TBlobESaISA_EERKS9_INS_9OpReqTypeESaISF_EESE_EEPKNS2_2OpES5_RKNS_7ContextERKS9_IPNS_6engine3VarESaISW_EES10_RKS9_INS_8ResourceESaIS11_EERKS9_IPNS_7NDArrayESaIS17_EES1B_RKS9_IjSaIjEESJ_ENKUlNS_10RunContextEE_clES1G_+0x1be) [0x7f3adecbf3ae]
[bt] (7) /workspace/python/mxnet/../../lib/libmxnet.so(+0x31d2e2b) [0x7f3adf0d1e2b]
[bt] (8) /workspace/python/mxnet/../../lib/libmxnet.so(_ZN5mxnet6engine14ThreadedEngine15ExecuteOprBlockENS_10RunContextEPNS0_8OprBlockE+0x100) [0x7f3adf0de4d0]
[bt] (9) /workspace/python/mxnet/../../lib/libmxnet.so(_ZN5mxnet6engine23ThreadedEnginePerDevice9GPUWorkerILN4dmlc19ConcurrentQueueTypeE0EEEvNS_7ContextEbPNS1_17ThreadWorkerBlockIXT_EEESt10shared_ptrINS0_10ThreadPool11SimpleEventEE+0x10b) [0x7f3adf0e6a4b]

A fatal error occurred in asynchronous engine operation. If you do not know what caused this error, you can try set environment variable MXNET_ENGINE_TYPE to NaiveEngine and run with debugger (i.e. gdb). This will force all operations to be synchronous and backtrace will give you the series of calls that lead to this error. Remember to set MXNET_ENGINE_TYPE back to empty after debugging.

Stack trace returned 9 entries:
[bt] (0) /workspace/python/mxnet/../../lib/libmxnet.so(_ZN4dmlc10StackTraceB5cxx11Ev+0x5b) [0x7f3adc78f7cb]
[bt] (1) /workspace/python/mxnet/../../lib/libmxnet.so(_ZN4dmlc15LogMessageFatalD1Ev+0x28) [0x7f3adc790218]
[bt] (2) /workspace/python/mxnet/../../lib/libmxnet.so(_ZN5mxnet6engine14ThreadedEngine15ExecuteOprBlockENS_10RunContextEPNS0_8OprBlockE+0x39a) [0x7f3adf0de76a]
[bt] (3) /workspace/python/mxnet/../../lib/libmxnet.so(_ZN5mxnet6engine23ThreadedEnginePerDevice9GPUWorkerILN4dmlc19ConcurrentQueueTypeE0EEEvNS_7ContextEbPNS1_17ThreadWorkerBlockIXT_EEESt10shared_ptrINS0_10ThreadPool11SimpleEventEE+0x10b) [0x7f3adf0e6a4b]
[bt] (4) /workspace/python/mxnet/../../lib/libmxnet.so(_ZNSt17_Function_handlerIFvSt10shared_ptrIN5mxnet6engine10ThreadPool11SimpleEventEEEZZNS2_23ThreadedEnginePerDevice13PushToExecuteEPNS2_8OprBlockEbENKUlvE1_clEvEUlS5_E_E9_M_invokeERKSt9_Any_dataOS5_+0x63) [0x7f3adf0e6c63]
[bt] (5) /workspace/python/mxnet/../../lib/libmxnet.so(_ZNSt6thread5_ImplISt12_Bind_simpleIFSt8functionIFvSt10shared_ptrIN5mxnet6engine10ThreadPool11SimpleEventEEEES8_EEE6_M_runEv+0x4a) [0x7f3adf0e0bca]
[bt] (6) /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb8c80) [0x7f3af740ac80]
[bt] (7) /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f3afed1c6ba]
[bt] (8) /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f3afea523dd]

tests/ci_build/with_the_same_user: line 30: 80003 Aborted                 (core dumped) sudo -u "#${CI_BUILD_UID}" --preserve-env "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}" "HOME=${CI_BUILD_HOME}" ${COMMAND[@]}
script returned exit code 134

We've got 8Gb of CUDA-memory. Considering MXNet should also run on Edge devices, we should definitely reduce the memory usage.

@marcoabreu Are you sure you are not running multiple tests in parallel on the same machine that combined use that much memory? There is no way this test uses that much memory on its own...

@ptrendx On GPU-instances we are only having 1 executor, meaning that nosetests-3.4 is only triggered once and running in sequential mode. All parallelisation happening is from the test themselves or MXNets underlying core. We are not performing any parallelisation on GPU tasks from our side.

Is this fixed? Looks like the test is not enabled yet

New command: ci/build.py --into-container --nvidiadocker --platform ubuntu_gpu --shm-size 500m
Retrieved from http://jenkins.mxnet-ci.amazon-ml.com/blue/organizations/jenkins/incubator-mxnet/detail/master/1037/pipeline/738
Please note that

@eric-haibin-lin  Can you close this issue. I see you had removed the "skip test" in PR: https://github.com/apache/incubator-mxnet/pull/10664


the RateLimiter in Pool.  ratelimit.New(3*opt.getPoolSize(), time.Second)?

I have a high concurrent application.
May query redis-cluster 30,000 times per second.
How to set the poolSize?
Also, why set ratelimit 3 times of opt.getPoolSize()?
line 140 of file pool.go.
rl:        ratelimit.New(3*opt.getPoolSize(), time.Second),

There is PoolSize option in https://godoc.org/gopkg.in/redis.v3#ClusterOptions. Note that by default pool size is 10 connections to each server in the cluster. So if you have 10 servers in the cluster go-redis will open 10*10=100 connections. That should be enough in most cases.

Also, why set ratelimit 3 times of opt.getPoolSize()?

TLDR - it should not affect you as long as Redis Server/network is healthy.
When your app is healthy go-redis reuses open connections and everything is good. But when Redis Server is down your app starts to open/close connections with very high rate (30,000 times per second in your case). Very soon it will use all available connections in the system, which can affect other applications (such as database connections) if you don't configure your system limits right. To prevent this go-redis limits number of new connections you can open. By default it allows to open 30 new connections per second.


Fixes #239 compilation error

r? @dirvine
(maidsafe_highfive has picked a reviewer for you, use r? to override)

duplicate pr


OptAuto

Will optauto be fixed or discharded?

By the new reduction index feature, see issue #21 , it will be possible to compute optimal auto settings much more flexibly than before, and use this information to compute relative time to best, etc.
However, it is not possible to use such a column also in the aggregated table. The reason is that through the custom reduction index of a column, the reduced value may occur multiple times in the long table, and will be aggregated as such.
A way to enable this again would be to compute aggregations that respect the column reduction index, and fall back to the evaluation index if the column has no special index.

This has been addressed in the meantime. Evaluateoptauto has been marked as deprecated, the user is informed about the alternative of a custom reduction index.


[Adaptive] [DCR] New actions - ProcessActivity, ProcessMessageActivity

Today, we allow developers to override the default activity processing and message activity processing pipelines baked into adaptive dialog. However this leaves users short on being able to replicate or manage the E2E event loop that is tied to each of these phases of an activities lifecycle within adaptive dialog.
To provide developers the ability to override activity received, message activity received events and to continue to provide them with the ability to call back into the default implementation of those events in adaptive dialog, we will support two new advanced actions

ProcessActivity - kicks off the internal implementation of adaptive dialog to process an incoming activity

To make this really concrete, I think it works like this:
We split BeginDialog() action into 2 actions

RouteToDialog() - sets turn.processActivity = true and starts dialog
CallDialog() - set turn.processActivity = false and starts dialog

Inside of dialog.BeginDialog()
   // emit initialization event for the dialog
   // and apply non-interactive actions (since it's non-interactive, it should always fall through)
   Emit("InitDialog") event,

   if (turn.processActivity)
   {
      // emit ActivityReceived event => triggering OnActivity/OnRecognized/OnIntent trigger definitions
      Emit("ActivityReceived")
   }
   else
   {
      // emit CallDialog event=> triggering OnCallDialog trigger definitions
      Emit("CallDialog")
   }

This is same as and enabled via EmitEvent, eventType = activityRecieved (for process activity)
EmitEvent, eventType = recognizedIntent (for processMessageActivity) this will allow the triggers to be re-evaluated and internal adaptive dialog mechanics to execute.

Hi @vishwacsena,

This is same as and enabled via EmitEvent, eventType = activityRecieved (for process activity) EmitEvent, eventType = recognizedIntent (for processMessageActivity) this will allow the triggers to be re-evaluated and internal adaptive dialog mechanics to execute.

I want to override the Message Received Activity in Bot Composer.
However, I'm not able to find a way to call the base implementation, every with your quoted instructions.
Is this feature in Bot Composer still missing? Alternatively, it would be great if you could clarify the instructions!


⚠ Bofrost.lu has degraded performance

In b48f258, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1129 ms

Resolved: Bofrost.lu performance has improved in 181d126 after 13 minutes.


Inquiry Regarding Generalization Testing Procedure

Dear Author Cao,
I am writing to you regarding your research on Unsupervised Learning of Robust Spectral Shape Matching 2023 ToG. Firstly, I would like to express my appreciation for your contributions to the field.
I have been using the code provided on your GitHub for training on the faust_r dataset. I can replicate the results of FAUST TO FAUST mentioned in your paper. However, upon attempting to conduct generalization testing on the scape_r dataset using the pre-trained final.pth file obtained from the training on the faust_r dataset, I encountered unexpected results.
Specifically, when executing the command python test.py --opt options/test/scape.yaml with the resume_state parameter set to the final.pth file obtained from training on the faust_r dataset, I observed an average error of 0.062. This value significantly deviates from the 0.022 average error mentioned in your paper.

I kindly request guidance on the appropriate steps to take in order to achieve results consistent with those presented in your paper when conducting generalization testing on the scape_r dataset.
Thank you very much for your time and attention to this matter. I look forward to your prompt response.
Best regards,
HJ Xu

Dear Xu,
Thanks a lot for your interest in our work. By default, we disable the test-time adaptation for FAUST TO FAUST and SCAPE TO SCAPE. In order to evaluate the generalisation performance of our method, such as FAUST TO SCAPE, you need to enable the test-time adaptation. To do it, you can check #3, which encountered the same issue as you described. One side note: As we described in our paper, we don't use Dirichlet loss for near-isometric datasets.
Best regards,
Dongliang


How to run using GPU?

Same issue here with both versions:
PS C:\Users\someguy> pip install waifuc[gpu]
ERROR: Could not find a version that satisfies the requirement waifuc[gpu] (from versions: none)
ERROR: No matching distribution found for waifuc[gpu]
PS C:\Users\someguy> pip install waifuc
ERROR: Could not find a version that satisfies the requirement waifuc (from versions: none)
ERROR: No matching distribution found for waifuc

This package has not been released to PyPI yet.
So maybe you need to install it with source code.
(and i have to update readme, my bad XD


Find() uses values from the previous row in 1.23.6

GORM Playground Link
https://github.com/go-gorm/playground/pull/485
Description
It looks like DB.Model().Find() use values from the previous row if the current one has NULL in the cell that has default:NULL. This happens with SQLite driver and Gorm 1.23.6. Rolling back to 1.23.5 fixes the problem.

We can reproduce with Postgres.

we're seeing the same in Postgres, as well

still seeing this with:
gorm.io/datatypes           v1.0.7
gorm.io/driver/postgres   v1.3.8
gorm.io/gorm                   v1.23.8


/lib/x86_64-linux-gnu/libm.so.6: version 'GLIBC_2.27' not found (required by libtensorflowlite_c.so)

I am trying to deploy a Node.js server to IBM cloud (Linux), and get the following error preventing the server from starting:
un 9 17:04:57 Code Engine deployment-0001 /usr/src/app/node_modules/bindings/bindings.js:121
        throw e;
        ^
Jun 9 17:04:57 Code Engine deployment-0001 Error: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /usr/src/app/node_modules/node-tflite/build/Release/libtensorflowlite_c.so)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:1127:18)
    at Module.load (internal/modules/cjs/loader.js:933:32)
    at Function.Module._load (internal/modules/cjs/loader.js:774:14)
    at Module.require (internal/modules/cjs/loader.js:957:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at bindings (/usr/src/app/node_modules/bindings/bindings.js:112:48)
    at Object.<anonymous> (/usr/src/app/node_modules/node-tflite/index.js:4:32)
    at Module._compile (internal/modules/cjs/loader.js:1068:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
    at Module.load (internal/modules/cjs/loader.js:933:32)
Jun 9 17:04:57 Code Engine streemer-00002-deployment-66d7b97d4c-2qnlz npm ERR! code ELIFECYCLE
Jun 9 17:04:57 Code Engine streemer-00002-deployment-66d7b97d4c-2qnlz npm ERR! errno 1
Jun 9 17:04:57 Code Engine streemer-00002-deployment-66d7b97d4c-2qnlz npm ERR<EMAIL_ADDRESS>start: `nodemon index.js || node index.js`
Jun 9 17:04:57 Code Engine streemer-00002-deployment-66d7b97d4c-2qnlz npm ERR!
Jun 9 17:04:57 Code Engine streemer-00002-deployment-66d7b97d4c-2qnlz npm ERR! Failed at the<EMAIL_ADDRESS>start script.
Jun 9 17:04:57 Code Engine streemer-00002-deployment-66d7b97d4c-2qnlz npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Jun 9 17:04:57 Code Engine streemer-00002-deployment-66d7b97d4c-2qnlz aggressive probe error (failed 202 times): dial tcp <IP_ADDRESS>:9000: connect: connection refused

This is what my package.json looks like:
{
  "name": "sp-streamer",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "nodemon index.js || node index.js"
  },
  "license": "ISC",
  "dependencies": {
    "csv-parser": "^3.0.0",
    "dotenv": "^10.0.0",
    "express": "^4.17.1",
    "fs": "^0.0.1-security",
    "mathjs": "^9.4.2",
    "node-tflite": "^0.0.2",
    "os-utils": "^0.0.14",
    "socket.io-client": "^4.1.2"
  }
}

And I have a dockerfile as well:
FROM node:14

WORKDIR /usr/src/app

COPY package*.json ./
RUN npm install
COPY . .

EXPOSE 9000
CMD [ "npm", "start" ]

And the following is a .gitlab-ci.yml:
stages:
  - build
docker-build:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
  script:
    - docker build --pull -t "$CI_REGISTRY_IMAGE${tag}" .
    - docker push "$CI_REGISTRY_IMAGE${tag}"

I found the solution to my problem, apparently where it says /lib/x86_64-linux-gnu/libm.so.6: version 'GLIBC_2.27' not found, basically means that the server i'm deploying to is using libc6, which is a higher version than required by node-tflite.
To fix this, I had to enforce installation of the lower version libc2 (GLIBC_2.27).
Here is my re-configured dockerfile:
FROM node:alpine

RUN apk --no-cache add ca-certificates wget make gcc g++ python3
RUN wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
RUN wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.27-r0/glibc-2.27-r0.apk
RUN apk add glibc-2.27-r0.apk

WORKDIR /usr/src/app

COPY package*.json ./
RUN npm install
RUN npm rebuild
COPY . .

EXPOSE 9000
CMD [ "npm", "start" ]

Notice: I am using node:alpine, and also targeting the specific version (2.27)

Found the solution, works for sure on deployment, this is the dockerfile:
FROM ubuntu

RUN apt-get update
RUN apt-get install -y curl wget make g++
RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
RUN apt-get install -y nodejs

COPY package*.json ./
RUN npm install
COPY . .

EXPOSE 9007
CMD [ "npm", "start" ]

leave a message to us on enhau.com we will try to find solution to the problem


Issue with converting Whisper model to ONNX

System Info
Created new env following this requirement file:
transformers[torch]==4.46.1
onnxruntime==1.19.2
optimum==1.23.3
onnx==1.16.2
onnxconverter-common==1.14.0
tqdm==4.66.5
onnxslim==0.1.36
--extra-index-url https://pypi.ngc.nvidia.com
onnx_graphsurgeon==0.3.27

system info:
MAC M2
converting using CPU device
Environment/Platform

[ ] Website/web-app
[ ] Browser extension
[ ] Server-side (e.g., Node.js, Deno, Bun)
[X] Desktop app (e.g., Electron)
[ ] Other (e.g., VSCode extension)

Description
We are attempting to convert whisper-small using the HF model openai/whisper-small by executing the command specified in the README file.
python -m scripts.convert --quantize --model_id openai/whisper-small
We get the following trace:
TracerWarning: Using len to get tensor shape might cause the trace to be incorrect. Recommended usage would be tensor.shape[0]. Passing a tensor of different shape might lead to errors or silently give incorrect results.
  elif len(self.key_cache[layer_idx]) == 0:  # fills previously skipped layers; checking for tensor causes errors
Found different candidate ONNX initializers (likely duplicate) for the tied weights:
	model.decoder.embed_tokens.weight: {'model.decoder.embed_tokens.weight'}
	proj_out.weight: {'onnx::MatMul_3259'}
Found different candidate ONNX initializers (likely duplicate) for the tied weights:
	model.decoder.embed_tokens.weight: {'model.decoder.embed_tokens.weight'}
	proj_out.weight: {'onnx::MatMul_2910'}
		-[x] values not close enough, max diff: 0.024361729621887207 (atol: 0.001)
		-[x] values not close enough, max diff: 6.988886833190918 (atol: 0.001)
		-[x] values not close enough, max diff: 5.208465576171875 (atol: 0.001)
		-[x] values not close enough, max diff: 1.9965003728866577 (atol: 0.001)
		-[x] values not close enough, max diff: 1.4132819175720215 (atol: 0.001)
		-[x] values not close enough, max diff: 0.8667690753936768 (atol: 0.001)
		-[x] values not close enough, max diff: 3.7726752758026123 (atol: 0.001)
		-[x] values not close enough, max diff: 2.159898519515991 (atol: 0.001)
		-[x] values not close enough, max diff: 12.425561904907227 (atol: 0.001)
		-[x] values not close enough, max diff: 1.2728543281555176 (atol: 0.001)
		-[x] values not close enough, max diff: 6.912049770355225 (atol: 0.001)
		-[x] values not close enough, max diff: 1.0248034000396729 (atol: 0.001)
		-[x] values not close enough, max diff: 7.5350022315979 (atol: 0.001)
		-[x] values not close enough, max diff: 1.6307682991027832 (atol: 0.001)
		-[x] values not close enough, max diff: 7.0035505294799805 (atol: 0.001)
		-[x] values not close enough, max diff: 0.8978527784347534 (atol: 0.001)
		-[x] values not close enough, max diff: 5.2730207443237305 (atol: 0.001)
		-[x] values not close enough, max diff: 1.0290248394012451 (atol: 0.001)
		-[x] values not close enough, max diff: 5.59857177734375 (atol: 0.001)
		-[x] values not close enough, max diff: 1.0392111539840698 (atol: 0.001)
		-[x] values not close enough, max diff: 4.692121505737305 (atol: 0.001)
		-[x] values not close enough, max diff: 1.080666184425354 (atol: 0.001)
		-[x] values not close enough, max diff: 2.687824249267578 (atol: 0.001)
		-[x] values not close enough, max diff: 1.6337403059005737 (atol: 0.001)
		-[x] values not close enough, max diff: 2.598097801208496 (atol: 0.001)
		-[x] values not close enough, max diff: 1.6576173305511475 (atol: 0.001)
Validation for the model models/openai/whisper-small/encoder_model.onnx raised: The maximum absolute difference between the output of the reference model and the ONNX exported model is not within the set tolerance 0.001:
- last_hidden_state: max diff = 0.024361729621887207
The ONNX export succeeded with the warning: The maximum absolute difference between the output of the reference model and the ONNX exported model is not within the set tolerance 0.001:
- logits: max diff = 6.988886833190918
- present.0.decoder.key: max diff = 5.208465576171875
- present.0.decoder.value: max diff = 1.9965003728866577
- present.1.decoder.key: max diff = 1.4132819175720215
- present.1.decoder.value: max diff = 0.8667690753936768
- present.2.decoder.key: max diff = 3.7726752758026123
- present.2.decoder.value: max diff = 2.159898519515991
- present.3.decoder.key: max diff = 12.425561904907227
- present.3.decoder.value: max diff = 1.2728543281555176
- present.4.decoder.key: max diff = 6.912049770355225
- present.4.decoder.value: max diff = 1.0248034000396729
- present.5.decoder.key: max diff = 7.5350022315979
- present.5.decoder.value: max diff = 1.6307682991027832
- present.6.decoder.key: max diff = 7.0035505294799805
- present.6.decoder.value: max diff = 0.8978527784347534
- present.7.decoder.key: max diff = 5.2730207443237305
- present.7.decoder.value: max diff = 1.0290248394012451
- present.8.decoder.key: max diff = 5.59857177734375
- present.8.decoder.value: max diff = 1.0392111539840698
- present.9.decoder.key: max diff = 4.692121505737305
- present.9.decoder.value: max diff = 1.080666184425354
- present.10.decoder.key: max diff = 2.687824249267578
- present.10.decoder.value: max diff = 1.6337403059005737
- present.11.decoder.key: max diff = 2.598097801208496
- present.11.decoder.value: max diff = 1.6576173305511475.
 The exported model was saved at: models/openai/whisper-small

None of the layers meet the default tolerance and in most layers, the difference is more than 3 orders of magnitude.
@xenova can you please help with this?
Thanks,
Reproduction
just run:
python -m scripts.convert --quantize --model_id openai/whisper-small

Thanks @AvivSham, I am able to reproduce the issue. Same thing happens with other variants of whisper. @echarlaix looks to be an issue with Optimum as I'm able to reproduce with optimum-cli. 👀 Any idea what's up?

@AvivSham In the meantime, can you try downgrade to "transformers_version": "4.38.2",?

We downgraded transformers to 4.38.2, and still none of the model versions (small/medium/large) meet the threshold. The trace looks more of the same for all versions:
Found different candidate ONNX initializers (likely duplicate) for the tied weights:
        model.decoder.embed_tokens.weight: {'model.decoder.embed_tokens.weight'}
        proj_out.weight: {'onnx::MatMul_8717'}
Found different candidate ONNX initializers (likely duplicate) for the tied weights:
        model.decoder.embed_tokens.weight: {'model.decoder.embed_tokens.weight'}
        proj_out.weight: {'onnx::MatMul_7406'}
                -[x] values not close enough, max diff: 0.006899833679199219 (atol: 0.001)
The ONNX export succeeded with the warning: The maximum absolute difference between the output of the reference model and the ONNX exported model is not within the set tolerance 0.001:
- last_hidden_state: max diff = 0.006899833679199219.
 The exported model was saved at: models/openai/whisper-medium

However we see 2 differences:

The validation is less informative (or it is because of the logs) only one layer needs to meet the atol threshold.
The difference from the threshold is much smaller.

@xenova

@echarlaix @xenova thanks!
Do you know why the logs are less informative? I can recall from optimum that if layers meet the threshold they are also printed with a checkmark sign, here the logs are only for single layer.
I  also have a follow-up question which I also asked here - https://github.com/huggingface/transformers.js/issues/917#issuecomment-2495962235
When we try to use the converted model with whisper web we get a cache_position related error it also bothers others - https://github.com/huggingface/transformers.js/issues/917#issuecomment-2336618752
This issue does not reproduce in python env and you can see in the code snip we added (check the first comment link).


Source files added to all targets, duplicate references

Seedfile:
github "Alamofire/Alamofire", "swift-2.0", :files => "Source/*.swift"
github "thoughtbot/Argo", "td-swift-2", :files => "Argo/*/*.swift"
github "thoughtbot/Runes", "swift-2.0", :files => "Source/*.swift"

I'm attempting to integrate the Swift 2 versions of several libraries and a few issues have cropped up. First and foremost, it seems like at least some of the source files are included more than once, so I get this error:
error: filename "Operators.swift" used twice: '/Users/jshier/Desktop/project/Seeds/Runes/Source/Operators.swift' and '/Users/jshier/Desktop/project/Seeds/Runes/Source/Operators.swift'
Second, it looks like all of the source files are included in all of my targets. Is there any way to have them included in only my actual app target?
Also, is that the proper syntax for targeting a branch instead of a tag? It seems to work but I wasn't sure.

There are same file named 'Operators.swift' in 'Runes' and 'Argo':

https://github.com/thoughtbot/Runes/blob/master/Source/Operators.swift
https://github.com/thoughtbot/Argo/blob/master/Argo/Operators/Operators.swift

CocoaSeeds includes source files directly, which can occur compiler error when there are multiple files with same name.
Hmm. I think it can be solved by appending repository name as a prefix of filename. I'll take a look :)

Of course you can:
target :MyAppTest do
  github "Quick/Quick", "v0.3.1", :files => "Quick/**.{swift,h}"
  github "Quick/Nimble", "v0.4.2", :files => "Nimble/**.{swift,h}"
end

No, there isn't. You can use branch instead of tag (and it works), but it's not recommended way. CocoaSeeds doesn't ensure that the files are up to date.

@jshier,
I just made a new feature. Could you please check this PR(#15)?
Thanks! :)

@devxoul Thanks for the change, I'll take a look. However, the error reported by Xcode doesn't show the Argo and Runes files conflicting, it shows the Runes file conflicting with itself, which is certainly not something I saw when the files were integrated manually. And I did try renaming one of the files, but I still got the same error no matter what it was named. I'll try the PR branch and report back.

You're right. CocoaSeeds doesn't import same-named files correctly. But Xcode don't allow the multiple files with same name, so it is necessary to make their name different.
You can try this feature by:

Remove existing CocoaSeeds gem uninstall cocoaseeds
Checkout the filename-prefix branch.
Run make install.

I've tried the branch and it works as expected. That, coupled with the target syntax you showed, has gotten me most of the way to the solution I need. Official branch support would be nice, as well as pre and post script support (or perhaps it already exists and just needs documentation?). I've opened #16 for hook support.

Great!
Pre and post scripts are not implemented yet. I've also made #17 for following-up branch support.
Thank you for your time, @jshier :smile::+1:

@devxoul Thanks for awesome tool,
swift_seedname_prefix!  solves duplicated file names, but there is still has problem.
Which is class names duplicate error. Do you have any idea to solve it.
Thanks in advance

@bayarmanlai, sadly CocoaSeeds cannot resolve the class name duplications :( If those classes are exactly the same, you can consider excluding one.


Missing Security DeleteAPIKey

Missing the ability to delete an API Key.
This is required so Fleet Server can delete the created API keys for an Elastic Agent after unenrollment. elastic/fleet-server#123
I would expect a client.Security.DeleteAPIKey to exist.

Seems I was incorrect on the naming. The method does exist at client.Security.InvalidateAPIKey.


Revert cc03f41805ab97bf579901185ef3778cefbfeb2a

Revert "Initial commit of hooking the OpenSearch IAM policy ARN to the IAM role that the MIT-Open application uses."
This reverts commit cc03f41805ab97bf579901185ef3778cefbfeb2a.

Description
Reverts changes to the MIT Open stack definition that depends on aspects of the opensearch stack that no longer exist.
Motivation and Context
Bugfix
How Has This Been Tested?
Deployed to all mit open stacks already.
Types of changes

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Enhancement (improves on existing behavior)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[X] My code follows the code style of this project. (Did you install and run the pre-commit hooks?)
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

:+1:


[ UX ] Fixes misleading tooltip info :: Organization creation

This PR attempts to fix a misleading information provided to user via tooltip at left top on UI with + ( plus ) button, for creating a new organization.
Before:

After:

@gsvarma you can claim a free tshirt for this PR contribution - find more at https://konghq.com/community/open-source-contribution