[BUG] All .md files are not detected on PR

Is there an existing issue for this?

[X] I have searched the existing issues

Does this issue exist in the latest version?

[X] I'm using the latest release

Describe the bug?
I'm trying to get all *.md files that are detected as part of a change in a PR, so I can gather them in a python script and check their spelling. I found this action and my workflow yaml looks like:
I have tried several approaches with the inputs, but it won't capture changes.
To Reproduce
Create a workflow yaml:
on:
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.9'
          architecture: 'x64'

      - name: Get all *.md files that have changed
        id: changed-files
        uses: tj-actions/changed-files@v40
        with:
          files: |
            '**/*.md'

      - name: Install spellchecker
        if: steps.changed-files.outputs.any_changed == 'true'
        run: pip install pyspellchecker==0.7.2

      - name: Run spellchecker
        if: steps.changed-files.outputs.any_changed == 'true'
        run: |
          python ./.github/workflows/check_spellings.py --files ${{ steps.changed-files-specific.outputs.all_changed_files }}

Checkout form your main branch and and create some md files like here:

and you will get:

What OS are you seeing the problem on?
ubuntu-latest or ubuntu-22.04
Expected behavior?
I should install and run my spellchecker script because it has detected files changed, like:

doc/something.md
2023/10/close_deals_using_email_markering.md

These is the output of the action in GH:
Run tj-actions/changed-files@v40
  with:
    files: '**/*.md'

    separator:
    include_all_old_new_renamed_files: false
    old_new_separator: ,
    old_new_files_separator:
    files_from_source_file_separator:

    files_separator:

    files_yaml_from_source_file_separator:

    files_ignore_yaml_from_source_file_separator:

    files_ignore_separator:

    files_ignore_from_source_file_separator:

    path: .
    quotepath: true
    diff_relative: true
    dir_names: false
    dir_names_exclude_current_dir: false
    dir_names_include_files_separator:

    dir_names_deleted_files_include_only_deleted_dirs: false
    json: false
    escape_json: true
    fetch_depth: 50
    skip_initial_fetch: false
    fetch_additional_submodule_history: false
    since_last_remote_commit: false
    write_output_files: false
    output_dir: .github/outputs
    output_renamed_files_as_deleted_and_added: false
    recover_deleted_files: false
    recover_files_separator:

    recover_files_ignore_separator:

    token: ***
    api_url: https://api.github.com
    fail_on_initial_diff_error: false
    fail_on_submodule_diff_error: false
  env:
    pythonLocation: /opt/hostedtoolcache/Python/3.9.18/x64
    PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.9.18/x64/lib/pkgconfig
    Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.9.18/x64
    Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.9.18/x64
    Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.9.18/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.9.18/x64/lib
changed-files
  Using local .git directory
  Running on a pull_request (synchronize) event...
  Repository is shallow, fetching more history...
  Completed fetching more history.
  Retrieving changes between 5a62a39cbe2d3146d98b23bec87c4a0f4f1878e6 (main) → 4cffaddc6d095a66571dd152a7e4b09db1117d3f (close_deals_using_email_marketing)
  All Done!
changed-files-patterns
  All Done!

Relevant log output
##[debug]Evaluating condition for step: 'Get all *.md files that have changed'
##[debug]Evaluating: success()
##[debug]Evaluating success:
##[debug]=> true
##[debug]Result: true
##[debug]Starting: Get all *.md files that have changed
##[debug]Loading inputs
##[debug]Evaluating: github.token
##[debug]Evaluating Index:
##[debug]..Evaluating github:
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'token'
##[debug]=> '***'
##[debug]Result: '***'
##[debug]Evaluating: github.api_url
##[debug]Evaluating Index:
##[debug]..Evaluating github:
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'api_url'
##[debug]=> 'https://api.github.com'
##[debug]Result: 'https://api.github.com'
##[debug]Loading env
Run tj-actions/changed-files@v40
::group::changed-files
changed-files
::group::changed-files-patterns
changed-files-patterns
##[debug]Node Action run completed with exit code 0
##[debug]Set output added_files =
##[debug]Set output added_files_count = 0
##[debug]Set output copied_files =
##[debug]Set output copied_files_count = 0
##[debug]Set output modified_files =
##[debug]Set output modified_files_count = 0
##[debug]Set output renamed_files =
##[debug]Set output renamed_files_count = 0
##[debug]Set output type_changed_files =
##[debug]Set output type_changed_files_count = 0
##[debug]Set output unmerged_files =
##[debug]Set output unmerged_files_count = 0
##[debug]Set output unknown_files =
##[debug]Set output unknown_files_count = 0
##[debug]Set output all_changed_and_modified_files =
##[debug]Set output all_changed_and_modified_files_count = 0
##[debug]Set output all_changed_files =
##[debug]Set output all_changed_files_count = 0
##[debug]Set output any_changed = false
##[debug]Set output only_changed = false
##[debug]Set output other_changed_files = 2023/10/close_deals_using_email_markering.md doc/something.md .github/workflows/check_spellings.yaml
##[debug]Set output other_changed_files_count = 3
##[debug]Set output all_modified_files =
##[debug]Set output all_modified_files_count = 0
##[debug]Set output any_modified = false
##[debug]Set output only_modified = false
##[debug]Set output other_modified_files = 2023/10/close_deals_using_email_markering.md doc/something.md .github/workflows/check_spellings.yaml
##[debug]Set output other_modified_files_count = 3
##[debug]Set output deleted_files =
##[debug]Set output deleted_files_count = 0
##[debug]Set output any_deleted = false
##[debug]Set output only_deleted = false
##[debug]Set output other_deleted_files =
##[debug]Set output other_deleted_files_count = 0
##[debug]Finishing: Get all *.md files that have changed

Has all relevant logs been included?

[X] I've included all relevant logs

Anything else?
No response
Code of Conduct

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

Hi @toderesa97, I believe you missed a warning message in the documentation.

Quoting Multiline Inputs: Avoid using single or double quotes for multiline inputs. The value is already a string separated by a newline character. Refer to the Examples section for more information.

For a working example see the usage documentation


Questions about the performances.

Hi,
May I ask your final performance, the curves are a little confusing.
I also implement a different version (https://github.com/D-X-Y/ResNeXt), my results are a little bit lower than the official code, about 0.2 for cifar10 and 1.0 for cifar100.
I really want to what causes the differences.
And I also try training resnet20,32,44,56 , I'm pretty sure the model archieteture is the same as the official code but even obtain a much lower accuracy.
Would you mind to give me some suggestions?

I am also curious about the training performance. BTW, I need to run the training many times with different hyper-parameters, and running 300 epochs takes days even with four titan X. Did you guys tried use less epochs and other learning rate schedule? Please let me know if you have any suggestions. Thank you.

@D-X-Y On CIFAR-10 it reaches 96.44%, and on CIFAR-100 81.62%. However, I am not keeping the random seed each run, so it sometimes achieves better than the baseline, and sometimes worse.
As for what would be causing a difference of performance, I talked with the author of the original paper, and he told me (he was right) that since I was using batch_size = 128 instead of 256, the lr should be divided by two. I have checked your code and I see not much difference with mine, so could it be just a matter of finding the correct random seed? Is the initialization of the weights exactly the same as in their code?
Btw, these lines (you already have) drove me mad:
    if args.dataset == 'cifar10':
        mean = [x / 255 for x in [125.3, 123.0, 113.9]]
        std = [x / 255 for x in [63.0, 62.1, 66.7]]
    elif args.dataset == 'cifar100':
        mean = [x / 255 for x in [129.3, 124.1, 112.4]]
        std = [x / 255 for x in [68.2, 65.4, 70.4]]

@wangdelp Using a single TITANX it takes me roughly one day on CIFAR. Which is your batch size and learning rate?

@prlz77 Thanks for your responses. The initialization is the same and I only train on CIFAT-10 once, so maybe the average performance will be better.
There are two versionsf of the ResNeXt paper, they change the batchsize for CIFAR from 256 to 128 in the Version2.0.
I notice that your performance on CIFAR-100 is lower than the original paper about 1 point, do you think this is caused by learning rate and multi-gpu?

@D-X-Y Since the performance in CIFAR-10 is correct, it is difficult to guess what is happening on CIFAR-100. Some possibilities are:

Running it many times with different random seeds might show there is no difference.
CUDNN configuration, I don't know if it is the same for the torch and the pytorch implementations.
As you said, multi-gpu and learning rate could also be an issue.
I have checked line by line but it could also be a difference between the original implementation and mine. However, I don't know if that explains the difference between the two CIFARs.

btw, take into account that the results I am providing are for the small net! (cardinality 8, widen factor 4) So it gets 0.1 better on CIFAR10 and 0.6 worse on CIFAR100. When I have some time, I will provide multi-run results to see if it is always like this.

@prlz77 I was using batch size 64 since I want to reduce the memory consumption, and distributed among 4 gpus. So effective batchsize is 64*4=256. I am using the default learning rate 0.1 and decay at [0.5, 0.75] * args.epochs, run it with 300 epochs. It sounds like I need two days to complete training on cifar100. Maybe it's due to other lab members are also using GPUs.
Using batchsize 256 would lead to Out of Memory on 12GB GPU. Maybe I should try use 128 batchsize on two gpus.

@wangdelp in my experience, bs=128 distributed on two 1080TI takes about one day. bs=128 on only one gpu takes a little bit more. bs=64 takes almost double the time for the same 300epochs. I would suggest you to use bs=128 (note that if ngpu=4, you will be loading 128/4 for gpu, which is a small amount of memory). If GPUs are already in use, that could be causing a performance issue, as you say. Although it is improvable, check that data is not the issue, for instance increase the number of prefetching threads.

@prlz77 Thank you. Should I use initial lr 0.05 when batchsize=128, and lr 0.025 when batchsize=64?

@wangdelp Exact!

Hi, guys. I have a question about the results reported in the paper. Did they report the median of best test error during training or the median of test error after training?@prlz77@wangdelp

@Queequeg92 I think it is the median of the best test error during training.

@prlz77 I agree with you since models are likely to be overfitting at the end of training process. I have sent emails to some authors to confirm.

@prlz77 I think Part D of this paper gives the answer.

@D-X-Y @prlz77 I'm faced with the same problem when reproducing the performance of DenseNet-40 on CIFAR100. With the exactly same configuration, the acc of PyTorch version is often 1 point lower than Torch version under several runs. I don't think it is caused by random seeds. However, after digging into the implementation details of the two frameworks, I find no differences. I am so confused...

In the past I've noticed up to 1% difference just by using cudnn fastest options due to noise introduced by numerical imprecisions...

@prlz77 I set cudnn.benchmark = True and cudnn.deterministic = True. Is that ok?

@wandering007 maybe with cudnn.deterministic = False you get better results.

@prlz77 No improvements from my experiments. Thank you anywhere.

@wandering007 I'm sorry to hear that, I found this behaviour some years ago, maybe the library has changed or noise is not that important in this model.

@wandering007 I'm also confused about the differences between two CIFAR datasets.
I have got similar accuracy with Wide-DenseNet on CIFAR10.
But on CIFAR100 with exactly the same model and training details, the accuracies are always lower than reported in the paper, about 1%.
Do you have any suggestion on that?
BTW, I'm using tensorflow.

@boluoweifenda I haven't train it via tensorfow. There are a lot of ways to improve performance if you don't care about the fair comparison, like using dropout, a better lr schedule, better data augmentation. Personally, 1% performance difference between two frameworks is acceptable. BTW，same settings for different frameworks are not very fair itself :-)

@wandering007 Thanks for your reply~ But I just care about the fair comparison. Maybe I need to dig deeply to find the differences between frameworks. However, I got the same accuracy on CIFAR10 using tensorflow. It's quite strange for the accuracy drop on CIFAR100.
(╯°Д°)╯︵┻━┻


The error prompt keeps showing up even after resolving that error

We have written the needed data into your clipboard because it was too large to send. Please paste.
Issue Type: Bug
In my case , i declared the same array twice and some error poped up , later even after removing that line , VS code still kept telling me there is a error in code but marking the file name red.
VS Code version: Code 1.65.2 (c722ca6c7eed3d7987c0d5c3df5c45f6b15e77d1, 2022-03-10T14:33:55.248Z)
OS version: Windows_NT x64 10.0.22000
Restricted Mode: No

System Info

Item
Value

CPUs
AMD Ryzen 5 5600X 6-Core Processor              (12 x 3700)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.93GB (8.27GB free)

Process Argv
--crash-reporter-id 11432b4a-14ab-4079-ab77-0cf24bf2f45a

Screen Reader
no

VM
0%

Extensions (11)

Extension
Author (truncated)
Version

doxdocgen
csc
1.4.0

code-runner
for
0.11.7

better-cpp-syntax
jef
1.15.13

remote-containers
ms-
0.224.2

remote-ssh
ms-
0.76.1

remote-ssh-edit
ms-
0.76.1

remote-wsl
ms-
0.64.2

cmake-tools
ms-
1.9.2

cpptools
ms-
1.8.4

cpptools-extension-pack
ms-
1.1.0

cmake
twx
0.0.17

(1 theme extensions excluded)

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492cf:30256860
pythonvspyl392:30443607
pythontb:30283811
pythonptprofiler:30281270
vsdfh931:30280409
vshan820:30294714
vstes263cf:30335440
pythondataviewer:30285071
vscod805:30301674
pythonvspyt200:30340761
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593:30376534
vsc1dst:30438360
pythonvs932:30410667
wslgetstarted:30449410
vsclayoutctrt:30451275
dsvsc008:30440022
pythonvspyt640:30450904
vscscmwlcmt:30438805
cppdebugcf:30451567
pynewfile477:30450038

/needsMoreInfo
Looks like you're working on C++. Do you mean https://github.com/microsoft/vscode-cpptools/issues/3626? It's known that the C++ extension may take an insanely long time to update diagnostic information (error messages).
If your problem is scoped to C++, please follow the issue I mentioned above, and avoid reporting such external things at VS Code's issue tracker.

Hey @alexr00, this issue might need further attention.
@gauravr20, you can help us out by closing this issue if the problem no longer exists, or adding more information.

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Uncaught TypeError: Cannot read property 'style' of undefined

I get this error every time I start atom. I usually just edit space-pen.js to check for this[0] before trying to access properties on it so I can just move on with my work. However, I haven't attempted to actually debug anything.

Open a JS file in atom.
Error appears immediately and repeatedly

The only potential issue with my machine: I'm running on a case-sensitive filesystem at the moment.
Atom Version: 0.176.0
System: Mac OS X 10.10.1
Thrown From: eslint package, v0.15.0
Stack Trace
Uncaught TypeError: Cannot read property 'style' of undefined
At /Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/lib/space-pen.js:516

TypeError: Cannot read property 'style' of undefined
  at [object Object].$.fn.isHidden (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/lib/space-pen.js:516:20)
  at [object Object].$.fn.isVisible (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/lib/space-pen.js:511:18)
  at ESLintGutterView.module.exports.ESLintGutterView.renderErrors (/Users/pgold/.atom/packages/eslint/lib/eslint-gutter-view.coffee:52:27)
  at atom-text-editor.<anonymous> (/Users/pgold/.atom/packages/eslint/lib/eslint-gutter-view.coffee:1:1)
  at atom-text-editor.handler (/Applications/Atom.app/Contents/Resources/app/src/space-pen-extensions.js:112:34)
  at atom-text-editor.jQuery.event.dispatch (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4681:9)
  at atom-text-editor.elemData.handle (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4359:46)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:243:29)
  at CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:3:61)
  at CommandRegistry.module.exports.CommandRegistry.dispatch (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:156:19)
  at TextEditorView.jQuery.fn.trigger (/Applications/Atom.app/Contents/Resources/app/src/space-pen-extensions.js:64:23)
  at [object Object].module.exports.React.createClass.componentDidUpdate (/Applications/Atom.app/Contents/Resources/app/src/text-editor-component.js:273:54)
  at CallbackQueue.mixInto.notifyAll (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/CallbackQueue.js:75:22)
  at ReactReconcileTransaction.ON_DOM_READY_QUEUEING.close (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/ReactReconcileTransaction.js:88:26)
  at ReactReconcileTransaction.Mixin.closeAll (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/Transaction.js:214:42)
  at ReactReconcileTransaction.Mixin.perform (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/Transaction.js:155:16)
  at ReactUpdatesFlushTransaction.Mixin.perform (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/Transaction.js:141:20)
  at ReactUpdatesFlushTransaction.mixInto.perform (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/ReactUpdates.js:98:38)
  at Object.flushBatchedUpdates (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/ReactUpdates.js:176:19)
  at ReactDefaultBatchingStrategyTransaction.Mixin.closeAll (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/Transaction.js:214:42)
  at ReactDefaultBatchingStrategyTransaction.Mixin.perform (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/Transaction.js:155:16)
  at Object.ReactDefaultBatchingStrategy.batchedUpdates (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/ReactDefaultBatchingStrategy.js:70:19)
  at Object.enqueueUpdate (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/ReactUpdates.js:209:22)
  at [object Object].ReactCompositeComponentMixin.forceUpdate (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/ReactCompositeComponent.js:1232:18)
  at /Applications/Atom.app/Contents/Resources/app/src/text-editor-component.js:313:28

Commands

Config
{
  "core": {
    "disabledPackages": [
      "language-coffee-script",
      "atom-lint",
      "jshint"
    ],
    "themes": [
      "atom-dark-ui",
      "atom-dark-syntax"
    ]
  }
}

Installed Packages
# User
Stylus, v0.4.0
atom-handlebars, v0.4.0
eslint, v0.15.0
javascript-snippets, v1.0.0
jsonlint, v1.0.0
linter, v0.10.1
linter-eslint, v0.3.1
linter-jsonlint, v0.1.2
linter-jsxhint, v0.1.0
linter-scss-lint, v0.0.11
react, v0.9.7

# Dev
No dev packages

/cc @atom/core

+1

+1


Toolbar with link to API usage

A part of the original vision for these widgets was to expose the API more. The suggested version was to add a link to all pages showing how to use the content using the APIs.

I don't know to what extent there is overlap with one of our wish list items, which would be to see the API call that was made for a given search. This would have immense utility in understanding how to use the API.

Hi @tucotuco this issue was created in a response to a mail from Vertnet. So I'm glad to hear that you also think it is related :)
As for understanding the API, do you mean by users or you as a site owner?
The intention of this issue is to create a link on all pages, that redirects users to the relevant API documentation. and possible a direct link that reflect the core search query (all pages of course do a ton of queries, but there is typical a central one that we could highlight).
I imagine a little - hopefully omni precent - {API}-icon that opens a drawer with an example and some links to the relevant parts of the documentation. With the intention to draw attention to the API and secondly give users an easier start with it.
Sad story: we still see users that write crawlers to get the data.

Hi @tucotuco this issue was created in a response to a mail from Vertnet. So I'm glad to hear that you also think it is related :)
As for understanding the API, do you mean by users or you as a site owner?
The intention of this issue is to create a link on all pages, that redirects users to the relevant API documentation. and possible a direct link that reflect the core search query (all pages of course do a ton of queries, but there is typical a central one that we could highlight).
I imagine a little - hopefully omni precent - {API}-icon that opens a drawer with an example and some links to the relevant parts of the documentation. With the intention to draw attention to the API and secondly give users an easier start with it.

Fabulous.

Sad story: we still see users that write crawlers to get the data.

Not fabulous.


Are you planning to create Valkey images as Redis alternative?

Redis changed their license to SSPL
Some of the developers made a fork called Valkey

Background: https://techcrunch.com/2024/03/31/why-aws-google-and-oracle-are-backing-the-valkey-redis-fork/

The Valkey image with Sponsored OSS seems to be available now at DockerHub: https://hub.docker.com/r/valkey/valkey

Putting the finishing touches here - #1091

With the release of 24.10 this seems to be fixed 🎉  See https://github.com/uselagoon/lagoon-images/releases/tag/24.10.0


Monkeys implementation

Here is how monkeys work:

Baobab.monkey creates a MonkeyDefinition instance that can be placed anywhere in the tree.
When the tree is written, data is parsed to find every MonkeyDefinition contained in it.
A "parallel" tree containing Monkey instances is created:

// For the following tree:
{
  one: {hello: 'world'},
  two: {user: 'michael', dynamic: monkey(...)}
}

// The following monkey index is created:
{
  two: {dynamic: ...}
}

Each monkey will then rewrite the tree's data by replacing their host node by a lazy JS getter computing the resultant data (memoized, of course).
If any of the deps is updated, the monkey will rewrite the lazy getter.
When the user write the tree, the monkeys index is updated (starting from the updated node for perf of course).

@christianalfoni, here you go.

What I'll do in the future is to enable more performant scenarios through options: like a flag in the setters informing that monkeys should be searched.

It doesn't seem to be possible to chain monkeys (have one monkey read data from another) and have the entire chain update when the underlying data is changed, the second monkey in the chain doesn't seem to update.
Is this a design decision, if so I guess it should be documented?

Hello @garth, "chaining" or "recursive" monkeys should work. If they aren't then this is a bug. Can you post here your failing use case so I can assess what went wrong, please?

A failing test:
  beforeEach(function () {
    this.tree = new Baobab({
      _locale: 'en',
      locale: monkey(
        ['user', 'locale'],
        ['_locale'],
        (userLocale, locale) => {
          return userLocale || locale;
        }
      ),
      userId: null,
      user: monkey(
        ['users'],
        ['userId'],
        (users, id) => users[id]
      ),
      users: {}
    });
  });

  it('locale should use _locale value when no user', function () {
    expect(this.tree.get('_locale')).to.equal('en'); // passes
    expect(this.tree.get('locale')).to.equal('en'); // passes
  });

  it('locale should use user.locale value when there is a user', function () {
    this.tree.set(['users', 1], { id: 1, locale: 'de' });
    this.tree.set('userId', 1);
    this.tree.commit();
    expect(this.tree.get(['users', 1, 'locale'])).to.equal('de'); // passes
    expect(this.tree.get(['user', 'locale'])).to.equal('de');  // passes
    expect(this.tree.get('locale')).to.equal('de');  // fails
  });

If the monkey is changed to:
      locale: monkey(
        ['users'],
        ['userId'],
        ['_locale'],
        (users, id, locale) => {
          let user = users[id];
          return user ? user.locale : locale;
        }
      ),

everything passes

Thanks @garth. I start investigating.

@Yomguithereal I'm not sure if it's related, but when i try to get a value represented by a monkey, I sometimes get the monkey object instead of the value returned by the monkey.
this.tree.get('locale') // sometimes returns monkey definition instead of value returned by monkey

@garth and I have worked on this related to Cerebral. We figured out that it was a Cerebral debugger thing. But still, monkeys seems to have their "getters" included when not grabbing state specifically from the branch where the monkey is defined:
{
  monkeyA: monkey,
  foo: {
    monkeyB: monkey
  }
}

Grabbing tree.get() will not have getter on monkeyA, just the value. But monkeyB also has its getter. Grabbing tree.get(['foo']) monkeyB does not have its getter defined.
It does not really matter I suppose, but it is a bit inconsistent.

There clearly are some things to fix here indeed. I just need some time to see to this but I have been very busy at work lately. Sorry for the delay.

Ok @garth, I just pushed a temporary fix for your issue. Can you precise when a MonkeyDefinition is returned instead of normal data please.
To precise what the problem was: it was about order. For the time being simple cases should be solved, and if you want to avoid further problems with complex recursivity, register the monkeys in the tree in a logical order. I will need, in the future, to implement a proper dependency solving algorithm.

Thanks @Yomguithereal! Is this part of dev15 branch?
Btw, logical order. I did not quite understand that?

Not yet. I will release a rc3 soon when I hear from @garth about the second problem.
By logical order I mean: first register the non-recursive monkeys, then the one relying on others then the one relying on others relying on others etc.

But for the case described above, it should work fine. As a matter of fact, if you don't overcome first level recursivity, it should be fine.

@Yomguithereal I'm using baobab via cerebral and after @christianalfoni made a few adjustments earlier this week it's been working very well. I haven't seen the periodic monkey issue, and I am assuming that this may have been due to an exception being thrown that caused execution to end before all monkeys had been processed?
I wrote a bunch of unit tests around my use-cases for baobab and it seems to be working as expected now.

Ok. Thanks for the feedback @garth :). Will release a new version soon. Maybe even the 2 one at last.

2.0.0-rc3 is now out.

@christianalfoni: do you see anything still rough or unstable with rc3 or can I release?

and on a side note: do you use validation?

Aha, I see :-)
I think things are looking good!
About validation I believe some developers are actively using it. I am a bit unsure where it really belongs. As you say, it would be easy to implement outside it.
My opinion, in regards of Cerebral, is that validation should be a service you use before setting values where validation is required. That way you can run a different set of actions if a validation fails, instead of having a general "validation error"
That said, it would really be great with some more feedback on this. Let me throw this issue into the Gitter channel and give it a couple of days?

Let's do that. Can you point me to the said gitter channel please?

@Yomguithereal This is the gitter channel: http://gitter.im/christianalfoni/cerebral

Thanks @saulshanabrook.

Any feeback about the implementation itself @christianalfoni?

you thinking about the issue you created with implementation details? Have not had time to look at it yet :-)

We actually are in said issue :).

haha, oh... no, not gotten the time :-) I had a read through now. It makes perfect sense to me. And I think you made the right choice of not giving the monkey a value. It does make things a lot more complex.
It would be fun to check out this reducer strategy. Maybe I will make a separate small project with that. If it works as intended maybe it is something for the future :-)

Hey @Yomguithereal did you ever resolve the recursivity beyond level 1? I am having issues when a monkey is listening to a monkey who is listening to a monkey. @garth did you say that you found a solution for the recursive monkey problem beyond level 1?

The current solution is simply to register your monkeys in the dependency order and it should work.


Default image added for articles without images

Issue Link 🔗:
Issue: #533
Type of Change

[ ] Bug fix 🐞
[x] New feature/page
[ ] Documentation update
[ ] Other

Description 📋

What: Added a default image to be displayed for articles without a custom image.

Why: To maintain the design and user experience of our website

How: The default image is stored in the assets folder and automatically displayed when an article lacks a specified image.

Checklist ✅

[x] Followed the Code of Conduct and Contribution Guide
[x] Ran pre-commit run --all
[x] All tests pass locally
[ ] Added tests (if applicable)
[ ] Documentation updated (if applicable)

Additional Notes & Screenshots
Add any additional notes or comments that might be helpful for the reviewers.

Thank you for putting in the work on this one.
One thing that I would suggest in the PR description is a reminder that folks may read the PR description with little to no knowledge of how we got to a decision.
I'm happy to approve this but it would be great in the future that we add more information to our descriptions that will help with that part.


Documentation

Is there any documentation for how to approach this? I would like to do it for one my app, and not able to find much information.

This would be great if there was at least short readme

if this project is still alive a comparison to https://github.com/tkaemming/django-subdomains would be interesting.


Scanning throw "Your adapter status is Unknown" error on iOS.

Please check all of the platforms you are having the issue on (if platform is not listed, it is not supported)

[Y] iOS
[] Android
[] UWP
[] tvOS
[] macOS
[Y] PCL

Version of OS(s) listed above with issue
iOS 10+ iPhone 6s plus
Version of Library
2.0.2
Expected Behaviour
When you call
            CrossBleAdapter.Current.Scan().Subscribe(scanResult =>
            {
                Debug.WriteLine("Found : " + scanResult.Device.Name);
            });

It supposed to return a list of found devices, but on iOS.
Actual Behavior
Thrown "System.ArgumentException: Your adapter status is Unknown"

Check your adapter status before scanning.  There is an WhenStatusChanged() observable as well as a Status property.
Also, you shouldn't scan the second your app starts as the BLE state may not have been detected yet.

And also make sure you've given permissions to your app.  Follow the instructions in the readme

I am using ScanWhenAdapterReady instead of Scan now.
Should this method documented?

all methods should be documented, I just don't have the time in life right now.
In any case, that method will help solve your issue, but you really should check the status observable as well so at least your user knows what is going on.

Thanks, will do.


Fix BoxColliderShape by creating Box2D shape when is2D

PR Details
Description
This PR fixes incorrect BoxCollider detection when the is2D checkbox is selected, simply by creating a 2D BoxShape version.
Related Issue
#1707
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)

Checklist

[ ] My change requires a change to the documentation.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

So, looks like convex shapes are broken then ?

@Eideren I don't think so, but since Bullet's documentation is poor, I can only speculate why it is wrong only for the Box shape.
Let me outline my reasoning process:
In our engine, Convex2DShape is instantiated only with the following shapes: Box (rectangle in 2D), Sphere (circle in 2D) and Capsule (rectangle + 2 circles? - 2D). Let's try to analyze each shape one by one:

rectangle - A rectangle in the 2D world is not convex. A rectangle does not meet the criteria for convexity, because if we take two points on its boundary (e.g. two adjacent corners), the line segment connecting them will pass outside the rectangle.
circle - a circle in the 2D world is convex. For any two points inside the circle, the line segment connecting them will always lie entirely inside the circle. This property is true for any pair of points chosen inside the circle, making it a convex shape.
"Flat" capsule (rectangle with two circles): If the ends of the capsule are convex curves (e.g., semicircles) and the body connecting them is a straight line segment, then the shape of the capsule can be considered convex. Our capsule meets these criteria and so it is also convex.

TDLR: I think because the rectangle is not convex, so putting BoxShape as an argument is not correct / does not make sense.

Thanks :)


Update GEOS to 3.8.1

Also with Travis CI, build and run tests

Coverage remained the same at 80.988% when pulling 9bd09aeedebb481e6de69d7b31bc3049cdf5fc61 on mwtoews:ci into 641c8241a2bfcbfce127c550a0d91a13dcae8d49 on Toblerity:master.


Consolidate build/tool configuration into pyproject.toml

Is your feature request related to a specific problem?
Currently spread across setup.py, setup.cfg and pyproject.toml. Modern Python supports keeping everything in pyproject.toml
Describe the solution you'd like
Consolidation

moving to done


chore: add module type

The package's *.js files are all ESM. Therefore this value should exist in package.json. While Svelte/SvelteKit are smart enough to figure this out and not trip over it (via Vite/Rollup), Node's default ESM loading needs this to exist. This helps with setups like using jest with ESM support.
An alternative would be explicitly using the *.mjs extension.
This could also be categorized as "fix" if you prefer, since the aforementioned jest setup blows up without it.

Makes sense – thanks for fixing this

Released in v1.5.2


Deprecate --path flag to bundle check (and related fixes)

What was the end-user problem that led to this PR?
The problem was that this flag should also be deprecated for these commands in preparation for bundler no longer remembering CLI flags.
What was your diagnosis of the problem?
My diagnosis was that, on bundler 3, the standard use case for bundle check --path will no longer work, namely:
 $ bundle check --path .bundle
The following gems are missing
 * rake (12.3.3)
Install missing gems with `bundle install`
$ bundle install
Fetching gem metadata from https://rubygems.org/.
Installing rake 12.3.3
Using bundler 2.1.0.pre.1
Bundle complete! 1 Gemfile dependency, 2 gems now installed.
Bundled gems are installed into `./.bundle`

In the case of bundle cache --path, it has never really work as I expect
So we should deprecate bundle check --path and instead use whatever path is configured.
The cache of bundle cache --path is not as clear. Currently it does remember the flag for subsequent bundle install runs, but it does not change the location where subsequent bundle cache or bundle install runs save their cache. So I'm not sure how the current behavior is useful.
What is your fix for the problem, implemented in this PR?
My fix is, pending further discussion on what the expected behavior for bundle cache is, to only deprecate bundle check --path, and in the case of bundle cache I only fixed the option description to not say it remembers the option in bundler 3.
Finally, I added a minor change in the deprecation message to recommend bundle config set path <path> instead of bundle config path <path>, because the latter is deprecated.
Why did you choose this fix out of the possible options?
I chose this fix because it's the subset of all this that seemed clearly like the way to go.
Fixes #7300.

@bundlerbot r+


music.pitch characteristics have changed; high pitches have background clicks

Micro:bit Foundation support ticket - 43597
Thanks @whaleygeek !
mimic.zip
The zip contains two versions of a hex that produces sounds on the speaker to mimic patterns recorded at the microphone. The newer script has been updated for the new microphone event APIs but is the same for sound output via music.pitch. The old one was built with "MicroPython 93e48c3 on 2020-09-08". I have just resaved the new one with Editor Version: 2.2.0-beta.4.
I noticed 2 changes: jumps between pitches and poor quality sound for higher pitches.
The original has a great sound effect which is lost in the new version. At first, it seemed like maybe the new one was doing a better job of producing the sounds, making it sound more musical. But, with longer durations, it's clear the old one sounds like a single tone which changes pitch, whereas the new one has distinct "twiddly" changes. It's as if the old one is merging from pitch to pitch, while the new one is restarting for each change.

Then I tried using the REPL of each version to play simple tones (e.g. import music; music.pitch(3000)). And 2000, 1000, 440... The 440 notes are noticeably different, though I couldn't say which is correct. The old version has a purer tone for the high frequencies, with the new one having a background clicking.

@martinwork @dpgeorge is David's example good to debug? Or do we need a smaller one to do a C++ version to check in CODAL?

@microbit-carlos Here is a C++ sample that confirms, as @dpgeorge said, the difference is in using virtualOutputPin.
Press B for uBit.io.speaker
Press A for uBit.audio.virtualOutputPin
After trying both it's necessary to reset to try again.
test-sonic-v2.zip
#include "MicroBit.h"

MicroBit uBit;

bool fVirtual = false;

codal::Pin &music_pin()
{
  return fVirtual ? (codal::Pin &) uBit.audio.virtualOutputPin : (codal::Pin &) uBit.io.speaker;
}

void music_pitch( int f)
{
  uint32_t us = floor( 0.5 + 1000000.0 / f);
  if ( music_pin().getAnalogPeriodUs() != us)
      music_pin().setAnalogPeriodUs( us);

  music_pin().setAnalogValue(512);
}

void music_stop()
{
  music_pin().setAnalogValue(0);
  music_pin().setAnalogPeriodUs( 20000);
}

uint32_t running_time()
{
  return system_timer_current_time();
}

void sleep( uint32_t ms)
{
  if (ms <= 0) {
      return;
  }
  uint32_t start = running_time();
  while (running_time() - start < ms) {
    Event(DEVICE_ID_SCHEDULER, DEVICE_SCHEDULER_EVT_IDLE);
    __WFI();
  }
}

void sonic( int f=3000, int fstep=32, int fdepth=100, int ton=10, int toff=0, float duration=2.0)
{
    int ft = f;
    music_pitch(ft);
    uint32_t st = running_time();
    while ( running_time() < st + ( duration * 1000))
    {
        sleep(ton);
        if ( toff != 0)
        {
            music_stop();
            sleep(toff);
        }
        int fn = ft + fstep;
        if ( fn >= f + fdepth || fn <= f - fdepth)
        {
            fstep *= -1;
        }
        if ( fn != ft)
        {
            ft = fn;
            music_pitch(ft);
        }
    }

    music_stop();
}

void onButtonA(MicroBitEvent e)
{
    fVirtual = true;
    sonic( 3000);
}

void onButtonB(MicroBitEvent e)
{
    fVirtual = false;
    sonic( 3000);
}

int  main()
{
    uBit.init();

    uBit.messageBus.listen( MICROBIT_ID_BUTTON_A,  MICROBIT_BUTTON_EVT_CLICK, onButtonA);
    uBit.messageBus.listen( MICROBIT_ID_BUTTON_B,  MICROBIT_BUTTON_EVT_CLICK, onButtonB);

    release_fiber();
}

@microbit-carlos where shall we go from here, is it important to make the sonic() code from v1 sound the same on v2?  If volume is set at 100% then it should be technically possible to make it sound the same using virtualOutputPin (because with max volume there's no higher frequency PWM modulating the volume, the waveform should be the same as a normal PWM output on a pin).  But I suspect it'd be a lot of work to make the timings the same as v1.

This following works, but not music.pitch() in the same program, which is the same problem I had in C++.
import math
from microbit import *

def sonic_music_pitch( f):
    us = math.floor( 0.5 + 1000000.0 / f)
    pin_speaker.set_analog_period_microseconds( us)
    pin_speaker.write_analog(512)

def sonic_music_stop():
    pin_speaker.write_analog(0)
    pin_speaker.set_analog_period_microseconds( 20000)

def sonic(f=3000, fstep=32, fdepth=100, ton=10, toff=0, duration=2.0):
    try:
        ft = f
        sonic_music_pitch(ft)
        st = running_time()
        while running_time() < st+(duration*1000):
            sleep(ton)
            if toff != 0:
                sonic_music_stop()
                sleep(toff)
            fn = ft + fstep
            if fn >= f + fdepth or fn <= f - fdepth:
                fstep *= -1
            if fn != ft:
                ft = fn
                sonic_music_pitch(ft)
    finally:
        sonic_music_stop()

while True:
    if button_a.was_pressed():
        display.show(Image.SWORD)
        sonic(f=3000)
    elif button_b.was_pressed():
        display.show(Image.SWORD)
        sonic(f=4000)
    else:
        display.show(Image.DIAMOND)

Thanks @martinwork, we should take this to CODAL to be investigated over there. Could you open an issue in the codal-microbit-v2 repo and summarise all the finding listed here?

@microbit-carlos We already have https://github.com/lancaster-university/codal-microbit-v2/issues/42, that I started looking at yesterday.

Is the fix from https://github.com/lancaster-university/codal-microbit-v2/commit/6e880bc3d10df1a585bb9046ee4ab02bdcab1f34 now applied here?

The latest tag, v0.2.33, was released in July and that commit was added in August, so it's not in a CODAL release yet.

Is the fix from lancaster-university/codal-microbit-v2@6e880bc now applied here?

Yes it is now applied in this repo, CODAL was updated to v0.2.35 in 76c1b3153970e967401dee6a2566fbfec36d8fe2

@martinwork could you please test with the version of MicroPython in https://python.microbit.org/v/beta and close this if the issue is now resolved?

There are two hexes in the original mimic.zip. The older one doesn't load into Python v2 or beta. This is not a new problem, but maybe worth noting that the error messages are different.
v2 says Could not find valid Python code in the hex file.
beta says Cannot load file Invalid record type 0x0A at record 2 (should be between 0x00 and 0x05)
I loaded and saved the newer one in beta and made a new zip:  mimic03Aug22.zip
The behaviour of the program and the microphone sensitivity seems different, compared to the original hex.
The sound is OK, though very slightly different, I think.


Added script to delete all metadata values

References

Fixes #2973

Description
Added a new script called metadata-deletion to delete all values of a specific metadata field. This script can be used to clear all dspace.agreements.end-user metadata values as required by https://github.com/DSpace/DSpace/issues/2973
Instructions for Reviewers
To delete all the values of a specific metadata field, you can invoke the metadata-deletion script with the following options:

m (metadata): the metadata field to be reset

Checklist

[x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & integration tests). Exceptions may be made if previously agreed upon.
[x] My PR passes Checkstyle validation based on the Code Style Guide.
[x] My PR includes Javadoc for all new (or modified) public methods and classes. It also includes Javadoc for large or complex private methods.
[x] My PR passes all tests and includes new/updated Unit or Integration Tests based on the Code Testing Guide.

I tend to agree that the tool as originally conceived is too powerful.  May I suggest an alternative view of this tool:  not a metadata tool but a license tool.  The repository administrator should not care how these data are stored, nor need to know it.  So the tool ought to be oriented toward license maintenance.  So for example, from the command line it might look like this:  dspace license --reset end-user.  This would leave developers free to change the way in which license acceptance is represented, without affecting what administrators do to manage it.

@LucaGiamminonni : I think @mwoodiupui 's suggestions are also valid here.  I'd also be fine with turning this into a tool that is more specific to resetting licenses/agreements. (which is exactly what the original #2973 ticket asked for).
My primary concern here is this tool is currently too powerful and therefore dangerous to use...it's also unclear to me whether we have additional use cases for deleting other metadata fields in bulk.  Currently the only known use case is this specific dspace.agreements.end-user metadata field.
@abollini : not sure if you've seen this discussion, so tagging you in case you want to clarify why this tool's design turned into a "bulk metadata deletion" tool instead of a simple "reset license agreement" tool (like @mwoodiupui describes).

I like the solution as improved after your first feedback @tdonohue
with such improvements it cannot be abused and there is still the chance that a more general solution can help in some scenario (it is possible that someone want to delete all the phone or other details that will be recorded at some point).
As we have the general solution now I would suggest to take it otherwise it can be simplified if really needed

@LucaGiamminonni : I wanted to leave you a brief note that the improvements to this script (and the tests proving they work) both look good to me now.  I haven't had a chance to test it yet, but will do so next week before submitting my review.

Hi @tdonohue , I moved the property in bulkedit.cfg file as you suggested, thanks for the review.

Thanks @LucaGiamminonni ! This looks good now.  Merging


[Add-ins] (CATS) Fix broken anchors (#790)

Docs Build status updates of commit 608d94e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/add-ins/activation-rules.md
:white_check_mark:Succeeded

docs/add-ins/add-mobile-support.md
:white_check_mark:Succeeded

docs/add-ins/get-and-set-item-data-in-a-compose-form.md
:white_check_mark:Succeeded

docs/add-ins/get-set-or-add-recipients.md
:white_check_mark:Succeeded

docs/add-ins/item-data.md
:white_check_mark:Succeeded

docs/add-ins/understanding-outlook-add-in-permissions.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Wrong tense of word "increases" in "Limits" Section

https://docs.microsoft.com/en-us/azure/architecture/framework/devops/app-design#limits
The sentence that reads, "Some limits are a hard maximum, while others are a soft limit that can be increases upon request..." should read "Some limits are a hard maximum, while others are a soft limit that can be increased upon request..."

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 1b5d9240-7176-838b-5a41-1159799e4456
Version Independent ID: e38a4b5c-32b1-d6bc-56b3-c8a84def4471
Content: Application design for DevOps - Azure Architecture Center
Content Source: docs/framework/devops/app-design.md
Service: architecture-center
Sub-service: well-architected
GitHub Login: @UmarMohamedUsman
Microsoft Alias: pnp

Thanks for reporting - this issue is under review.  This is a Microsoft Internal DevOps Bug ID AB#

@jaspecla Thank you for catching that error in the docs. I have submitted a PR to fix the issue, the change is merged internally and will go-live in the public docs shortly.


Getting imageproxy creates error

When running go get willnorris.com/go/imageproxy the following error occurs.
# willnorris.com/go/imageproxy ../../../willnorris.com/go/imageproxy/transform.go:173:13: undefined: smartcrop.SmartCrop

Encountered the same error.

Yep, I see what happened here.  I've been using go modules support pretty much exclusively, so I've been pinned at an older version of the smartcrop package.  I removed the vendor directory last night, with the intention of pushing toward always building with module support.  So that's one option... checkout the project outside of your GOPATH and build with go1.11 or later.
But the other thing I need to do is update to the latest version of smartcrop, so that building without modules will still work.  I'll do that later today.  Thanks for reporting this!  I totally overlooked in the work I was doing last night.

It's working.  Thanks for the quick update.


[Backport 3.23] Match full interface names to exclude

Description

Backport https://github.com/projectcalico/calico/pull/6760 to 3.23 branch
Related issues/PRs

https://github.com/projectcalico/calico/pull/6760
https://github.com/projectcalico/calico/pull/6878
Todos

[X] Tests
[ ] Documentation
[X] Release note

Release Note

Match full interface names in IP auto-detection default exclude list.

Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one docs-* label.

docs-pr-required: This change requires a change to the documentation that has not been completed yet.
docs-completed: This change has all necessary documentation completed.
docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

release-note-required: This PR has user-facing changes. Most PRs should have this label.
release-note-not-required: This PR has no user-facing changes.

Other optional labels:

cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

/sem-approve


"move" and "copy" subcommands for "meltano state"

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/3452
Originally created by @cjohnhanson on 2022-04-28 20:59:58

This is a follow-up from: https://gitlab.com/meltano/meltano/-/issues/2754
We need to add the following subcommands to meltano state:

copy

meltano state copy <JOB-ID-1> <JOB-ID-2>

move

meltano state move <JOB-ID-1> <JOB-ID-2> (or meltano state rename)

View 1 previous comment from the original issue on GitLab


Reintroduce magerun and magerun2

The Problem/Issue/Bug:
magerun and magerun2 were mistakenly removed from the web image in #2768
How this PR Solves The Problem:
Bring it back in. Turns out it wasn't exactly completely removed, and this should be a better installation anyway
Manual Testing Instructions:
ddev exec magerun2
Automated Testing Overview:

Related Issue Link(s):
Release/Deployment notes:

@cmuench seemed to me like these should go back in. Would appreciate your review.  Sorry I didn't understand.


Interactivity: Cursor drag panning

This issue might not end up being implemented.
Make it so the cursor can be held and dragged to pan the map viewport.

If we finish, make another Git issue for scrollwheel zooming.

This is actually mostly completed, both for the map dragging and the mousewheel zooming. The only thing that still needs some work is to zoom on the cursor itself, and there is a viewport bug when the screen isn't perfectly square. When these issues are addressed, the issue is complete.


feat: add button to get extension

Adds a button to the bottom of the 'choose account' screen to get the extension.
Figma designs
Right now, when you click the button, nothing happens. We don't have the extension published, yet.

The button should show the right icon & name if you're on Chrome or Firefox (or Chrome clones like Brave)
It should just show the 'Powered by Blockstack' icon if you're on a different browser (or iOS Chrome).

@hstove Should we move this back to development if it's in draft still? Or is it ready to assign reviewers?

Ok, that makes sense. So is that an argument for keeping this in app since it doesn't follow the pattern of our other icons? Or that we should consider redesigning to only use solid color icons?

Update: I refactored all the import * as React calls (mostly in UI), and moved the icons into the app/components/icons folder, which I think does make sense.

Ok, I reverted the import * from React stuff, but still moved the icons.

@timstackblock it looks like you accidentally closed this PR, instead of the issue! I'm re-opening it, and I've added the extension button to the 'sign in' popup, which relates to #471


when turning Backend into a State Machine

There should be a state/transition in the form of an event being sent and recieved from the server front end. Something such as "updateState" sent, then a "stateUpdated" sent back. this will hopefully help make the board state consistent

Decided against this as a state machine would not make sense with the current structure.


ExperimentalAcrylicMaterial does not support DynamicResource

I often use the AcrylicMaterial, but this does not work with DynamicResource
Steps to reproduce the behavior:

Create an ExperimentalAcrylicBorder, and create an ExperiementalAcrylicMaterial in Resource Styles
Link that with DynamicResource in the ExperimentalAcrylicBorder in Material property.
Debug it, for me that throws Unable to cast object of type 'Avalonia.Markup.Xaml.MarkupExtensions.DynamicResourceExtension' to type 'Avalonia.Media.ExperimentalAcrylicMaterial

System info:

Windows 10 20H2, compilation 19042.746
Avalonia 0.10.0 stable release
Net 5.0

DynamicResource is just a binding, and the Material property seems to be correctly defined. I also tried to repro but it works fine for me. Could you share a repro?

DynamicResource is just a binding, and the Material property seems to be correctly defined. I also tried to repro but it works fine for me. Could you share a repro?


When are you going to come out with the first release?

...a dev version would be fine too.

Goal is end next week

Whats the status of this?

Usable versions of the app are available in the develop branch and have been constantly been updated, we're working on getting it deployed in a test env.
Are you guys contributors or looking to test? If you'd like pull the develop branches and give us feedback in the form of issues!

As of v1.0-alpha we have an official release of the app, albeit being an alpha that must be manually built. While we are not yet stable and in production, I would move that this issue is resolved.

Closing this for now as resolved. A repo member can reopen if it should remain.


Bump to v4.1.9 broke our test suite

After upgrading to 4.1.9, our mocha tests fail and gives the following output:
/home/ubuntu/wrench/node_modules/bluebird/js/release/debuggability.js:673
    var firstStackLines = firstLineError.stack.split("\n");
                                        ^
NetworkError:
npm ERR! Test failed.  See above for more details.

npm test returned exit code 1

Locking to v4.1.8 seems to resolve the issue

@dannyphillips That's really strange.  Is there a reproducible test I can check out?

Closing because I cannot reproduce.  This error is obscured by Bluebird, and I can't get at the cause without reproducing it locally to dig in.


[HUDI-5145] Avoid starting HDFS in hudi-utilities tests

Change Logs
This patch makes starting HDFS optional in UtilitiesTestBase and update subclasses' usage.
For any UT/FT not meant to test HDFS itself, we should avoid starting HDFS service and use local FS instead.
Impact
This will stabilize tests in CI environments and reduce test run time.
Risk level
none
Documentation Update
NA
Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

The test run time has good improvement.
in master version
UT
[INFO] hudi-utilities_2.11 ................................ SUCCESS [08:32 min]

FT
[INFO] hudi-utilities_2.11 ................................ SUCCESS [59:44 min]

With this patch
UT
[INFO] hudi-utilities_2.11 ................................ SUCCESS [07:14 min]

FT
[INFO] hudi-utilities_2.11 ................................ SUCCESS [38:23 min]

Overall it has about 30% drop!


Support custom headers for AKS

Feature Request
Provide a way to specify aks-custom-headers during the creation of a cluster. This is required for setting OS level configuration as described here.

Any ETA?

Hey @jmcshane and @kingli-crypto sorry for the delay of response.
Actually we have a way to send the request with customized headers like this (I am using a virtual machine client for demonstration here, but all clients are the same):
func main() {
	authorizer, err := auth.NewAuthorizerFromCLI()
	if err != nil {
		panic(err)
	}
	ctx := context.Background()
	client := compute.NewVirtualMachinesClient(subscriptionId)
	client.Authorizer = authorizer
	client.RequestInspector = autorest.WithHeader("header-key", "header-value")
	request := compute.VirtualMachine{}
	future, err := client.CreateOrUpdate(ctx, "group1", "vm1", request)
	if err != nil {
		panic(err)
	}
	if err := future.WaitForCompletionRef(ctx, client.Client); err != nil {
		panic(err)
	}
}

@ArcturusZhang these aren't HTTP headers, but a Key-Value field in the request/response called "custom headers" iirc


Index.php is missing from hierarchy for categoreis

This is the output of hierarchy debugger for one of category pages in one of my projects:
/controllers/app.php
/controllers/archive.php
/controllers/category.php
/controllers/category-2.php
/controllers/category-fitness.php

I would expect there to be an index.php just above archive.php to comply with the default wp template hierarchy. Is index.php omitted intentionally?

Hey @iljamm , I'll look into this over the weekend.
As a general rule, app.php does apply to all templates, like index.php would.
However, app.php is extended to all views by default, whereas I suppose index.php would be overwritten by a more specific template.  Is that the particular use case you are after?

@iljamm Index.php now works for all routes.  Unline App.php, it can be overridden with more specific templates. Closing.


Grid class using BaseResqpy

This change also removes the last of the extract_from_xml type arguments

Codecov Report

Merging #111 (55a925c) into master (402a1eb) will increase coverage by 0.01%.
The diff coverage is 62.77%.

@@            Coverage Diff             @@
##           master     #111      +/-   ##
==========================================
+ Coverage   39.65%   39.66%   +0.01%
==========================================
  Files          49       49
  Lines       21578    21584       +6
==========================================
+ Hits         8557     8562       +5
- Misses      13021    13022       +1

Impacted Files
Coverage Δ

resqpy/tomography.py
0.00% <0.00%> (ø)

resqpy/rq_import.py
25.79% <16.66%> (-0.07%)
:arrow_down:

resqpy/derived_model.py
20.61% <18.91%> (+0.01%)
:arrow_up:

resqpy/well.py
33.93% <40.00%> (ø)

resqpy/olio/base.py
95.14% <70.00%> (-2.73%)
:arrow_down:

resqpy/model.py
62.02% <75.00%> (-0.12%)
:arrow_down:

resqpy/property.py
44.62% <80.00%> (ø)

resqpy/fault.py
37.56% <83.33%> (+0.31%)
:arrow_up:

resqpy/grid.py
38.13% <91.93%> (-0.07%)
:arrow_down:

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 402a1eb...55a925c. Read the comment docs.


react-intersection-observer does not provide all members of IntersectionObserverEntry

Overview
When using react-intersection-observer only the isIntersecting member of IntersectionObserverEntry is present on the returned intersection from const [intersection] = useIntersection().
This is because all of the members of IntersectionObserverEntry are non-enumerable, and the current implementation tries to spread them across an internal state setter which fails when transpiled to an Object.assign. The isIntersecting property is still present as it is set as a guard for browser support.
I believe these properties are implemented as getters (or so it seems..) in order to be lazily loaded and avoid the performance hit of calculating bounding boxes unless the specific property is actually requested in user land. I have tried a solution that would copy that implementation directly (using defineProperties and getOwnPropertyDescriptors), but oddly enough the members of IntersectionObserverEntry are still not reported to getOwnPropertyDescriptors or getOwnPropertyNames. They are visible as keys in for .. in walk, but seemingly cannot be accessed with getOwnPropertyDescriptor either.
One possible solution is to directly set the IntersectionObserverEntry object as state, this would preserve the lazy loading of the expensive properties, but it would eliminate the current browser support fallback for isIntersecting.
Another solution would be to manually copy the known properties:
setIntersectingEntry({
  isIntersecting: entry.isIntersecting || entry.intersectionRatio > 0,
  intersectionRatio: entry.intersectionRatio,
  intersectionRect: entry.intersectionRect,
  /* etc */
});

However as it may be a performance degradation to automatically include evaluated values of these properties, I don't think it is wise to copy them all. Perhaps as a compromise solution we could leave out the DOMRectReadOnly properties (boundingClientRect, intersectingRect, and rootBounds), and manually copy the other simple values.
I can create a PR for either of these solutions, but am curious how others might prefer to proceed. Thanks!
Consuming repo

What repo were you working in when this issue occurred?

start-web

Whether it's a performance issue or not it feels like we should stay away from copying the properties. I'd probably feel most comfortable if we saved the IntersectionObserverEntry, and just patch the instances to have the field if we see that the field is missing. Or, we could make this a polyfill instead, and patch IntersectionObserverEntry.prototype.


[OSPK8-430] Introduce additional disk support with v1beta2

prepares for new API by split out non version depending parts into a shared API package

[OSPK8-430] Introduce additional disk support with v1beta2
Allows adding additional disks to a vm role, therefore
restructures disk specification for vmset/ctlplane VM roles.
Therefore introduces new API verstion for VMSet and Ctlplane.
Adds OpenStackVMSetDisk type which describes any disk
configured for the VM.
Root of vmset now has RootDisk of type OpenStackVMSetDisk
and AdditionalDisks of type []OpenStackVMSetDisk.
OpenStackVMSetDisk with the parameters:

Name
DiskSize
StorageClass
StorageAccessMode
StorageVolumeMode
DedicatedIOThread

Also adds

IOThreadsPolicy and BlockMultiQueue to the root vmset spec:

DedicatedIOThread - Disks with dedicatedIOThread set to true will be
allocated an exclusive thread. This is generally useful if a specific
Disk is expected to have heavy I/O traffic, e.g. a database spindle.
If IOThreadsPolicy is default, use of IOThreads will be disabled. However,
if any disk requests a dedicated IOThread, ioThreadsPolicy will be enabled
and default to shared.
When ioThreadsPolicy is set to auto IOThreads will also be "isolated" from
the vCPUs and placed on the same physical CPU as the QEMU emulator thread.
An ioThreadsPolicy of shared indicates that KubeVirt should use one thread
that will be shared by all disk devices.
Block Multi-Queue is a framework for the Linux block layer that maps Device
I/O queries to multiple queues.
This splits I/O processing up across multiple threads, and therefor multiple
CPUs. libvirt recommends that the number of queues used should match the
number of CPUs allocated for optimal performance.

API update

For existing CRs via the ctlplane mutation webhook parameter from
old specification gets moved into the new structure. When done
an annotation gets set on the object to no longer check it.
To auto trigger the storage verstion migration the ctlplane controller
reconcilation creates the required StorageVersionMigration via
ensureStorageVersionMigration(). The ctlplane controller then updates/
patches the owning VMSet objects.

Validations vi webhook
On CR create:
additional disks checks
- validate Disk Name is not 'rootdisk' as this is reserved for the boot disk
- validate that disk name is uniq within the VM role
On CR update:
  rootdisk checks
  - validate DiskSize don't change
  - validate StorageAccessMode don't change
  - validate StorageClass don't change
  - validate StorageVolumeMode don't change

  additional disks checks
  - same as rootdisk update checks
  - validate Disk Name is not 'rootdisk' as this is reserved for the boot disk
  - validate that disk name is uniq within the VM role

updates kuttl tests for v1beta2 API changes

we can do that, but I'd like to do it in a follow up instead of this PR


iam_role name override

Describe the Feature
When using this module to deploy to multiple regions, there is a naming conflict since the iam role must be unique
Expected Behavior
Id like to be able to override the iam role name with a parametrized name so that i can deploy to multiple regions
Use Case
Actually using the AWS config module, thats where i hit this bug. Will bubble up this feat to it once implemented here.
Worth noting, variable description already claims that var.name is the fallback, though not implemented
https://github.com/cloudposse/terraform-aws-iam-role/blob/0c6cbfc39147f8413d955153362dfdc800c8cf4d/variables.tf#L7

Nevermind, see https://github.com/cloudposse/terraform-aws-iam-role/pull/52#issuecomment-1286038339


uv publish cannot find index when configured as explicit=true

A pyproject.toml that creates this issue is as follows:
[build-system]
build-backend = "hatchling.build"
requires = ["hatchling"]

[project]
name= "My-Test-Project"
version = "0.1.0"

[tool.uv]
trusted-publishing = "always"

[[tool.uv.index]]
explicit = true
name = "testpypi"
publish-url = "https://test.pypi.org/legacy"
url = "https://test.pypi.org/simple"

Running uv publish --index testpypi results in the following message:
warning: `uv publish` is experimental and may change without warning
error: No indexes were found, can't use index: `testpypi`

Thank you for the quick fix! I barely had time to notice my issue had been closed💚💚


update dep

Coverage remained the same at 100.0% when pulling 92ee038eb8db315a2dfdeea4b4aeb166666abdff on update-dep into 49084674bd376c382708500716db148800e66b29 on master.


[BUG] - setFilters with filters.mode="off" not updating the table

Describe the bug
when using external search box to filter a table with filter.mode set to "off" the filter query is correctly displayed on the location bar but the table will not be updated until the page is refreshed. i forked the basic example of react-table with charka-ui and able to reproduce the issue.
Steps To Reproduce
open https://codesandbox.io/p/sandbox/solitary-architecture-fne4uq?file=%2Fsrc%2Fpages%2Fposts%2Flist.tsx%3A140%2C21
on the text filed "search by title" type any of the title eg. rter
the table is not filtered.  even though the query string on location bar is set correctly
but if filters.mode is set to server or cleared the table will be filtered as expected.
Expected behavior
the table should be updated when user types text on the search field without requesting the server if  filter.mode is set to "off".
(only works after refreshing the page)
Screenshot
No response
Desktop
No response
Mobile
No response
Additional Context
No response

Hello @Abenezer, thanks for the detailed report! We'll check and get back to you.

Hi @Abenezer, This does not work because when filters.mode="off" you need to handle filters on the client side with the help of TanStack Table.
you can use it like this:
https://codesandbox.io/p/sandbox/boring-water-ubs5wo?file=%2Fsrc%2Fpages%2Fposts%2Flist.tsx%3A174%2C1-175%2C1
other filters work as expected (dropdown, sorters, etc.) because we already write the required logic on /components/table/columnFilter.tsx

thankyou for the fast response. one thing i did not understand is how it was able to work when refreshing the page if the logic is not implemented. I can work like the example you provided, setting column filter like this might be even better. thankyou.

@Abenezer After refresh works because we are populating TanStack Table's initialState with URL params.

@Abenezer We discuss this issue with the core team and decided this behavior and implementation are quite confusing. Next week we will plan this feature and we will improve the API and documentation of useTable to make it more understandable.
Thanks for the issue 🚀

@Abenezer Hi again, due to our higher priority tasks this week, we couldn't schedule this job. We hope to schedule and complete it next week ✌.

I have the same issue, except that the table data won't be filtered even after full reload (refresh). I am using ant-design as my UI library.
'use client';
import {
  useTable,
  List,
  EditButton,
  ShowButton,
  DeleteButton,
} from '@refinedev/antd';
import { Table, Space, Input } from 'antd';

import { IPost } from 'src/interfaces';

const WordList: React.FC = () => {
  const { tableProps, setFilters, filters } = useTable<IPost>({
    resource: 'words',
    pagination: {
      mode: 'client',
      pageSize: 20,
    },
    filters: {
      mode: 'off',
    },
  });

  return (
    <List>
      {/* search form */}
      <Input.Search
        onChange={(event) => {
          console.log('value', event.target.value);
          setFilters([
            {
              field: 'firstChar',
              operator: 'eq',
              value: String(event.target.value),
            },
          ]);
        }}
      />
      <Table {...tableProps} rowKey="id" size="small">
        <Table.Column dataIndex="id" title="ID" />
        <Table.Column dataIndex="word" title="Word" />
        <Table.Column dataIndex="length" title="Length" />
        <Table.Column<IPost>
          title="Actions"
          dataIndex="actions"
          render={(_text, record): React.ReactNode => {
            return (
              <Space>
                <EditButton size="small" recordItemId={record.id} />
                <ShowButton size="small" recordItemId={record.id} />
                <DeleteButton size="small" recordItemId={record.id} />
              </Space>
            );
          }}
        />
      </Table>
    </List>
  );
};

export default WordList;

I am also facing this issue too. I'm passing the needed filters as arguments to a custom queryFn, and also declared my custom queryKeys and added an object with the filters to force trigger a refetch with the passed filters. But this isn't working at all
I thought I read it all correctly from the useTable docs

Also having the same issue. Any updates on this? I'm using MUI but able to reproduce with useTable


Add a shortcut action [Suggestion]

Is there any chance the app will add a shortcut action anytime? Its prettt difficult to activate it with Android Pie's gestures bar, however, BxActions could be a great alternative (for Samsung devices) on this case: it would allow the Bixby button to be remapped to launch the search app with a single click.

This is for you:
https://www.f-droid.org/es/packages/de.szalkowski.activitylauncher/
It just creates shortcuts of activities and place in your default launcher


set proper mongo data directory

Fixes #42
By mistake, AET MongoDB data folder was set to the default value for the sc-mongodb cookbook which is /var/lib/mongo/ directory.
After this fix, MongoDB will be configured to store its data under /opt/aet/mongodb/db.
This is critical bugfix for the instances with separate disk/lvm configured for MognoDB.
Important!
If your instance is provisioned with aet-cookbook versions v5.0.0 or v5.1.0 you need to manually move your MongoDB data. Please follow steps below after upgrading your instance with version of cookbook that contains this fix:

Stop Karaf instance with sudo service karaf stop
Stop MongoDB instance with sudo service mongod stop
Clear /opt/aet/mongodb/db with sudo rm -rf /opt/aet/mongodb/db/*
Move all the data from the old director to the new with: sudo mv -f /var/lib/mongo/* /opt/aet/mongodb/db (depending of the size of your database it may tak a while, if you wish you may use rsync instead of mv).
Start MongoDB instance with sudo service mongod start. Check if all the databases are visible after data migration.
Start Karaf instance with sudo service karaf start

Thank you @Skejven , this is important also for Docker-based approach :)


Bringing kubernetes deps to sync

Ensuring that release versions of kubernetes dependencies are in sync with latest version of k8s.io/client-go

/hold

WIP'ing this for now


Update ctags regexes

Hello.
I'm currently working on the Elixir parser for universal-ctags, and took your project there as the base for my changes. I made the regexes more exhaustive (but not completely exhaustive), and wanted to share my changes to upstream.
In the commit messages you'll find detailed information about each change.
Feel free to ask or discuss any change.

@dreamtigers, thank you for working in this area.
I want to write some comments as an expert in Universal-ctags.
If you(we) want to use this .ctags with Exuberant-ctags, you cannot use '#' as a comment starter.
The notation is introduced in Universal-ctags.
If you want to use this .ctags only with Universal-ctags, I strongly recommend you to use
--kinddef-Elixir=n,name,description

option. See https://github.com/universal-ctags/ctags/blob/master/man/ctags-optlib.7.rst.in.
The change 2a98125  doesn't fit to --kinddef-<LANG> option. It implies you try to capture different language objects with one kind. I recommend you to use different kinds for different language objects.

Thank you for your time. I hadn't read this before doing the pull request
in the universal-ctags repo. I will make the necessary changes in both
repos and submit again.
Thanks for the review.
On Sun, Mar 3, 2019, 9:37 AM Masatake YAMATO<EMAIL_ADDRESS>wrote:

@dreamtigers https://github.com/dreamtigers, thank you for working in
this area.
I want to write some comments as an expert in Universal-ctags.
If you(we) want to use this .ctags with Exuberant-ctags, you cannot use
'#' as a comment starter.
The notation is introduced in Universal-ctags.
If you want to use this .ctags only with Universal-ctags, I strongly
recommend you to use
--kinddef-Elixir=n,name,description
option. See
https://github.com/universal-ctags/ctags/blob/master/man/ctags-optlib.7.rst.in
.
The change 2a98125
https://github.com/mmorearty/elixir-ctags/commit/2a981256b32593db0364f691f94664ebbe18b39d
doesn't fit to --kinddef- option. It implies you try to capture
different language objects with one kind. I recommend you to use different
kinds for different language objects.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mmorearty/elixir-ctags/pull/8#issuecomment-469023636,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQ0eljr3Kel48qa0Aedwp09ZFKA1yE31ks5vS9AHgaJpZM4ba_Dv
.


Filter components: support multiple inputs for one field

At the moment, the filter input label is derived from a keyword list. If a field is used multiple times (e.g. from/to inputs for a date field), the first label in the list is used for all of the fields. The implementation needs to be changed to use the correct label.

okay

resolved in #89


Failure of read database policy for related entity in multiple create for N:1 and 1:1 relationships returns error

For N:1 and 1:1 relationships where the read policy prohibits returning the result of the insertion in the related entity, we get an exception:

In the config, the policy for read operation is defined as:

This is an existing behavior and not something that is introduced as part of multiple create.  The same behavior is observed even for queries (not just mutations) when processing read policy.
DAB version: 0.12.0-rc
In the config file, Publisher entity has a role Anonymous defined with the following read policy
{
          "role": "authenticated",
          "actions": [
            {
              "action": "create"
            },
            {
              "action": "read",
              "policy": {
                "database"<EMAIL_ADDRESS>ne 1234"
              }
            }
          ]
        }

The following graphQL query results in an exception
{
  book_by_pk(id: 1) {
    id
    title
    publisher_id
    publishers {
      id
      name
    }
  }
}

Response:
{
  "errors": [
    {
      "message": "Cannot return null for non-nullable field.",
      "locations": [
        {
          "line": 6,
          "column": 5
        }
      ],
      "path": [
        "book_by_pk",
        "publishers"
      ],
      "extensions": {
        "code": "HC0018"
      }
    }
  ],
  "data": {
    "book_by_pk": null
  }
}

Mutation:
mutation{
  createbook(item: {
    publisher_id: 1234,
    title: "Book #1"
  }){
    id
    title
    publishers{
      id
      name
    }
  }
}

Response:
{
  "errors": [
    {
      "message": "Cannot return null for non-nullable field.",
      "locations": [
        {
          "line": 8,
          "column": 5
        }
      ],
      "path": [
        "createbook",
        "publishers"
      ],
      "extensions": {
        "code": "HC0018"
      }
    }
  ],
  "data": {
    "createbook": null
  }
}

Reason for the exception:
The return type for both the operations book_by_pk and createbook : book.
Snip of the book object type:

In the schema, publishers field is created as a non-null/required field with type Publisher! ~ this makes hotchocolate throw an error when a null response is to be returned.


Conversion of ContentsUploadModel.jsx from class based to functional components

Is your feature request related to a problem? Please describe.
I saw that the ContentsUploadModel.jsx still uses class based components.
Describe the solution you'd like
The solution is to convert the code from class based to functional components.

I would like to work on this issue.Assign me.


CacheDir duplicates cache entry for identical target outputs

Describe the Feature
Originally discussed at https://github.com/platformio/platformio-core/issues/4574
PlatformIO 'environments' are separated as VariantDirs, and often include similar target outputs SDK and library files. Every time environment is built, cache is populated exclusively for that environment alone; it is not possible to share cache entries between environments, thus increasing total compilation time of otherwise exact same project files.
With the following test construct taken from the issue
CacheDir('build_cache')
VariantDir('build1', 'src', duplicate=False)
VariantDir('build2', 'src', duplicate=False)
env1 = Environment()
env1.Program('build1/hello.c')
env2 = Environment()
env2.Program('build2/hello.c')

Empty build_cache and clean build directory, build1 variant is compiled from scratch as expected.
Immediately trying to build build2 generates files from scratch as well, but since it is identical to the build1 one would expect the output files would be taken from build1 cache.
Currently, this does not work like that because of hard-coded path included for the CacheDir entry key, in the FS Node code method
https://github.com/SCons/scons/blob/c80cbb0846c5d9265f356e86c4e79f1d13e3e8a8/SCons/Node/FS.py#L3705-L3717
Main question is - what is the best approach to handle such case?
Naive solution would be to simply allow to modify this path, as mentioned in the original issue
https://github.com/SCons/scons/compare/master...mcspr:scons:pio4574v2
FS node now has set_cachedir_bsig_path() method, which can be used to substitute that path; either set to some common prefix + filename, or simply removed.
But, I am not sure how that would apply to the env.Program() case, since it does not allow target factory (or, for anything in-between like .o files). Or, whether modifying FS Node code is the best place for this change to happen.
Required information

Link to SCons Users thread discussing your issue.
https://github.com/platformio/platformio-core/issues/4574
Version of SCons
v4.5.2
Version of Python
3.11.2

I encountered this behavior at one point as well, and considered whether it was worth fixing. There are, however, some critical wrinkles. For this to work the build environment must guarantee that no path information ends up in the object files. If you have, for instance, debug info that records something like .dwo paths or split dwarf info or any other information like that, then what would otherwise be equivalent object files will end up with different content. If you allow those files to be considered equivalent via the cache by stripping the variant directory from consideration then you can end up retrieving the "wrong" file. Is it a problem in practice? Maybe or maybe not. But think if this behavior is desired it needs to be opt-in.

As I understood it (and I might not have) .. wouldn't preprocessor stuff like "Current file" or "Line number" be rendered before hashing and checking the cache?
If so, that would make two different sources, which yields two different outputs.

As I understood it (and I might not have) .. wouldn't preprocessor stuff like "Current file" or "Line number" be rendered before hashing and checking the cache?
If so, that would make two different sources, which yields two different outputs.

If duplicate=False, then the sources and preprocessor stuff would all be the same..so no.
But some tools embed the target path/name in the output files.

Setting aside embedding, I wonder if fiddling the relevant for_signature could help - if a variantdir is active, don't include the variantdir part in the calculation. The interpretation of what to include is claimed to be fairly arbitrary:
        ...    The purpose
        of this method is to generate a value to be used in signature
        calculation for the command line used to build a target, and
        we use this method instead of str() to avoid unnecessary
        rebuilds.  This method does not need to return something that
        would actually work in a command line; it can return any kind of
        nonsense, so long as it does not change.


No explicit error when no connection to server

When user perform actions on UI and server down there is no error about just empty result

Done


https://learning.oreilly.com/videos/

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting a new site support request
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that none of provided URLs violate any copyrights or contain any DRM to the best of my knowledge
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and am willing to share it if required

Region
Canada
Example URLs
https://learning.oreilly.com/videos/learn-enough-python/9780138050764/9780138050764-LEP1_01_04_01/
Provide a description that is worded well enough to be understood
it downloads only first 10 seconds of the video
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['https://learning.oreilly.com/videos/learn-enough-python/9780138050764/9780138050764-LEP1_01_04_01/', '-vU']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp (linux_exe)
[debug] Python 3.11.9 (CPython x86_64 64bit) - Linux-5.15.0-122-generic-x86_64-with (OpenSSL 3.1.6 4 Jun 2024)
[debug] exe versions: ffmpeg 4.4.2 (setts), ffprobe 4.4.2, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.07.04, curl_cffi-0.7.1, mutagen-1.47.0, requests-2.32.3, secretstorage-3.3.3, sqlite3-3.44.2, urllib3-2.2.2, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1830 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[safari] Extracting URL: https://learning.oreilly.com/videos/learn-enough-python/9780138050764/9780138050764-LEP1_01_04_01/
[Kaltura] Extracting URL: https://cdnapisec.kaltura.com/html5/html5lib/v2.37.1/mwEmbedFrame.php?wid=_1926081&uiconf_id=29375172&flashvars%5BreferenceId%5D=9780138050764-LEP1_01_04_01
[Kaltura]<PHONE_NUMBER>764-LEP1_01_04_01: Downloading webpage
ERROR: [Kaltura] Unable to extract kalturaIframePackageData; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp/extractor/common.py", line 740, in extract
  File "yt_dlp/extractor/kaltura.py", line 416, in _real_extract
  File "yt_dlp/extractor/common.py", line 1347, in _search_json
  File "yt_dlp/extractor/common.py", line 1333, in _search_regex

Firstly, your log doesn't reflect the description of your issue ("it downloads only first 10 seconds of the video").
And I can't reproduce either of the issues; I don't get the error from your log, and yt-dlp downloads the full minute video from that URL


about the apps folder.

Why are there 3 different projects in the apps directory, nextjs-app, remix-app, and remix-vercel? What are the differences between them? If I use this scaffolding to develop a project, will all 3 projects be started at the same time?

Hi, these apps are given as example starting point, feel free to delete any of them.
In my opinion there is 2 ways to use a monorepo setup:

For a big project, bigger team of people, there would be different packages, sometimes owned by different teams. The apps folder would contain the main app, and sometimes different things like a Marketing website (could be a Remix app or a NextJS, or Astro app), a Docs website, etc...
For a very small team or a single freelancer, packages would contain reusable pieces of logic, like file upload, CSV parsing, email sending. These reusable packages would then get plugged into different apps inside the app folder. Each apps are different customer projects, in production.

Probably other examples but that's the two that quickly come to mind.
You could run them all at the same time, yes but you would have to double-check that they are not using the same port.


embed the templates in the binary

Currently, the tool looks inside of its repository to get the templates and then use them to generate the custom reports.
This task is for we are able to embed the templates into the bin.

Done in: https://github.com/operator-framework/audit/pull/114


Adding Testimonials section

@MohitNamdev22 not sure if it's a good idea if you intend to make a separate page then plz go ahead


Support to EXT-X-INDEPENDENT-SEGMENTS in Go Lib

Hi,
I would like to know if there is any plan for supporting EXT-X-INDEPENDENT-SEGMENTS  in the Go Lib?
Thank you.

Support for EXT-X-INDEPENDENT-SEGMENTS was introduced in VERSION: 6. Currently only version 5 is supported. I agree, it would be helpful to add support for the latest versions (6 & 7).

There's no planned support, if there's particular features you require we can look at them and possibly implement them - but most support has been added on an as-needed basis and usually via contributed PRs.
Is EXT-X-INDEPENDENT-SEGMENTS something you'd be willing to PR and iterate on?

Looking at https://tools.ietf.org/html/rfc8216#section-<IP_ADDRESS>
It seems to be a pretty straight forward bool on the master playlist, with reader and writer support along with some appropriate tests.
Is this something you'd be willing to start?

The EXT-X-INDEPENDENT-SEGMENTS is supported by #128 , so close this issue.


error on IE11

Hi guys...
i have problem in IE11 in this function:
utils:
export function defer() {   var res;   var rej;   var promise = new Promise(function (resolve, reject) {     res = resolve;     rej = reject;   });   promise.resolve = res;   promise.reject = rej;   return promise; }
there is any possibility for work in ie 11??
many thanks

fix it!
in webpack
`plugins: [
new webpack.ProvidePlugin({
Promise: "bluebird"
})
]`


#4701 - Resolves SR-10803

Added additional description for swift-package init -help command explaining what each type means
Motivation:
[Explain here the context, and why you're making that change. What is the problem you're trying to solve.]
Modifications:
I added description using swift-argument-parser @Option which was discussed in #4701. Also added several small unit tests on this behaviour
Result:
[After your change, what will change.]

cc @natecook1000 0 would be nice to do this in a structured way, i.e. if the enum confirm to a protocol providing the help string per case and the help builder iterates and builds the helps for the cases

@swift-ci smoke test

thanks @Overcot! could you please fix the indention to be consistent with the rest of the code? it seems a bit off

thanks @Overcot! could you please fix the indention to be consistent with the rest of the code? it seems a bit off

Yeah, sure. Just used indention which was used by swiftformat which was decribed in a contributing guide. Also, do you prefer rebase and force-push new commit or create additional commit for required change?

Also, do you prefer rebase and force-push new commit or create additional commit for required change?

your call, we normally squash into one commit when merging

@tomerd could you please run tests?)

@swift-ci please smoke test

thanks @Overcot looks like indentation is still off compared
to the other lines, maybe your IDE settings are not the default?

@tomerd thanks for feedback. found that i don't need extra line for a bracket and was using tabs instead of spaces. Also changed layout of properties a little bit. Everything else seems to be the same (in Xcode widths & indents as 4).

@swift-ci smoke test

thanks @Overcot


Incremental rollsum incorrectly calculated - sum(0, windowSize) + Roll() != sum(1, windowSize+1)

I may have misunderstood something about the functioning of the rollsum, but I noticed odd behaviour when trying to use it in my own project.
Essentially, when checking the rollsum window incrementally, using Roll() to add the next byte and slide the window forward one byte did not result in the same digest as creating a new RollSum for the same 64 byte window.
From prodding the code, the problem is rollsum.go:46-47:
rs.s1 += uint32(add) - uint32(drop)
rs.s2 += rs.s1 - uint32(windowSize)*uint32(drop + charOffset)

which appears to have been ported from the librsync implementation:
(sum)->s1 += (unsigned char)(in) - (unsigned char)(out); \
(sum)->s2 += (sum)->s1 - (sum)->count*((unsigned char)(out)+ROLLSUM_CHAR_OFFSET); \

Errors only seem to appear when the charOffset would introduce an 8-bit wraparound (i.e. bytes > 225) -see the byte 226 being removed on the last OK line below.
OK:    i=0, buf[i]=29, buf[i+windowSize]=14, sumRoll=694670633, newRoll=694670633
OK:    i=1, buf[i]=212, buf[i+windowSize]=206, sumRoll=693694337, newRoll=693694337
OK:    i=2, buf[i]=117, buf[i+windowSize]=225, sumRoll=693296147, newRoll=693296147
OK:    i=3, buf[i]=31, buf[i+windowSize]=213, sumRoll=700375249, newRoll=700375249
OK:    i=4, buf[i]=137, buf[i+windowSize]=247, sumRoll=712309701, newRoll=712309701
OK:    i=5, buf[i]=157, buf[i+windowSize]=200, sumRoll=719518887, newRoll=719518887
OK:    i=6, buf[i]=116, buf[i+windowSize]=242, sumRoll=722335924, newRoll=722335924
OK:    i=7, buf[i]=61, buf[i+windowSize]=81, sumRoll=730595199, newRoll=730595199
OK:    i=8, buf[i]=7, buf[i+windowSize]=68, sumRoll=731845662, newRoll=731845662
OK:    i=9, buf[i]=128, buf[i+windowSize]=178, sumRoll=735852154, newRoll=735852154
OK:    i=10, buf[i]=201, buf[i+windowSize]=17, sumRoll=739130056, newRoll=739130056
OK:    i=11, buf[i]=100, buf[i+windowSize]=67, sumRoll=727067678, newRoll=727067678
OK:    i=12, buf[i]=67, buf[i+windowSize]=191, sumRoll=724907667, newRoll=724907667
OK:    i=13, buf[i]=117, buf[i+windowSize]=13, sumRoll=733039044, newRoll=733039044
OK:    i=14, buf[i]=170, buf[i+windowSize]=174, sumRoll=726224909, newRoll=726224909
OK:    i=15, buf[i]=226, buf[i+windowSize]=25, sumRoll=726485274, newRoll=726485274
Error: i=16, buf[i]=17, buf[i+windowSize]=111, sumRoll=713323358, newRoll=713306974
Error: i=17, buf[i]=50, buf[i+windowSize]=68, sumRoll=719491648, newRoll=719475264
Error: i=18, buf[i]=120, buf[i+windowSize]=59, sumRoll=720677108, newRoll=720660724
Error: i=19, buf[i]=24, buf[i+windowSize]=100, sumRoll=716680683, newRoll=716664299
Error: i=20, buf[i]=101, buf[i+windowSize]=174, sumRoll=721668910, newRoll=721652526
Error: i=21, buf[i]=95, buf[i+windowSize]=135, sumRoll=726455674, newRoll=726439290
Error: i=22, buf[i]=61, buf[i+windowSize]=238, sumRoll=729080174, newRoll=729063790

I don't know my modular arithmetic or C type coercion rules well enough to be completely confident of what's going on, but it appears that the second line should add the char offset after the conversion to uint32, so byte 226 should map to 257, not 1.
Certainly changing line 47 in this way fixes my test, as does adding the offset into the add and drop terms on line 46. Both version are included in these commits.
I suspect this may create problems if the incremental rollsums have been stored with blocks somewhere, but if the rollsums have been re-calculated for the first 64 bytes of a block then they should still be accurate.

Thanks for this! If we could bother you to submit this on Gerrit it would be appreciated.
This code repository is just a mirror of the one on googlesource.com. The standard way to contribute is to submit patches using Gerrit. (You need to sign the CLA, log in to Gerrit and get a .gitcookie, then run devcam review to submit.)

Will do!


Introducing findOne

Support for findOne operation

PR# https://github.com/kdhrubo/db2rest/pull/484 is merged


FIX Provide instance of CompositeField rather than class string

Issue https://github.com/silverstripe/silverstripe-framework/issues/11198
Fixes unit test failing in kitchen-sink ci run on recipe-content-blocks
1) DNADesign\Elemental\Tests\Forms\ElementalAreaFieldTest::testFieldReturnsCompositeFieldOnReadonlyTransformation
TypeError: get_class(): Argument #1 ($object) must be of type object, string given

/home/runner/work/recipe-kitchen-sink/recipe-kitchen-sink/vendor/silverstripe/framework/src/Forms/FieldList.php:49
/home/runner/work/recipe-kitchen-sink/recipe-kitchen-sink/vendor/silverstripe/framework/src/Forms/CompositeField.php:63
/home/runner/work/recipe-kitchen-sink/recipe-kitchen-sink/vendor/silverstripe/framework/src/Core/Injector/InjectionCreator.php:35
/home/runner/work/recipe-kitchen-sink/recipe-kitchen-sink/vendor/silverstripe/framework/src/Core/Injector/Injector.php:631
/home/runner/work/recipe-kitchen-sink/recipe-kitchen-sink/vendor/silverstripe/framework/src/Core/Injector/Injector.php:1027
/home/runner/work/recipe-kitchen-sink/recipe-kitchen-sink/vendor/silverstripe/framework/src/Core/Injector/Injector.php:979
/home/runner/work/recipe-kitchen-sink/recipe-kitchen-sink/vendor/silverstripe/framework/src/Core/Injector/Injector.php:1152
/home/runner/work/recipe-kitchen-sink/recipe-kitchen-sink/vendor/silverstripe/framework/src/Core/Injector/Injectable.php:30
/home/runner/work/recipe-kitchen-sink/recipe-kitchen-sink/vendor/silverstripe/framework/src/Forms/FormField.php:1365
/home/runner/work/recipe-kitchen-sink/recipe-kitchen-sink/vendor/dnadesign/silverstripe-elemental/src/Forms/ElementalAreaField.php:187
/home/runner/work/recipe-kitchen-sink/recipe-kitchen-sink/vendor/dnadesign/silverstripe-elemental/tests/Forms/ElementalAreaFieldTest.php:41
/home/runner/work/recipe-kitchen-sink/recipe-kitchen-sink/vendor/bin/phpunit:122

castedCopy() should handle this
https://github.com/silverstripe/silverstripe-framework/blob/c6aee6c5c7dd216db1a3c181d44511901c6c52bc/src/Forms/FormField.php#L1360-L1366

Will fix in https://github.com/silverstripe/silverstripe-framework/pull/11235 instead


Huge memory consumption on MacOS in some conditions

In some cases DBeaver starts to consume tons of memory in idle mode.
Possibly because of halted (broken) remote connections which produce series of deadlocks in UI.
Perhaps it started after migrating to the new Eclipse platform.

We need some steps to reproduce.
It happens rarely after dbeaver is working for a long-time (days)

fixed in the scope of #11368