[Feature request]: match multiple regular expressions simultaneously obtaining capture groups

Describe your feature request
Given a vector of regular expressions, I'd like to match all of then in a simultaneously obtaining an array of matches with capture groups.
use regex::RegexSet;

let set = RegexSet::new(&[
    r"\w+",
    r"\d+",
    r"\pL+",
    r"foo",
    r"bar",
    r"barfoo",
    r"foobar",
]).unwrap();

// Iterate over and collect all of the matches.
let matches: Vec<_> = set.matches_and_captures("foobar").into_iter().collect();
assert_eq!(matches, vec![<Captures-0>, 2, 3, 4, 6]);

Where Captures-i represents an object with an index (or similar name) with value i and a captures (or similar name) value with an Option with captures for the regex at index i.
Of course, matches_and_captures is just an example of name for this feature at RegexSet.
Motivation
WASM and wasm-pack in addition to this feature would allow us to build a routing algorithm faster than find-my-way algorithm, the current Fastify routing algorithm, which is the fastest routing algorithm in the NodeJs ecosytem.
I'm open to contribute to this repo in order to achieve this feature and avoid unnecesary forks :)

This has been requested a few times in one form or another. See #259 and #352 for example. I think there are more, but a quick search doesn't turn them up.
Also, the docs for RegexSet specifically call out its limitations and suggest a work-around, but it isn't clear to me why that work-around is insufficient for you.
I do think this may be possible one day, once #656 is complete. In particular, regex-automata 0.2 will have first class support for multi-regex matching in all of its engines, and that includes extracting match information and capture groups (where capture groups are supported).
I'll leave this open for now, but this is not just a simple matter of adding new APIs. I don't think it makes sense to attempt this until regex-automata 0.2 lands.

Hi @BurntSushi, after reading your comments I have some doubts regarding the internals of RegexSet. I was asuming there's a DFA (when possible) compiled and the internals somehow can trace back which Regex are matched. Are my assumpions right?
If thats the case, the feature requested should be better for performance reasons since processing the DFA and tracing back capture groups could be done in O(n) where n is proportional to the size of the text input. Processing multiple regex should be done on O(n*m) where n is proportional to the size of the text input and m is the amount of Regex to process. Of course, the problem I want to face requires Regex which can be compiled to DFA.
RegexSet is not the only way to solve this. I could compose a single Regex as the union of multiple ones and I could track back which capture groups are associated to a certain Regex but this approach would require checking all the capture groups in each search and I really want to avoid it.
It's been a while since the last time I implemented a Regex library so I my assumptions may be wrong. thank you so much for your time

I'll leave this open for now, but this is not just a simple matter of adding new APIs. I don't think it makes sense to attempt this until regex-automata 0.2 lands.

I have no rush :), I would be pleased to help if necessary

Nits aside (see below), I believe you are basically correct. And that's exactly how regex-automata 0.2 will make this possible. Retro-fitting this to the existing regex crate is too difficult IMO. The unfortunate bit is that regex-automata 0.2 is taking quite a long time, but I'm still making progress.
OK, now I'll address some nits. I don't think these are material to the overall point, but I mention them because I think it's important to be precise here. And in particular, I suspect this will have performance implications for your strategy.

I was asuming there's a DFA (when possible) compiled and the internals somehow can trace back which Regex are matched. Are my assumpions right?

So this is not quite correct... Currently, the regex crate doesn't use any DFAs anywhere. It uses NFAs, bounded backtracking and a hybrid NFA/DFA (also called a "lazy DFA"). The issue with DFAs is that they take up a lot of resources, and take exponential time in the worst case to build. The lazy DFA strikes a good balance there that mitigates those downsides. It is generally appropriate to think of a lazy DFA as just a DFA in terms of its search time complexity, although it does have some important differences in its execution model that would surprise you if you went into it thinking it was traditional DFA. (For example, a lazy DFA builds itself at search time, so there is no pre-populated transition table. Instead, that is written incrementally as-needed during search.)
But a lazy DFA is only used if possible. Otherwise, bounded backtracking or the Pike VM ("thompson NFA with capturing support") is used.

If thats the case, the feature requested should be better for performance reasons since processing the DFA and tracing back capture groups could be done in O(n) where n is proportional to the size of the text input. Processing multiple regex should be done on O(n*m) where n is proportional to the size of the text input and m is the amount of Regex to process. Of course, the problem I want to face requires Regex which can be compiled to DFA.

DFAs do not have the computational power to implement capturing groups. Technically, NFAs don't either, but it is typically very easy to bolt on support of capturing groups to an NFA simulation by virtue of the fact that NFA simulations tend to require tracking the match progress of multiple states. This is relevant to you because it means that if you want to resolve capturing groups, it would have to use one of the slower execution engines instead of the much faster DFA.
Note also that when using a DFA, even when using multiple regexes, search time is only proportional to the length of the haystack, so O(n) where n ~ len(haystack). It's only when you use the NFA execution engines that you get bumped up to O(n * m).

RegexSet is not the only way to solve this. I could compose a single Regex as the union of multiple ones and I could track back which capture groups are associated to a certain Regex but this approach would require checking all the capture groups in each search and I really want to avoid it.

I see two possible paths here:

Add capturing support to RegexSet and use that. This would necessarily force the use of a slower regex engine, but will give you your answer in one pass over the haystack.
Build a DFA or a lazy DFA that tells you which regex matched, and then use a slower regex engine to resolve the capturing groups for just that matched regex. This requires two passes over the haystack. This is also doable with the current regex crate API.

It sounds to me like you have ruled out (2) as being slower than (1) (perhaps due to a belief that a DFA can resolve the capturing groups in one pass), but it is not at all clear to me that it is true. It may look like (2) has to be slower than (1), but the key difference is that (1) has to run an NFA with multiple regexes in it, which will tend to take longer since there are more states to manage and keep track of. In (2), you only need to run it for a single regex that you know matches. There should be less overhead associated with that.
Now, there are ways to solve this problem with a single pass over the haystack while retaining the speed you might expect from a DFA. But you have to used something more powerful than a DFA known as a "tagged" DFA. re2c implements this approach and its author has published several papers on the topic. This is well beyond the scope of this library or even regex-automata however. If you wanted to go this route, you'd have to essentially implement your own regex engine, but you at least don't have to write the parser. :-)

So this is not quite correct... Currently, the regex crate doesn't use any DFAs anywhere. It uses NFAs, bounded backtracking and a hybrid NFA/DFA (also called a "lazy DFA"). The issue with DFAs is that they take up a lot of resources, and take exponential time in the worst case to build. The lazy DFA strikes a good balance there that mitigates those downsides. It is generally appropriate to think of a lazy DFA as just a DFA in terms of its search time complexity, although it does have some important differences in its execution model that would surprise you if you went into it thinking it was traditional DFA. (For example, a lazy DFA builds itself at search time, so there is no pre-populated transition table. Instead, that is written incrementally as-needed during search.)
But a lazy DFA is only used if possible. Otherwise, bounded backtracking or the Pike VM ("thompson NFA with capturing support") is used.

All right then, thank you so much for the explanation :)

I see two possible paths here:

Add capturing support to RegexSet and use that. This would necessarily force the use of a slower regex engine, but will give you your answer in one pass over the haystack.
Build a DFA or a lazy DFA that tells you which regex matched, and then use a slower regex engine to resolve the capturing groups for just that matched regex. This requires two passes over the haystack. This is also doable with the current regex crate API.

It sounds to me like you have ruled out (2) as being slower than (1) (perhaps due to a belief that a DFA can resolve the capturing groups in one pass), but it is not at all clear to me that it is true. It may look like (2) has to be slower than (1), but the key difference is that (1) has to run an NFA with multiple regexes in it, which will tend to take longer since there are more states to manage and keep track of. In (2), you only need to run it for a single regex that you know matches. There should be less overhead associated with that.

Exactly, I was expecting capture groups to be resolved in one pass.
Now, > there are ways to solve this problem with a single pass over the haystack while retaining the speed you might expect from a DFA. But you have to used something more powerful than a DFA known as a "tagged" DFA. re2c implements this approach and its author has published several papers on the topic. This is well beyond the scope of this library or even regex-automata however. If you wanted to go this route, you'd have to essentially implement your own regex engine, but you at least don't have to write the parser. :-)
I have started to read the paper, I'll probably try to implement it once I fully understand it.
My issue is solved now but I think it would be great to implement this feature in a future. Should I close the issue?
Thank you so much man, that state of the art's review was really helpful :)

Let's leave it open. It's useful to track this enhancement to RegexSet since it's a pretty common request. I'm like 95% sure that it's feasible to do. It will need some API design though, which we can work out here.

I just want to drop an interesting note here. I'm implementing a lexer on top of just the regex crate (for comparison to logos, among other things), and got some interesting results. Because I'm manipulating the regex at proc-macro time, I could easily build a giant list of alternations to do "single pass" matching between the set of regex using capture groups.
Using a two-pass approach with RegexSet instead gave (depending on the exact benchmark load) between a 63% to 85% reduction in runtime (170% to 578% improvement in throughput).
The single pass approach was building a regex \A(?:(option-1)|(option-2)|(option-3)), and the two pass is just the normal RegexSet and then using a Regex to get the match position.
(If anyone wants to see my code for the benchmark, it's here ([RegexSet]), [capturing groups]).)

FWIW, this is now working (with full capture support) in my in-progress work on regex-automata:
$ regex-cli captures nfa thompson pikevm --matches -kall -Koverlapping 'foobar' '\w+' '\d+' '\pL+' 'foo' 'bar' 'barfoo' 'fo(ob)ar'
build pike vm time:  597.636µs
 create cache time:  67.594µs
       search time:  18.495µs
         counts(0):  "{0: 6}"
         counts(1):  "{0: 0}"
         counts(2):  "{0: 6}"
         counts(3):  "{0: 1}"
         counts(4):  "{0: 1}"
         counts(5):  "{0: 0}"
         counts(6):  "{0: 1, 1: 1}"

PatternID(0): {0: (0, 1)}
PatternID(2): {0: (0, 1)}
PatternID(0): {0: (0, 2)}
PatternID(2): {0: (0, 2)}
PatternID(0): {0: (0, 3)}
PatternID(2): {0: (0, 3)}
PatternID(3): {0: (0, 3)}
PatternID(0): {0: (0, 4)}
PatternID(2): {0: (0, 4)}
PatternID(0): {0: (0, 5)}
PatternID(2): {0: (0, 5)}
PatternID(0): {0: (0, 6)}
PatternID(2): {0: (0, 6)}
PatternID(6): {0: (0, 6), 1: (2, 4)}
PatternID(4): {0: (3, 6)}

OK, so I am unfortunately going to close this. I declared premature success in the previous comment. The problem here is that supproting overlapping matches---even without capturing groups---is incredibly tricky and full of foot guns. regex-automata 0.3 will have some support for overlapping matches, but only at the very lowest levels. The support is enough that you can actually implement your own RegexSet overlapping search, but it only gives you the overall match span:
/// Execute an overlapping search, and for each match found, also find its
/// overlapping starting positions.
///
/// N.B. This routine used to be part of the crate API, but 1) it wasn't clear
/// to me how useful it was and 2) it wasn't clear to me what its semantics
/// should be. In particular, a potentially surprising footgun of this routine
/// that it is worst case *quadratic* in the size of the haystack. Namely, it's
/// possible to report a match at every position, and for every such position,
/// scan all the way to the beginning of the haystack to find the starting
/// position. Typical leftmost non-overlapping searches don't suffer from this
/// because, well, matches can't overlap. So subsequent searches after a match
/// is found don't revisit previously scanned parts of the haystack.
///
/// Its semantics can be strange for other reasons too. For example, given
/// the regex '.*' and the haystack 'zz', the full set of overlapping matches
/// is: [0, 0], [1, 1], [0, 1], [2, 2], [1, 2], [0, 2]. The ordering of
/// those matches is quite strange, but makes sense when you think about the
/// implementation: an end offset is found left-to-right, and then one or more
/// starting offsets are found right-to-left.
///
/// Nevertheless, we provide this routine in our test suite because it's
/// useful to test the low level DFA overlapping search and our test suite
/// is written in a way that requires starting offsets.
fn try_search_overlapping<A: Automaton>(
    re: &Regex<A>,
    input: &Input<'_, '_>,
) -> Result<TestResult> {
    let mut matches = vec![];
    let mut fwd_state = OverlappingState::start();
    let (fwd_dfa, rev_dfa) = (re.forward(), re.reverse());
    while let Some(end) = {
        fwd_dfa.try_search_overlapping_fwd(input, &mut fwd_state)?;
        fwd_state.get_match()
    } {
        let revsearch = input
            .clone()
            .pattern(Some(end.pattern()))
            .earliest(false)
            .range(input.start()..end.offset());
        let mut rev_state = OverlappingState::start();
        while let Some(start) = {
            rev_dfa.try_search_overlapping_rev(&revsearch, &mut rev_state)?;
            rev_state.get_match()
        } {
            // let start = rev_dfa
            // .try_search_rev(rev_cache, &revsearch)?
            // .expect("reverse search must match if forward search does");
            let span = ret::Span { start: start.offset(), end: end.offset() };
            // Some tests check that we don't yield matches that split a
            // codepoint when UTF-8 mode is enabled, so skip those here.
            if input.get_utf8()
                && span.start == span.end
                && !input.is_char_boundary(span.end)
            {
                continue;
            }
            let mat = ret::Match { id: end.pattern().as_usize(), span };
            matches.push(mat);
        }
    }
    Ok(TestResult::matches(matches))
}

How to generalize this to capturing groups is not particularly clear to me.
I think it's also worth pointing out that the OP of this issue talks about wanting this for perf reasons, but resolving capturing groups almost always needs to take a slower code path.
So anyway, I'm going to close this particular request for now because I don't see it happening. However, while regex-automata 0.3 won't come with this out of the box, it will drastically lower the bar for anyone who wants to try and code this up on their own.


🐛 Bug Report: pingvin not listening to environment variable for data directory

👟 Reproduction steps
bare metal installation (no docker), without any changes on the app so far. Not installed in ~ for root, instead in /opt.
set environment variable:
export DATA_DIRECTORY="/mnt/data"
in addition added it to /etc/profile.d/ for restart-save persisting.
restarted backend and frontend via pm2:
reloaded page and uploaded file. no file in /mnt/data, instead it is in /opt/pingvin-share/backend/data/uploads/shares
verify correct environment variable:
root@srv-pingvin:/opt/pingvin-share/frontend# echo $DATA_DIRECTORY
/mnt/data

👍 Expected behavior
File upload gets stored according to the environment variable in correct path
👎 Actual Behavior
File upload gets stored in initial folder, not following environment variable.
🌐 Browser
not relevant

not a bug, just a user error from a pm2 n00b. pm2 restart all is not enough, you need to:
pm2 restart all --update-env


adding some more async

Codecov Report

Merging #335 (a65c7a4) into main (39e611b) will decrease coverage by 0.13%.
The diff coverage is 37.14%.

@@            Coverage Diff             @@
##             main     #335      +/-   ##
==========================================
- Coverage   71.57%   71.44%   -0.14%
==========================================
  Files         180      180
  Lines        7255     7291      +36
  Branches      548      554       +6
==========================================
+ Hits         5193     5209      +16
- Misses       1930     1950      +20
  Partials      132      132

Impacted Files
Coverage Δ

pyEX/common/__init__.py
100.00% <ø> (ø)

pyEX/tests/test_api.py
100.00% <ø> (ø)

pyEX/tests/test_api_client.py
100.00% <ø> (ø)

pyEX/common/urls.py
35.46% <28.57%> (-0.16%)
:arrow_down:

pyEX/account/__init__.py
52.45% <37.03%> (-12.25%)
:arrow_down:

pyEX/client.py
64.06% <100.00%> (ø)

pyEX/premium/fraudfactors/__init__.py
57.89% <0.00%> (-2.11%)
:arrow_down:

... and 2 more

Continue to review full report at Codecov.

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


restrict exposing values in KC package

What this PR does / why we need it:
Fixes #1046
Which issue(s) this PR fixes:

Fixes #
Does this PR introduce a user-facing change?

Additional Notes for your reviewer:
Review Checklist:

[ ] Follows the developer guidelines
[ ] Relevant tests are added or updated
[ ] Relevant docs in this repo added or updated
[ ] Relevant carvel.dev docs added or updated in a separate PR and there's
a link to that PR
[ ] Code is at least as readable and maintainable as it was before this
change

Additional documentation e.g., Proposal, usage docs, etc.:

Could you attach a copy of the release.yml that get's created / links to the package-bundle you created on your fork? Looks like it's not a public release with the tested changes, (or maybe its a draft) - so I can't see the actual results of this PR.

https://github.com/sethiyash/carvel-kapp-controller/releases/tag/v3.2.0 This is the release I have made on my forked repo. BTW release.yml that is getting generated has some args coming null in deployment resource. Looking into it.

https://github.com/sethiyash/carvel-kapp-controller/releases/tag/v3.2.0 This is the release I have made on my forked repo. BTW release.yml that is getting generated has some args coming null in deployment resource. Looking into it.

Resolved this now was happening earlier as yq command messing up with the indentation of ytt part considering it as comment.

looks like this is not in a good state right now @sethiyash , lemme know if you want another set of eyes to get it green

looks like this is not in a good state right now @sethiyash , lemme know if you want another set of eyes to get it green

@neil-hickey It's good to review now please take a look when you get a chance.

done as part of https://github.com/carvel-dev/kapp-controller/pull/1111


Support syntax highlighting of embedded dart and haxe code

Please add support for embedded syntax highlighting for Dart and Haxe. The textmate scope names are source.dart and  source.haxe
Dart Example
import 'package:hotreloader/hotreloader.dart';

Future<void> main(List<String> args) async {

  final reloader = await HotReloader.create(
    debounceInterval: Duration(seconds: 2), // wait up to 2 seconds after file change before reloading
    onBeforeReload: (ctx) =>
      ctx.isolate.name != 'foobar' && // never reload the isolate named 'foobar'
      ctx.event?.path.contains('/mymodel/')) ?? true, // only perform reload when dart files under ../mymodel/ are changed
    onAfterReload: (ctx) => print('Hot-reload result: ${ctx.result}')
  );

  // ... your other code

  await reloader.reloadCode(); // programmatically trigger code reload

  // ... your other code

  // cleanup
  reloader.stop();
}

Haxe Example
class Game {
  // Haxe applications have a static entry point called main
  static function main() {
    // Anonymous structures.
    var playerA = { name: "Simon", move: Paper }
    var playerB = { name: "Nicolas", move: Rock }

    // Array pattern matching. A switch can return a value.
    var result = switch [playerA.move, playerB.move] {
      case [Rock, Scissors] |
           [Paper, Rock] |
           [Scissors, Paper]: Winner(playerA);

      case [Rock, Paper] |
           [Paper, Scissors] |
           [Scissors, Rock]: Winner(playerB);

      case _: Draw;
    }
    // Paper vs Rock, who wins?
    trace('result: $result');
  }
}

// Allow anonymous structure named as type.
typedef Player = { name: String, move: Move }

// Define multiple enum values.
enum Move { Rock; Paper; Scissors; }

// Enums in Haxe are algebraic data type (ADT), so they can hold data.
enum Result {
  Winner(player:Player);
  Draw;
}

Hey!
We can’t add every language. Why should this one be included?
Much in this project is generated. You can also do this yourself: https://github.com/wooorm/markdown-tm-language/blob/11eeefed6b5b13f0bfda019972ab96405a10a8fd/build.js#L119.

We can’t add every language. Why should this one be included?
For Haxe I understand the question as it is a niche language but quite popular amongst game developers. Dart on the other hand is in the 20 list of the most popular programming languages, way ahead of some of languages which are already support by this project. So I feel it should be obvious to support it and if there are performance concerns, maybe one of the less popular languages like coffeescript or elm clould be dropped in exchange for dart. https://spectrum.ieee.org/the-top-programming-languages-2023

Why not generate your own bundle? You can choose what you want to support.
haxe is not convincing to me.

I am including the textmate grammar in a scheduled build to automatically included the latest improvements. Having to manually alter the build.js seems error prone and defeats that purpose. If additional grammars included could be provided by some cli argument or a separate flat file to the build process it would simplify things.

You can have your own fork? And pull in changes from upstream while keeping your own changes as well?
I would accept a PR that adds a CLI for this repo.
I’d also accept a PR adding dart for everyone.
But I am not convinced adding haxe for everyone is a positive.
Thanks!


[Bug]: command palette  display overlapped

Bug Description
As shown below.
I'm not sure what caused it.
Relevant Screenshot

To Reproduce

set long command to hotkeys
<ctrl + P> , show the command palette

Obsidian Version
0.14.6
Installer Version
0.12.19
Font Size
14
Which editor are you using?

[X] New Editor
[ ] Legacy Editor

In which mode(s) does the problem occur? (if applicable)

[X] Source (Edit)
[X] Reading (Preview)
[X] Live Preview

Which operating system?

[ ] macOS
[ ] Linux
[X] Windows
[ ] iOS
[ ] Android

Plugin-Specific Problems

[X] I took note of the specific instructions regarding those plugins.

Checklist

[X] I updated to the latest version of the theme (Settings → Appearance → Themes - Manage → Update).
[X] I made sure that the issue is related to this theme by checking that the problem does not occur with the default theme.
[X] In case I am missing an UI element, I have checked that it cannot be re-enabled with the Style Settings plugin.
[X] If the bug occured after updating the theme, I read the last couple of entries in the changelog to make sure the bug is not an intentional change. (In that case, there will most likely be a style setting to turn it off again.)

fixed with latest release!


Cannot assign type which should be compatible when conditional generics are used

Bug Report
Cannot assign type which should be compatible when conditional generics are used (also posted on SO but was only suggested to open issue here)
🕗 Version & Regression Information
Throws error on all versions available in TypeScript playground.
Playground Link
⏯ Playground Link
💻 Code
// Returns keyes that have type extending Types
type KeysMatching<T, Types> = { [K in keyof T]: T[K] extends Types ? K : never }[keyof T];

type Mapping = {
    STR: string;
    NUM: number;
    BOOL: boolean;
}

type Values = Mapping[keyof Mapping];

type Generic<T extends Values> = {
    typeStr: KeysMatching<Mapping, T>
}

const foo: Generic<boolean> = { typeStr: 'BOOL' };
const bar: Generic<Values> = foo;
// Type 'Generic<boolean>' is not assignable to type 'Generic<Values>'.
//  Type 'Values' is not assignable to type 'boolean'.
//    Type 'string' is not assignable to type 'boolean'.(2322)

// This works fine
type Conditional<T, V> = T extends V ? T : unknown;
const foo2: Conditional<string, Values> = 'string';
const bar2: Conditional<Values, Values> = foo2;

🙁 Actual behavior
TS throws error that foo is not assignable to bar
🙂 Expected behavior
TS does not throw error as the types should be compatible

A shorter repro:
type V<T> = { value: 0 extends T ? T : never };
type V0 = V<0>; // V0 = { value: 0 }
type VNumber = V<number>; // VNumber = { value: number }

type R1 = V<0> extends V<number> ? true : false;
//   ^?
type R2 = V0 extends VNumber ? true : false
//   ^?

Probably something to do with variance measurement - it seems like V<T> is incorrectly being measured as contravariant in T, likely because T occurs on the RHS of an extends check.  R2 is correctly determined to be true because V0 extends VNumber bypasses variance measurement and does a full structural check.

Yeah, duplicate of #48070


Minor refactoring - libddprof helper

What does this PR do?
Introduce a helper to cleanup the libddprof errors
Motivation
It is easy to make mistakes when taking into account libddprof errors.

Possible improvements:

A C++ type could wrap and drop resources.


orbitControl() affects gui elements (webgl mode)

After updating to p5 1.60, GUI elements are now affected by orbitControl() and camera translations. Does not occur in p5js 1.50 where GUI elements stay fixed in place with orbitControl() only having an effect on the 3d model in the sketch.

The solution can be found in this guide it requires the user to surround the 3D drawing part with push/pop like this
  p.draw = function () {
        p.push(); // save matrix
        p.orbitControl();

        p.background(210, 200, 255);
        // 3D drawing commands

        p.pop(); // restore matrix
        p.gui.draw();
    }

orbitControl() does not work when you surround it in push() and pop(). My solution is to not use 1.60 or find an alternative for orbitControl().

I removed all references to canvasGUI both the html and js file in the Ogro sketch. I then tried the sketch with both 1.5.0 and 1.6.0
orbitControl() worked using 1.5.0 but with 1.6.0 the display was vertically inverted (upside-down) when the mouse was pressed, which makes me believe that the problem is with p5.js and not canvasGUI
With regard to

GUI elements are now affected by orbitControl()

The code I provided earlier solves this issue in that the controls position and functionality are not affected by orbitControl() using 1.6.0


Unhandled Exception: Pointer has no instance getter value

DartCode fails to recognize the extension method value on Pointer<Uint32> in the debugger window, as shown below:

This method very much exists:
https://api.dart.dev/be/177834/dart-ffi/Uint32Pointer.html
I don't know whether this is a DartCode issue, a debugger / analyzer issue, or an FFI issue, so tagging a few folk here who might be able to help me diagnose: @dcharkes @DanTup
Versions
Dart SDK version: 2.12.0-259.8.beta (beta) (Tue Feb 2 15:59:29 2021 +0100) on "windows_x64"
DartCode extension 3.19.2 on VS Code 1.53.0

Duplicate of #44801

tldr: VM does not pass enough information back to front-end to resolve extension methods when evaluating expressions with debugging.

Thanks! Consider me an upvoter for the feature required :)


Dragons Dogma 2 crash (use global settings for DLAA/presets instead)

Seems there's a crash when tweaks is used with dragons dogma, winmm/xinput1_3 just fail to launch, while nvngx lets it start but hangs after a bit...
You can use ConfigTool to set GlobalForcedScale 0.999 in the nvidia profile to get it close to DLAA though (don't use GlobalForceDLAA, seems to stop game from rendering properly, iirc other RE engine games also had issues with full-res DLAA too)
Should work fine with the 3.5.x DLSS included with DD2, unfortunately the new 3.6.0 DLSS DLL doesn't seem to work with the global settings any more though, not really sure why since all the code still seems included in there, maybe they've added some new check before it's used.

E: looking into 3.6.0 more, seems NV tried adding code so that DLSS settings can be set per-app, instead of only allowing it globally like 3.5.11 and older.
Unfortunately appears the code they added doesn't work properly, seems to be passing only the EXE filename to NvAPI to fetch the nvidia profile instead of the full path to the EXE (as NvAPI docs recommend using...), this means if you added the profile in NVCP by browsing for the game EXE, DLSS 3.6 won't be able to find the settings for it...
(fyi this issue is also why my NvTrueHDR tool asked you to provide the full EXE path if you added it in NVCP)
If a game profile already exists for the game in NVCP then you might be able to add settings for it with inspector, but any custom apps added in NVCP won't be able to work with it.
Also seems these changes they made have stopped any kind of "global settings" from working, DLSS 3.6 will only try searching for the exe filename and bail out if it doesn't exist, doesn't seem to bother trying to check global/base profile at all now...
Would probably recommend sticking to 3.5.11 for now, though there have been some DLSS-RR 3.7 DLLs released, maybe the DLSS 3.7 version might have this fixed already.

It's 3.5.10, tried downgrading it to 3.5.0 but it crashes anyway so might be some DRM thing...

There is also still the preset error from 3.5.10 in 3.6.0, no matter the game.
[2024-03-22 07:47:18.711] [warning] nvngx_dlss: failed to hook DLSS3.1.11+ preset selection code, presets may act strange when used with customized DLSSQualityLevels - recommend using DLSS 3.1.11 / 3.1.30!

Download REFramework, which enable dll hooking, otherwise the game crashes.

Would probably recommend sticking to 3.5.11 for now, though there have been some DLSS-RR 3.7 DLLs released, maybe the DLSS 3.7 version might have this fixed already.

Does seem to be fixed in 3.7.10

Dead Rising Deluxe Remaster suffer from the same issue


Feature Request: Add label filters for networks and volumes

Since #21270, labels can be added to networks and volumes.
To be consistent with docker  ps, docker images and docker events, docker network ls and docker volume ls should also have a --filter label= option.

hi @albers
The featured was address in following PRs:
volume filter for label https://github.com/docker/docker/pull/21567
network filter for label https://github.com/docker/docker/pull/21495
But seems maintainers are busy with 1.11 release, so not have time to review that  :0
Thanks

@HackToday Thanks for pointing me to these PRs and corresponding issues.
Closing in favour of #21416 and #21417


Added ansible to minerva data services infrastructure

[ *] the instructions you gave me in the PR comment to be documented in the codebase
[ *] the ortelius.geonode role to be split out into common, uwsgi, geonode, nginx, postgres, geoserver tasks
[* ] the playbook to be revised to call the separate roles instead of includes
[* ] common role can just have apt-get update cache
[* ] move defaults to group_vars/all
[* ] remove AWS variables from group_vars/all
[* ] remove AWS db creation code
[* ] remove any reference to ortelius, except as we need for licensing
[*] remove any reference to riskinfo_lk
[*] remove any code that we don't actually use
[*] remove any documentation that is old or incorrect

@mbertrand it would be nice if you can run and test this as well. There is one issue I am running into is screen capture in geonode preview mode.

@aashish24 I will try it out.  By screen capture do you mean issues with layer thumbnails?

Yes, layer thumbnails. I am using master of geonode but I am not sure if that's the problem because one time it did work for me.

@aashish24 the thumbnail problem is with the SITEURL setting, it is set to <IP_ADDRESS>, and the thumbnail URL's are generated as a concatenation of SITEURL + MEDIA_URL.  When accessing the site at http://localhost:8000, the thumbnails are trying to be loaded from http://<IP_ADDRESS>/uploaded/thumbs/*.png
I am looking into a possible fix for this.

@aashish24 the thumbnail problem is with the SITEURL setting, it is set to <IP_ADDRESS>, and the thumbnail URL's are generated as a concatenation of SITEURL + MEDIA_URL. When accessing the site at http://localhost:8000, the thumbnails are trying to be loaded from http://<IP_ADDRESS>/uploaded/thumbs/*.png
I am looking into a possible fix for this.

Great.thanks.

@mbertrand your suggestion worked!. I pushed a change. Please approve. @mgrauer any other concern?

@aashish, great, looks good to me.  I am still thinking together with Nico about the best approach to hosting (and the best place for the code that would minimize merge/sync issues with our own EpiGeo repo - i.e. maybe as its own private repo, shared with Kitware, instead of inside a folder of Minerva?).  This PR sets up a vanilla version of GeoNode without any of EpiGeo's geoprocessing code to process ForecastIO air temp data and other sources.  I made a PR for a stripped-down version of the EpiGeo code here: https://github.com/Kitware/minerva/pull/94 https://github.com/Kitware/minerva/pull/94, but this doesn't use Ansible.  I assume you want a dev server with this geoprocessing code running on it?  Would it be acceptable to use the EpiGeo dev server as long as it it kept in sync with the shared code base that we both contribute to?

On Sep 10, 2015, at 12:44 PM, Aashish Chaudhary<EMAIL_ADDRESS>wrote:
@mbertrand https://github.com/mbertrand your suggestion worked!. I pushed a change. Please approve. @mgrauer https://github.com/mgrauer any other concern?
—
Reply to this email directly or view it on GitHub https://github.com/Kitware/minerva/pull/98#issuecomment-139306464.

I assume you want a dev server with this geoprocessing code running on it?  Would it be acceptable to use the EpiGeo dev server as long as it it kept in sync with the shared code base that we both contribute to?

If I understand it correctly. Yes, my idea was that we both share the general infrastructure code and have plugins for specific datasets processing. If we are using our shared project funding (kitware and epidemico) then the code should be in public domain since that's what we had in the document (we can make exception if needed to but that should be discussed per dataset). Then this infrastructure should be up and running at your place possibly with more plugins that you and team developed on your time and the code for that does not need to be shared (kitware can make a request for a particular dataset source code but you can accept or reject that if it has been developed on some other project funding). So In summary:

Develop common infrastructure code that can be run with ansible, celery etc.
Develop open source dataset processing plugins if using shared project funding
Keep other plugins local if not developed as part of the shared project funding.

@mgrauer can we merge this now? Thanks @mbertrand for your help and review!

I'm provisioning a vm now with the final version, I will let you know the result of that when it finishes.
A couple of notes:

I accidentally was on ansible v 1.8.2, and some postgres_ext didn't work.  When I switched to v 1.9.3 it worked (at least so far).  You could add a note about minimum ansible version.

Can we name the VM something better than Minerva-production?  Maybe Minerva-dataservices?  This is specified in the Vagrantfile.  It isn't that important and we could decide later.

I accidentally was on ansible v 1.8.2, and some postgres_ext didn't work. When I switched to v 1.9.3 it worked (at least so far). You could add a note about minimum ansible version.

Sure..can add a note in the docuemntation if that's okay.

Can we name the VM something better than Minerva-production? Maybe Minerva-dataservices? This is specified in the Vagrantfile. It isn't that important and we could decide later.

Hmm.. @mbertrand what you think? You decide. I am fine with anything.

@aashish24 This is great, a really clean setup.  We can use this as the basis for our total Minerva stack deployment at some later point (where we get Minerva + data services both provisioned).
We can punt on the VM name for now, we'll revisit it with later ansible work.
I give everything a LGTM.  Since I pushed one final commit, can someone OK it once Jenkins finishes?

Great... LGTM

@aashish I'm ok with any VM name, though I guess I like '-dataservices' more than '-production'.

On Sep 10, 2015, at 1:30 PM, Aashish Chaudhary<EMAIL_ADDRESS>wrote:
I accidentally was on ansible v 1.8.2, and some postgres_ext didn't work. When I switched to v 1.9.3 it worked (at least so far). You could add a note about minimum ansible version.
Sure..can add a note in the docuemntation if that's okay.
Can we name the VM something better than Minerva-production? Maybe Minerva-dataservices? This is specified in the Vagrantfile. It isn't that important and we could decide later.
Hmm.. @mbertrand https://github.com/mbertrand what you think? You decide. I am fine with anything.
—
Reply to this email directly or view it on GitHub https://github.com/Kitware/minerva/pull/98#issuecomment-139319153.

Sure.I will push a branch to rename it to minerva-dataservices


[DOCS] Update gif

Description
We need an updated GIF on our README.md!!!
It's important to keep the same size (or very similar) as the current GIF
Screenshots
No response
Additional information
No response

Hello,
I am trying to update the gif image. But should I use the UI from the latest version? It would give a URL with localhost, which is probably not the best. Alternatively I could use reduced.to but the UI is very similar.

Hi, let's wait until we deploy to prod.  Thanks! 🔥

Hello I solved this issue, update GIFs on homepage , with new website.

#257
here is the pr which have the similar ratio of previous gif

Done https://github.com/origranot/reduced.to/pull/257


hpp-fcl: 2.4.1 -> 2.4.4

Description of changes
changelog: https://github.com/humanoid-path-planner/hpp-fcl/blob/devel/CHANGELOG.md
while here, add doc & split outputs
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 294027 run on aarch64-darwin 1

6 packages built:

hpp-fcl
hpp-fcl.dev
hpp-fcl.doc
python311Packages.hpp-fcl
python311Packages.hpp-fcl.dev
python311Packages.hpp-fcl.doc


i18n(fr): update install-and-setup.mdx

Description (required)
Add changes from #9449 to French translation of install-and-setup.mdx.
Note: I didn't translate "Install dependencies?" because the CLI is in English.

Related issues & labels (optional)

Suggested label: i18n

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

fr
install-and-setup.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Expeditions workout

[x] Need to work out and test all algorithms and add exptab table customization in admin.
[x] Add a setting for the multiplier of dark matter found.
[x] Include ExpUpperLimit settings
[x] Add many expeditions simulator, to check outcome

Include ExpUpperLimit settings

Add many expeditions simulator, to check outcome.


Fix minDate and maxDate format

Lack of format causes the moment library to always returns minDate and maxDate invalid.
Formats added and it's ok now.
Sorry for the prettier also removed some whitespaces.
Thank you.

This issue also exist on disableDates. I think you should add format to all moment constructors.
I can send a PR if its ok.
Thanks.


Bump k8s to 1.16.2

Builds on top of #40 - hoping this isolates the failing prometheus metrics test.

/test e2e-aws-builds

/close
Replaced by #44


Sample target forwarding typings

test suit for sample cases using target forwarding
add NoInfer type hint to sample overloads using target

This will fix #247

Cool, thanks! 👍


"Align wrapped list items to the indent level" malfunctions sometimes

Hi,
First of all, I thank you for super useful plugin! 👍
I would like to report a bug regarding "align wrapped list items".
It often malfunctions (usually it occurs when I restart joplin client app), please see below image.

This symptom is gone after I disable Align wrapped list items to the indent level and enable it again.

The feature is actually not working at all AFAICS.


Ayush tibrewal patch 2

#37 #34 @pratyushtiwary please check it once and please make it under hacktooctober before merging

Please restructure the README.md sections in the following manner:
⚙ How does it works?,
🤝 Contributing,
✨ Community,
📓 Attribution

@pratyushtiwary done with the changes

@pratyushtiwary PLEASE merge it


Possible to test long time processing CLI actions?

my question is...
Possible to test long time processing CLI actions?
I develop CLI for aggregation of all create-<NAME>-app and similar frontend things. Very often the execution of such a command (e.g. installation of dependencies by npm install) takes a very long time and exits the tests (e.g. on gocover.io or locally). That is, they're out of 30 or even 180 seconds limit.
This is my project source (without some extra lines of code):
// ./main.go

package main

// ...

func main() {
	// Start new CLI app
	myCmd, err := mycmd.New()
	if err != nil {
		log.Fatal(err)
	}

	// Run new CLI
	if err = myCmd.Run(os.Args); err != nil {
		log.Fatal(err)
	}
}

Next, I separated a new CLI instance to ./pkg/mycmd/new.go file:
// ./pkg/mycmd/new.go

package mycmd

// ...

var (
	appPath             string
	appFrontend         string
)

func New() (*cli.App, error) {
	// Init CLI
	app := &cli.App{}

	// Configure CLI
	app.Name = "mycmd"
	app.Usage = "description"
	app.Version = "0.1.0"

	// Setting CLI commands
	app.Commands = []*cli.Command{
		{
			Name:  "create",
			Usage: "create a new project with the selected configuration",
			Flags: []cli.Flag{
				&cli.StringFlag{
					Name:        "path",
					Aliases:     []string{"p"},
					Value:       "./my-project",
					Usage:       "path to create project, ex. ~/projects/my-app",
					Required:    false,
					Destination: &appPath,
				},
				&cli.StringFlag{
					Name:        "frontend",
					Aliases:     []string{"f"},
					Value:       "none",
					Usage:       "frontend for your project, ex. Preact, React, Vue, Svelte",
					Required:    false,
					Destination: &appFrontend,
				},
			},
			Action: CreateCLIAction, // <-- this is my action func
		},
	}

	return app, nil
}

Action func lives here:
// ./pkg/mycmd/actions.go

package mycmd

// ...

func CreateCLIAction(c *cli.Context) error {
	// ...

	options := []string{}

	// ...

	switch appFrontend {
	case "react":
		options = []string{
			// ...
		}
		break
	// ...
	}

	if appFrontend != "none" {
		// ...
		cmd := exec.Command("npm", options...)
		// ^ execute options to install each frameworks via npm
		// ...
	}

	// ...

	return nil
}

And my question is... how can I test CreateCLIAction(c *cli.Context) func on right (recommended) way and without waiting so long time to execute npm things? Usage example to explain this moment, would be great! 😉
Thanks!

P.S. I'm newbie to testing and mocking so complex programs in Go.

@koddr Does the CreateCLIAction use any functions from cli.Context ?

@meatballhat Are we planning to have context as an interface in v3 ?

@dearchap I would love to see https://github.com/urfave/cli/issues/1587 for v3, which would remove/combine the cli.Context type


<EMAIL_ADDRESS>must be relative to root dir

Not sure if this is a bug or if it just needs to be documented.
When creating a binding to a react component I had to do this<EMAIL_ADDRESS>"./components/PowerBi.gen"], I thought it would be relative to the file.
My structure is something like this:
src
- components
  - PowerBi.re
...
App.re

@ulrikstrid that is normally not required, and is pretty much independent from genType itself: that's the way to tell Bucklescript where to find the generated file.
Quick question: are you using "in-source": true ? That's a requirement.

@cristianoc It's the same code as in #105 and for more context the code have to look like this<EMAIL_ADDRESS>"./PowerBi"]<EMAIL_ADDRESS>"./components/PowerBi.gen"] so I guess genType actually handels this correctly but not bucklescript.
Yes, I'm using "in-source": true

@ulrikstrid presumably there's a PowerBi.js file: where is it located?
Also, could you paste the generated .bs.js file too?

With the 1.6.1 release I tried to use genType again with my module. This is my working binding:
/* src/components/PowerBi.re */
<EMAIL_ADDRESS>"./PowerBi"]<EMAIL_ADDRESS>"../components/PowerBi.gen"]
external make:
  (~accessToken: string, ~reportId: string, ~groupId: string, 'a) =>
  ReasonReact.component(
    ReasonReact.stateless,
    ReasonReact.noRetainedProps,
    ReasonReact.actionless,
  ) =
  "";

It seems like this<EMAIL_ADDRESS>"../components/PowerBi.gen"] have to be relative to where it's used as all my PowerBi stuff is inside of a "components" folder and it's used from "pages".
PowerBi.gen.js:
/* Untyped file generated by genType. */

import PowerBi from './PowerBi';

import * as React from 'react';

import * as ReasonReact from 'reason-react/src/ReasonReact.js';

// Export 'make' early to allow circular import from the '.bs.js' file.
export const make = function _(accessToken, reportId, groupId, children) { return ReasonReact.wrapJsForReason(PowerBi, {accessToken: accessToken, reportId: reportId, groupId: groupId}, children); };

The import in my src/pages/Reports seems to be a 1-1 to<EMAIL_ADDRESS>"../components/PowerBi.gen"]:
import * as PowerBiGen from "../components/PowerBi.gen";
If I change it to what I would expect<EMAIL_ADDRESS>"./PowerBi.gen"] I get this import instead:
import * as PowerBiGen from "./PowerBi.gen";

@ulrikstrid could you also paste PowerBi.bs.js?

PowerBi.bs.js:
// Generated by BUCKLESCRIPT VERSION 4.0.9, PLEASE EDIT WITH CARE
/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */

@ulrikstrid I think I understand now. You're saying that the argument to bs.module is relative to where PowerBi.re is used from.
To confirm: is it true that if it's used separately from 2 different directories, then there's no correct annotation that will work? And this issue will show up independently from genType.
My suggestion here is to have make be defined locally by adding
let make = make;

At that point, everything should be local, and PowerBi.bs.js won't be empty anymore.
CC @bobzhang

Can you think of some words to add to the README to help others too?

or just add a mli file using val make : ... should also work

@bobzhang adding an interface file with identical type declaration changes the semantics? Is this intentional behaviour?

adding an interface file with identical type declaration changes the semantics? Is this intentional behaviour?

This indeed could cause some suprise, should be improved


Build is not working on Edge

Cf. https://github.com/readium/readium-js-viewer/issues/394#issuecomment-175788792
A quick test on Edge had the message bar give
File failed to load: http://<IP_ADDRESS>:8080/test/jax/output/HTML-CSS/config.js
What the?
cc @dpvc if you have any ideas :frowning:

test was with the new test file (which unfortunately was committed with MathJax being commented out)

Maybe because of https://github.com/pkra/MathJax-single-file/commit/d0271292141d980a412c728bbe47feaa7fdaea64#diff-35b4a816e0441e6a375cd925af50752cL225 ?

Maybe because of d027129#diff-35b4a816e0441e6a375cd925af50752cL225 ?

No, that doesn't change much.

Have you checked whether you have a MathJax cookie that might have HTML-CSS selected in the contextual menu?  Remember that cookies are site-sepecific, so if you had used the menu at some other earlier time on your http://<IP_ADDRESS>:8080 address, that would still be in effect.

@dpvc that's not it sadly (fwiw, I usually work in incognito mode).
I found out today that the un-minified version does not have any problems. So I'll try to update my dependencies and see if it's just a bug in the minifier.

@dpvc so I'm confused. I must have made a mistake earlier about the un-minified version doing ok -- or at least I can't reproduce this now.
The problem seems specific to the single-file build on Edge: a) http://s.codepen.io/pkra/debug/QwbJWa renders fine everywhere it should, including Edge, and b) the test in this repo renders fine everywhere except Edge.
Do you have any suggestion on how to debug this? Is there a way to find out what part of the code triggered the load of HTML-CSS's config.js?

 It was the cookie after all. Maybe it was also updating the package depdencies; at least it probably won't hurt.

I picked-up your latest changes:
https://github.com/pkra/MathJax-single-file/commit/0b3e56b719b9557064d881376c00eb7eeb54d280
I cleared "everything" in Edge (including cookies)
I still see blank characters in place of MathML:
https://readium.firebaseapp.com/?epub=https%3A%2F%2Fcdn.rawgit.com%2FIDPF%2Fepub-testsuite%2Fmaster%2Fcontent%2F30%2Fepub30-test-0100&goto={"idref"%3A"xhtml-mathml-001"}

Thanks, @danielweck. Let's continue on your thread.


UwcIsWindowsGraphicsCaptureCursorCaptureEnabledApiSupported crash

Hi Hecomi,
Loving the new update, Windows.Graphics.Capture is great!
Though I have found a crash:
0x00007FFF29546122 (uWindowCapture) UwcIsWindowsGraphicsCaptureCursorCaptureEnabledApiSupported   ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFF29539287) 0x00007FFF29539287 (uWindowCapture) (function-name not available) 0x00007FFF2953D8F7 (uWindowCapture) UwcIsWindowsGraphicsCaptureCursorCaptureEnabledApiSupported 0x00007FFF2953DC17 (uWindowCapture) UwcIsWindowsGraphicsCaptureCursorCaptureEnabledApiSupported 0x00007FFF29570210 (uWindowCapture) UwcIsWindowsGraphicsCaptureCursorCaptureEnabledApiSupported 0x00007FFF479053FE (KERNEL32) BaseThreadInitThunk 0x00007FFF496A590B (ntdll) RtlUserThreadStart
This same system also returned 'Unsupported' for all displays by uDesktopDuplication, so I assume all their displays are off their main GPU.
They are on Windows 10 version 2004 or later, Windows.Graphics.Capture is supported by the OS version at least.

Hi Curtis, thank you for the information!
I happen to have one laptop PC without a discrete GPU that I can use for the investigation, so I'll try it out on that.

Hi Hecomi,
That's great, let me know if you need any further information or would like me to test with the user who found the issue!

I was unable to reproduce this crash on my laptops (1909 / 1903)...
However, I am guessing that GraphicsCaptureSession::IsSupported() might be the cause of this crash, so could you try this .unitypackage with this code modified?
uWindowCapture-v1.0.2.temp.zip

I will try this now, thanks!

That seems to have fixed the crash this user was experiencing, thank you!

Hi Hecomi,
That same user just reported another crash related to the same method. Stack trace is as follows:
Fallback handler could not load library D:/Steam/steamapps/common/OVR Toolkit/OVR Toolkit_Data/Mono/libc   ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFC693AF2F2) 0x00007FFC693AF2F2 (d3d11) (function-name not available)   ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFC693AA62F) 0x00007FFC693AA62F (d3d11) (function-name not available) Fallback handler could not load library D:/Steam/steamapps/common/OVR Toolkit/OVR Toolkit_Data/Mono/libc.dll Fallback handler could not load library D:/Steam/steamapps/common/OVR Toolkit/OVR Toolkit_Data/Mono/libc 0x00007FFBFCC067C1 (uWindowCapture) UwcIsWindowsGraphicsCaptureCursorCaptureEnabledApiSupported   ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFBFCBF97C3) 0x00007FFBFCBF97C3 (uWindowCapture) (function-name not available) 0x00007FFBFCBFDF77 (uWindowCapture) UwcIsWindowsGraphicsCaptureCursorCaptureEnabledApiSupported 0x00007FFBFCBFE297 (uWindowCapture) UwcIsWindowsGraphicsCaptureCursorCaptureEnabledApiSupported 0x00007FFBFCC30F50 (uWindowCapture) UwcIsWindowsGraphicsCaptureCursorCaptureEnabledApiSupported Fallback handler could not load library D:/Steam/steamapps/common/OVR Toolkit/OVR Toolkit_Data/Mono/libc Fallback handler could not load library D:/Steam/steamapps/common/OVR Toolkit/OVR Toolkit_Data/Mono/libc.dll 0x00007FFC6DA453FE (KERNEL32) BaseThreadInitThunk Fallback handler could not load library D:/Steam/steamapps/common/OVR Toolkit/OVR Toolkit_Data/Mono/libc 0x00007FFC6E52590B (ntdll) RtlUserThreadStart
This appears to have happened upon activating the window GameObject.

Hello,
This error is still occuring on v1.1.2 and latest commit.
windows 10 version 21H2
To reproduce it :

pull the latest commit and go to the window list scene
have a minimum of 10 application window opened (the more there are, the more frequently the bug will occur)
Hit play and activate / deactivate the windows streaming for some of them a little.
after 15-20 seconds, stop the scene and repeat last step until Unity crashes.

It seem that by disabling the cursor, getting the errors of the dll on unity log, capping the streaming at 20fps and using the PrintWindow method for streaming , there is less crashes.


Add support for multi-nic systems

is there a way to currently do this? Using hosts with multiple interfaces and everything appears to be working except that the VIP is being added to the wrong vlan interface.


SPARK-5425: Use synchronised methods in system properties to create SparkConf

SPARK-5425: Fixed usages of system properties
This patch fixes few problems caused by the fact that the Scala wrapper over system properties is not thread-safe and is basically invalid because it doesn't take into account the default values which could have been set in the properties object. The problem is fixed by modifying Utils.getSystemProperties method so that it uses stringPropertyNames method of the Properties class, which is thread-safe (internally it creates a defensive copy in a synchronized method) and returns keys of the properties which were set explicitly and which are defined as defaults.
The other related problem, which is fixed here. was in ResetSystemProperties mix-in. It created a copy of the system properties in the wrong way.
This patch also introduces a test case for thread-safeness of SparkConf creation.
Refer to the discussion in https://github.com/apache/spark/pull/4220 for more details.

Test build #26161 has started for   PR 4221 at commit 94aeacf.

This patch merges cleanly.

Test build #26161 has finished for   PR 4221 at commit 94aeacf.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/26161/
Test FAILed.

Test build #26312 has started for   PR 4221 at commit 4a0c50d.

This patch merges cleanly.

Explanation of the second commit is in https://github.com/apache/spark/pull/4220

Test build #26312 has finished for   PR 4221 at commit 4a0c50d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/26312/
Test PASSed.

Test build #26321 has started for   PR 4221 at commit 01dd5cb.

This patch merges cleanly.

Test build #26321 has finished for   PR 4221 at commit 01dd5cb.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/26321/
Test PASSed.

Test build #26498 has started for   PR 4221 at commit 87951a2.

This patch merges cleanly.

Test build #26498 has finished for   PR 4221 at commit 87951a2.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/26498/
Test PASSed.

Let's leave this PR open for a few days until we complete the 1.2.1 release voting, then I'll merge it into branch-1.2 (1.2.2).

Jenkins, retest this please.

Test build #27019 has started for   PR 4221 at commit 87951a2.

This patch merges cleanly.

I'm going to merge this into branch-1.2 (1.2.2) now since I'd like to see if resolves https://issues.apache.org/jira/browse/SPARK-5227.

Test build #27019 has finished for   PR 4221 at commit 87951a2.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/27019/
Test PASSed.

I've merged this into branch-1.2 (1.2.2).  Thanks!
@jacek-lewandowski, you can close this PR now that it's been merged, since GitHub can't auto close.

Mind closing this PR @jacek-lewandowski ?

Yeah our auto-close doesn't work on PR's into release branches like this.


Questions about the effect of pretraining.

I'm not sure about the effect of EEG pretraining. I have directly train a shallow convolution network on eeg_5_95_std.pth as used in your paper. And the test accuracy according to max validation is about 60% on average, which is better than the classification accuracy 45% mentioned in your paper.
And a parallel work NeuroImagen achieves better results without pretraining. So I wonder whether EEG pretraining is indeed meaningful???

好兄弟，可以加一个微信吗？我也在做这方面的工作，希望多多交流。

I guess NeuroImagen may not use the same data, because the paper did not mention 5-95 hz filtering

I guess NeuroImagen may not use the same data, because the paper did not mention 5-95 hz filtering

I think that's true. Without 5-95 hz filtering, this dataset is unreliable.

好兄弟，可以加一个微信吗？我也在做这方面的工作，希望多多交流。

好兄弟,可以加个微信吗,我也开始做这方面工作了


Correct an error in CHANGELOG

The "none" members of imported NS_OPTIONS option sets are not marked as unavailable
668d224b624ef73af628eedc43382e6b11c69000

Fix rdar://problem/25168818 Don't import None members in NS_OPTIONS types
When importing members of an NS_OPTIONS (aka an option set), mark imported
members that have a value of 0 with an unavailable error.

Doh, thanks! :-)


ModelDetailPage Bug

Fixed ModelDetailPage import error and refactores sampleInput names for consitency.

Thanks for noticing and fixing these!


Replace "location" with "target"

As with commit 7fa7ca9d from #112, this is to match the terminology of the project itself ("Custom Links") and that of the "create new link" form.

Coverage decreased (-0.04%) to 98.029% when pulling b05dbc7f99b11e668fae0316ee39b51eb5b715ba on rename-location-to-target into d8c594e0ee1defa4da19d3816f34887e0b136a90 on master.


[Storage-Queue][Samples] add a scenario of receiving more than one messages with receiveMessages()

This PR fixed #6529 by updating the sample sdk/storage/storage-queue/samples/v12/javascript/queueClient.js. Specifically, it adds a scenario of receiving more than one messages with receiveMessages().

@jeremymeng I have republished the samples and it is working fine in both TypeScript and JavaScript!


Buddybuild crash report on build #384

Buddybuild detected a crash from Unknown user
Yep/ViewControllers/Conversation/ConversationViewController.swift line 1534`

View File | View Full Crash Details

Crash report from Unknown user


Experiment: Render Graph from rend3

💻 Examples

🚨 Test instructions

✔ PR Todo

[ ] Included links to related issues/PRs

For now we are going with the render graph from bevy: https://github.com/maplibre/maplibre-rs/pull/93


fix(deps): update dependency react-bootstrap-typeahead to v5

This PR contains the following updates:

Package
Type
Update
Change

react-bootstrap-typeahead (source)
dependencies
major
3.4.7 -> 5.1.0

Release Notes

ericgio/react-bootstrap-typeahead
v5.1.0
Compare Source
This release consists primarily of bug fixes in the useAsync hook. As part of that, there is a small backwards-compatible change to the API, hence a minor release. The delay prop in AsyncTypeahead can now be updated, whereas before it could only be set during the initial mount.
Bug Fixes

Fix useAsync bugs (#561)

Internal, Docs, + Examples

Use Fragment in example
Add hooks linter and fix issues

v5.0.0
Compare Source
v5.0 is a fairly extensive rewrite that brings the library more up-to-date with all the changes that React has introduced in the past year or so. Deprecated lifecycles and functions are finally gone; many components were rewritten with hooks, some of which have been exposed as part of the public API to make customization easier or more flexible. This version also drops official support for Bootstrap 3.
Breaking Changes
Please see the upgrade guide for more details on migrating from v4 to v5.

React >= 16.8 is required
Drop official support for Bootstrap 3
Remove remaining references to findDOMNode (#415)
Remove hintContainer and replaced with Hint component
bsSize prop has been renamed to size (deprecated in v4.2)
Remove getInstance (deprecated in v4.2)
Increase specificity for multi-select component

Deprecations

asyncContainer, menuItemContainer, and tokenContainer deprecated; renamed to withAsync, withItem, and withToken, respectively.
selectHintOnEnter prop deprecated; use shouldSelect prop on Hint component or shouldSelectHint prop on TypeaheadInputSingle & TypeaheadInputMulti

Enhancements

New useAsync, useItem, and useToken hooks
Expose shouldSelectHint prop on input components
useHint hook + callback for customizing hint selection (#330)

Internal + Documentation

Remove UNSAFE_componentWillReceiveProps (#415)
Remove BS3 code from examples
Update dependencies
Update react-overlays and add RootClose shim component (#415)
Move RootClose component to main Typeahead file
Remove extraneous type definition
Rename and reorganize some files
Improve test coverage
Update documentation

v4.2.3
Compare Source
Bug Fixes

Incorporate escape-string-regexp function (#540)
Fix menu cycling (#545)

v4.2.2
Compare Source

Fix outdated yarn.lock file
Update flow version

v4.2.1
Compare Source
v4.2.0
Compare Source
Bug Fixes

Fix keyboard navigation in StrictMode (#530)

Deprecations

Deprecate getInstance
Deprecate bsSize prop

Enhancements + Feature Requests

Accept node for newSelectionPrefix and paginationText (#535)
Add toggleMenu callback

Internal + Documentation

Upgrade dependencies
Update how tests access the component instance
Add community examples section to README (#455)
Fix anchor links in upgrade guide
Remove duplicated labelKey tag in docs (Thanks @atefBB!)

v4.1.0
Compare Source
Bug Fixes

Don't perform results logic when menu is hidden
Reset state.initialItem when hiding menu
Fix Flow type import

Internal

Upgrade flow-bin + rollup
Upgrade minor versions of dependencies
Use React.Fragment instead of array
lodash.isequal -> fast-deep-equal (~8% pkg reduction)
Pass input node to hint container via context
Update Typeahead child function signature
Move reference element ref to main component
Move RootCloseWrapper to main component
Simplify ref flow types

v4.0.0
Compare Source
Breaking Changes
See the upgrade guide for details on how to migrate to v4.0:

Require React >=16.3.0
Remove create-react-context & react-lifecycles-compat dependencies
Remove ability to hide menu via falsy emptyLabel value
Drop menuId in favor of id and make required for a11y
Updates to Overlay API; use positionFixed prop instead of bodyContainer
Remove onMenuHide and onMenuShow; use onMenuToggle prop instead
Fix default for autoComplete attribute (#413)
Remove a11y announcer (a11yNumResults & a11yNumSelected)(#301, #321)

Bug Fixes

Disable root close when token is inactive
Fix hint alignment issues (#501, #515)
Revert back to componentWillReceiveProps (#437)
Fix input focus bug when tabbing
Don't render interactive token if it is disabled
Fix undefined Element during SSR (#522)
Fix a11y issues in component + examples (#517)
Fix useCache bug (#520, #521 - Thanks @jbialobr!)
Fix custom option id incrementing
Update keydown behaviors
Don't filter results when menu is closed
Fix lib files not being included in package
Fix invalid aria values (#438)
Fix updating active index when result order changes
Prepend menu id to menu item id for uniqueness

Feature Requests + Enhancements

Include .scss files in package (#486)
Include ES module files in package
Allow event handlers to be passed to Token (#467, #471)
Remove findDOMNode from tokenContainer (#415)
Add readOnly prop to Token
Use forwardRef in MenuItem
Forward refs within input components
Publicly expose lower-level input components
Pass option to tokenContainer for onRemove
Render tokens as child of TypeaheadInputMulti
Update .npmignore to omit unnecessary files/folders from package
Add renderInput prop and expose hintContainer (#316)
Allow style prop to be passed to top-level element

Tooling

Update eslint-config + lint rules
Use Rollup for build, reduce umd package size by ~16%
Add Flow and annotate code
Use Jest for testing + add tests
Add code coverage reports and configure with Coveralls + Codecov
Add husky and lint-staged for git hooks

Internal

Update bsSize handling
Pass limited state down to menu & input
More consistent naming
Reduce lodash footprint
Update CSS build script
Add homepage and files to package.json, remove .npmignore
Update pagination option handling
Rename inner typeahead component
Drop Node 6 & 8 testing; add Node 12
Update dependencies
Use scroll-into-view-if-needed package
Simplify inputs + styles
Simplify Highlighter component
Consolidate propTypes
Use terser instead of uglify for minification
Add state modifier functions
Return strings/arrays from Highlighter component instead of wrapping with span
Re-organize file structure
Refactor internals to move towards a more modular and declarative API
Create a core set of components for better modularity
Better separation of typeahead and rendering logic

Examples & Docs

Default examples to Bootstrap 4
Update examples to use SFCs + hooks
Fix w3c validation
Update rendering and pagination examples
Add sandbox link to bug report template
Remove deprecated lifecycles
Fix scrollspy behavior
Update Markdown component
General improvements and updates to documentation

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

Available now for Enterprise: Renovate Pro with real-time webhook handling and priority job queue.

Renovate Ignore Notification
As this PR has been closed unmerged, Renovate will ignore this upgrade and you will not receive PRs for any future 5.x releases. However, if you upgrade to 5.x manually then Renovate will then reenable updates for minor and patch updates automatically.
If this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.


feat: support col width

support col width by specifying dataSet columns as object: {title:some-title, width: {wpx:num-of-pixes}} or {wch:num-of-chars}

Would you please review and merge this feature?

Could you, please merge this pull request, it a nice to have feature?

@vasil-soft-zen the feature is already merged and released yesterday.


Import publications fix

Description
Import publications would time out in the backend for some reason. After investigating, I found out that Google has changed the HTML of the individual publication pages, breaking the scraper. Additionally, sometimes it would take an abnormally long time to load even the profile (30s~) causing Puppeteer to time out.
Type of change

[x] Bug fix
[ ] New feature
[ ] Refactoring
[ ] Documentation

Problem
See description.
Solution description
The HTML tags it scrapes from have been updated, but also instead of using Puppeteer which only has Chrome support, it's been changed to Playwright instead (made from the same team so the logic is mostly the same) so we have access to Firefox which will be more lightweight (thanks Akshay for the suggestion).
The scraping logic has been moved to its own function (scrapeGoogleScholar), while the initial setup like getting the individual publication urls on google scholar is in getGoogleScholarPublications.
Tests
As usual, feel free to play around with this and break it so we can iron out the bugs
If testing in postman:
Comment out the auth middleware for the endpoint if you're too lazy to put a cookie in postman like me (thanks Mable)
Do a GET to this endpoint: http://localhost:5000/publications/import/{gScholarUserId}/{startFrom}/validate/{teamId}
eg: http://localhost:5000/publications/import/eRbvWqYAAAAJ/10/validate/609f5ad827b1d48257c321d3
startFrom is used to facilitate pagination, so eg if we got the first 10 publications already, we would start from 10 to get the next publications
teamId is used to validate the imported publications whether they're in the database already
If testing via frontend:
Go to publications page -> click import
Keep in mind there are two bugs:

If you get the first ten publications, and import them, and then click on import, it will say you've imported all the publications. This is because the current logic assumes that the user will only import once, hence if the latest publications are in the db already then everything else before that should be imported. I want to improve this logic in a later ticket so if anyone has any suggestions please let me know.
Pagination is prone to breaking if click to go to another page that isn't next in order to your current page (eg going from page 5 to page 1) where no publications will show up. If you use the arrow buttons to navigate the pages this doesn't happen. If anyone wants to fix this for me, let me know. :) Or else I'll fix this later.

Risk
Low, should just affect the import functionality

Also, please update this branch with main's latest changes :)


Automatically add product to favorites if user favorites a review

Need to think about whether to remove the product from favorites if the user then unfavorites the review

1decf012c404bc7d96c1a2bd499b2da8c1a42e1b
In addition, all reviews are unfavorited when a product is unfavorited


Add Ant

Add the latest version of the Ant build system. While it is relatively simple compared to more capable builders like Maven, it (like Makefile for C++) is the "classic" approach on which the newer technologies are built.

Added


Add build scripts for utilities

Gulp is no longer needed. Build scripts are all run via npm now.

@SamGraber

:shipit:


Type insanity

Wow.  Is this strictly necessary?  I'm usually hesitant about this kind of thing on the basis of maintainability.  I'm not opposed to considering it, but I would like to understand what problem it solves.

I'm not totally sure. So the way that the we'll be writing instances of ToJSON for different versions is something like
data Object = ..
instance (Tagged V1 Object) where
  toJSON (Tagged (Object ..)) = object [..]

instance (Tagged V2 Object) where
  toJSON (Tagged (Object ..)) = object [..]

And then to bring all of the different versions together, you would write something like
instance SerializedVersion Object where
  serializers = M.fromList [(v1, getSerializer pv1), (v2, getSerializer pv2)]

where v1 is the data equivalent of the V1 type and pv1is Proxy :: Proxy V1.
There are two annoying things about this:

You have to keep track of all these different representations of versions across the data/type boundary
There's some unnecessary repetition of the version in the definition, so you could end up associating the V1 version with the V2 serializer.

This branch addresses both of these so that you only need to write
instance SerializedVersion Object where
   type SerializerVersions Object = '[V1, V2]

which is IMO much cleaner.
Unfortunately it means that we have to jump through some type hoops to make sure that you can't associate a version with an object without a ToJSON instance for that version. In the current way of doing things, that would be impossible since getSerializer pv1 is a concrete term and forces the type checker to do the verification. But I believe all of the craziness in here would be opaque to any code that uses this library.
So yeah, don't know if it's strictly necessary but it was something that was bugging me about the current implementation.

Ok, that seems reasonable to me.  Could you maybe put some of this higher level explanation in the comments in a way that connects it to specific parts of the code?
Also, this discussion brought one other question to mind.  Your example above assumes that we are defining two different version representations for one type.  How would your system work if the different versions were different types?  For example:
data Foo_V1 = Foo_V1
    { fooAlpha :: Int
    , fooBeta  :: String
    , fooGamma :: String
    }

data Foo_V2 = Foo_V2
    { fooAlpha :: Int
    , fooGamma :: FooType
    }

One of the goals for this project is to make sure there's no need to have data be represented by two different types. All versioning happens at the serialization/deserialization level, not at the logic level. Not sure if you're using Foo_V1 and Foo_V2 in the sense that they'd be existing at the same time or just for making it easier to talk about the "same" datatype at different snapshots in time. Assuming the latter.
The first instance we would write would be for V1 of Foo_V1 (side note, if there is only one version, then you don't need to write a Tagged instance).
instance ToJSON (Tagged V1 Foo_V1) where
  toJSON (Tagged (Foo_V1 alpha beta gamma)) = object [ "alpha" .= alpha
                                                     , "beta" .= beta
                                                     , "gamma" .= gamma
                                                     ]

Now we decide that beta should be removed and gamma should morph to a more complex type. However we still need to support V1, so we can't remove beta from Foo_V2. For gamma, we have two options:

add a "gammaComplex" field in addition to the simple field and have the V1 serializer use one and the V2 serialize use the other
data Foo_V2 = Foo_V2
    { fooAlpha :: Int
    , fooBeta :: String -- note this has to be included
    , fooGammaSimple :: String
    , fooGammaComplex :: FooType
    }

instance ToJSON (Tagged V1 Foo_V2) where
  toJSON (Tagged (Foo_V1 alpha beta gamma _)) = object [ "alpha" .= alpha
                                                       , "beta" .= beta
                                                       , "gamma" .= gamma -- simple
                                                       ]

instance ToJSON (Tagged V2 Foo_V2) where
  toJSON (Tagged (Foo_V1 alpha _  _ gamma)) = object [ "alpha" .= alpha
                                                     -- no beta
                                                     , "gamma" .= gamma -- complex
                                                     ]

change gamma from String to FooType and write a function of type FooType -> String which is used to transform the complex version to the simple version
data Foo_V2 = Foo_V2
    { fooAlpha :: Int
    , fooBeta :: String
    , fooGamma :: FooType
    }

simplifyGamma :: FooType -> String
simplifyGamma complex = ...

instance ToJSON (Tagged V1 Foo_V2) where
  toJSON (Tagged (Foo_V1 alpha beta gamma)) = object [ "alpha" .= alpha
                                                     , "beta" .= beta
                                                     , "gamma" .= simplifyGamma gamma
                                                     ]

instance ToJSON (Tagged V2 Foo_V2) where
  toJSON (Tagged (Foo_V1 alpha _ gamma)) = object [ "alpha" .= alpha
                                                  -- no beta
                                                  , "gamma" .= gamma
                                                  ]

One of the goals for this project is to make sure there's no need to have data be represented by two different types. All versioning happens at the serialization/deserialization level, not at the logic level.

Ok, this sounds good.
I was thinking for a moment that this goal is impossible, and that you have to be willing to have two separate types at the same time in order to be able to support backwards-incompatible changes.  (Although I've actually used the two-type approach in production and it is admittedly miserable to work with.)  But I guess the strategy you describe of keeping the superset (using either of your two options) in the type until enough time passes seems like it should work.
I agree that option #2 is probably more desirable.  But it seems like there could conceivably be situations where it's impossible to write FooType -> String (for instance if FooType doesn't contain enough information).  In those cases it seems like falling back to option #1 should be fine.


Can't Download After Updating Library

Device information

Neko version: 2.6.2
Android phone & version: Realme C21, Android 11

Steps to reproduce

Updating library.
Downloading chapters.
Can't download chapters even after changing to mobile data.
Force close the app, the re-open.
Tries to download again, it works.

Expected behavior
Immediately downloading.
Actual behavior
Have to force close the app, and re-opening it to be able to download.
Other details
Video of the bug: https://files.catbox.moe/1zhp4i.mp4

Can you do the backup restore thing. Mentioned in the pinned (infinite load) issue.

Already tried the solution, and it works like a charm! Thank you so much!


move UnquoteString to output_filter.go

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 80.97%. Comparing base (c65d4ae) to head (672669c).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1050      +/-   ##
==========================================
+ Coverage   80.25%   80.97%   +0.71%
==========================================
  Files          47       47
  Lines        4077     3416     -661
==========================================
- Hits         3272     2766     -506
+ Misses        662      507     -155
  Partials      143      143

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Rocket.Chat keeps refreshing in the desktop app

My Setup

Operating System:
App Version:
Installation type:

[x] I have tested with the latest version
[ ] I can simulate the issue easily

Description

Current Behavior

Expected Behavior

I'm experiencing this same issue.

Same issue here, on VPN connection after latest update.

Same issue. What every channel I'm in or typing the desktop client will refresh and send me back to home often.
We can't use Desktop version because of this bug. We have to go back to the channel we are chatting  and re-typing every time it refresh and it refresh too often.
Version 2.15.0
OS: Win10 x64
Installation type: Desktop client application

It's fixed in the current version.


Escape prefix before using in Regex - fixes #84

Fix for issue #84, escapes the prefix before passing it to the regex as putting a $ straight into a regex causes unexpected results.

Closing since feature is implemented


l10n update

Since this PR is based on an old version of the extension (and I also found out the id isn't required in Scratch.translate, and I wanted to look over the descriptions), I've decided to just do this myself. Thanks, though!


Artemis-697

This is replacing #726

I'm writing the full testsuite on this, please wait for merging.

test faliures.. don't merge this please.

It should be fine now...


SQL Aggregate functions (MAX/MIN, SUM, ROUND, COUNT)

These basic SQL aggregate functions needs to be implemented.

[x] Max/Min
[x] Sum
[x] Round
[x] Count

See: https://github.com/Arctium-Software/LappaORM/issues/8

See pull request


created some repository methods for the batch jobs, jobs still todo

Current coverage is 12.15%

Merging #21 into master will increase coverage by +10.69% as of 49f7401

@@            master     #21   diff @@
======================================
  Files           36      42     +6
  Stmts          410     477    +67
  Branches         8      10     +2
  Methods          0       0
======================================
+ Hit              6      58    +52
  Partial          0       0
- Missed         404     419    +15

Review entire Coverage Diff as of 49f7401

Powered by Codecov. Updated on successful CI builds.


omg the words day ever

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

Go to 'try to login'
Click on 'login'
Scroll down to 'no need.'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

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

Smartphone (please complete the following information):

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

F1TV Account (please complete the following information):

Subscription Type: [e.g. Pro]
Country: [e.g. United States]

Additional context
Add any other context about the problem here.
after clicking login

can find what return Cannot read properties of undefined (reading 'Protection')
Thank you :)

Seems this is also erroring on firefox with a slightly different error response:


Combiation of globally use strict JS files

If a file is determined to be strict at the global scope (as per #909), it
should be possible to combine those JS assets into one file.

It is not, however, possible to eval() them at a different location, as
js_combine currently does for non-strict JS, as eval()'ing strict scripts will
not leak globally declared variables into the scope that eval was called in.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 17 Mar 2014 at 4:03

[original reporter here]


How to control Sidekick animation with ScrollControll's offset value?

I want animation to be driven as the user scrolls list.
E.g. the more page is scrolled, the more SidekickController value is from 0.0 to 1.0.

@letsar Is it possible to achieve somehow?

Any updates ? @emvaized


Ensure replaceRange and Options are set appropriately

Here's another attempt at ensuring replaceRange exists.  Can you check and see if this works for vscode?
Also, I did an extra null option fix during initialization.

I'm now convinced that the easiest solution is to fix this in Haxe instead of having a band-aid in the language server (which would cause issues with Haxe 4.0.0-preview.4 compatibility and whatnot).
I've reverted that code for now: https://github.com/vshaxe/haxe-languageserver/commit/ea3ececdbb732b008496fcd1600a639fb7db51c7. Tracking it in https://github.com/HaxeFoundation/haxe/issues/7296.

Great, glad we're able to find a solid pattern to follow here.


Expand CONTRIBUTING.md guidance

Example: https://github.com/kubernetes/sig-release/blob/master/CONTRIBUTING.md
(I can vouch for this one, as I wrote it :))

Hi
I created an initial contribution guide which is derived from yours as you suggested, please let me know what you think.
https://github.com/openclarity/functionclarity/pull/160

This project has been publicly archived. Please visit github.com/openclarity or openclarity.io to discover our other projects!


When rack-timeout fires, any reason to return a 5xx and not a 408 request timeout?

I don't see any reference to a 408 so I wanted to check if others have considered returning a non 5xx.
On the other handle, 4xx usually means the client did something wrong. In this case, I might argue that the server did something wrong by not being able to meet its promise to return quickly, and so it should be a 5xx.
But I wanted to communicate to the client that this error is a timeout that may work if they try again as opposed to 504 which usually feels more nefarious
related

https://github.com/sharpstone/rack-timeout/issues/3
https://github.com/sharpstone/rack-timeout/issues/40

@dentarg thanks for the feedback.  Given that the default behavior of the gem is to return a 500, I think it's fair to recommend some other options, assuming this gem as an 'expert in what to do when it is used' :)

Given that the default behavior of the gem is to return a 500

No, this is not what this gem does, if this happens, it happens in your application (or your application framework)
This gem raise an exception when the timeout occurs, see https://github.com/sharpstone/rack-timeout/blob/v0.6.0/doc/exceptions.md

I understand that.  I think that's a little disingenuous to say it raises an unhandled exception with no recommendation as to how you may want to handle it.
For example, it could have a railtie which adds a default response status
Rails.configuration.action_dispatch.rescue_responses["Rack::Timeout::Error"] = :service_unavailable
Rails.configuration.action_dispatch.rescue_responses["Rack::Timeout::RequestTimeoutException"] = :service_unavailable

Oh cute, the slowpoke gem which extends rack-timeout does just this
https://github.com/ankane/slowpoke/blob/cb7a678b0dcc0ebe906f2eeec6915620f612df95/lib/slowpoke/railtie.rb#L1-L8
module Slowpoke
  class Railtie < Rails::Railtie
    config.slowpoke = ActiveSupport::OrderedOptions.new

    # must happen outside initializer (so it runs earlier)
    config.action_dispatch.rescue_responses.merge!(
      "Rack::Timeout::RequestTimeoutError" => :service_unavailable,
      "Rack::Timeout::RequestExpiryError" => :service_unavailable

I'm happy to make a PR to reference this or just close this issue

LMK if there's a doc PR that needs to be made. FWIW I would like to merge the examples in this repo in here https://github.com/schneems/rack_timeout_demos or at least link to them from the docs here.

I'm interested in helping improve usage and docs.  But need buy-in.
Maybe the issue title is the problem. I don't know.   Documenting configuring generated response code seemed a no brainer to me but this is closed now so shrug

I took a closer look at this issue. It looks like rack-timeout doesn't really handle status codes at all it just fires an exception and then counts on someone else to grab it and turn it into a 500/etc. Which is what @dentarg said, and I just glossed over it.
There's a doc folder: https://github.com/sharpstone/rack-timeout/tree/master/doc we could start documenting behavior in a file there. There's already https://github.com/sharpstone/rack-timeout/blob/v0.6.0/doc/exceptions.md which we could extend.
I think the options going forward would be to either add docs on how to set this up as listed in this issue or picking an appropriate default response and adding a railtie so we set to a more descriptive status code.
The only thing I don't love about 408 is the mantra "5xx is my problem 4xx is your problem". The timeout might be due to a poorly configured server and not within the user's power to address. I think the description is pretty spot on though https://www.lifewire.com/408-request-timeout-2622937. Let's re-open this since there seems to be interest.

Yeah,  408 is wrong,  though I believe I came to this gem to move timeouts from heroku router 499 into the app

I generally put this in the category of "user can configure their app/framework as they see fit." I'm not sure if adding something to the Railtie to configure Rails to return a 503 (Service Unavailable) instead of a 500 (for an unhandled exception) provides a significant benefit. I think a 503 implies more of manual downtime rather than an issue specific to a particular request, but that's certainly subject to interpretation.
I wouldn't return a 408 -- its use here that doesn't align with this documentation.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/408


[CARBONDATA-4002] Fix removal of columns from table schema.

Why is this PR needed?
When we change the value of sort_columns property and then perform a alter table query to unset long_string_columns. It results in removal of columns from table schema.
What changes were proposed in this PR?
Added fix to avoid removal of columns from table schema.
Does this PR introduce any user interface change?

No

Is any new testcase added?

Yes

Build Failed  with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/4162/

Build Failed  with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbon_PR_Builder_2.4.5/2420/

Build Failed  with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/4164/

Build Failed  with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbon_PR_Builder_2.4.5/2422/

Build Failed  with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/4165/

Build Failed  with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/4166/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbon_PR_Builder_2.4.5/2423/

retest this please

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbon_PR_Builder_2.4.5/2428/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/4171/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbon_PR_Builder_2.4.5/2438/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/4181/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbon_PR_Builder_2.4.5/2449/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/4192/

LGTM


Add NTLM Auth

This a first attempt at adding NTLM auth. It addresss the proposal in #617. Please let me know your thoughts.
It uses lfs.{endpoint}.access to toggle NTLM and most ntlm specific logic is in its own class. We store user/pass in the cred helper but could later go get them from AD.
Things that still need to be done:

Add Tests-I can add unit tests but I don't think migrating the whole test infrastructure to support windows environments should block this.
Add documentation.

Checks are failing because I haven't yet included the ntlm auth library. Assuming that folks are ok with this implementation and the libraries use I'll add it in the next iteration.

Thanks for the feedback @technoweenie. Before I go address it, are you ok with overall approach and use of the ThomsonReutersEikon library?

Reading the whole body into memory doesn't seem like it's going to help much, because it still takes time to do that. Reading into memory vs reading into a file will probably not differ significantly enough to matter while running concurrent transfers, particularly with groups of files of varying sizes.
I think the way to guarantee that the connection will be reused is to not run it concurrently. This could be done at a higher level by setting the number of workers for the transfer queue to 1. But then I'd have to wonder if that's really worth it vs re-authing connections. What's the cost there? Do we have benchmarks? I'm thinking setting the max idle conns to be >=  the number of concurrent workers should limit the number of connections that get tossed.

If you're reading the entire body in order to try to force the re-use of the authenticated connection, you're just serialising all the transfers anyway, so you might as well make that explicit by disabling concurrency for NTLM. The first request is always issued serially anyway (others are delayed until auth has been performed) so once you've detected NTLM in that first request you could disable parallel requests if you wanted to re-use the connection, without bulk reading into memory all the time.
I'm actually not convinced that the ReadAll is guaranteed not to be interrupted by another goroutine anyway, Go makes no assurances on that, so using it to try to serialise the requests probably isn't 100% watertight - it might be in this Go version but not always. Only deliberately running only one request at a time would do that, and then the regular code paths would ensure the body is read & closed before the next request.
But, I also agree with @rubyist that the proper solution is to allow the parallel transfers and to find a way to do the NTLM auth per connection, although I suspect that needs a to be implemented in a Transport implementation. TBH there's probably a good argument that our existing auth sequence should be in a Transport and not in the calling code.

there's probably a good argument that our existing auth sequence should be in a Transport and not in the calling code.

.. although the first request would still need to be serialised in order to ensure the user only gets one login prompt.

I think that we were just missing a close in an earlier version somewhere. I removed the body copying and upload works just fine with
ConcurrentTransfers=4
BatchTransfer=true

I lied. Upload works fine, but Download has race conditions where some number of files don't get downloaded depending on interleaving. Setting 'ConcurrentTransfers=1` works though.

See #820


Fix generic django view classes when template extension is not .html

Also adds tests

Coverage increased (+1.6%) to 80.978% when pulling dadf45daeb1c882cf6b4d606041d8ebfb290a544 on view_tests_and_fix into 05be260a66a3deb021313e5bfc87fadaa8205e29 on master.

Coverage increased (+1.6%) to 81.182% when pulling b2626595ff6196c5c109498493e0f8599f5de97e on view_tests_and_fix into 13dbeebfe9edf30a75a5d119d9a0f59a2cc43941 on master.


Add individualStrokeWeights to frame and vector nodes

This was added in May 2022 per https://www.figma.com/developers/api.

This went completely under the radar, sorry for the late response. Looks great!

Thanks for the contribution 🎉