Implement cacheTime/staleTime

It has been decided to remove cacheTime as part of the initial release, as the initial implementation had some issues.
This issue is for tracking the re-introduction of cacheTime, accompagned by staleTime.
staleTime would be the amount of time before the value is considered obsolete. At this point, the provider should re-execute when given the opportunity.
But the value exposed wouldn't be destroyed immediately.
Instead the value will be available for caheTime after stateTime as expired.

For reference, even if these APIs won't be part of the initial 2.0 release:

they will be added in the future
you can implement cacheTime yourself using ref.keepAlive() + a Timer()

TL;DR about implementing cacheTime on your own:
extension on Ref {
  // When invoked keeps your provider alive for [duration]
  void cacheFor(Duration duration) {
    final link = keepAlive();
    final timer = Timer(duration, () => link.cancel());
    ref.onDispose(() => timer.cancel);
  }
}

final myProvider = Provider.autoDispose<int>((ref) {
  ref.cacheFor(Duration(minutes: 5));
});

@rrousselGit I have two questions about this implementation.
Question 1. By looking at cacheTime and disposeDelay, I read, respectively:

The minimum amount of time before an autoDispose provider can be disposed if not listened.

and

The amount of time before a provider is disposed after its last listener is removed.

I feel like the implementation above is closer to disposeDelay than it is to cacheTime (which is actually what I need in my use case, so that's cool).
Question 2. If keepAlive works the same as maintainState, how will the dispose event ever trigger - we are telling this provider not to dispose, right? This would mean that the callback inside onDispose will never trigger, right?

I feel like the implementation above is closer to disposeDelay than it is to cacheTime (which is actually what I need in my use case, so that's cool). Am I getting this right?

No 😋
What I implemented is indeed cacheTime. When it was available in the dev release, that's quite litteraly how it worked.
The onDispose is for when using ref.watch/invalidate/...
A provider can get disposed even if it's listened when using those.

Re-reading the definitions and the implementation I totally see that it's cacheTime being implemented there. Thank you @rrousselGit.
For reference for other users, I tried to implement disposeDelay, too! This seems to be working, but I'd like to have your "blessings" 😛 Let me know.
extension TestExtension<T> on AutoDisposeRef<T> {
  void disposeDelay(Duration duration) {
    final link = keepAlive();
    Timer? timer;

    onCancel(() {
      timer = Timer(duration, link.close);
    });

    onDispose(() {
      timer?.cancel();
    });
  }

  void cacheFor(Duration duration) {
    final link = keepAlive();
    final timer = Timer(duration, link.close);

    onDispose(timer.cancel);
  }
}

You'll want to restart the timer too on onResume.
But let's be clear: disposeDelay isn't going to be added back

You'll want to restart the timer too on onResume.

True. Thanks!

But let's be clear: disposeDelay isn't going to be added back

Why is that?

I think extra functionalities shouldn't be included in the base package. All we need is flexibility and stability.
We wanted cacheTime and disposeDelay because before that, working with Timer and ref.maintainState was buggy. Now I see it works very well with Ref extensions. It's just few lines of code as implementation and again, 1 line of code in each provider.

@rrousselGit sorry to bother you, but would the following be a fair implementation of staleTime?
void staleTime(Duration duration) {
    var timer = Timer(duration, invalidateSelf);

    onAddListener((){
      timer.cancel();
      timer = Timer(duration, invalidateSelf);
    });

    onDispose((){
      timer.cancel();
    });
  }

Possibly
Although both cacheTime and staleTime would be part of Riverpod itself, to simplify combining them with error handling and async (cacheTime/staleTime should start when a FutureProvider completes and even after an error)
Also, cacheTime must start after staleTime. So there's a bit of logic needed here

Hi @rrousselGit, I'd like to go back at this, one year later.

extension on AutoDisposeRef {
  // When invoked keeps your provider alive for [duration]
  void cacheFor(Duration duration) {
    final link = keepAlive();
    final timer = Timer(duration, () => link.close());
    onDispose(() => timer.cancel());
  }
}

I recently realized that this implementation cannot be used to cache an asynchronous computation, after it's been computed; my goal is to obtain something similar to this.

This way, if the request fails and the user leaves the screen then re-enters it, then the request will be performed again. But if the request completed successfully, the state will be preserved and re-entering the screen will not trigger a new request.

Take that example, and put cacheFor instead of keepAlive, there.
@riverpod
FutureOr<int> computation(ComputationRef ref) async {
  final result = await Future.delayed(
    3.seconds,
    () => Random().nextBool() ? 1 : throw Exception('wooops!'),
  );
  ref.cacheFor(60.seconds);  // !
  return result;
}

This is faulty.
What happens is that computation will throw a runtime StateError (link) if the listeners stop watching its provider before result is computed.
So, how can we work around this, since mounted is private - by design?

I assume it's because onDispose is throwing?
Throwing in the returned future after the provider has been disposed should generally be fine.
There are some cases where an error is reported to the zone, but there's an issue to patch those.
But you could have a try/catch on onDispose for now.
We could also consider making onDispose & similar life-cycles not throw after complete disposal. Although I'm not sure that's truly desired.

I assume it's because onDispose is throwing?

Yeah, that's what I meant there (I linked the precise line throwing). You can't call onDispose after the provider is already disposed. That's what happens if you go back and forth a screen (the provider disposes) but the asynchronous computation hasn't finished yet.

Throwing in the returned future after the provider has been disposed should generally be fine.

Yes, that's not when this happens. It happens when everything's fine, but you stop to observe this provider before that computation finishes.

But you could have a try/catch on onDispose for now.

That's my quick & dirty patch as of now, but I was wondering if something else was doable.

We could also consider making onDispose & similar life-cycles not throw after complete disposal. Although I'm not sure that's truly desired.

It feels more than a patch for this particular problem more than anything else; throwing on registering life-cycle callbacks after a dispose sounds more reasonable.
The way I see it is that Riverpod should implement cacheTime, staleTime and disposeDelay internally, since they can access _mounted. My point is that a simple extension made by us (users) isn't enough, we will eventually run into this caveats

That's my quick & dirty patch as of now, but I was wondering if something else was doable.

Like I said, throwing should be fine. If it happens after the provider got destroyed inside the build method, that shouldn't be a problem

Okay, that's fine. I'll edit the code above for future reference, while you decide Riverpod's path 😛

Re-reading the definitions and the implementation I totally see that it's cacheTime being implemented there. Thank you @rrousselGit.
For reference for other users, I tried to implement disposeDelay, too! This seems to be working, but I'd like to have your "blessings" 😛 Let me know.
extension TestExtension<T> on AutoDisposeRef<T> {
  void disposeDelay(Duration duration) {
    final link = keepAlive();
    Timer? timer;

    onCancel(() {
      timer?.cancel();
      timer = Timer(duration, link.close);
    });

    onDispose(() {
      timer?.cancel();
    });

    onResume(() {
      timer?.cancel();
    });
  }

  void cacheFor(Duration duration) {
    final link = keepAlive();
    final timer = Timer(duration, link.close);

    onDispose(timer.cancel);
  }
}

EDIT. implemented remi's suggestions.

To everybody that wants to use this: be careful when .reading providers. onCancel won't be called, so your provider might never be disposed. See my comment on https://github.com/rrousselGit/riverpod/issues/1665 for reference.

There's onDispose tho. Doesn't that get called when ref.read-ing a non-watched provider, anyways?

@timcreatedit It may be better to call keepAlive() onCancel. In my experiments, onDispose fired both in ref.read and unwatch.
extension TestExtension<T> on AutoDisposeRef<T> {
  void disposeDelay(Duration duration) {
    Timer? timer;

    onCancel(() {
      final link = keepAlive();
      timer?.cancel();
      timer = Timer(duration, link.close);
    });

    onDispose(() {
      timer?.cancel();
    });

    onResume(() {
      timer?.cancel();
    });
  }
}

@rrousselGit I don't remember anymore, will this be release with Riverpod 3.0 as well? (:

Yes.

@timcreatedit It may be better to call keepAlive() in onCancel. In my experiments, onDispose fired both in single ref.read and unwatch.

Sure, that will prevent the provider from staying alive indefinitely when only .read is called. It doesn't really solve my original issue, because reading multiple times within the dispose delay still does not use the cached value :)
I would love a way to implement a dispose delay for a provider that works independently from how the provider is consumed. Afaik that is impossible at the moment.
See my comment in #1665 for the tests that I would like to pass :)

#1665 is likely going to be done in 3.0 too.
At least that's how Riverpod 3.0 currently behave. It made implementing pause/resume easier, as read is now effectively  listen().close()

#1665 is likely going to be done in 3.0 too.
At least that's how Riverpod 3.0 currently behave. It made implementing pause/resume easier, as read is now effectively  listen().close()

That's a great change imo, I intuitively assumed that that's how it works in the beginning and was a bit surprised to find out that it doesn't :)


mfgtoolcli never exit

mfgtoolcli never exit. It seems to flash the device successfully, then it hangs forever.
The --noexit flag is not set in this case.
gdb backtrace after mfgtoolcli is killed by keyboard interrupt signal:
#0  0x00007ffff6e5ef2d in nanosleep () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007ffff6e5edc4 in __sleep (seconds=0) at ../sysdeps/unix/sysv/linux/sleep.c:137
#2  0x000000000040959a in main (argc=16, argv=0x7fffffffe598) at mfgtoolCLI.cpp:422

Relevant lines last in main() function in mfgtoolCLI.cpp:
420     while(true)
421     {
422         sleep(3);
423     }
424
425 }

I am guessing the main thread should wait on working thread(s) to finish and then exit, but I do not find where, so perhaps I am mistaken?

mfgtoolcli is spamming "no brakes Could not stop operation" in my case ...
It seems to be unmaintained, maybe i'll switch to this method

@nefethael I started on a python script that converts ucl2.xml to shell scirpts that uses the method you linked. I have'nt had the time to test it but perhaps you find it useful. Here it is https://gist.github.com/5frank/d5835a580d9fbe66b63b09b5a360ae40

@nxpfrankli could you please explain why this issue is closed and labeled "wontfix"? is there a workaround? are you unable to reproduce the problem?

@5frank i assume old mfgtool is depecrated now and won't be maintained anymore :(

Yes, we will use uuu to replace old mfgtools.
uuu is really the same source code between linux and windows.
uuu is more simple implement.
For legacy i.MX6/7 platform,  uuu archive the same function


Migrate to new symbol index schema

This PR migrates to the persistable indexing schema explained in #35. It does not yet take advantage of the fact that we can persist the symbol index and load it on startup, we leave that for another PR. The major improvement is related to testing.
Testing
While doing the refactoring, I took the liberty to create a proper test fixture to spin up the server, and programmatically invoke "go to definition" requests. Tests are now written using utest. This makes it possible to assert key features including workspace semanticdb indexing and classpath ctags indexing (for both java and scala sources). Setting up the test fixture required making it easy to stub out several services and selectively disable certain features:

ServerConfig: bag of options to disable jdk indexing, classpath indexing or scalafmt classloading
Notifications: make it possible to programmatically load a SymbolIndex without an lsp server.
Formatter.empty: formatter that doesn't do anything
DocumentStore: abstract key/value store for URI -> Document, default implementation is in-memory but should be easy to create alternative store that persists to disk (e.g., sqlite).
SymbolIndexerMap: in-memory store over the new SymbolIndex protobuf message. Has methods to incrementally register definitions and references. Should come up with a better name.

While setting up the test infrastructure, I moved the test-workspace build into the main build so that edits in UserTest.scala trigger semanticdb recompilation and tests in metaserver to re-run.
Thanks to Monix TestScheduler, we have fine grained control over the execution context and can manually trigger all the indexing mechanism that normally runs asynchronously to run synchronously before initializing our tests.

OK, I've rebased on top of master and made the functionality on par with what we have in master. Jump to definition works for project sources and classpath entries.
I will leave it for another PR to actually persist the index on shutdown and load it on startup.

I must not do 1k loc PRs
I must not do 1k loc PRs
I must not do 1k loc PRs
I must not do 1k loc PRs
I must not do 1k loc PRs
I must not do 1k loc PRs
I must not do 1k loc PRs
I must not do 1k loc PRs
I must not do 1k loc PRs
I must not do 1k loc PRs
I must not do 1k loc PRs
😅

Let's merge this PR as is and I am happy to address bugs and regressions in a followup PR


Add support for additional custom models

Feature request

[ ] Flash NeoX
[ ] Flash RW (Falcon)
[ ] Flash SantaCoder
[ ] Bloom
[ ] T5
[ ] MPT
[ ] OPT

Motivation
No response
Your contribution
No response

Hi, is there any plan on supporting T5 architectures soon?


Update MWCharSheet.html

Added Clan Invasion era factions to Faction section (the Invading and Reserve Clans comprising Clan Ghost Bear, Clan Jade Falcon, Clan Smoke Jaguar, and Clan Wolf; and Clan Diamond Shark, Clan Nova Cat, and Clan Steel Viper respectively; as well as House Steiner-Davion [Federated Commonwealth], Free Rasalhague Republic, and St. Ives Compact).
Changes / Comments
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[ ] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.

@neopryde
Hi, I am going to accept this PR in this instance, but please be sure that you add the sheet name to the title of any future PRs or they will be rejected.
Thanks!


[Change Request] Codeunit 80 "Sales-Post" – Existing Function “CreateWhseJnlLine”

Could we please have the existing function “CreateWhseJnlLine”, Codeunit 80 "Sales-Post”, be set to global?
*** start old code ***
    //local procedure CreateWhseJnlLine(ItemJnlLine: Record "Item Journal Line"; SalesLine: Record "Sales Line"; var
    //TempWhseJnlLine: Record "Warehouse Journal Line" temporary)
*** stop old code ***
*** start new code ***
    procedure CreateWhseJnlLine(ItemJnlLine: Record "Item Journal Line"; SalesLine: Record "Sales Line"; var TempWhseJnlLine: Record "Warehouse Journal Line" temporary)
*** stop new code ***
    var
        WhseMgt: Codeunit "Whse. Management";
        WMSMgt: Codeunit "WMS Management";
    Begin

This function is global in 17.x

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Added support for the new iOS naming convention in Cordova 7

Checklist

[x] I've read and followed the Contribution Guidelines
[ ] step.yml and README.md is updated with the changes (if needed)

Version
Requires a PATCH version update
Context
The Step is failing because of the deprecation of CONFIGURATION_BUILD_DIR in Cordova 7.0.0
https://cordova.apache.org/announcements/2023/07/10/cordova-ios-7.0.0.html
Changes
Added a new method to find the iOS target path component of the build directory. It is backwards compatible with previous versions of Cordova.
Investigation details
N/A
Decisions
N/A

@ofalvai This will break when version will become >= 10
	majorVersion, err := strconv.Atoi(cordovaVersion[0:1])
	if err != nil || majorVersion < 7 {

You can check with :
func Test_findIosTargetPathComponentDeviceRelease10(t *testing.T) {
    got := findIosTargetPathComponent("device", "release", "10.0.0")
    want := "Release-iphoneos"
    if got != want {
        t.Errorf("got %q, wanted %q", got, want)
    }
}

@atanas-bitrise Could you port it to steps-ionic-archive, on which I originally opened the issue : https://github.com/bitrise-steplib/steps-ionic-archive/issues/83 ?

Thank you @QuentinFarizon for catching this, I just opened a PR fixing this: https://github.com/bitrise-steplib/steps-cordova-archive/pull/58
I'm also taking a look at the Ionic step


PHP: wrong syntax coloring on HTML contents

(Original issue 893 created by None on 2013-07-31T11:07:52.439981+00:00)
It seems that PHP files which contain regular HTML stuff won't parse right. Example given: https://github.com/rodrigocfd/php-js-i18n/blob/master/index.php

(Original issue 893 last updated on 2014-01-09T19:07:55.392438+00:00)
(Issue automaticaly closed due to status in Bitbucket: resolved)

(Original comment by birkenfeld on 2014-01-09T19:07:55.407510+00:00)
Can't reproduce with that file and current tip.
Github may select (for some reason) another lexer for this file?


Fix version for property FontChooser.level

See comment https://github.com/gtk-rs/gtk/issues/794#issuecomment-483460392
cc @GuillaumeGomez, @sdroege , @martinber
Note not sure that it pass CI's regencheck as I don't updated sub-modules, so better wait for it.

Updated with versions for other 2 new properties

Reported bug to upstream https://gitlab.gnome.org/GNOME/gtk/issues/1830

:+1: but why do tests fail?

but why do tests fail?

macos travis still broken (@GuillaumeGomez can we just disable that until someone fixes it?), 32 bit Windows still failing the tests for unknown reason.

Because we still can't solve problems with apveour32 and travis's OSX.
32bit has due some wrong lib, but I don't know how to find it, see https://github.com/gtk-rs/gtk/issues/783
For OSX need specialist on brew to disable removal (I can't find way) or travis rebuild its images with never version.

I'll work on the travis issue when I'm in Berlin. Meanwhile, just ignore it.

Rebased to master, travis passed too, @GuillaumeGomez thanks.

Thanks!


Reorganizing range, source, origin, and destinations

The node itself now contains exclusively the data but not the position or the source. They are part of the origin of the node.
The node has accessors to simplify getting access to them.

rangeOverride is moved to the ParseTreeOrigin.

detach is renamed in detachFromParseTree, because detach could be interpreted as "remove the node from the AST" (i.e., set its parent to null.

destinations and origins are moved to separate files

the Node is now not anymore an Origin or a Destination, both still it can be used almost as an Origin or a Destination by means of a few operators being added in Destinations.kt and overloaded methods such as Node.withOrigin(Node)

Fix #194

What's the impact on the EMF metamodel?

Good question. I think that we were already generating EObjects to wrap the Nodes and adapt them to be Origins and Destinations (i.e., we already had the EClasses NodeOrigin and NodeDestination), so the impact should be none, I think. By that I mean that the EMF generated would be the same

Thank you @alessiostalla !


typo fixed

There was a typo in landing page.
Related issue
1633

as mentioned in issue 1633, did fix the typo and setup system on my local.


Support non-truthy primary keys in bulk_update

I noticed a small oversight where a primary key with the value 0 would fail the primary key check in bulk_save. I've switched it to explicitly check for None values.

Good point about the ticket, I've made it here: https://code.djangoproject.com/ticket/29974


Correct a spelling mistake in ans.adoc

Describe what this PR does / why we need it
a spelling mistake in ans.adoc
Describe how you did it
corrected a spelling mistake in ans.adoc

Please create a same PR to branch of 2.2.x.


Testing Federation Supergraphs with Fusion

We will have more supergraphs here in the future

I am generally not a fan of too many files. It reduces readability. IMHO, all of the service can be single files (not split into typedefs and resolvers).

@enisdenjo Actually I did it on purpose to use Rover CLI easier.


Could the word "crap" be replaced with "negative"?

I know that we, as developers, are very frustrated by the behaviour of these devices, but perhaps the first paragraph of the (user-facing) website should not contain the word "crap"? Similar to #16, this gives a less than professional impression, especially as users will often be reading this immediately after opening an app for the first time.
We are planning to use doki instead of redirecting users to the website, but I felt I should probably mention it as some folk will find it off-putting (my manager for instance).
In my opinion "negative score" is just as clear, or clearer, than "crap score".

You are right I guess. There is an interesting phenomenon that some bad words may not sound that bad to you if you are not native in that language.

Thats a funny phenomenon, this programmer mentions it too.

I did push it now. Thanks for the link

We really appreciate the quick response, my manager sends many thanks!

Many thanks, we really feel about this as a community common project to centralize all the individual efforts different devs are putting into this in one place. So it makes sense to try to find the best form which is suitable most devs..


Ensure JediLSP restart command is registered only once.

Closes #16441
This is a temporary solution. The real fix here is to refactor how we do Language server client support in the extension.

Can you also create and link the internal backlog item here?


Getting more text label in graph in d3js

Hi i am getting more text label but i need only max value of bar in d3js
pls help.
state.selectAll("rect.text")
.data(function (d) {
return d.ages;
})
.enter().append("text")
.attr("class", "rect")
.attr("fill","blue")
.attr("text-anchor", "left")
.attr("x", function(d) { return x1(d.name); })
.attr("y", function(d) { return y(d.value); })
.text(function(d) {
return ((d.value)/1000).toFixed(0);
});

example link fiddler ---  http://jsfiddle.net/activescott/69cwn/

Please use Stack Overflow tag d3.js to ask for help. Although I make an effort to assist everyone that asks, I am not always available to provide help promptly or directly. Stack Overflow provides a better collaborative forum for self-help: tens of thousands of D3-related questions have already been asked there, and some answered questions may be relevant to you.
When asking for help, please include a link to a live example that demonstrates the issue, preferably on bl.ocks.org. It is often impossible to debug from code snippets alone. Isolate the issue and reduce your code as much as possible before asking for help. The less code you post, the easier it is for someone to debug, and the more likely you are to get a helpful response.
If you have a question about D3’s behavior and want to discuss it with other users, also consider the d3-js Google Group or joining the d3-js Slack.
Thank you! 🤗


Can't get doctype to render

From @pessato on April 16, 2016 8:21
var fs = require('fs'),
    xml2js = require('xml2js');

var obj = {name: "Super", Surname: "Man", age: 23};

var options = {
	rootName: 'test',
	doctype: {'ext': 'hello.dtd'},
	xmldec: {'version': '1.0', 'encoding': 'UTF-8'}
};

var builder = new xml2js.Builder(options);
var xml = builder.buildObject(obj);

console.log(xml);

Gives me...
<?xml version="1.0" encoding="UTF-8"?>
<test>
  <name>Super</name>
  <Surname>Man</Surname>
  <age>23</age>
</test>

How can I get...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ext SYSTEM "hello.dtd">
<test>
  <name>Super</name>
  <Surname>Man</Surname>
  <age>23</age>
</test>

Copied from original issue: oozcitak/xmlbuilder-js#123

From @oozcitak on April 18, 2016 8:7
You should take this to xml2js, however if it passes options directly to xmlbuilder than the correct syntax should be:
var options = {
    rootName: 'test',
    doctype: {'sysID': 'hello.dtd'},
    xmldec: {'version': '1.0', 'encoding': 'UTF-8'}
};

Note sysID instead of ext.

No idea how I've ended up creating this issue here... Apologies and thanks.

Correct me if I'm wrong however I think the README need to be updated to reflect the above? i.e.
doctype (default null): optional DTD. Eg. {'sysID': 'hello.dtd'}


ImportError causing Exception while handling an Exception

After a bit of debugging, I have narrowed the following error down to werkzeug/http.py#L26, which gives the following exception: ImportError: cannot import name 'parse_http_list'.  Below is the entire traceback, which involves an exception inside the exception attempting to fallback to an old python reference.
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/site-packages/werkzeug/http.py", line 26, in <module>
    from urllib2 import parse_http_list as _parse_list_header
ImportError: No module named 'urllib2'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "examples/http.py", line 2, in <module>
    from flask import Flask
  File "/usr/local/lib/python3.5/site-packages/flask/__init__.py", line 17, in <module>
    from werkzeug.exceptions import abort
  File "/usr/local/lib/python3.5/site-packages/werkzeug/__init__.py", line 152, in <module>
    __import__('werkzeug.exceptions')
  File "/usr/local/lib/python3.5/site-packages/werkzeug/exceptions.py", line 71, in <module>
    from werkzeug.wrappers import Response
  File "/usr/local/lib/python3.5/site-packages/werkzeug/wrappers.py", line 26, in <module>
    from werkzeug.http import HTTP_STATUS_CODES, \
  File "/usr/local/lib/python3.5/site-packages/werkzeug/http.py", line 28, in <module>
    from urllib.request import parse_http_list as _parse_list_header
  File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 88, in <module>
    import http.client
  File "/Users/alexgurrola/Projects/intrepid/examples/http.py", line 2, in <module>
    from flask import Flask
ImportError: cannot import name 'Flask'

Please provide an example to reproduce this.

Using Python 3.5.2 this paragraph in werkzeug/http.py will fail repeatedly.
try:
    from urllib.request import parse_http_list as _parse_list_header
    from urllib.parse import unquote_to_bytes as _unquote
except ImportError:  # pragma: no cover
    from urllib2 import parse_http_list as _parse_list_header, \
        unquote as _unquote

I found the issue originally when using Flask 0.12 and running the following script.
import os
from flask import Flask

app = Flask(__name__)
app.config.from_object(os.environ['APP_SETTINGS'])

@app.route('/')
def hello():
    return "Hello World!"

if __name__ == '__main__':
    app.run()

Please rename your file from http.py to something else, otherwise it clashes with the http module from the stdlib.

Apparently Python can't differentiate between scripts of the same name, so it sent me on a wild goose chase through these libraries...  I appreciate the help.

Please rename your file from http.py to something else, otherwise it clashes with the http module from the stdlib.

I'm new in Python, so I take the same mistake too....


Adding a --script option

Can you consider adding this option?
usage is as such:
$ qbatch --fake --script my-script.sh --queue all.q -- mincmath ....
The idea is that instead of running the job it just produces the job file. I find this very useful as it gives you a method to quickly create a qsub script with all the correct options that you can then mess with by hand should you be trying to do something more complex. Also very useful for debugging pipes...
Implemented as such:
https://github.com/andrewjanke/qbatch/blob/master/qbatch#L139
Not sure how you wold handle your case where there would be multiple output scripts given that your default method of operation is on a list of commands. (something that I am yet to get my head around the reasoning for.).

Can you consider adding this option?

This is essentially what -n is for. The script is output into .qbatch/
but is not submitted to the queue. Does that work for you?

Yes it does. I had a look a the commit history and saw chatter about this regarding the name of the directory. I'm in general against creating hidden folders/files in the current directory and tend to put things in $TMPDIR. What happens when you don't have write permission for the current dir?
I guess this one then turns into a documentation request to make it obvious to the user as to what happens on a dry run.

@andrewjanke qbatch only outputs multiple scripts if you specify individual jobs instead of array jobs (for a list of commands).
As for the output directory, it's configured via a environment variable, so you can customize https://github.com/pipitone/qbatch/blob/master/bin/qbatch#L23

@andrewjanke new docstring in #107 okay?

Fine by me


Typo in samba shares configuration

Describe the bug
We're not setting browseable: yes in the samba shares config but instead browsable: yes. This results in no functional change since shares are browseable by default, but it's a typo nonetheless.
https://github.com/bertvv/ansible-role-samba
You can confirm this this is a typo by setting browsable: no and seeing that your share is still browsable, however setting browseable: no does what you'd expect.

@elliotpryde I tested browsable: no when I first setup ansible-nas and wondered why it didn't work as expected. Good find! Thanks.


Document GPU particles visibility rect/aabb behavior

Closes #21887.

Thanks!

Thanks!

Cherry-picked for 3.2.4.

Cherry-picked for 3.2.4.


workbench.colorCustomizations  can't change color

Other characters can change color, only folder is always blue, this color limits my theme, and makes me very uncomfortable, I hope to change here

Try to experiment and find the color, starting with:
"terminal.ansiBlue"
"terminal.ansiBrightBlue"
"terminal.ansiMagenta"
"terminal.ansiBrightMagenta"

I changed all this to black, but it didn't work

Are you sure you saved your settings file?

If so, can you turn on the DOM renderer (setting "terminal.integrated.rendererType": "dom")and then inspect the DOM (Help > Toggle Developer Tools) to see what class structure the row in question has, you want to look for the .xterm-rows` element:


mosdepth: 0.2.9 -> 0.3.1

Motivation for this change
Update mosdepth.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

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

1 package built:

mosdepth


Corrected - IOU Description extends beyond the page if recipient name is long

@aimane-chnaif @mountiny PR is ready for review.
Details
Whenever we request money from account A to account B and if account B has long name or email at that time IOU  description will extend beyond the page limit. So in this PR we corrected that problem.
Fixed Issues
$ https://github.com/Expensify/App/issues/18882
PROPOSAL: https://github.com/Expensify/App/issues/18882#issuecomment-1546529050
Tests
Preconditions: Make sure account B has long name or long email.

Login to account A
Request money from account A to B
Verify that IOU description (e.g.  'UserB owes ₹287.33') beneath the IOUPreview does not extend beyond the page limit.

[x] Verify that no errors appear in the JS console

Offline tests
Preconditions: Make sure account B has long name or long email.

Login to account A
Request money from account A to B
Verify that IOU description (e.g.  'UserB owes ₹287.33') beneath the IOUPreview does not extend beyond the page limit.

QA Steps
Preconditions: Make sure account B has long name or long email.

Login to account A
Request money from account A to B
Verify that IOU description (e.g.  'UserB owes ₹287.33') beneath the IOUPreview does not extend beyond the page limit.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
Chrome
https://github.com/Expensify/App/assets/7823358/a88c3c33-aacb-450d-a70d-aa18a2d0a704
Safari
https://github.com/Expensify/App/assets/7823358/9d8ea237-f830-4fb8-8f54-d8c752283599

Mobile Web - Chrome
https://github.com/Expensify/App/assets/7823358/9a2d6b65-598a-4d6f-bfff-a38c1936febc

Mobile Web - Safari
https://github.com/Expensify/App/assets/7823358/0ed83c77-8dfd-4a14-9d98-4b546380164b

Desktop
https://github.com/Expensify/App/assets/7823358/2f97f536-236f-4280-b13b-4d1d0ea8ece8

iOS
https://github.com/Expensify/App/assets/7823358/d1b2224a-7143-4f99-ad74-5f50c044bc2a

Android
https://github.com/Expensify/App/assets/7823358/3ab30308-4b4b-4578-b01d-7e6bfafca51c

🚀 Cherry-picked to staging by https://github.com/mountiny in version: 1.3.14-9 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

@PrashantMangukiya @aimane-chnaif @mountiny we are getting issue on Desktop when resizing. seems minor and not sure if this will block PR. Let me know. We didnt log it yet
https://github.com/Expensify/App/assets/43995119/a41bfb9d-e106-4188-938c-a8dddf4a5256

@mvtglobally  I did test on my pr branch. it looks like working as expected as shown in video.
https://github.com/Expensify/App/assets/7823358/ce186e71-6150-4c09-b526-0202c194efca
https://github.com/Expensify/App/assets/7823358/9983d3ee-7640-498d-84dd-6001b48a5d07

@mvtglobally This I tested on latest main branch. It is working there too.
https://github.com/Expensify/App/assets/7823358/ef2bd8f0-d0e9-48a9-b1c6-c832f629f1a9

🚀 Deployed to production by https://github.com/yuwenmemon in version: 1.3.14-14 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Cherry-picked to staging by https://github.com/AndrewGable in version: 1.3.28-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by https://github.com/AndrewGable in version: 1.3.28-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Fix kF value for thermal PI controller

The thermal controller for C3 broke due to this PR: #23752 which set the default feedforward gain to 0

"interp" in feedforward is just "P"
fan_pwr_out = -int(controller.update(setpoint=75, measurement=max_cpu_temp))+30
controller = PIController(k_p=2, k_i=2e-3, neg_limit=-50, pos_limit=30, rate=(1 / DT_TRML))


Observation for Vertex gemini chat model streaming operation

Adding observability for Vertex Gemini chat model streaming call
Updating auto-configuration for gemini chat model with the observability components
Integration test for streaming observability

merged in bac002bf8356be99ff0fca5eac9e855ca1941c01


[WIP] Refactoring: Refactor opacity style to component

Depends on https://github.com/revery-ui/revery/pull/540

Superceded by #671


remove institutional logins from dialog

Description
This PR removes the institutional login section from our login dialog.

Related Ticket

Resolves #1822

Checklist

[x] I have run npm run build-all without errors
[x] I have formatted JS and TS files with npm run format-all

@sprrwhwk this looks good
just want to confirm that the Use Mumbai Torus checkbox will not show up in Production (it is only meant to be seen in preview and staging links)

I just checked the code and it's not supposed to show up on production. There's checks in place that query the deployment environment and hide it on production.


V1.1.0 version Keberos bug related repair, SQL SET value does not take effect, etc. #3875

Fix the following issues:
Feature:

Added getJobInstanceListapi in APIController.
table.topic.map, using topic:tableName,eg: topic1:tableA;topic2:tableB,tableC, can reduce the creation of topics.

Fix:

FlinkAPI Kerberos might start with http or https.
In ExecutorConfig, if the address starts with http://xx, the splitting is incorrect.
Fixed value passing issue in KafkaSinkBuilder, where DeliveryGuarantee was always set to EXACTLY_ONCE because the default submission is in Dinky.
Fixed the issue where the environment variable set 'xxxx' in MysqlCDCBuilder SQL did not take effect.
Fixed the redirection issue in JobOperator.tsx.

Pending:
https://github.com/DataLinkDC/dinky/issues/3874#issuecomment-2419108471
PS: Thanks to the community for contributing such a useful tool!

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

#3874  will be fixed by #3889

@chenhaipeng 你好, 请合并主仓库最新代码 解决 CI 过程出现的问题, 并将您的 Pr title 进行简单规范, 再次感谢您的贡献

@chenhaipeng 你好, 请合并主仓库最新代码 解决 CI 过程出现的问题, 并将您的 Pr title 进行简单规范, 再次感谢您的贡献

我已经重新合并了，pr comit title 简单修改了

dinky-core/src/main/java/org/dinky/api/FlinkAPI.java构造函数的修改，导致主动触发savepoints的触发都报String index out of range: 0。。。


Self-Healing services with Hystrix

Kindly verify the commit 091ea10

@ahamedm I assume this one is the old one- let me know if this is not the case


no matroska file despite --merge-output-format mkv

i use this command line to download videos from a playlist
/home/pi/bin/youtube-dl -o '%(channel_id)s--%(upload_date)s--%(title)s.%(ext)s' --download-archive archive.txt url
this is the config file i use in ~/.config/youtube-dl/config
-f 'bestvideo[height<=720,ext=av01]+bestaudio[ext=m4a]/best'
--merge-output-format mkv
#--restrict-filenames

as you can see i've commented out --restrict-filenames because this deletes the german umlauts in the video title. Now the videos are saved as mp4 and not as mkv. What is the problem here? when i delete the # it works.

Invalid format selection expression resulting in fallback to best that does not involve merging.


fix: Optionally lookup for the latest task definition

Description
A data lookup for the latest task definition revision to be used in the
ECS service was enabled by default, which continually appeared in
plans/applies.
This is used when the task definition's updated by an external
deployment tool, so this is now disabled and requires enabling the
external_task_definition_updates variable so the default behaviour is
quiet.
Motivation and Context
A fix for #72 as an alternative to #124 which removed the functionality for external deployment tools.
I don't need the external tool support, but I am trying to make the default behaviour quieter and not show this update on every run.
Breaking Changes
Yes, for people using external deployment tools, they should set this new external_task_definition_updates variable to true. This feels like the exception as the default behaviour of the module is to deploy the task definition itself.
How Has This Been Tested?
Two tests, one with the default behaviour (external_task_definition_updates set to false) and verified with a plan that there are no proposed changes/noise:
No changes. Infrastructure is up-to-date.

This means that Terraform did not detect any differences between your
configuration and real physical resources that exist. As a result, no
actions need to be performed.

and again with it set to true shows the previous behaviour:
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  ~ update in-place
 <= read (data resources)

Terraform will perform the following actions:

  # module.atlantis.data.aws_ecs_task_definition.atlantis[0] will be read during apply
  # (config refers to values not yet known)
 <= data "aws_ecs_task_definition" "atlantis"  {
      + family          = (known after apply)
      + id              = (known after apply)
      + network_mode    = (known after apply)
      + revision        = (known after apply)
      + status          = (known after apply)
      + task_definition = "atlantis"
      + task_role_arn   = (known after apply)
    }

  # module.atlantis.aws_ecs_service.atlantis will be updated in-place
  ~ resource "aws_ecs_service" "atlantis" {
        cluster                            = "arn:aws:ecs:eu-west-1:...:cluster/atlantis"
        deployment_maximum_percent         = 200
        deployment_minimum_healthy_percent = 50
        desired_count                      = 1
        enable_ecs_managed_tags            = false
        health_check_grace_period_seconds  = 0
        iam_role                           = "aws-service-role"
        id                                 = "arn:aws:ecs:eu-west-1:...:service/atlantis/atlantis"
        launch_type                        = "FARGATE"
        name                               = "atlantis"
        platform_version                   = "LATEST"
        propagate_tags                     = "NONE"
        scheduling_strategy                = "REPLICA"
        tags                               = {
            "Name" = "atlantis"
        }
      ~ task_definition                    = "atlantis:3" -> (known after apply)

        deployment_controller {
            type = "ECS"
        }

        load_balancer {
            container_name   = "atlantis"
            container_port   = 4141
            target_group_arn = "arn:aws:elasticloadbalancing:eu-west-1:...:targetgroup/atlantis/5af07546b36138a7"
        }

        network_configuration {
            assign_public_ip = false
            security_groups  = [
                "sg-063b57edb4bf146f1",
            ]
            subnets          = [
                "subnet-03b28a46d19970c62",
                "subnet-0c1bf5c14d0d97232",
                "subnet-0fa2dd26cbd903e82",
            ]
        }
    }

Plan: 0 to add, 1 to change, 0 to destroy.

Nice this looks like an elegant work around given the context.

Hi @antonbabenko
Any chance we can get this merged?
Wanted to stop using our fork and this is one of the outstanding issues before we flip back to the using the latest release

Thanks to everyone involved for this improvement.
Fixes #72. Fixes #124.
v2.36.0 has been just released.


when calling 'https://api.smith.langchain.com/feedback', no data return. it happened 2024/08/15 afternoon. it work before

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
self.request_with_retries(
            "get",
            f"{self.api_url}{path}",
            request_kwargs={
                "params": params,
                "headers": self._headers,
                "timeout": self.timeout_ms / 1000,
            },
        )

return []
Error Message and Stack Trace (if applicable)
No response
Description
I'm trying use "feedback" get my data. but return []
System Info
langsmith = "0.1.10"
windows10

Is this when you're using
client.list_feedback()

?
And could you confirm that the API key you have configured is still pointing to a workspace htat contains feedback?


Appropriate attribution to WonderCMS - MIT license requirements

Hello @shoaiyb
First of all, good work on forking and heavily modifying WonderCMS, this project looks pretty good.
However we're sad to see there is zero attribution (or we failed to find it) for WonderCMS, which is released under the MIT license.
After a code review and going through your app, we still notice some exact code and functionality copied directly from WonderCMS. At some places it's fairly obvious, on some parts some minor or major changes were made.

Forking an MIT licensed project includes:
Include Copyright

You must include the copyright notice in all copies or substantial uses of the work.
Include License
You must include the license notice in all copies or substantial uses of the work.

Additionally

Someone can't make a "GPL fork" of a MIT-licensed project. The new code they add can be GPL-licensed, but they cannot simply change the licensing of the existing code from MIT to GPL. The text of the original MIT license must be intact.

How to resolve this:

Adding "Fork of WonderCMS" in your index.php file in the comment Iwhere it originally stated the license, WonderCMS name and website)-> https://github.com/BoidCMS/BoidCMS/blob/master/index.php
Retaining the original MIT license and attributions in the readme file.

Opened this discussion also on your discussions board: https://github.com/BoidCMS/BoidCMS/discussions/12
Edit: After further discussion with the team, we agreed to provide a simple example
WonderCMS code:
  /**
   * Get CSRF token
   * @return string
   * @throws Exception
   */
  public function getToken(): string
  {
    return $_SESSION['token'] ?? $_SESSION['token'] = bin2hex(random_bytes(32));
 }

BoidCMS code:
  /**
   * CSRF token
   * @return string
   */
  public function token(): string {
    return ( $_SESSION[ 'token' ] ?? $_SESSION[ 'token' ] = bin2hex( random_bytes(32) ) );
  }

We love forks and open source projects and we'd love to resolve this and give you a friendly mention for an awesome fork on our Twitter. Supporting and attributing each other is a big point in the open source community.

See https://github.com/BoidCMS/BoidCMS/discussions/12

@BoidCMS @shoaiyb would you be so kind to leave this issue opened for the open source community to decide on their own?
-- Pasting full response from #12
@BoidCMS thank you for the response, however as mentioned there seem to be more similarities as mentioned previously.
While flat file CMSes share a lot of things in common, we'd ask you to review the things are are indeed to similar and identical, both code and logic wise.
We're prefacing this post of the examples below starting with this article, where BoidCMS is explained to offer things that WonderCMS hasn't:

https://dev.to/shoaiyb/boidcms-a-simple-fast-and-super-extensible-cms-8gg

Additional examples follow below.
Example 1 (readme vs readme and about me)

WonderCMS description

It's installed without any configuration, since no relational database (like MySQL) is required.

BoidCMS description from the commit history (exact copy paste)

It's installed without any configuration, since no relational database (like MySQL) is required.
https://github.com/BoidCMS/BoidCMS/commit/eb49deed1be0f24e766c54f264a45a74e259b951

You'll also find the exact same heading titles as well in the commit.

Short history Who, why? (taken from WonderCMS about page)

Similarly, from the BoidCMS readme above.

Example 2

Almost identical database structure (with BoidCMS having more fields)

// WonderCMS database.js
{
    "config": {
        "siteTitle": "Website title",
        "theme": "default",
        "defaultPage": "home",
        "login": "loginURL",
        "loggedIn": false,
        "forceLogout": false,
        "password": "$2y$10$Lg9eLfREO.L2XuLmNRPYk.Yot.h080QDwyx48dvMUXqFdCyVg5NZ6",
        "lastLogins": {},
        "defaultRepos": {
            "themes": {},
            "plugins": {},
            "lastSync": null
        },
        "customRepos": {
            "themes": {},
            "plugins": {}
        },
        "menuItems": {
            "0": {
                "name": "Home",
                "slug": "home",
                "visibility": "show"
            },
            "1": {
                "name": "Example",
                "slug": "example",
                "visibility": "show"
            }
        }
    },
    "pages": {
        "404": {
            "title": "404",
            "keywords": "404",
            "description": "404",
            "content": "
Sorry, page not found. :(<\/h1>"
        },
        "home": {
            "title": "Home",
            "keywords": "Keywords, are, good, for, search, engines",
            "description": "A short description is also good.",
            "content": "
Website alive!<\/h1>\n\n
Click to login.<\/a> Your password is: Xj4v67CI<\/b><\/a><\/h4>"
        },
        "example": {
            "title": "Example",
            "keywords": "Keywords, are, good, for, search, engines",
            "description": "A short description is also good.",
            "content": "
How to create new pages<\/h1>\n
Settings -> General -> Add page<\/i><\/p>\n\n
How to edit anything<\/h1>\n
Click anywhere inside the gray dashed area to edit. Click outside the area to save.<\/p>\n\n
How to install\/update themes and plugins<\/h1>\n
By opening the Settings panel, you can install or update themes and plugins.<\/p>"
        }
    },
    "blocks": {
        "subside": {
            "content": "
About your website<\/h3>\n\n
Website description, photo, contact information, mini map or anything else.<\/p>\n
This blue editable area is visible on all pages.<\/p>"
        },
        "footer": {
            "content": "©2020 Your website"
        }
    }
}

// BoidCMS database.json
{
    "site": {
        "lang": "en",
        "title": "BoidCMS",
        "keywords": "BoidCMS, Keywords, for, seo",
        "subtitle": "Simple, fast, super extensible.",
        "descr": "Simple, fast, super extensible CMS to build simple websites at ease.",
        "url": "http:\/\/example.com\/",
        "email"<EMAIL_ADDRESS>        "username": "admin",
        "password": "$2y$10$...",
        "footer": "Copyright © 2022",
        "theme": "visual",
        "admin": "admin"
    },
    "pages": {
        "404": {
            "type": "page",
            "title": "Not Found",
            "descr": "404 Page Not Found",
            "keywords": "404",
            "content": "
It looks like nothing was found at this location.<\/p>",
            "thumb": "",
            "date": "",
            "pub": true
        },
        "hello-world": {
            "type": "post",
            "title": "Welcome to BoidCMS!",
            "descr": "Welcome to your new website",
            "keywords": "BoidCMS, Keywords, for, seo",
            "content": "
Welcome to BoidCMS!<\/h1>
This is a sample post, login now to edit or delete it.<\/p>
Have fun! :)<\/p>",
            "thumb": "",
            "date": "2022-07-26T07:58:28",
            "pub": true
        }
    },
    "installed": {}
}

Example 3
Comparing WonderCMS index.php and BoidCMS unset actions:
unset($_SESSION['loggedIn'], $_SESSION['rootDir'], $_SESSION['token'], $_SESSION['alert']);
unset( $_SESSION[ 'logged_in' ], $_SESSION[ 'root' ], $_SESSION[ 'token' ], $_SESSION[ 'alerts' ] );
Similarly, you'll find a very similar alert function (our original name was alerts)
Example 4
Comparing the save function

wcms: https://github.com/robiso/wondercms/blob/4b203539a566250ac0080a0cba65cf47bd5225d7/index.php#L2041
bcms: https://github.com/BoidCMS/BoidCMS/blob/master/app/app.php#L205

Example 5

Same logic for creating data/plugings/themes and generating database.json file upon installation.

Example 6

Nearly identical .htaccess file (except for the last line) and p being renamed to page.
wcms

Options -Indexes
ServerSignature Off
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA,L]
RewriteRule database.js - [F]
RewriteRule cache.json - [F]

bcms
Options -Indexes
ServerSignature Off
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?p=$1 [QSA,L]
RewriteRule ^(app|data)/.*$ - [R=404,L]

Example 7
Using our hacked way of URL's which is pretty unique and has been critizised in the past (the pull code can be found in both of our repositories)
(( $_SERVER[ 'SERVER_PORT' ] == '80' ) || ( $_SERVER[ 'SERVER_PORT' ] == '443' ) ) ? '' : ':' . $_SERVER[ 'SERVER_PORT' ] )
(($_SERVER['SERVER_PORT'] == '80') || ($_SERVER['SERVER_PORT'] == '443')) ? '' : ':' . $_SERVER['SERVER_PORT'])
Example 8

Exact text copy/pasts like some of our errors:

$msg = 'Failed to move uploaded file';

$this->alert('danger', 'Failed to move uploaded file.');

Example 9
Exact same order and nearly identical code for handling uploading files
wcms
			case UPLOAD_ERR_OK:
				break;
			case UPLOAD_ERR_NO_FILE:
				$this->alert('danger',
					'No file selected. Re-open file options');
				$this->redirect();
				break;
			case UPLOAD_ERR_INI_SIZE:
			case UPLOAD_ERR_FORM_SIZE:
				$this->alert('danger',
					'File too large. Change maximum upload size limit or contact your host. Re-open file options');
				$this->redirect();
				break;
			default:
				$this->alert('danger', 'Unknown error.');
				$this->redirect();

bcms
      case UPLOAD_ERR_OK:
        break;
      case UPLOAD_ERR_NO_FILE:
        $msg = 'No file has been sent';
        return false;
        break;
      case UPLOAD_ERR_INI_SIZE:
      case UPLOAD_ERR_FORM_SIZE:
        $msg = 'File too large';
        return false;
        break;
      default:
        $msg = 'An unexpected error occurred';
        return false;
        break;
    }

Example 10 (taken from older version of WonderCMS)
Using theme selector within settings function
		foreach (glob(__DIR__ . '/themes/*', GLOB_ONLYDIR) as $dir) {
			$output .= '<option value="' . basename($dir) . '"' . (basename($dir) == wCMS::get('config', 'theme') ? ' selected' : '') . '>' . basename($dir) . ' theme' . '</option>';
		}

          foreach ( $this->themes as $theme ) {
            $layout[ 'content' ] .= '<option value="' . $theme . '"' . ( $this->get( 'theme' ) === $theme ? ' selected' : '' ) . '>' . ucwords( str_replace( '-', ' ', $theme ) ) . '</option>';
          }

Example 11

Loggedin defined within "gods" class and just renamed
isset($_SESSION['loggedIn'], $_SESSION['rootDir']) && $_SESSION['rootDir'] === $this->rootDir;
isset( $_SESSION[ 'logged_in' ], $_SESSION[ 'root' ] ) ? $this->root === $_SESSION[ 'root' ] : false );

Conclusion
There are numerous other similarities (or modified copies) of our code including a replica bug which was present on an older version of WonderCMS, which is pretty evident.
The exact copies of certain things (or slightly modified) are extremely unlikely to happen within two projects of the same kind. We're going to leave the opinion of this discussion to the open source community.
Thanks for your response and kind regards.

@BoidCMS @shoaiyb
@BoidCMS changed reviewed and approved on the private repository.
As soon as this is merged we're closing this issue and becoming your official fans and supporters via a Twitter post!

Changes have been merged.

@BoidCMS @shoaiyb we're preparing a Twitter post in order to support you.

Do you possibly have a Twitter handle?
Should we link to https://boidcms.github.io/ or is there any other URL you would prefer?


Terms preset does not work properly

If I understood it correctly, terms list in preset are synonyms for one kind of structure. For instance, given the French presets, Digue should be equivalent of Terre-plein (for key embankment). However if a select a line and type Digue, Terre-plein is the 32nd of 34 total results while it should have been the 1st.
The same goes for other words (WC is not leading to toilets, etc.), so am I misinterpreting these terms or is something wrong?
Using iceweasel 40.0 on Debian 4.1.5-1, same behavior on 2 different computers as well as on Windows/Firefox. French installed on both computers but one has iceweasel in French while the other has it in English.

Same here.
Steps to reproduce:

set your OSM account to Dutch
open the iD instance at osm.org
add a point
search for 'wc'
Expected result: 'Toiletten' is the top match
Actual result: 'Toiletten' isn't even in the list at all

OK, I think I found the reason behind that semi-random behavior. terms array must be filled with synonyms lowercase  AND comma-separated (without space). For instance, amenity/toilets for French is:

"terms": "Toilettes, WC"

To work properly, it must be changed to:

"terms": "toilettes,wc"

I am not sure where the fix should be though. Some solutions could be:

preset.terms should trim terms after splitting?
collection.search should convert to lowercase everything when comparing 2 strings?
format presets.json and all translated JSON so that preset.terms are correctly formatted. Must be done automatically after fetching new translations from Transifex (maybe in Makefile). This solution is not needed if both 1) and 2) are done.

OK, I think I found the reason behind that semi-random behavior. terms array must be filled with lowercase AND comma-separated (without space) synonyms.

No, that should not have any impact. It is true that lowercase and without spaces is preferable, but it is not necessary to have the search work.

What is doing the work for it then? I tried on a local copy and had it working only by changing as mentioned. But I am not js programmer so I believe you. However I could not find the code handling that; can you point me in its direction? :)

I haven't looked at that code myself, I was told so by an iD developer some time ago. IIRC it splits on commas and then calculates the Levenshtein distance.

This seems to be the relevant code:
https://github.com/openstreetmap/iD/blob/master/js/id/presets/collection.js#L75, but I am not really familiar with the code.

Well, Levenshtein distance is not the only method used; basically search is documented to do the following. It will compare  the given value converted to lowercase:

with all presets' name (lowercased)
then all presets' terms (not lowercased)
then all presets' tags (not lowercased)
then levenshtein distance for all presets' name (maybe is it case insensitive, but not sure about that)
then levenshtein distance for all presets' terms (maybe is it case insensitive, but not sure about that)
then it concatenates all these result in the order above (not sure about that totally).

So even if levenshtein distance will find the result some time, in will not give the expected result - when a given input value is exactly a term value, it should be the first in the results list . And moreover, Levenshtein may not behave correctly to trailing space nor case issues while it should not affect results list.

Observation of the app's behaviour:

changing the case does not affect the search results
putting a space in front of your word does, but it still doesn't find our toilets in the Dutch version.

What did you modify? In nl.json there is only one entry in terms which is WC. If you change it to:

            "terms": "wc"

Then recompile the application entirely with make clean && make (otherwise it seems to not be reloaded). Then launch python -m SimpleHTTPServer and try again. It is working for me, I do not see why we would get different behaviors.

I was trying on the production version on osm.org. Will try locally now.

Seems you are right. Without capitals it finds it.

I am working on this. I first changed js/id/presets/preset.js # 49:
/*from*/ return preset.t('terms', {'default': ''}).split(',');
/* to */ return preset.t('terms', {'default': ''}).toLowerCase().split(',');

but then I thought: why make the client do all that work, when we can settle this at make translations-time. Now I am learning lodash to accomplish this.


Jio TV not working still in Kodi 20.0 Nexus update

Your Environment

Add-on name: [e.g. Jiotv]
Add-on version: [e.g. 2.0.0]
Kodi version: [e.g. Kodi 19]
Operating system version/name: [e.g. Windows 10, LibreElec 9.0, etc...]
Using from country: [eg. India, USA, etc...]

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See an error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
Debug log

The debug log can be found from this link:

I confirm, Its working fine in Nexas version.

It is giving a login error for jio how can it work??
On Wed, 18 Jan, 2023, 1:00 pm shhahid7, @.***> wrote:

I confirm, Its working fine in Nexas version.
—
Reply to this email directly, view it on GitHub
https://github.com/botallen/repository.botallen/issues/356#issuecomment-1386606709,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5EJX7PRBQZZIV3TWHO4BBLWS6L2NANCNFSM6AAAAAAT5MHTL4
.
You are receiving this because you authored the thread.Message ID:
@.***>

nope its not giving any login error for me, its working fine in Nexus version.

32 bit or 64 bit you are using?
On Thu, 19 Jan, 2023, 2:53 pm shhahid7, @.***> wrote:

nope its not giving any login error for me, its working fine in Nexus
version.
—
Reply to this email directly, view it on GitHub
https://github.com/botallen/repository.botallen/issues/356#issuecomment-1396670437,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5EJX7NBXETOV6RQBDV36J3WTEBZDANCNFSM6AAAAAAT5MHTL4
.
You are receiving this because you authored the thread.Message ID:
@.***>

in Android Tv its arm7a and on Windows its 64 bit

Nope it's not working with arm 7a gives time out error on login screen
itself, for different TV's may be different issue
On Fri, 20 Jan, 2023, 10:04 am shhahid7, @.***> wrote:

in Android Tv its arm7a and on Windows its 64 bit
—
Reply to this email directly, view it on GitHub
https://github.com/botallen/repository.botallen/issues/356#issuecomment-1397912579,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5EJX7NMODV663HX4A6J5UDWTIIWBANCNFSM6AAAAAAT5MHTL4
.
You are receiving this because you authored the thread.Message ID:
@.***>

I confirm, Its working fine in Nexas version.

Kindly provide full installation process and settings please

It was working perfect in Matrix version of Kodi, I updated to Nexus yesterday and it is not working. I am using it on Nvidia Shield tv.

Now it's asking to update the jio tv app. How to update it?


MM-20928 Fixed hostname too long in stats key

The hostnames on community-daily and community-release proved to be too long for the key to be included directly. Hashing them now.
Fixes https://mattermost.atlassian.net/browse/MM-20928

@levb was going to ask for a test, but I don't think it would help here.


hindi fonts loading issue with some pdf

hi,
 i am trying to load pdf with hindi fonts. In some pdf  i am getting wrong characters. With some pdf it is working fine but with some it's not loading correctly........

When reporting an issue, please make sure that you read https://github.com/mozilla/pdf.js/blob/master/CONTRIBUTING.md.

Unfortunately even with the edit made to the initial post, this issue is still missing all the necessary details!
I'm quoting from the first paragraph of https://github.com/mozilla/pdf.js/blob/master/CONTRIBUTING.md, with emphasis on the required information:

The issues are used to track both bugs filed by users and specific work items for developers. Try to file one issue per problem observed. Please specify a valid title (e.g. "Glyph spacing is incorrect" instead of "PDF.js does not work") and provide more details about the issue: link to the PDF, location in the PDF, screenshot, browser version, operating system, PDF.js version and JavaScript console warning/error messages. Issues that do not have enough details provided will be closed as invalid/incomplete.

Closing as incomplete until the information requested above is provided.


StreamingResponse SSE text/event-stream requires "data:" prefix and "\n\n" terminator to work properly

Let's say you have a FastAPI endpoint that returns this:
return StreamingResponse.from_chain(
            chain,
            request.messages[-1].content,
            as_json=True,
            media_type="text/event-stream",
        )

StreamingResponse.from_chain works with fetch but not with other ways like using Postman which has support for SSE now.  This is because the callbacks don't add the "data:" prefix or newline terminators expected.  So if you test out an endpoint in Postman or use something like Axios clients the stream doesn't send events until it's done.  The fix is to change the async streaming response callbacks to something like this:

class AsyncStreamingResponseCallback(AsyncLanarkyCallback):
    """Async Callback handler for StreamingResponse."""

    send: Send = Field(...)

    def _construct_message(self, content: str) -> Message:
        """Constructs a Message from a string."""
        return {
            "type": "http.response.body",
            "body": f"data: {content}\n\n".encode("utf-8"),
            "more_body": True,
        }

class AsyncStreamingJSONResponseCallback(AsyncStreamingResponseCallback):
    """Async Callback handler for StreamingJSONResponse."""

    send: Send = Field(...)

    def _construct_message(self, content: StreamingJSONResponse) -> Message:
        """Constructs a Message from a dictionary."""
        return {
            "type": "http.response.body",
            "body": f"data: {json.dumps(content.dict(), ensure_ascii=False, allow_nan=False, indent=None, separators=(',', ':'))}\n\n".encode("utf-8"),
            "more_body": True,
        }

I'll get around to making a pull request for this (after some more testing), but wanted to flag it right away.

@ajndkr Assign this one to me if you like.

@auxon interesting! how would the parsing on the client side work if a user wants to use fetch?

@ajndkr Hey, sorry for the delay - had a busy week at work.  I actually tried to commit the fix to my fork but there was some weird issue with the pre-commit hooks, with some SSL issue, trying to get it working.  I tried again a few days later, but it was still a problem.  May have to do it on my MacBook to get it working.
As for the parsing with fetch - well if it streams token by token you can just use a regex to extract the content, but in my case I actually stream the events in the event-stream from the Python API to an ASP.NET server to another ASP.NET server before processing it in the frontend React UI, and by then the stream doesn't arrive token by token anymore.  So, I have to do this (removed UI specific things):
           const response = await fetch(endpoint, {
            method: 'POST',
            headers: {
              'Connection': 'keep-alive',
              'Content-Type': 'application/json',
            },
            signal: signal,
            body: body,
          });

            const reader = data.getReader();
            const decoder = new TextDecoder();
            let done = false;
            let isFirst = true;
            let text = '';
            let docSources: Source[] = [];
            let chunkValue = '';
            while (!done) {
              if (stopConversationRef.current === true) {
                controller.abort();
                done = true;
                break;
              }
              const { value, done: doneReading } = await reader.read();
              done = doneReading;
              if(done) {
                break;
              }
              chunkValue += decoder.decode(value as Uint8Array);
              let endPos = chunkValue.lastIndexOf('\n\n');
              if (endPos !== -1) {
                let processChunk = chunkValue.substring(0, endPos + 2);
                chunkValue = chunkValue.substring(endPos + 2); // keep the characters after '\n\n'
                const regex = /data:\s?({.*?})\n\n/g;
                const matches = [...processChunk.matchAll(regex)];
                const jsonStrings = matches.map((match) => match[1]);
                if (jsonStrings.length > 0) {
                  text += jsonStrings.map((jsonString) => {
                    if (jsonString.startsWith('{"token":')) {
                      const jsonObject = JSON.parse(jsonString);
                      const tokenValue = jsonObject.token;
                      return tokenValue;
                    } else if (jsonString.startsWith('{"source_documents":')) {
                      const jsonObject = JSON.parse(jsonString);
                      const sourceDocs = jsonObject.source_documents;
                      docSources = sourceDocs.map((sourceDoc: { page_content: string, metadata: { source: string; }; }) =>
                        ({ url: sourceDoc.metadata.source, page_content: sourceDoc.page_content })
                      );
                    }
                    else
                    {
                      return jsonString;
                    }
                  }).join('');
                }

Then the UI is updated with the text as it changes and docSources at the very end.

As for the parsing with fetch - well if it streams token by token you can just use a regex to extract the content, but in my case I actually stream the events in the event-stream from the Python API to an ASP.NET server to another ASP.NET server before processing it in the frontend React UI, and by then the stream doesn't arrive token by token anymore. So, I have to do this (removed UI specific things):

I see! okay... let's maybe do the following:
instead of:
def _construct_message(self, content: StreamingJSONResponse) -> Message:
        """Constructs a Message from a dictionary."""
        return {
            "type": "http.response.body",
            "body": f"data: {json.dumps(content.dict(), ensure_ascii=False, allow_nan=False, indent=None, separators=(',', ':'))}\n\n".encode("utf-8"),
            "more_body": True,
        }

It might be better to do something like:
def _construct_message(self, content: StreamingJSONResponse) -> Message:
        """Constructs a Message from a dictionary."""
        return {
            "type": "http.response.body",
            "body": f"{self.body_prefix}{json.dumps(content.dict(), ensure_ascii=False, allow_nan=False, indent=None, separators=(',', ':'))}{self.body_suffix}".encode("utf-8"),
            "more_body": True,
        }

provides flexibility for other users imo.

I actually tried to commit the fix to my fork but there was some weird issue with the pre-commit hooks, with some SSL issue, trying to get it working. I tried again a few days later, but it was still a problem. May have to do it on my MacBook to get it working.

about this, don't worry about pre-commit. if the code check fails, i will run the linters on my end and fix any errors.

@auxon feel free to test the new feature from main branch. It will be part of v0.8 release (will make a new release by next week or so)


Add MsalAuthenticationTemplate to Getting Started doc

Adds a section to getting started doc explaining how to use MsalAuthenticationTemplate component
Closes #2988

Coverage increased (+3.3%) to 86.077% when pulling caf92acd34bad788be0dd1b090a3f2ad1d9cf552 on MsalAuthenticationTemplate-docs into cca28f4e40e8f0d873401f186219174074354faa on dev.


Added checks for clickjacking vulnerability w.r.t CSP

As discussed with you after your talk at Null meet, I have added additional checks for clickjacking vulnerability with respect to Content Security Policy. Please test and review once before merging.

Thanks @davidvalles007


[bugfix](inverted index) fix inverted index to support NULL value filter

Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run p0

run buildall

run buildall

run buildall


Extension causes high cpu load

Issue Type: Performance
Extension Name: unocss
Extension Version: 0.45.13
OS Version: Windows_NT x64 10.0.19043
VS Code version: 1.70.2

:warning: Make sure to attach this file from your home-directory:
:warning:file:///c%3A/Users/admin/AppData/Local/Temp/antfu.unocss-unresponsive.cpuprofile.txt
Find more details here: https://github.com/microsoft/vscode/wiki/Explain-extension-causes-high-cpu-load

We temporarily close this due to the lack of enough information.
Please provide a minimal reproduction to reopen the issue.
Thanks.

Why reproduction is required


Combobox: Allow PopperJS to position menu correctly

Fixes #1451 This enables dialog flip and preventing overflow by adding height and width to Combobox menu
Additional description
.slds-dropdown sets the menu to absolute positioning, since it has a relative parent. Absolute positioning removes clientHeight and clientWidth which Popper.js needs to absolute position the menu's wrapping div. Absolute positioning an already absolute positioned element doesn't work. Setting the menu's position to relative allows PopperJS to work it's magic.
https://design-system-react-co-pr-1454.herokuapp.com/?selectedKind=SLDSModal&selectedStory=Small with footer%2C not dismissible&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel
@qyiming Please pull down and review in your sidebar.

CONTRIBUTOR checklist (do not remove)
Please complete for every pull request

[ ] First-time contributors should sign the Contributor License Agreement.  If you haven't before, wait a few minutes and a bot will comment on this pull request with instructions.
[ ] npm run lint:fix has been run and linting passes.
[ ] Mocha, Jest (Storyshots), and components/component-docs.json CI tests pass (npm test).
[ ] Tests have been added for new props to prevent regressions in the future. See readme.
[ ] Review the appropriate Storybook stories. Open http://localhost:9001/.
[ ] The Accessibility panel of each Storybook story has 0 violations (aXe). Open http://localhost:9001/.
[ ] Review tests are passing in the browser. Open http://localhost:8001/.
[ ] Review markup conforms to SLDS by looking at DOM snapshot strings.

REVIEWER checklist (do not remove)

[ ] TravisCI tests pass. This includes linting, Mocha, Jest, Storyshots, and components/component-docs.json tests.
[ ] Tests have been added for new props to prevent regressions in the future. See readme.
[ ] Review the appropriate Storybook stories. Open http://localhost:9001/.
[ ] The Accessibility panel of each Storybook story has 0 violations (aXe). Open http://localhost:9001/.
[ ] Review tests are passing in the browser. Open http://localhost:8001/.
[ ] Review markup conforms to SLDS by looking at DOM snapshot strings.
[ ] Add year-first date and commit SHA to last-slds-markup-review in package.json and push.
[ ] Request a review of the deployed Heroku app by the Salesforce UX Accessibility Team.
[ ] Add year-first review date, and commit SHA, last-accessibility-review, to package.json and push.
[ ] While the contributor's branch is checked out, run npm run local-update within locally cloned site repo to confirm the site will function correctly at the next release.

@Vintik This should change any of your code (I think), but it affects dialog positioning for Combobox.

@interactivellama I tested your PR in my "sidebar", the dialog is now able to flip correctly. We do not need #1452 any more.


[Proposal] "Unknown App" is displayed when user confirms the transaction in the NEAR wallet app

Expected behavior
"Unknown App" is displayed.
Expected behavior
"Astro DAO App" should be displayed.
Screenshots

Not reproducible anymore.


i2c timeouts not working by default (due to disabled DWT cycle counter)

I am using some I2C sensors that are not 100% reliable and sometimes the connection breaks.
I2C timeouts were not working, regardless of the values I provided to the builder functions when initializing the peripheral, causing my program to occasionally hang indefinitely when trying to use I2C, with no way out (other than reset or interrupt). I spent many hours in frustration, trying to figure out why this was happening.
After digging through the I2C code in this crate, I discovered that the blocking I2C implementation internally relies on the cycle counter from the DWT to implement timeouts. However, that cycle counter starts out disabled by default and must be explicitly enabled!
This was not documented anywhere!
Why does this crate not automatically take care of enabling the DWT cycle counter (that it relies on) when using blocking I2C? This should be fixed. All the APIs should automatically configure the hardware state they need.
If not, at the very least, it should be documented.
Just adding this one line to my program fixed everything and now my code works without issue:
core.DWT.enable_cycle_counter()

However, I had no way of knowing that I needed this! I spent many hours trying to figure it out!

Oh wow, that's quite an oversight! I'll make a note in the docs about this though we probably should change the API to either ensure that the DWT is on, use a different timer, or perhaps not do timeouts in the blocking i2c impl which seems to be what the f4 hal does

Oh wow, that's quite an oversight! I'll make a note in the docs about this though we probably should change the API to either ensure that the DWT is on, use a different timer, or perhaps not do timeouts in the blocking i2c impl which seems to be what the f4 hal does

I pushed 7f33ced which adds docs now

I pushed 7f33ced which adds docs now

or perhaps not do timeouts in the blocking i2c impl which seems to be what the f4 hal does

Timeouts are very useful functionality. Please don't remove them from this API without providing another easy-to-use alternative.

or perhaps not do timeouts in the blocking i2c impl which seems to be what the f4 hal does

Timeouts are very useful functionality. Please don't remove them from this API without providing another easy-to-use alternative.

Actually, this is not all. There is even more to this issue.
By manually enabling the cycle counter, like I described above, it works, but only when the debugger is connected. If I reset or power cycle the microcontroller without the debugger being connected, timeouts still hang like before.
After some investigation, it seems that the DWT hardware is completely disabled by default, and the debugger enables it for us. To make it work without the debugger, I needed a way to enable it manually.
I found that it is a bit in the DEMCR register, which controls the various ARM Cortex M debug units. However, this register is currently not exposed via a Rust API at all (I could not find anything in this crate, or in the cortex-m crate).
For now, I got the raw address of the register from the ARM Cortex M documentation and did it myself using unsafe / raw pointer access. It works, but a proper wrapper API for it should be added (I guess it would go in cortex-m, as it is part of the core).
Here is the code I wrote to enable the DWT:
let demcr = 0xE000EDFC as *mut u32;
unsafe {
    let old = demcr.read_volatile();
    let new = old | 0x01000000;
    demcr.write_volatile(new);
}

Actually, this is not all. There is even more to this issue.
By manually enabling the cycle counter, like I described above, it works, but only when the debugger is connected. If I reset or power cycle the microcontroller without the debugger being connected, timeouts still hang like before.
After some investigation, it seems that the DWT hardware is completely disabled by default, and the debugger enables it for us. To make it work without the debugger, I needed a way to enable it manually.
I found that it is a bit in the DEMCR register, which controls the various ARM Cortex M debug units. However, this register is currently not exposed via a Rust API at all (I could not find anything in this crate, or in the cortex-m crate).
For now, I got the raw address of the register from the ARM Cortex M documentation and did it myself using unsafe / raw pointer access. It works, but a proper wrapper API for it should be added (I guess it would go in cortex-m, as it is part of the core).
Here is the code I wrote to enable the DWT:
let demcr = 0xE000EDFC as *mut u32;
unsafe {
    let old = demcr.read_volatile();
    let new = old | 0x01000000;
    demcr.write_volatile(new);
}

Oh right, that's what I remembered which is why I suggested we should get rid of/rewrite the blocking i2c to use timer.

Oh right, that's what I remembered which is why I suggested we should get rid of/rewrite the blocking i2c to use timer.


Time dilatior effect persists while in void fields after enemiy dies

If an enemy gets Time Dialator the effect works, but once they die the debuff never goes away.

Fixed in 2.1.1, thanks for the report!


Applying a Color Lookup Table to Textures for Custom Palettes

Ideally I would like to use any image from images/palettes to swap out the colors for any widget or texture I'm using at the time. For right now I'm simply using my custom implementation of Dear ImGui's ImageButtonEx() function. We use a special function utilizing a library stb_image.h to load all of our textures. Inside of this function is where we need to allow for the color lookup table to be implemented.
We would replace the colors like so:

Ideally I would like this feature to allow for an input of a file path or some way to use any palette you want.
Later on it would be great to allow for more colors in one palette- since we will allow custom textures.

https://learnopengl.com/Getting-started/Shaders
this should help a lot

I'll further explain this a little further, we need a module that allows the application of shaders to a texture.


Set strict xfail option

This PR is intended to fix #5120. I'll incrementally go through and set strict=False appropriately

[ ] Tests added / passed
[ ] Passes black dask / flake8 dask

Things are passing now with strict=True by default (cc @TomAugspurger). Summarizing the changes in this PR:

Most of the changes here are removing old xfails that have since been fixed and are now passing

Added strict=False to test_deep_bases_win_over_dependents in dask/tests/test_order.py. I think this test is supposed to fail for some graphs, but not others. It would be great to get another set of eyes on that test.

Added strict=False to test_Array_numpy_gufunc_call__array_ufunc__01 and test_Array_numpy_gufunc_call__array_ufunc__02 in dask/array/tests/test_array_core.py. These test gufuncs from the private _umath_linalg module in NumPy. Currently, test_Array_numpy_gufunc_call__array_ufunc__02 fails due to an issue with meta (see traceback below) which went unnoticed because both these tests were marked as xfail. Will open up separate issue to track this.


Disallow multiple processes opening same database file

This PR addresses #94 by:

Added support to prevent multiple processes from opening the same database file on Linux and Darwin.
Implemented using POSIX advisory locks, which takes a lock on the {pid, inode}. However, this means multiple threads from the same process can open the file concurrently.
Added option to disable file locking, useful for opening multiple shells during development.

@gvos94 Would you mind rebasing the series a little to keep git bisect happy? Either fold the "fix compiler errors" to whatever commits introduced the problems or just squash this into one commit because it's not that many lines changed.

@penberg Sounds good! Have squashed all the commits into one.

@pereman2 This is on purpose. I dont want to support concurrent processes writing to the same file because it makes transactions slow (you need to do system calls).
Maybe we want that as a compatibilty mode, but this PR is fine default

@penberg, I was referring on when the sqlite3 cli fails. sqlite3 cli fails on tring to query something and limbo on startup. I don't think sqlite3 cannot write anything if it's locked

Right, i dont think we care, at least not now


Fix getaddrinfo() to respect socket type hints

If getaddrinfo() was called with AI_PASSIVE flag in hints,
returned address defaulted to SOCK_STREAM and IPPROTO_TCP.
Fixed so that SOCK_DGRAM leads to correct address type
that can be fed to bind() directly.
Same hard coding was visible when numerical IPv4 address string
was converted to binary. That is also fixed to respect hints now.
Fixes #30686
Signed-off-by: Seppo Takalo<EMAIL_ADDRESS>

Thanks for looking into this. getaddrinfo() implementation is known to be incomplete (doesn't support all flags/features). Did you consider extending tests/net/socket/getaddrinfo for this case, to make sure it won't regress again in the future?

The getaddrinfo_null_host() defaulted to IPv4.
Now that I added handling of the hints parameter, I was not sure which one should I default with address type AF_UNSPEC. I'm now returning IPv4 address, but modern Unix/POSIX machines return IPv6 because they may still bind() and be able to serve IPv4 clients. But how does the IP stack in Zephyr behave when listening with IPv6 any-address?

But how does the IP stack in Zephyr behave when listening with IPv6 any-address?

Defaulting to IPv4 is probably ok now. I think we do not return IPv4 address when listening IPv6 one.

but modern Unix/POSIX machines return IPv6

And that causes various trouble to the innocent users. I don't have references handy, but I read about that more than once, and faced that myself too. I actually believe the pendulum swung in the opposite direction by now, and various Linux distros let the IPv6 committee do its job (promoting IPv6) and themselves doing their job (serving, not confusing, their users, and that means IPv4-by-default).

But how does the IP stack in Zephyr behave when listening with IPv6 any-address?

We don't have that Linux feature implemented. (And I'm talking about Linux, because that's what we use as an affinity for (many) things POSIX leaves underspecified. If you have references where POSIX prescribes a particular behavior in that regard, please share them.) So, to listen to both IPv4 and IPv6, a Zephyr application needs to have 2 listening sockets (and how various samples we have in samples/net/sockets/ do).


feat(executor): ManagedRangeCache range last-access time oracle - RangeLru

I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.
What's changed and what's your intention?
ManagedRangeCache range last-access time oracle - RangeLru
From issue:

The range cache's logical range can be partitioned into a finite number of subranges that have an associated last-accessed epoch. Then, it is easy to evict those old parts of the range. We can prove that this will never result in a non-contiguous range (due to fixed point theorem). We will add some sanity checks to ensure that requested ranges are always contiguous with the last requested.

Checklist

[x] I have written necessary rustdoc comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Refer to a related PR or issue link (optional)
Partially fix: https://github.com/risingwavelabs/risingwave/issues/6540

Closed as we decided not to maintain the RangeCache (see https://github.com/risingwavelabs/risingwave/issues/7069)


Setting $httpProvider.defaults.cache = true does not have any effect

The value of $httpProvider.defaults.cache is disregarded when issuing a GET request using $http.
$http.defaults.cache = true does not have the intended effect either.

I want to ask a question about the $httpProvider.defaults.cache,There is a such passage in the official documentation like that When caching is enabled, $http stores the response from the server using the relevant cache object. The next time the same request is made, the response is returned from the cache without sending a request to the server. ,I don't know what if when the request data is changed,it also fetch data from cache?or to resend the request?

@kingbora, this sounds like a general support question. Please, use one of the appropriate support channels for these types of questions.
GitHub issues are reserved for bug reports and feature requests.
Thx !
--
(Btw, the responses are cached per request URL (the final URL the request is sent to, including the query params). If you make a GET/JSONP request to the exact same URL, the cached response will be returned.)


Chromebook Download

I have a Chromebook at home and would like to download this "Nintendo Switch Discord Status" file but am not able to. Is it possible to make the download possible for ChromeOS software? Thank you.

Unfortunately I have no plans to make a Chromebook compatible version of this application.


translate: Add support for target option to translate.getLanguages.

Did I do the JSDoc comments right?
This adds support for:
translate.getLanguages({
  target: 'en'
}, function (err, languages) {
  console.log(languages[0]); // { language: 'ar', name: 'Arabic' }
});

translate.getLanguages({
  target: 'ru'
}, function (err, languages) {
  console.log(languages[0]); // { language: 'ar', name: 'арабский' }
});

Coverage remained the same at 100.0% when pulling dc38ea4e33c377c7c7432e09640fe9e168e9c131 on jmdobry:update-translate into 069d82775a091dacfe9e8c3fb103bc4aee0ad895 on GoogleCloudPlatform:master.

Coverage remained the same at 100.0% when pulling ffe9e7a13db5c226964ca95a907a033a8321fc61 on jmdobry:update-translate into 069d82775a091dacfe9e8c3fb103bc4aee0ad895 on GoogleCloudPlatform:master.

Made some small style changes to the tests and docs, merged in https://github.com/GoogleCloudPlatform/google-cloud-node/commit/581c3b76582027b82ada5bd4f507ec609d94bd6d.

Thank you for this!

Cool! When can I expect 0.2.0 to be published? Is there a set release schedule?

A batch of releases is coming today 👍

Published: https://www.npmjs.com/package/@google-cloud/translate


ci build image: disable centos

The CentOS build image no longer builds because the cmake version is
too old. This change disables it. Someone that cares will need to come
and fix it.

@jwfang ^

@alyssawilk updated