A Few Things...

First I want to start by saying this library is fantastic, thanks for your work on it. Before using this lib, I tried regexes which ended up getting overly complex and slow. I'm happy to submit PRs for everything below, just wanted to talk through some of it through beforehand.
I noticed a few bugs so far...

[x] PropTypes error from @bbob/react (#27).
[x] reactPreset.extend doesn't work, but presetHTML5.extend does (#29).
[x] Warning: Each child in a list should have a unique "key" prop. with react (#30).
[x] Uppercase tags cause issues in react (see below) (#34).
[ ] [*] tags inside lists don't work in react.
[ ] I can help with some documentation (e.g. options, create a preset).

These ones are necessary, but would be nice to have...

[x] Expose getUniqAttr from plugin-helpers so preset authors and consumers can use it.

Uppercase Tags
For example, something like [B] kind of works in the demo because most browsers will automatically recognize and lowercase it (at least in the inspector) so it will still be rendered. That said the styling attributes you're adding with the b definition are lost and the demo only shows it bold because of default browser styling.
In react however, the following error is thrown:
<B /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.

To fix this issue, I simply injected a little preset before the main one to lowercase all tag names:
            plugins={[
                (tree, core) => {
                    tree.walk(node => {
                        if (typeof node === 'object' && node.tag) {
                            node.tag = node.tag.toLowerCase()
                        }

                        return node
                    })
                },
                preset()
            ]}

That works, but feels a little hacky so I'm thinking this probably makes sense as a built-in but I'm not sure where to put it.

Maybe reactPreset.extend does work but the example doesn't spread tags back in (...tags) like it does under the hood when extending presetHTML5? I used the example which excludes that spread...
  const preset = reactPreset.extend((tags, options) => ({
+   ...tags,
    quote: node => ({
      tag: "blockquote",
      content: node.content
    })
  }))

If this is the issue I'd be happy to submit a PR to update the docs.

@JiLiZART take a look when you get a chance and let me know your thoughts. I'm pretty much done for now but I'm still happy to help with these issues. I submitted PRs for the obvious fixes/updates but I wanted to hear what you had to say on the other things before moving forward.
Again, thanks for your work on this project.

Maybe I could apply the lowercase here? I don't know if there's any other implications, but in my experience all bbcode tags should be fine lower-cased.

Maybe I could apply the lowercase here ? I don't know if there's any other implications, but in my experience all bbcode tags should be fine lower-cased.
Yes, TagNode is a good way to lowercase tag.

@skipjack Thanks for contributing! Any help would be helpful.
I think this will make the project only better.

i use

[ALT=http://media.thethaovanhoa.vn/2013/06/22/07/32/Pirlo.jpg]Pirlo[/ALT]

has error

Warning:  is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.
in ALT (created by Component)
in span (created by Component)
in Component (created by App)
in App

I just published 2.5.3 you can try

@JiLiZART thanks

I freeze this due inactivity


#3638 bump type script angular

Description

Bump TypeScript, Angular
Target version needs to be confirmed..
Related Issue : #3638

How Has This Been Tested?

Need additional checks?
Overall function check
Types of changes

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

Checklist:

[ ] I have read the CONTRIBUTING document.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have added tests to cover my changes.

Additional Context

deploy to 2

deploy to 2

deploy to 2

deploy to 2


More form explainer copy changes

These came from Harris.
Don't review/merge this yet. Might as well wait until we get the updated links from @mthibos.

The word from @mthibos is those links aren't coming for a while, and we should add that portion of the update to the backlog. So, I think we can go ahead with reviewing and merging these.
Changes

Content updates from Harris

Screenshots
Review
@cfarm or @virginiacc
Harris will review actual content on build once its merged.

Looks good!


Update wheel building using meson

Update to wheel building github action that uses cibuildwheel in line with switch to meson build system.
Changes:

No longer building any 32-bit wheels, in line with what numpy and matplotlib are planning.
Added building of ppc64le and s390x wheels, on manylinux only.
Cross-building of aarch64 macos wheels on x86_64 is obtained using a workaround to find pybind11-config that won't be needed when meson 1.2.0 is reieased, which should be soon.
Printing build_config as part of post-build tests to confirm cross-build and so are working as expected.
Still building musllinux wheels on x86_64 only.

Fixes final item of issue #224.

No longer building any 32-bit wheels, in line with what numpy and matplotlib are planning.

Note that Matplotlib only dropped 32-bit Linux, not Windows. NumPy hasn't yet dropped 32-bit Windows either, though looks like it will for 2.0. We noticed this in Matplotlib wheel builds, because it appears that cibuildwheel doesn't use --prefer-binary in its test step and is attempting to build 32-bit contourpy now (which doesn't work since test step doesn't have any dev dependencies.) If both you and NumPy had to drop 32-bit with the switch to Meson, I guess we'll probably have to do the same.

I did attend one of the Matplotlib weekly meetings recently and asked about 32-bit support and I thought Tom confirmed that you were dropping all 32-bit wheels. But it might be that I heard what I wanted to hear.
The problem is a technical one, cross-compiling using meson on Windows to create the 32-bit wheels. I haven't managed to get this working yet, and I haven't found a meson-based project that does it. scikit-image 0.21.0 (released last week) doesn't have them (https://pypi.org/project/scikit-image/0.21.0/#files) and neither does scipy 1.11.0rc1 (https://pypi.org/project/scipy/1.11.0rc1/#files). numpy 1.25.0rc1 does (https://pypi.org/project/numpy/1.25.0rc1/#files) but they haven't switched to meson for wheel building quite yet. There is a numpy issue numpy/numpy#23717 which almost but not quite commits to dropping 32-bit Windows.
My plan was to follow numpy as closely as possible, and I figured that 32-bit Windows users can still use contourpy 1.0.7 as there are no significant functional changes. This gives some leeway until Python 3.12 is released when a definite decision will be needed. I didn't expect this to cause Matplotlib any problems; I should probably have given you advance notice that I was going to do this.
Can you pin your 32-bit Windows wheel-building to contourpy<1.1?

  We are going to put actually dropping win32 wheels on the agenda for tomorrow (I'm inclined to stop building them).

I'll attend the meeting tomorrow, but I may not make the start.
I can do a build of 32-bit Windows wheels from the v1.1.0 commit but with the old build system resurrected if that helps in the short term.

My understanding was that the SciPy issue was getting a compiler toolchain that can compile Fortran sources. MSVC and Intel Fortran is a valid compiler combination, but not redistributable. Mingw gcc/gfortran is also a valid compiler combination, and is redistributable, but is 64-bit exclusive due to various reasons, unless someone puts in (non-trivial) work to put together a 32-bit version.
Building a 32-bit Windows wheel for purely MSVC-based C/C++ code on a 64-bit CI/CD server should not be infeasible, AFAIK, though I don't have any personal experience with it.

At yesterday's Matplotlib weekly meeting it was agreed that Matplotlib will stop releasing 32-bit Windows wheels as of now, the PR to do this (matplotlib/matplotlib#26125) has been merged.


please tag releases

Newest release on PyPI is 7.0.1 whereas newest git tag is v6.2.0.
Tagging in git aids those (like me, for Debian) who wants to redistribute this project and want to keep track of not only the released tarball but also correlate that with git development.
Thanks for considering.

I do tag them, just forgot that I have to manually git push --tags. 😉
Thanks for the reminder.


[Bug] composables problems without ssr

What happened?
In layouts/default.vue create this minimal setup:
<template>
  <section class="layout">
    <nuxt-link :to="$routing.getUrl('/')">home</nuxt-link>
    <nuxt-link :to="$routing.getUrl('/some-category')">category</nuxt-link>

    {{ getBreadcrumbs }}
  </section>
</template>
<script>

import ...

export default {
  setup() {
    const { breadcrumbs } = useBreadcrumbs();
    const getBreadcrumbs = computed(() => {
      return (
        breadcrumbs.value?.map((breadcrumb) => {
          return {
            text: breadcrumb.name
          }
        }) || []
      )
    });

    return {
      getBreadcrumbs
    }
  },
  ...
}
</script>

Click on the links.
Behavior with enabled SSR: breadcrumbs are changing.
Behavior with disabled SSR: breadcrumbs are not changing.
The same happens with other composables like useCms.
Steps To Reproduce
No response
Is there an existing issue for this?

[X] I have searched the existing issues

Version
Canary (generated by CLI)
Which element is affected?
composables
Environment
- OS: Win 11
- Node: 15.14.0
- Shopware API: v<IP_ADDRESS>
- Shopware PWA version: 1.0.1

Relevant log output
No response

Hi @super-kamil! Please upgrade you project to the v1.0.1 or @canary. #1728 fixes the issue.


WIFI-14171: Update phy driver for EAP105 LAN port

The fix has two parts:

Update the RTK PHY driver.
During initialization, reset PHY with GPIO and setup PHY registers

merged, Thanks !


Omnibus Embedding

Pull request to merge in omnibus embedding based off of graspy. Currently not ready for review

It looks like you included a bunch of files in notebooks/rguo123/. Shouldn't those be in tutorials or something?

Make sure to cite graspy for their code. I was using something like this for the zhu-godsie code I ported over.
References
.. [#1] Code from the https://github.com/neurodata/graspy package,
reproduced and shared with permission.

@rflperry Added reference in python file

I fixed a small typo in gcca docs since it's easier to do here then have a new PR and review again.

minor comments but looks good!

That being said, think at some point we need notebook showing more of how this is useful for downstream stuff


Allow stepping through diffs

Type of Change

[x] Bug fix (non-breaking change, fixes #3958 )
[x] New feature (non-breaking change, adds functionality)
[ ] Breaking change (effects multiple commands or functionality)
[ ] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[ ] Adding code coverage to existing functionality
[x] Pester test is included
[ ] Nunit test is included
[ ] Documentation
[ ] Build system

Purpose
While it seems a strange idea to me, we've had 2 requests this week (this issue, and 1 in slack) where people wanted to restore:
Full
Diff1
Diff2
So I've set it up so you can sequentially restore diff backups if you want. But if you pass in a bunch of diff backups then we'll just restore the latest one as normal

thanks for the enhancements and new tests!


⚠ SkipTheCommericals has degraded performance

In 2c8cf8e, SkipTheCommericals ($STC) experienced degraded performance:

HTTP code: 200
Response time: 4245 ms

Resolved: SkipTheCommericals performance has improved in 3912581.


[iOS] setInterval fire improperly after set system time to the past

Hi,
Description
Do:
setInterval(() => { console.warn('fire') }, 5 *1000);

It will warn 'fire' every 5 seconds,
But if you set system time to the past in Setting, than switch back to your app, warning would stop
For example, set time 1 min slow, 15:50 -> 15:49
'Fire' will show after about 1 min.
It means that if you change system time manually or automatically by system , all JSTimer will be confusion
But if you set time to the future, or change time in Android, it works well.
In iOS, RCTTimer._target = [NSDate dateWithTimeIntervalSinceNow:targetTime]
And if you change system time, _target will not change,
_sleepTimer.fireDate will not change, either.
Additional Information

React Native version: 0.35.0
Platform: iOS

We're cutting down on the number of outstanding issues, in order to allow us to focus. I'm closing this issue because it has been open for over 60 days with no activity. If you think it should still be opened let us know why. PRs are always welcome.


WIP: feature/10upui-plugin

WIP
The following PR is a first pass at updating our scaffold to work with the up and coming UI plugin. This is very early stages, and includes several updates to work across the theme to the plugin.
Related Repo:
https://github.com/10up/wp-scaffold-ui
Related Branch:
https://github.com/10up/wp-scaffold-ui/pull/9
Notes

Activate the 10up theme in the main WP Scaffold repo
Clone the plugin WP Scaffold UI and activate in the plugins directory
In the plugins/wp-scaffold-ui directory, you will notice a components directory. This is where we will store each new component we create. Each component would have an index.php file where the output lives. Along with a src directory for any CSS or JS work.
The CSS will be set to output into the dist directory as a standalone CSS prod file. This, so an Engineer can choose individual files to include in their theme, rather than a full stylesheet.
CSS classes should be pluggable by theme.json. In the case of the button, we define each CSS declaration using the main theme.json property name. Secondary to this, we also provide a fallback to a foundational setting stored within the plugin file itself. This foundational style is intentionally branded to align with 10up. This provides a fallback to quickly prototype, before adding any theme specific CSS settings.
Also in the plugin are global tokens. You can find these here: assets/css/frontend/tokens/*.css. These tokens are all prefixed with —tui (10upUI) for now. Happy to discuss this further.
The theme.json settings I’ve provided are trivial. Simply for testing and presentation only. We’d likely start by defining a palette–the core colors our theme would be using.
From there, we can map to align with our plugin’s button component as you will see under the custom object in the theme.json. These settings will be parsed and will align with our primary CSS var declarations made in the plugin button.css file. And, as mentioned previously, if not provided via theme.json, it will fallback to our plugin’s foundational settings.
I’ve created a kitchen sink template for now, to display the usage options for the Button component. This makes use of the get_component method found in our plugin. It works identical to the get_template_part, but allows us to pull in partials from our plugin. Setup a new page in Admin, and assign the template to be the Button Kitchen Sink. Once done, you should be able to visit the page, and see the 2 variants of the button output to the page. Provided you have the theme.json file setup correctly, you should see those styles inherited immediately. By removing the theme.json settings, you will see it fallback to the foundational styles within plugin. Currently, the plugin is enqueuing its foundational styles, but the idea is, we wouldn’t assume this, and would allow an Engineer to pick and choose what component styles they would like to be included in their final build. For now though, these have a very small footprint and I wanted to include these as a demo.
Obviously CSS Propery naming patterns will be key with this approach–definitely open for discussion here as well.
To make this partial available to Gutenberg, I’ve created a directory inside of the 10up-theme/includes/blocks directory called tui-button (again, naming up for grabs). The index.css file within this block can import the button style from the plugin directory directly. But for now, we have the plugin enqueuing it.
I also made updates to the main wp-content/package.json file to run the watches on the theme and plugins. This, in the scripts section. As well, I added the plugin to the workspaces entry in the same package.json file.
Within the 10up-theme, I added the tui-button entry under the 10up-toolkit in order to include it in the build.
Within the 10up-theme/includes/blocks directory I included the tui-button block folder. This is how the partial from our plugin becomes available to Gutenberg. Here you will see the markup.php file simply pulls in the component, and outputs it. For now. We may want to discuss how exactly this works. But this allows us to use the single source of truth. And it will receive an attributes array that should align with the args that appear as options in our actual block partial found in the plugin. The index.css file simply pulls in the button CSS file from the UI plugin as well.
Now I run an npm install in the root of the wp-content directory, then an npm run watch to watch the theme and the plugin. I added the hot flag to work with fast refresh.
I added a namepsace reference to the scaffold package.json file found in the theme root.
I added an import of the button styles to the frontend.js file in the theme for hot reloading
I added the SCRIPT_DEBUG constant to wp-config as true and also WP_DEBUG for good measure

TODO:
I would like to create several more variants of the Button. As well, the gutenberg implementation is still lack lustre, and needs to include the plugin styles. Currently, I'm simply outputting a Rich Text input to update the label on the button. I would like to spend time making this more cohesive with the front end.

Closing this for now


Work further on tests

Migrate test_report_generator.py to native pytest
Resolve various pylint warnings and typos in test code

thanks!


Update confluent.kafka to 1.9.2 to work with M1

Description
Failing on Mock with confluent.kafka updated.
Running on M1.
Streamiz.Kafka.Net nuget version: 1.3.2
confluent.kafka version: 1.9.2
Stack trace:
System.TypeLoadException
Method 'DeleteGroupsAsync' in type 'Streamiz.Kafka.Net.Mock.Sync.SyncAdminClient' from assembly 'Streamiz.Kafka.Net, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=75e24dc15437bbc5' does not have an implementation.
   at Streamiz.Kafka.Net.Mock.Sync.SyncKafkaSupplier..ctor()
   at Streamiz.Kafka.Net.Mock.TaskSynchronousTopologyDriver..ctor(String clientId, InternalTopologyBuilder topologyBuilder, IStreamConfig configuration, IStreamConfig topicConfiguration, IKafkaSupplier supplier, CancellationToken token)
   at Streamiz.Kafka.Net.Mock.TopologyTestDriver..ctor(InternalTopologyBuilder builder, IStreamConfig config, Mode mode, IKafkaSupplier supplier)
   at Streamiz.Kafka.Net.Mock.TopologyTestDriver..ctor(InternalTopologyBuilder builder, IStreamConfig config, Mode mode)
   at Streamiz.Kafka.Net.Mock.TopologyTestDriver..ctor(Topology topology, IStreamConfig config, Mode mode)

How to reproduce
Checklist
Please provide the following information:

[ ] A complete (i.e. we can run it), minimal program demonstrating the problem. No need to supply a project file.
[ ] A code snippet with your topology builder (ex: builder.Stream<string, string>("topic").to("an-another-topic");)
[ ] Streamiz.Kafka.Net nuget version.
[ ] Apache Kafka version.
[ ] Client configuration.
[ ] Operating system.
[ ] Provide logs (with in debug mode (log4net and StreamConfig.Debug) as necessary in configuration).
[ ] Critical issue.

This PR #169 fix this issue and will be release soon. Stay tuned ! 💥

Workaround : Downgrade Confluent.Kafka to 1.9.1

Do you have a planned release date?

Around End October / Mid November


throttleTime does not ignore subsequent sources if next is in subscribe

Describe the bug
I recently update from version 6.6 to version 7.5. I found some infinite loop in my code due to throttleTime that didn't work as it used to. We are calling in our subscribe some method that may emit new value on the subscribed observable. throtteTime filtered those values, but it let them pass in version 7.5.6 . Now it behave as it was only synchronous.
Expected behavior
throttleTime should still ignore subsequent sources even if they were emitted in subscribe.
Reproduction code
testThrotteTimeWithNextInSubscribe() {
    const d_1 = new Date().getTime();
    const subject = new Subject<{iteration: number, name: string}>();
    subject.pipe(
      tap((tic) => console.debug('at', new Date().getTime() - d_1, 'tap', tic)),
      throttleTime(10000)
    ).subscribe((me) => {
      console.log('at', new Date().getTime() - d_1, 'subscribe', me);
      if (me.iteration < 10) {
        subject.next({iteration: me.iteration + 1, name: me.name + '-a'});
        subject.next({iteration: me.iteration + 1, name: me.name + '-b'});
      }
    });
    subject.next({iteration: 1, name: 'bug'});
  }

Reproduction URL
No response
Version
7.5.6
Environment
node 14.19.3
typescript 4.6.4
Additional context
No response

In version 7.5.6 the throttleTime uses throttle operator with a timer.
Checking throttle code, I noticed that in the example above, the subscriber will keep sending values to the source, making the calls to stack and process before subscribing to the timer.
if (hasValue) {
  // Ensure we clear out our value and hasValue flag
  // before we emit, otherwise reentrant code can cause
  // issues here.
  hasValue = false;
  const value = sendValue!;
  sendValue = null;
  // Emit the value.
  subscriber.next(value); // <-- here it'll call send values to the source, which will make it triggers the send again;
  !isComplete && startThrottle(value); // <-- startThrottle won't be called for the next call;
}

Checking if the throttled is set before the next call would make it work properly.
I added this code: hasValue && !throttled && startThrottle(sendValue as any); locally and ran some tests and it worked as before.
But running npm test I get some !!!,  which, forgive my ignorance, but I don't know what they mean.
Hope it helps somehow =)

I just encountered the same issue. I have reproduction code that is somewhat simpler:
const cycle$$ = new Subject<number>();
cycle$$.pipe(throttleTime(1000)).subscribe(val => {
  console.log(val);
  cycle$$.next(val + 1);
});
cycle$$.next(1);


lpos accuracy: bump variance if deadreckon time exceeded

@bresch good to go?

good to go? The PR was still set as draft.

Now yes, I just had to adjust the comments


Attributes helper function - convert a deep object to an attribute compliant single-depth kv object

[ ] This only affects the JavaScript OpenTelemetry library
[x] This may affect other libraries, but I would like to get opinions here first

tracer.getCurrentSpan()?.setAttributes({..anObject}); works well if the depth is 1, but if it is beyond that we will get [object Object] as an attribute value.
It would be nice to have a function to run on an object to get an atrribute friendly single-depth kv object.
tracer.getCurrentSpan()?.setAttributesFromObject({..anObject});
tl;dr
// take something like this
{ a: { b: 'c' } }
// turn it into this and add as attributes
{ 'a.b': 'c' }

edit: as @sergioregueira mentioned, https://github.com/hughsk/flat exists

According to the specification, the attribute value must be:

A primitive type: string, boolean, double precision floating point (IEEE 754-1985) or signed 64 bit integer.
An array of primitive type values. The array MUST be homogeneous, i.e. it MUST NOT contain values of different types. For protocols that do not natively support array values such values SHOULD be represented as JSON strings.

An object (flat or nested) should not be accepted, so I suggest to apply what it says about arrays and serialize it using JSON.stringify() (supported by both node and browser, so you do not need additional dependencies such as flat).
Nevertheless, who is responsible of serializing the value? The developer that sets it, the otel library that receives it or the exporter that propagates it?

Not saying an object would be the attribute, but rather a helper function could convert an object into as many valid attributes as there are nested key values in the object for optimum queryability. So basically flat built into the api and provided to both node and browser. This would avoid users having to minutiously transform objects to ensure the KVs are compliant and would provide an experience similar to pino's mergingObject, where you just shove the object in there and profit.

While I understand the frustration, I think adding such a helper is not in scope for the API package. :thinking:
We'd be working around something that may be added to the spec in the future (see https://github.com/open-telemetry/opentelemetry-specification/pull/2888), and if a future spec adds maps as attribute values, we'd also have to maintain our workaround for a long time.

Thanks @pichlermarc let's see how https://github.com/open-telemetry/opentelemetry-specification/pull/2888 and https://github.com/open-telemetry/oteps/pull/219 play out.


upgrade zookeeper due to security issue

[X] I have searched the issues of this repository and believe that this is not a duplicate.

https://github.com/advisories/GHSA-2hw2-62cp-p9p7

Resolved in #9797


Be smarter about where repos are located

@jristau1984 currently we're going through and updating all references to repos that are written as in the edx org to be properly in the openedx org. I notice in this repo that there are assumptions that all repos are in the edx org. This tool should be smarter: repos that are in the openedx org should be treated as such. This guards against the future, for example if someone makes a fork of a repo into the edx org accidentally, then the url forwarding won't work anymore.
cc @nedbat

Oops. I wrote this in the wrong repo and Ned has also filed https://github.com/openedx/edx-repo-health/issues/295 - closing this in favor of that. Sorry for the noise!


feat(resourcequotas): reduce resource quota requests [EE-4757]

Closes EE-4757
Changes made:

Change the default behaviour of the namespace getAll request to NOT get all resource quotas
Make only the namespaces table view get all resource quotas (it is the only view that needs it)

Benefits:

If there are many namespaces in a cluster, 10 views now load noticeably faster

Future work:

Move request to the backend with pagination
Discuss if sorting by resource quota enabled is still required with a PO

Closing in favour of https://github.com/portainer/portainer/pull/8420


Spellchecking and formatting readme and index.js

Just a little tidying up of the readme. Index.js has also been formatted using to increase legibility of appended properties and values.

Thank you!

No problem! I love your work here, Eduárd!


jenkins not cloning git

jenkins is taking lot of time to clone git.and it not cloning

Execute git clone as jenkins user and check whether it is doing fine

Low Bandwidth ? try this.
https://stackoverflow.com/questions/46232906/git-clone-error-rpc-failed-curl-56-openssl-ssl-read-ssl-error-syscall-errno

Duplicate #141


Testing branches other than master is failing

I have a branch "test=merge" that seems to derail a "git log" call:
moorepants@hanuman:bin(master)$ bash run_sympy_asv_benchmarks.sh
· Fetching recent changes.
· Error running /usr/bin/git log --quiet --first-parent --format=format:%H test-merge
            STDOUT -------->

            STDERR -------->
            fatal: ambiguous argument 'test-merge': unknown revision or path not in the working tree.
            Use '--' to separate paths from revisions, like this:
            'git <command> [<revision>...] -- [<file>...]'
Traceback (most recent call last):
  File "/home/moorepants/miniconda/bin/asv", line 9, in <module>
    load_entry_point('asv==0.1.1', 'console_scripts', 'asv')()
  File "/home/moorepants/miniconda/lib/python2.7/site-packages/asv-0.1.1-py2.7.egg/asv/main.py", line 36, in main
    result = args.func(args)
  File "/home/moorepants/miniconda/lib/python2.7/site-packages/asv-0.1.1-py2.7.egg/asv/commands/__init__.py", line 47, in run_from_args
    return cls.run_from_conf_args(conf, args)
  File "/home/moorepants/miniconda/lib/python2.7/site-packages/asv-0.1.1-py2.7.egg/asv/commands/run.py", line 122, in run_from_conf_args
    skip_existing_commits=args.skip_existing_commits
  File "/home/moorepants/miniconda/lib/python2.7/site-packages/asv-0.1.1-py2.7.egg/asv/commands/run.py", line 168, in run
    new_hashes = repo.get_hashes_from_range(spec)
  File "/home/moorepants/miniconda/lib/python2.7/site-packages/asv-0.1.1-py2.7.egg/asv/plugins/git.py", line 102, in get_hashes_from_range
    output = self._run_git(args, valid_return_codes=(0, 1), dots=False)
  File "/home/moorepants/miniconda/lib/python2.7/site-packages/asv-0.1.1-py2.7.egg/asv/plugins/git.py", line 60, in _run_git
    [self._git] + args, **kwargs)
  File "/home/moorepants/miniconda/lib/python2.7/site-packages/asv-0.1.1-py2.7.egg/asv/util.py", line 431, in check_output
    raise ProcessError(args, retcode, stdout, stderr)
asv.util.ProcessError: Command '/usr/bin/git log --quiet --first-parent --format=format:%H test-merge' returned non-zero exit status 128

You write test=merge but the log says test-merge. Is it just a typo?

Testing other branches than master worksforme.

Closing; cannot reproduce.

I seem to be observing a similar issue, although it could be that I'm just doing something wrong.
Working with a branch of scipy that is itself a branch of master:
asv run --bench SphericalV* -e 95eb01b
ouput:
· Cloning project.
· Fetching recent changes.
· Error running /usr/bin/git rev-list --first-parent 95eb01b
            STDOUT -------->

            STDERR -------->
            fatal: ambiguous argument '95eb01b': unknown revision or path not in the working tree.
            Use '--' to separate paths from revisions, like this:
            'git <command> [<revision>...] -- [<file>...]'
Traceback (most recent call last):
  File "/Users/treddy/anaconda/bin/asv", line 11, in <module>
    sys.exit(main())
  File "/Users/treddy/.local/lib/python2.7/site-packages/asv-0.3.dev1060+a14d8dc7-py2.7-macosx-10.5-x86_64.egg/asv/main.py", line 38, in main
    result = args.func(args)
  File "/Users/treddy/.local/lib/python2.7/site-packages/asv-0.3.dev1060+a14d8dc7-py2.7-macosx-10.5-x86_64.egg/asv/commands/__init__.py", line 48, in run_from_args
    return cls.run_from_conf_args(conf, args)
  File "/Users/treddy/.local/lib/python2.7/site-packages/asv-0.3.dev1060+a14d8dc7-py2.7-macosx-10.5-x86_64.egg/asv/commands/run.py", line 123, in run_from_conf_args
    **kwargs
  File "/Users/treddy/.local/lib/python2.7/site-packages/asv-0.3.dev1060+a14d8dc7-py2.7-macosx-10.5-x86_64.egg/asv/commands/run.py", line 159, in run
    commit_hashes = repo.get_hashes_from_range(range_spec)
  File "/Users/treddy/.local/lib/python2.7/site-packages/asv-0.3.dev1060+a14d8dc7-py2.7-macosx-10.5-x86_64.egg/asv/plugins/git.py", line 118, in get_hashes_from_range
    output = self._run_git(args, valid_return_codes=(0, 1), dots=False)
  File "/Users/treddy/.local/lib/python2.7/site-packages/asv-0.3.dev1060+a14d8dc7-py2.7-macosx-10.5-x86_64.egg/asv/plugins/git.py", line 67, in _run_git
    return util.check_output([self._git] + args, **kwargs)
  File "/Users/treddy/.local/lib/python2.7/site-packages/asv-0.3.dev1060+a14d8dc7-py2.7-macosx-10.5-x86_64.egg/asv/util.py", line 512, in check_output
    raise ProcessError(args, retcode, stdout, stderr)
asv.util.ProcessError: Command '/usr/bin/git rev-list --first-parent 95eb01b' returned non-zero exit status 128

So, ok, I decided to try the command that asv is complaining about myself:
/usr/bin/git rev-list --first-parent 95eb01b
output (truncated for clarity):
3e271329aafe18f6c86a520d65492db44f934385
02de46a5464f182d3d64be5a7ee1087ae8be8646

So, there's a big list of scipy commit hashes. But that's not a fatal error for executing the same command, unless asv is expecting a single commit hash or something like that? I did some rebasing after the fact, but git status seems happy and my log history looks clean on top of master, so I must be missing something.

asv.conf.json in scipy is configured (due to historical reasons that are
no longer valid) so that it clones the repository from github --- so the
cloned repo is probably missing your commit.

If you run it via runtests.py, it uses the local repo. Pull requests to clean this up in scipy would be accepted.


Getting statistics for a workout

Hi, is it possible to get statistics for a workout? For example here  it seems like there's a way to query statistics for a certain workout.
Maybe I'm not searching in the right place, but is it possible to get the heart rate statistics (heart rate at every second/minute of the workout) using this library?

I see how this would be nice! PRs are welcome :)
My current recommendation is to simply fetch the samples (or statistics) for the time period of the workout.

I take the thumbs up as this solved your issue, let me know otherwise @yakovsushenok!


Shortcuts for actions Add Cursor Above/Below do not work

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.79.2
OS Version: Win 11 Latest Release

Information:
In the command palette there are 2 actions called Add Cursor Below and Add Cursor Above.
These actions have default shortcuts CTRL + ALT + UP/DOWN
If run via the command palette, the actions work and cursors are added successfully, but if one just uses the keyboard shortcuts, nothing happens.
Steps to Reproduce:

Open any file
Just press CTRL + ALT + UP/DOWN
Nothing happens 😞

Hi,
Thanks for filing the issue.
Could you please try the following:

Run the command "Developer: Toggle Keyboard Shortcuts Troubleshooting" (you can, for example, run it from the Command Palette).
This will activate logging of dispatched keyboard shortcuts and will open an output panel with the corresponding log file.

Press exactly the keybinding you desire

Check what VS Code detects

If you are having trouble understanding the output, please feel free to paste here and we'll be happy to help ☺

2023-07-03 10:48:15.065 [info] [KeybindingService]: / Soft dispatching keyboard event
2023-07-03 10:48:15.081 [info] [KeybindingService]: \ Keyboard event cannot be dispatched
2023-07-03 10:48:15.082 [info] [KeybindingService]: / Received  keydown event - modifiers: [ctrl], code: ControlLeft, keyCode: 17, key: Control
2023-07-03 10:48:15.082 [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl], code: ControlLeft, keyCode: 5 ('Ctrl')
2023-07-03 10:48:15.082 [info] [KeybindingService]: \ Keyboard event cannot be dispatched in keydown phase.
2023-07-03 10:48:15.134 [info] [KeybindingService]: / Soft dispatching keyboard event
2023-07-03 10:48:15.134 [info] [KeybindingService]: \ Keyboard event cannot be dispatched
2023-07-03 10:48:15.134 [info] [KeybindingService]: / Received  keydown event - modifiers: [ctrl,alt], code: AltLeft, keyCode: 18, key: Alt
2023-07-03 10:48:15.134 [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl,alt], code: AltLeft, keyCode: 6 ('Alt')
2023-07-03 10:48:15.134 [info] [KeybindingService]: \ Keyboard event cannot be dispatched in keydown phase.
2023-07-03 10:48:15.667 [info] [KeybindingService]: + Ignoring single modifier alt due to it being pressed together with other keys.

That's all there is if I press CTRL + ALT + UP/DOWN.

Sidenote: I use Monaco in a WPF app. Even if I reconfigure the keybindings the hard way via monaco.editor.addKeybindingRules() nothing happens. So it seems to be a more general issue.

Based on the logs you provided, when pressing ctrl+alt+up/down, the up/down isn't being registered. This usually signals that the system is dispatching a keyboard shortcut itself and not passing it to vscode. I'm not completely sure how WPF apps work, but I suspect that it's hijacking that shortcut. I would suggest to either track down which app or system is eating away your keybinding or to just rebind these actions to some other keys - ctrl+shift+alt+up/down, for example.

Interesting... It also happens in VSCode, not only Monaco. Tried it on a fresh VM and there it works. Must be some third party tool of my company I guess.
Thanks for pointing me to the right direction!

Just in case anyone else has the same problem:
I am working via remote desktop from a Windows 10 system on a remore Windows 10 system. If I use mstsc to connect, the shortcuts won't work. If I use the Microsoft Remote Desktop App, shortcuts work!
Also if I use mstsc from a Windows 11 machine to conntect to Windows 10 remotely, it also works. Semms to be an issue with mstsc under Windows 10.


Response Hooks

Description

[x] Fix GH Action CI
[x] coverage
[ ] Adds response event hook to persist response result data
[ ] Docs - As library examples for event hooks

Do this later...
Not needed to use as CLI.


Allow defining Home app id

Hi there,
I was wondering if there was a way to define the home app.  In my use case, my firetv's "Home" is com.amazon.tv.launcher and using the 1st input of "Home" does go to this correctly.  However, it detects the app and creates an additional input in the list.

Hey, the "Home" input was created to detect the system launcher automatically without any configuration, and there is also "Other" input which also created automatically for previous launched app. However if you add additional inputs in the config with the com.amazon.tv.launcher id, then it should appear twice - Home and the input that you create. If this the case, I suggest you to just remove your costum input and use the default "Home" instead. But in the case you wanted to hide the default "Home" input, or replace it with your own id, I can update the plugins in the future.


issue starting up with HA core-2022.6.6

During startup this message is thrown:
2022-06-22 10:08:10 INFO (SyncWorker_2) [homeassistant.util.package] Attempting install of goodwe==0.2.17
2022-06-22 10:08:11 WARNING (MainThread) [homeassistant.components.statistics.sensor] The configuration parameter 'state_characteristic' will become mandatory in a future release of the statistics integration. Please add 'state_characteristic: mean' to the configuration of sensor 'goodwe_pv_stats' to keep the current behavior. Read the documentation for further details: https://www.home-assistant.io/integrations/statistics/
2022-06-22 10:08:34 INFO (MainThread) [homeassistant.setup] Setting up goodwe

Using main version from github repo and latest HA core-2022.6.6

This is a bit weird, since I do not see that warning and I even do not think the integration creates 'goodwe_pv_stats' sensor at all.
 I had to upgrade my custom addon already to latest github version due to the recent core changes and was thinking this warning was left behind.


[bug] Laf Application cannot be renamed

Search before asking

[X] I had searched in the issues and found no similar issues.

Environment
https://laf.dev
What happened
Laf Application cannot be renamed
How to reproduce

Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

fixed


Modify querystring from flask api

Is it possible to modify the querystring from the flask api? For example if the incoming request is http://localhost:5001/records/?q=abc%20cde I want to update the querystring value from "abc cde" to "*abc* *cde*"

That's best done by customizing the search factory which you configure here
# my-site/config.py
from invenio_records_rest.query import default_search_factory
from elasticsearch_dsl.query import Q

def my_query_parser(qstr=None):
        if qstr:
            return Q('query_string', query=qstr)
        return Q()

def my_search_factory(*args, **kwargs):
    return default_search_factory(*args, **kwargs, query_parser=my_query_parser)

RECORDS_REST_ENDPOINTS = {
        'recid': {
            # ...
            'search_factory_imp': my_search_factory,
    }
}

my_query_parser is the function you want to modify in order to implement the parsing. Right now what it does, is to simply parse the query to Elasticsearch and let Elasticsearch do the parsing of the query string.
In your case, probably the best is to use something like luqum to parse the query, modify the abstract query and then send it to elasticsearch.
Last, can I ask you to send your questions to https://github.com/inveniosoftware/troubleshooting/issues instead? We prefer keeping issues on each repository to only bugs etc. Questions we prefer having a central place. See also https://invenio.readthedocs.io/en/latest/community/getting-help.html


Changing orientation and arbitrary focus points within anchor view

There are two changes here:

I added the option to show the QuickAction below the anchor by default.
One can now give a focus point at which to show the QuickAction. The idea is to position it exactly, for example when the anchor view is an image and you need "pixel perfect" positioning.

There's a wrong import; fixed it in affd65a29e699ae170e040a9c42b6502cd159648 - sorry :)


Git preview crashes, invalid range

Type: Bug
Hard to replicates as it happens very infrequently and only with some files. When I try to open git diff of some file via Source Control tab/section sometimes it happens that this screens shows up and git diff in files stops working - files are still marked as changed but file explorerúviewver doesn't show any detected changes,

VS Code version: Code - Insiders 1.88.0-insider (b0d975fc6370f15570c380f41015b1ca2cdcb791, 2024-03-25T05:50:48.433Z)
OS version: Darwin arm64 23.4.0
Modes:

System Info

Item
Value

CPUs
Apple M1 Pro (10 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
4, 4, 3

Memory (System)
32.00GB (1.54GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (59)

Extension
Author (truncated)
Version

better-comments
aar
3.0.2

Bookmarks
ale
13.4.2

project-manager
ale
12.7.0

vscode-zipfs
arc
3.0.0

color-info
bie
0.7.2

vscode-tailwindcss
bra
0.10.5

simple-react-snippets
bur
1.2.7

path-intellisense
chr
2.8.5

gitignore
cod
0.9.0

vscode-markdownlint
Dav
0.54.0

vscode-eslint
dba
2.4.4

githistory
don
0.6.20

es7-react-js-snippets
dsz
4.4.3

gitlens
eam
14.9.0

EditorConfig
Edi
0.16.4

prettier-vscode
esb
10.4.0

auto-rename-tag
for
0.1.10

c-cpp-runner
fra
9.4.7

copilot
Git
1.175.784

copilot-chat
Git
0.14.2024032501

go
gol
0.41.2

vscode-graphql
Gra
0.9.3

vscode-graphql-syntax
Gra
1.3.5

rest-client
hum
0.25.1

svg
joc
1.5.3

contextualduplicate
laf
0.2.0

vscode-language-babel
mgm
0.0.40

git-graph
mhu
1.30.0

dotenv
mik
1.0.1

vscode-scss
mrm
0.10.0

black-formatter
ms-
2024.0.1

debugpy
ms-
2024.2.0

flake8
ms-
2023.10.0

python
ms-
2024.2.1

vscode-pylance
ms-
2024.3.1

jupyter-keymap
ms-
1.1.2

jupyter-renderers
ms-
1.0.17

vscode-jupyter-cell-tags
ms-
0.1.8

vscode-jupyter-slideshow
ms-
0.1.5

cpptools
ms-
1.19.9

vscode-versionlens
pfl
1.9.2

material-icon-theme
PKi
4.34.0

vscode-yaml
red
1.14.0

rust-analyzer
rus
0.3.1896

multi-command
ryu
1.6.0

vscode-fileutils
sle
3.10.3

code-spell-checker
str
3.0.1

code-spell-checker-czech
str
1.0.6

svelte-vscode
sve
108.3.3

sass-indented
syl
1.8.29

vscode-mdx
uni
1.8.2

errorlens
use
3.16.0

vscode-lldb
vad
1.10.0

intellicode-api-usage-examples
Vis
0.2.8

vscodeintellicode
Vis
1.3.1

vscode-icons
vsc
12.7.0

vscode-nginx
wil
0.7.2

dictionary-completion
yzh
1.3.1

material-theme
zhu
3.17.0

Error log from Output -> Window:
2024-03-25 11:02:28.333 [error] Error: Invalid range: [-1714, -1735)
    at new C (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:97:35488)
    at C.ofStartAndLength (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:97:35412)
    at vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:628:43654
    at p (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:85:14858)
    at w.t (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:628:43025)
    at h._runFn (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:628:42629)
    at h.k (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:85:12945)
    at h.endUpdate (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:85:13284)
    at u.finish (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:85:15414)
    at p (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:85:14873)
    at c (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:85:15086)
    at O.setModel (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:773:156131)
    at E.setInput (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2355:8265)
    at async r.S (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2353:24784)
    at async r.L (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2353:23348)
    at async r.openEditor (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2353:22337)
    at async vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2476:24165
    at async vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2359:37607
    at async pt.xc (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2749:138937)

@hediet, any idea on how to investigate this issue? Thanks!

Stack:
2024-03-25 11:02:28.333 [error] Error: Invalid range: [-1714, -1735)
at vs/editor/common/core/offsetRange.ts:52:9
at vs/editor/common/core/offsetRange.ts:47:9
at vs/editor/browser/widget/diffEditor/utils/editorGutter.ts:128:45
at fn vs/base/common/observableInternal/base.ts:282:2
at tx vs/editor/browser/widget/diffEditor/utils/editorGutter.ts:93:16
at vs/editor/browser/widget/diffEditor/utils/editorGutter.ts:54:80
at vs/base/common/observableInternal/autorun.ts:196:9
at vs/base/common/observableInternal/autorun.ts:237:9
at vs/base/common/observableInternal/base.ts:350:12
at vs/base/common/observableInternal/base.ts:284:5
at $Nd vs/base/common/observableInternal/base.ts:320:2
at tx vs/editor/browser/widget/diffEditor/diffEditorWidget.ts:468:18
Looks like it is an issue of the diff editor gutter.


Remove dependency on chef-vault

I understand why chef-vault has been used here.
But chef-vault is just one of many solutions for the problem to solve.
The splunk cookbook is a typical application cookbook. It should do it's job and stop right there.
Each user should then follow the wrapper cookbook pattern to implement organization specific decisions. For example weather or not to use chef-vault...
It would be great if this cookbook would remove it's dependency to chef-vault.

The sensitive attributes should be stored in node attributes.
A wrapper cookbook would then use node.run_state[:my_splunk_secret’] = ‘…’ to set these sensitive attributes only for the runtime.

PLease!

I would strongly  recommend above , as there has been a lot of issues with this dependency , the latest issue I am facing now is that AWS OpsWorks with chef-splunk and it doesn't support encrypted data bags too.

================================================================================
Recipe Compile Error in /var/chef/runs/09193be9-9c61-47dc-8e32-64e179e1ba17/local-mode-cache/cache/cookbooks/chef-splunk/recipes/default.rb
================================================================================

Net::HTTPServerException
------------------------
404 "Not Found"

Cookbook Trace:
---------------
/var/chef/runs/09193be9-9c61-47dc-8e32-64e179e1ba17/local-mode-cache/cache/cookbooks/chef-vault/libraries/helpers.rb:38:in `chef_vault_item'
/var/chef/runs/09193be9-9c61-47dc-8e32-64e179e1ba17/local-mode-cache/cache/cookbooks/chef-splunk/recipes/setup_auth.rb:21:in `from_file'
/var/chef/runs/09193be9-9c61-47dc-8e32-64e179e1ba17/local-mode-cache/cache/cookbooks/chef-splunk/recipes/client.rb:81:in `from_file'
/var/chef/runs/09193be9-9c61-47dc-8e32-64e179e1ba17/local-mode-cache/cache/cookbooks/chef-splunk/recipes/default.rb:29:in `from_file'

Relevant File Content:
----------------------
/var/chef/runs/09193be9-9c61-47dc-8e32-64e179e1ba17/local-mode-cache/cache/cookbooks/chef-vault/libraries/helpers.rb:

31:    # +node['chef-vault']['databag_fallback']+.
32:    # @example
33:    # item = chef_vault_item('secrets', 'bacon')
34:    # log 'Yeah buddy!' if item['_default']['type']
35:    # @param [String] bag Name of the data bag to load from.
36:    # @param [String] id Identifier of the data bag item to load.
37:    def chef_vault_item(bag, id)
38>>     if ChefVault::Item.vault?(bag, id)
39:        ChefVault::Item.load(bag, id)
40:      elsif node['chef-vault']['databag_fallback']
41:        data_bag_item(bag, id)
42:      else
43:        raise "Trying to load a regular data bag item #{id} from #{bag}, and databag_fallback is disabled"
44:      end
45:    end
46:
47:    # Helper method which provides an environment wrapper for a data bag.

Platform:
---------
x86_64-linux

================================================================================
Recipe Compile Error in /var/chef/runs/0a6f8712-ddf0-4b86-b2bf-5a290875e2ec/local-mode-cache/cache/cookbooks/chef-splunk/recipes/default.rb
================================================================================

Net::HTTPServerException
------------------------
404 "Not Found"

Cookbook Trace:
---------------
/var/chef/runs/0a6f8712-ddf0-4b86-b2bf-5a290875e2ec/local-mode-cache/cache/cookbooks/chef-vault/libraries/helpers.rb:38:in `chef_vault_item'
/var/chef/runs/0a6f8712-ddf0-4b86-b2bf-5a290875e2ec/local-mode-cache/cache/cookbooks/chef-splunk/recipes/setup_auth.rb:21:in `from_file'
/var/chef/runs/0a6f8712-ddf0-4b86-b2bf-5a290875e2ec/local-mode-cache/cache/cookbooks/chef-splunk/recipes/client.rb:81:in `from_file'
/var/chef/runs/0a6f8712-ddf0-4b86-b2bf-5a290875e2ec/local-mode-cache/cache/cookbooks/chef-splunk/recipes/default.rb:29:in `from_file'

Relevant File Content:
----------------------
/var/chef/runs/0a6f8712-ddf0-4b86-b2bf-5a290875e2ec/local-mode-cache/cache/cookbooks/chef-vault/libraries/helpers.rb:

31:    # +node['chef-vault']['databag_fallback']+.
32:    # @example
33:    # item = chef_vault_item('secrets', 'bacon')
34:    # log 'Yeah buddy!' if item['_default']['type']
35:    # @param [String] bag Name of the data bag to load from.
36:    # @param [String] id Identifier of the data bag item to load.
37:    def chef_vault_item(bag, id)
38>>     if ChefVault::Item.vault?(bag, id)
39:        ChefVault::Item.load(bag, id)
40:      elsif node['chef-vault']['databag_fallback']
41:        data_bag_item(bag, id)
42:      else
43:        raise "Trying to load a regular data bag item #{id} from #{bag}, and databag_fallback is disabled"
44:      end
45:    end

Same as @shapeofarchitect

I don't like the idea of storing sensitive data in node attribtues; especially ones where they are to be encrypted by chef-vault or by encrypted data bags. Doing so defeats the purpose of encryption. Cookbooks that have done this imply another process to remove these node attributes from the node data before it gets uploaded back to the chef server at the end of successful chef runs. I think the cookbook should use chef's built-in encrypted data bag and rid of chef-vault altogether.

It's a great idea to allow the implementer the choice of back-ends.

Careful:  Since #120 was just declined, if we fixate on chef-vault then this cookbook may no longer be usable in an air-gapped environment.  This would make the emerging standard for PCI an environment too secure for chef/splunk, and it's not a space where I think Splunk can afford to be non-dominant.

Chef 13.4 now includes the chef-vault gem, so this should no longer be an issue. v2.0.0 of this cookbook also now requires chef_version '>= 13.11'. Chef 13 reached EOL as of 4/30/2019, as well.
https://github.com/chef/chef/blob/master/RELEASE_NOTES.md#chef-vault-is-now-included


[Bug]: T-SQL Generated for a Self-Joining Table is Invalid

What happened?
The T-SQL generated for a self-joining table relationship is invalid. Queries return null rather than the related field's value. For example, consider the dbo.DimAccount table from the AdventureWorks Microsoft sample database.
USE [AdventureWorksDW];
GO

CREATE TABLE [dbo].[DimAccount] (
    [AccountKey]                    [INT]           IDENTITY(1, 1) NOT NULL,
    [ParentAccountKey]              [INT]           NULL,
    [AccountCodeAlternateKey]       [INT]           NULL,
    [ParentAccountCodeAlternateKey] [INT]           NULL,
    [AccountDescription]            [NVARCHAR](50)  NULL,
    [AccountType]                   [NVARCHAR](50)  NULL,
    [Operator]                      [NVARCHAR](50)  NULL,
    [CustomMembers]                 [NVARCHAR](300) NULL,
    [ValueType]                     [NVARCHAR](50)  NULL,
    [CustomMemberOptions]           [NVARCHAR](200) NULL,
    CONSTRAINT [PK_DimAccount]
        PRIMARY KEY CLUSTERED ([AccountKey] ASC)
);
GO

ALTER TABLE [dbo].[DimAccount] WITH CHECK
ADD CONSTRAINT [FK_DimAccount_DimAccount]
    FOREIGN KEY ([ParentAccountKey])
    REFERENCES [dbo].[DimAccount] ([AccountKey]);
GO

ALTER TABLE [dbo].[DimAccount] CHECK CONSTRAINT [FK_DimAccount_DimAccount];
GO

When the dab-config.json file is configured as:
{
    "$schema": "https://github.com/Azure/data-api-builder/releases/download/v0.9.7/dab.draft.schema.json",
    "data-source": {
        "database-type": "mssql",
        "connection-string": "Data Source=localhost;Initial Catalog=AdventureWorksDW;Integrated Security=True;TrustServerCertificate=True",
        "options": { "set-session-context": false }
    },
    "runtime": {
        "rest": { "enabled": false },
        "graphql": { "enabled": true, "path": "/graphql" },
        "host": {
            "cors": {
                "origins": [ "http://localhost:5500" ],
                "allow-credentials": false
            },
            "authentication": {
                "provider": "StaticWebApps"
            },
            "mode": "development"
        }
    },
    "entities": {
        "dbo_DimAccount": {
            "source": "dbo.DimAccount",
            "permissions": [
                {
                    "role": "anonymous",
                    "actions": [
                        "read",
                        "create",
                        "update",
                        "delete"
                    ]
                }
            ],
            "relationships": {
                "dbo_DimAccount_Children": {
                    "cardinality": "many",
                    "target.entity": "dbo_DimAccount",
                    "source.fields": [
                        "AccountKey"
                    ],
                    "target.fields": [
                        "ParentAccountKey"
                    ]
                },
                "dbo_DimAccount_Parent": {
                    "cardinality": "one",
                    "target.entity": "dbo_DimAccount",
                    "source.fields": [
                        "ParentAccountKey"
                    ],
                    "target.fields": [
                        "AccountKey"
                    ]
                }
            }
        }
    }
}

This query:
query DboDimAccounts(
  $first: Int
  $filter: dbo_DimAccountFilterInput
  $orderBy: dbo_DimAccountOrderByInput
) {
  dbo_DimAccounts(first: $first, filter: $filter, orderBy: $orderBy) {
    items {
      AccountKey
      ParentAccountKey
      dbo_DimAccount_Parent {
        AccountKey
      }
    }
  }
}

invoked with these parameters:
{
  "first": 2,
  "filter": {
    "ParentAccountKey": {
      "isNull": false
    }
  },
  "orderBy": {
    "AccountKey": "ASC"
  }
}

returns these items which have null values rather than actual values for the related (i.e., parent) field:
{
  "data": {
    "dbo_DimAccounts": {
      "items": [
        {
          "AccountKey": 2,
          "ParentAccountKey": 1,
          "dbo_DimAccount_Parent": null
        },
        {
          "AccountKey": 3,
          "ParentAccountKey": 2,
          "dbo_DimAccount_Parent": null
        }
      ]
    }
  }
}

And the DataApiBuilder-provided SQL query is:
SELECT TOP 2 [table0].[AccountKey] AS [AccountKey],
             [table0].[ParentAccountKey] AS [ParentAccountKey],
             JSON_QUERY([table1_subq].[data]) AS [dbo_DimAccount_Parent]
FROM [dbo].[DimAccount] AS [table0]
OUTER APPLY
(
    SELECT TOP 1 [table1].[AccountKey] AS [AccountKey]
    FROM [dbo].[DimAccount] AS [table1]
    WHERE [table0].[ParentAccountKey] = [table1].[AccountKey]
      AND [table0].[ParentAccountKey] = [table1].[AccountKey]
      AND [table0].[AccountKey]       = [table1].[ParentAccountKey]
    ORDER BY [table1].[AccountKey] ASC
    FOR JSON PATH, INCLUDE_NULL_VALUES, WITHOUT_ARRAY_WRAPPER
) AS [table1_subq]([data])
WHERE [table0].[ParentAccountKey] IS NOT NULL
ORDER BY [table0].[AccountKey] ASC
FOR JSON PATH, INCLUDE_NULL_VALUES;

Which, after removing the [] brackets, choosing short aliases, and eliminating the final FOR JSON PATH, INCLUDE_NULL_VALUES line, is rewritten as:
SELECT TOP(2) o.AccountKey, o.ParentAccountKey, JSON_QUERY(d.data) AS dbo_DimAccount_Parent
FROM dbo.DimAccount AS o
OUTER APPLY
(
    SELECT TOP(1) i.AccountKey
    FROM dbo.DimAccount AS i
    WHERE o.ParentAccountKey = i.AccountKey
      AND o.ParentAccountKey = i.AccountKey
      AND o.AccountKey       = i.ParentAccountKey
    ORDER BY i.AccountKey ASC
    FOR JSON PATH, INCLUDE_NULL_VALUES, WITHOUT_ARRAY_WRAPPER
) AS d(data)
WHERE o.ParentAccountKey IS NOT NULL
ORDER BY o.AccountKey ASC;

This query returns:

AccountKey
ParentAccountKey
dbo_DimAccount_Parent

2
1
NULL

3
2
NULL

Which is same data as the JSON return value indicated above.
Note that the o.ParentAccountKey = i.AccountKey predicate is specified twice.
Deleting this redundant predicate and also removing the final AND o.AccountKey = i.ParentAccountKey predicate:
SELECT TOP(2) o.AccountKey, o.ParentAccountKey, JSON_QUERY(d.data) AS dbo_DimAccount_Parent
FROM dbo.DimAccount AS o
OUTER APPLY
(
    SELECT TOP(1) i.AccountKey
    FROM dbo.DimAccount AS i
    WHERE o.ParentAccountKey = i.AccountKey
      --AND o.ParentAccountKey = i.AccountKey
      --AND o.AccountKey       = i.ParentAccountKey
    ORDER BY i.AccountKey ASC
    FOR JSON PATH, INCLUDE_NULL_VALUES, WITHOUT_ARRAY_WRAPPER
) AS d(data)
WHERE o.ParentAccountKey IS NOT NULL
ORDER BY o.AccountKey ASC;

returns the correct values:

AccountKey
ParentAccountKey
dbo_DimAccount_Parent

2
1
{"AccountKey":1}

3
2
{"AccountKey":2}

Version
0.9.7
What database are you using?
Azure SQL
What hosting model are you using?
Local (including CLI)
Which API approach are you accessing DAB through?
GraphQL
Relevant log output
dbug: Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor[0]
      9944f5d6-6b73-4722-9570-a03ead06746b Executing query: SELECT TOP 2 [table0].[AccountKey] AS [AccountKey], [table0].[ParentAccountKey] AS [ParentAccountKey], JSON_QUERY ([table1_subq].[data]) AS [dbo_DimAccount_Parent] FROM [dbo].[DimAccount] AS [table0] OUTER APPLY (SELECT TOP 1 [table1].[AccountKey] AS [AccountKey] FROM [dbo].[DimAccount] AS [table1] WHERE [table0].[ParentAccountKey] = [table1].[AccountKey] AND [table0].[ParentAccountKey] = [table1].[AccountKey] AND [table0].[AccountKey] = [table1].[ParentAccountKey] ORDER BY [table1].[AccountKey] ASC FOR JSON PATH, INCLUDE_NULL_VALUES,WITHOUT_ARRAY_WRAPPER) AS [table1_subq]([data]) WHERE [table0].[ParentAccountKey] IS NOT NULL ORDER BY [table0].[AccountKey] ASC FOR JSON PATH, INCLUDE_NULL_VALUES

Code of Conduct

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

I subsequently discovered that it doesn't work in the opposite direction either.
This query:
query DboDimAccounts(
  $first: Int
  $filter: dbo_DimAccountFilterInput
  $orderBy: dbo_DimAccountOrderByInput
) {
  dbo_DimAccounts(first: $first, filter: $filter, orderBy: $orderBy) {
    items {
      AccountKey
      ParentAccountKey
      dbo_DimAccount_Children {
        items {
          AccountKey
        }
      }
    }
  }
}

Passed with these parameters:
{
  "first": null,
  "filter": {
    "AccountKey": { "eq": 3}
  },
  "orderBy": {
    "AccountKey": "ASC"
  }
}

Returns:
{
  "data": {
    "dbo_DimAccounts": {
      "items": [
        {
          "AccountKey": 3,
          "ParentAccountKey": 2,
          "dbo_DimAccount_Children": {
            "items": []
          }
        }
      ]
    }
  }
}

Likewise, this query:
query DboDimAccountsByPk($AccountKey: Int!)
 {
  dbo_DimAccount_by_pk(AccountKey: $AccountKey) {
    AccountKey
    ParentAccountKey
    dbo_DimAccount_Parent { AccountKey }
    dbo_DimAccount_Children {
      items {
        AccountKey
      }
    }
  }
}

Passed with this parameter value:
{
  "AccountKey": 3
}

Yields:
{
  "data": {
    "dbo_DimAccount_by_pk": {
      "AccountKey": 3,
      "ParentAccountKey": 2,
      "dbo_DimAccount_Parent": null,
      "dbo_DimAccount_Children": {
        "items": []
      }
    }
  }
}

+1 Just ran into this using a mysql backend.

What's extra interesting is that I'm not having any issues when declaring just the child relation (though I must explicitly specify [source|target].fields or the parent is returned in the child array).


Non-convex mesh collision detection does not work as expected

Intro
Hi!
I am a graduate student and I use MuJoCo for my research on legged locomotion.
I'm trying to use mesh to generate various terrains. I use simulate to test the following model file, with a mesh and multiple free boxes to test collision detections. It's expected that all boxes will finally stop on the surface of the terrain. However, all boxes seem to stop on the bounding box of the mesh. I have checked MuJoCo's documents and found that it supports non-convex mesh for collision detection. So, the simulation result seems to be wrong.
I have tried to set nativeccd to true or set convexhull to false. All options produce the same results.
My setup
MuJoCo 3.2.4
What's happening? What did you expect?
https://github.com/user-attachments/assets/585e4db8-ae8d-473b-b22c-cad37a641cf1
Steps for reproduction
Simulate the following model file.
Minimal model for reproduction
<mujoco model="test_mesh">
  <compiler angle="radian" autolimits="true"/>
  <asset>
    <material name="white" rgba="1 1 1 1"/>
    <mesh name="terrain" vertex="
        -4 -2.5  0
        -4  2.5  0
        -2 -2.5  0
        -2  2.5  0
        -2 -2.5 -1
        -2  2.5 -1
        -1 -2.5 -1
        -1  2.5 -1
        -1 -2.5  0
        -1  2.5  0
         1 -2.5  0
         1  2.5  0
         1 -2.5 -1
         1  2.5 -1
         2 -2.5 -1
         2  2.5 -1
         2 -2.5  0
         2  2.5  0
         4 -2.5  0
         4  2.5  0
         4 -2.5 -1
         4  2.5 -1
    " face="
         0  2  1
         1  2  3
         2  4  3
         3  4  5
         4  6  5
         5  6  7
         6  8  7
         7  8  9
         8 10  9
         9 10 11
        10 12 11
        11 12 13
        12 14 13
        13 14 15
    "/>
  </asset>

  <worldbody>
    <body name="terrain" pos="0 0 0">
      <geom type="mesh" mesh="terrain" material="white"/>
    </body>
    <body pos="4.5 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="4 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="3.5 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="3 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="2.5 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="2 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="1.5 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="1 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="0.5 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="0. 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="-0.5 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="-1 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="-1.5 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="-2 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="-2.5 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="-3. 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="-3.5 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="-4 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
    <body pos="-4.5 0 0.5">
      <freejoint/>
      <geom type="box" size="0.1 0.1 0.1"/>
    </body>
  </worldbody>
</mujoco>

Code required for reproduction
No response
Confirmations

[X] I searched the latest documentation thoroughly before posting.
[X] I searched previous Issues and Discussions, I am certain this has not been raised before.

Okay, I need to convert the non-convex object to multiple convex objects for collision detection.


gh-662 - fixed duplicate class fields for seeds

Current coverage is 61.30% (diff: 56.25%)

Merging #663 into develop will increase coverage by 0.09%

@@            develop       #663   diff @@
==========================================
  Files           374        370     -4
  Lines         11430      11377    -53
  Methods           0          0
  Messages          0          0
  Branches       1660       1662     +2
==========================================
- Hits           6997       6975    -22
+ Misses         3886       3854    -32
- Partials        547        548     +1

Powered by Codecov. Last update ac79df2...388b676


v1.4.1- Cannot call method 'push' of undefined@/q.js:552:35

We've started getting these exceptions. We started noticing them after we updated to v1.4.1, but it's uncertain if that's why we started seeing this.
The stack trace looks like this:
* [
    "TypeError: Cannot call method 'push' of undefined",
    "    at Promise.promise.promiseDispatch (/home/vcap/app/node_modules/q/q.js:552:35)",
    "    at Promise.then (/home/vcap/app/node_modules/q/q.js:875:10)",
    "    at Promise.done (/home/vcap/app/node_modules/q/q.js:1801:13)",
    "    at RealTimeClient.<anonymous> (/home/vcap/app/src/lib/src/util/realtime.js:603:18)",
    "    at try_callback (/home/vcap/app/node_modules/redis/index.js:592:9)",
    "    at RedisClient.return_reply (/home/vcap/app/node_modules/redis/index.js:685:13)",
    "    at ReplyParser.<anonymous> (/home/vcap/app/node_modules/redis/index.js:321:14)",
    "    at ReplyParser.emit (events.js:95:17)",
    "    at ReplyParser.send_reply (/home/vcap/app/node_modules/redis/lib/parser/javascript.js:300:10)",
    "    at ReplyParser.execute (/home/vcap/app/node_modules/redis/lib/parser/javascript.js:203:22)",
    "    at RedisClient.on_data (/home/vcap/app/node_modules/redis/index.js:547:27)",
    "    at Socket.<anonymous> (/home/vcap/app/node_modules/redis/index.js:102:14)",
    "    at Socket.emit (events.js:95:17)",
    "    at Socket.<anonymous> (_stream_readable.js:765:14)",
    "    at Socket.emit (events.js:92:17)",
    "    at emitReadable_ (_stream_readable.js:427:10)",
    "    at emitReadable (_stream_readable.js:423:5)",
    "    at readableAddChunk (_stream_readable.js:166:9)",
    "    at Socket.Readable.push (_stream_readable.js:128:10)",
    "    at TCP.onread (net.js:529:21)"
]

Our code that originates the issue is within a callback from a client. I can't provide our exact code, but it looks something like this:
    MyObject.prototype.getDocument = function (key) {
        var deferred = Q.defer();
        this.client.get(key, function (err, reply) {
            if (err) {
                deferred.reject(err);
            } else if (reply) {
                this.doSomethingElse(reply)
                .then(function(success){
                    deferred.resolve(success);
                }, function(failure){
                    deferred.reject(failure);
                }).done();
            } else {
                deferred.reject(new Error('No reply'));
            }
       }.bind(this));
       return deferred.promise;
    }

The exception comes from the .done() call on the this.doSomethingElse call. Looking at the stack trace, it appears that within q.js the progressListeners has become undefined. progressListeners is voided when become is called. I'm wondering if there's a race condition here. If our client callback gets called twice in a row then we call resolve or reject on the deferred.
    function become(newPromise) {
        resolvedPromise = newPromise;
        promise.source = newPromise;

        array_reduce(messages, function (undefined, message) {
            Q.nextTick(function () {
                newPromise.promiseDispatch.apply(newPromise, message);
            });
        }, void 0);

        messages = void 0;
        progressListeners = void 0;
    }

    deferred.promise = promise;
    deferred.resolve = function (value) {
        if (resolvedPromise) {
            return;
        }

        become(Q(value));
    };

So, if deferred.resolve is called twice in a row on separate threads, and both threads make it past the if block, then it would appear this could happen. Also, if the promises' .then is called after the become() call this could also happen.
Obviously I could be looking at this wrong, or we're doing something wrong.
Please advice.

Has anyone had a chance to look at this?

I have not had a moment to spare.
Please clarify what engine (Node.js?) you are using so we can dismiss the possibility that you are using actual threads. I presume you’re using "thread" figuratively. If you are using "thread" literally, all bets are off.
Note that you can do deferred.resolve(this.doSomethingElse()) instead of hooking up the resolve/reject through then.
This might be something simple to isolate with a test case. I’m ready to believe that progress listener code is undertested. It has been eliminated in v2.


Add configuration file

Add a configuration file

Added in https://github.com/NewDayNaz/SmartSwitchPowerSequencer/commit/695d98463608b73bd6b1a23f35a3ff088c84cca2


Fix clang-analyze build, need to also run during configure

I apologize for not including this fix in the recently merged PR. I had the change in my local workspace, but apparently forgot to push it.
The scan-build command needs to run on both the configure and build step. My understanding is that somehow CMake is detecting that scan-build was used and doing something with it.

Are you sure this doesn't affect the binary in any way?

Closing in favor of: https://github.com/ninja-build/ninja/pull/1855


Enumerable#each_cons support for accepting deque as a reuse buffer

This removes the restriction on Enumerable#each_cons and Iterator#cons to only accept arrays as a container to reuse. With this, it will be possible to use a Deque instead, for better performance.
Also adds some missing tests in iterator_spec.cr
Solves #7189

Should reuse == true use a Deque as default for better performance than array?
Or does it need the standard collection type?

@straight-shoota it'd break a lot of code, since a lot of code only takes arrays.

Should I rebase it down to three commits again?

yeah

(rebased)


[HOLD for payment 2024-12-19]  Fix the "connect to Xero" experience in two ways

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.70-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @quinthar
Slack conversation (hyperlinked to channel name): ts_external_expensify_convert
Action Performed:

Go to https://staging.new.expensify.com/
Log in and  Create a WS
Enable Accounting in more features
Click Connect for Xero

Expected Result:
Use the "full bleed modal", as currently used in the "Hold" flow
Update the copy to be:
Please enable two-factor authentication
For security purposes, Xero requires two-factor authentication to connect the integration.
Enable two-factor authentication CTA button
Actual Result:
Not exactly explained in the present modal why 2FA is required
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Standalone
[ ] Android: HybridApp
[ ] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

Add any screenshot/video evidence

View all open jobs on GitHub
Issue OwnerCurrent Issue Owner: @bfitzexpensify

Proposal
Please re-state the problem that we are trying to solve in this issue.
Fix the "connect to Xero" experience in two ways
What is the root cause of that problem?
Use the "full bleed modal", as currently used in the "Hold" flow
What changes do you think we should make in order to solve the problem?

Update the language file for both the English and Spanish versions.
English: For security purposes, Xero requires two-factor authentication to connect the integration.
Spanish: Por razones de seguridad, Xero requiere autenticación de dos factores para conectar la integración. (Let me know if the translation for Spanish is correct.)
https://github.com/Expensify/App/blob/583f777ec579da26bc2e78ca8213df8fcd97f7e4/src/languages/en.ts#L1313
https://github.com/Expensify/App/blob/583f777ec579da26bc2e78ca8213df8fcd97f7e4/src/languages/es.ts#L1313
Set the padding top of innerContainerStyle to pt0.
https://github.com/Expensify/App/blob/583f777ec579da26bc2e78ca8213df8fcd97f7e4/src/components/RequireTwoFactorAuthenticationModal.tsx#L48
Remove the margin horizontal and the border radius of the Lottie container.
https://github.com/Expensify/App/blob/583f777ec579da26bc2e78ca8213df8fcd97f7e4/src/components/RequireTwoFactorAuthenticationModal.tsx#L55-L56
Decrease the margin bottom of the text container from mb10 to mb5.
https://github.com/Expensify/App/blob/583f777ec579da26bc2e78ca8213df8fcd97f7e4/src/components/RequireTwoFactorAuthenticationModal.tsx#L71

What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?

N/A

What alternative solutions did you explore? (Optional)

N/A

Thanks everyone for the proposals, reviewing in a moment.

Thank you all for the proposals; this seems to be a straightforward issue. I believe we can go with the first complete proposal, so I recommend proceeding with @Krishna2323's proposal.
We need to confirm the copy and translations. I also wonder if we can/should rename the twoFactorAuthIsRequiredDescription tag to something more specific, like twoFactorAuthIsRequiredXeroDescription.
Additionally, I would like to confirm if we need to update the copy for twoFactorAuthIsRequiredForAdminsDescription, as pointed out by @nyomanjyotisa. If you think the details in their proposal are relevant enough to include, feel free to proceed, but otherwise, the rest of the changes are quite similar.
🎀👀🎀 C+ reviewed

BugZero Checklist:

[x] [Contributor] Classify the bug:

Bug classification

Source of bug:

[ ] 1a. Result of the original design (eg. a case wasn't considered)
[ ] 1b. Mistake during implementation
[ ] 1c. Backend bug
[x] 1z. Other: Improvement - Requested changes.

Where bug was reported:

[x] 2a. Reported on production (eg. bug slipped through the normal regression and PR testing process on staging)
[ ] 2b. Reported on staging (eg. found during regression or PR testing)
[ ] 2d. Reported on a PR
[ ] 2z. Other:

Who reported the bug:

[ ] 3a. Expensify user
[ ] 3b. Expensify employee
[ ] 3c. Contributor
[ ] 3d. QA
[x] 3z. Other: quinthar

[ ] [Contributor] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to comment: N/A - Requested changes.

[ ] [Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.
Link to discussion:

[ ] [Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.

Regression Test Proposal
Test:

Log in and Create a WS
Go to workspace settings page
Enable Accounting in more features
Click Connect for Xero
Verify there is no padding on the top and sides of the illustration.
Verify the description copy: For security purposes, Xero requires two-factor authentication to connect the integration. in english and Por razones de seguridad, Xero requiere la autenticación de dos factores para conectar la integración. in spanish

Do we agree 👍 or 👎

Offers sent @Krishna2323 @brunovjk

@bfitzexpensify also accepted, thanks!

Payments complete! Thanks for the quick acceptance


Grabbing Skin

Grabbing Skin!
Skin: VinxzMc
Decoded Skin: {
"timestamp" :<PHONE_NUMBER>888,
"profileId" : "7589b11bfbef42179456702b0b81a83c",
"profileName" : "NowThisIsCrazy",
"signatureRequired" : true,
"textures" : {
"SKIN" : {
"url" : "https://imgur.com/14iOXzX"
}
}
}
URL: https://imgur.com/14iOXzX

Hello there,
I don't quire understand the meaning behind your issue, could you please elaborate on the issue?


No styles for form elements

Hi, it's me again, still working on my tailwind migration for Azimutt ^^
This time I'm trying to implement some basic form but can't get the expected styles.
I take an example from https://tailwindui.com/components/application-ui/forms/input-groups but it seems I miss some styles.
I see that @tailwindcss/forms plugin is required but your readme says it's included.
I added Global.global Tw.globalStyles in my view, so not sure if I need other configuration.
Is there a known problem with forms?
Is the forms plugin really included ? Should I do something to include it?
Did I miss some configuration?
Do you have any idea how to fix/troubleshoot?
Thanks a lot for your help :+1:

Hi @loicknuchel :wave:
Yeah, due to a limitation of elm-css (the root issue is that we don't have control over the order of CSS declarations that are generated) there's some differences in using the tailwindcss/forms plugin from the way it's used in tailwindui.
The tailwindcss/forms plugin has two modes it operates in: Either it adds some styling globally without having to add classes (the default one and the one used in tailwindui), or you configure it to only generate classes, but then you'll have to add more classes to your html (that's the only one we can support in elm-tailwind-modules).
Long story short, when you have e.g. an <input> element, you'll need to add the form-input class to it or when you have a <textarea> you need to add the form-textarea class.
In general, just look for form_* prefixed style definitions in elm-default-tailwind-modules. Those are likely the ones you need to sprinkle in here and there for the tailwindui stuff to work :)

Hey!
Awesome! Can't find them but indeed that's exactly what I was missing.
Maybe a small addition with this in the readme could help, and avoid potential other issues (even if I'm the only one for now ^^).

Yeah an addition to the read me sounds like it'd help.
At some point I changed how the included tailwindcss/forms plugin was configured, but forgot to mention that in the readme.
I think you're the person who knows best what words would've helped you in the readme. Would you mind opening a PR with some suggested changes?

haha maybe ;)
Yes, will do the PR.
An other question while I'm on it, do you plan publish an update for tailwind 3? (I don't know if it's a lot of work or not)

There's a discussion about that here: https://github.com/matheus23/elm-tailwind-modules/issues/9
The short answer is: It's likely to be too much for me to work on right now :/

Thanks, I will follow the discussion there.


created index.html

created base html file for the index page. no css or js has been linked

This is approved, congrats you can write html. hurrah!


test(utils): Add test code for generateID

Overview
I wrote test code for generateID which belong to @toss/utils To ensure stability, I have written a test code
nextUniqueId which is local variable in generateID should be initialized to 0 for every test case
so I used jest.resetModules
resetModules help our individual test code run independently from other test cases
PR Checklist

[x] I read and included theses actions below

I have read the Contributing Guide
I have written documents and tests, if needed. => I made test case !

I believe test codes should clearly show the author's intended behavior for that function.
I think what we actually intend for generateID is to return different string values each time it is called. Whether or not the ID is incremented is implementation detail. In this manner, what about changing the test code as the following code?
it('returns different string values each time it is called', () => {
  const id1 = generateID();
  const id2 = generateID();
  const id3 = generateID();

  expect(id1).not.toEqual(id2);
  expect(id1).not.toEqual(id3);
  expect(id2).not.toEqual(id3);
});

it('should start with the prefix, if given', () => {
  const id = generateID('toss');

  expect(id.startsWith('toss')).toBe(true);
});

By writing the test code as above, the test code will become more concise and easier to read.

Thank you for explaining such a good example and the purpose of the test code.
I've always thought a lot about what criteria to write the test code, but you(raonraon0211) told me that the test code should be able to test the behavior that the author intended. Just by looking at the test code you wrote as an example, I understood the intention right away.
I'll fix it and push it to this branch! Thank you.💪

thx for solving install error!

The method you recommended is written in English. The other test codes were explained in Korean, so which one should I write in English or Korean?!

We are planning to migrate our repository into English 😓