feat: capture from start of tmux pane history

By default, tmux capture-pane only captures what is visible on the pane. This means that any output that has scrolled off the pane is no longer being suggested by cmp-tmux. For example, on a MBP Pro 13" with terminal font of Menlo and font size of 11, with 2 vertical panes in tmux, the maximum number of visible lines is ~32 ±2.
My use-case: aws iam list-policies | jq -rc .Policies[] produces more than 4,000 lines of output. I would like to be able to start typing an IAM Policy Name or IAM Policy ARN and have cmp fuzzily suggest completions from the entire pane history (via tmux capture-pane -S-).
I have tested this change on my tmux history-limit of 20000 and there were no noticeable performance issues.
Screenshot

Pane 1 (top): neovim with cmp + cmp-tmux suggestions
Pane 2 (bottom): output from cat /dev/random exceeding 20,000 lines

Nice!
I'm currently a bit busy, so I can't test this myself at this moment. But I'll try to give it a go today.

I must be missing something because I can't get it to work.
In my init.lua:
local cmp = require('cmp')
-- ...

cmp.setup({
  -- ...
  sources = {
    { name = 'nvim_lsp' },
    { name = 'luasnip' },
    { name = 'buffer' },
    { name = 'path' },
    { name = 'tmux', option = {capture_history = true}}
  },
})

In my lazy plugins:
  {
    'https://github.com/hrsh7th/nvim-cmp',
    dependencies = {
      -- 'https://github.com/andersevenrud/cmp-tmux',
      { 'https://github.com/pbnj/cmp-tmux', branch = 'feat/capture-from-start'},
      'https://github.com/hrsh7th/cmp-buffer',
      'https://github.com/hrsh7th/cmp-nvim-lsp',
      'https://github.com/hrsh7th/cmp-path',
      {
        'https://github.com/saadparwaiz1/cmp_luasnip',
        dependencies = { 'https://github.com/L3MON4D3/LuaSnip', 'https://github.com/rafamadriz/friendly-snippets' }
      },
      {
        'https://github.com/petertriho/cmp-git',
        opts = {},
        dependencies = { 'https://github.com/nvim-lua/plenary.nvim' }
      },
    },
  },

Lazy shows the correct commit hash from my dev branch, but I don't get suggestions from the full pane history.

I am still not having any luck getting suggestions from any text outside of the visible pane

I am still not having any luck getting suggestions from any text outside of the visible pane

I tested this myself by just doing the table.insert(cmd, '-S-'). Works in combination with all_panes by directly modifying the installed plugin files.
Maybe something related to your setup ?

Hm, so now I am pointing Lazy at my local clone of cmp-tmux:
  {
    'https://github.com/hrsh7th/nvim-cmp',
    dependencies = {
      -- 'https://github.com/andersevenrud/cmp-tmux',
      { dir = '~/Projects/github.com/pbnj/cmp-tmux' },
      -- ...
  }

And in tmux source configuration in init.lua, I enable all_panes and capture_history here:
require('cmp').setup({
  sources = {
    { name = 'tmux', option = { all_panes = true, capture_history = true } }
    -- ...
  }
})

But, still no luck.
When I hardcode capture_history to true in cmp-tmux/lua/cmp_tmux/source.lua here:
local default_config = {
    all_panes = false,
    label = '[tmux]',
    trigger_characters = { '.' },
    trigger_characters_ft = {},
    keyword_pattern = [[\w\+]],
    capture_history = true,
}

It works.
So, I suspect option = {...} is not getting passed in? or getting passed in after the plugin has been initialized?

After a bit of vim.print(...) debugging, I confirmed that the option was not getting passed in.
I suspected that cmp-* plugins get initialized before the rest of init.lua is read.
Moving require('cmp').setup({...}) into nvim-cmp's Lazy config callback section resolved the issue, like this:
require('lazy').setup({

  {
    'https://github.com/hrsh7th/nvim-cmp',
    dependencies = {
      { dir = '~/Projects/github.com/pbnj/cmp-tmux' },
    },
+   config = function()
+     require('cmp').setup({
+       sources = {
+         { name = 'tmux', option = { all_panes = true, capture_history = true },
+       }
+     })
+   end
  },

}, {})

-require('cmp').setup({
- sources = {
-   { name = 'tmux', option = {all_panes = true, capture_history = true },
- }
-})

Moving require('cmp').setup({...}) into nvim-cmp's Lazy config callback section resolved the issue

Ah, yes. Plugin setup usually needs to be set up like this with a manager. It's the same for packer... which reminds me. Probably time to migrate to Lazy 😅


More intuitive location entry

Components for entering own and target location should have less text. The text entry should be intuitive from styling.

Location entry is sufficiently intuitive for now.


Cannot build Ubuntu 22.04 for arm64

We currently build nohang for Ubuntu 22.04 systems, this seems to work ok on amd64 but on arm it is throwing the following error when trying to upgrace libc:
root@ace802c57ed2:/# apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libc-bin libc6
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 3306 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main arm64 libc6 arm64 2.35-0ubuntu3.8 [2706 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main arm64 libc-bin arm64 2.35-0ubuntu3.8 [600 kB]
Fetched 3306 kB in 0s (9062 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 4387 files and directories currently installed.)
Preparing to unpack .../libc6_2.35-0ubuntu3.8_arm64.deb ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/aarch64-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/aarch64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/aarch64-linux-gnu/perl-base /usr/lib/aarch64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.)
debconf: falling back to frontend: Teletype
Unpacking libc6:arm64 (2.35-0ubuntu3.8) over (2.35-0ubuntu3.7) ...
Setting up libc6:arm64 (2.35-0ubuntu3.8) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/aarch64-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/aarch64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/aarch64-linux-gnu/perl-base /usr/lib/aarch64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.)
debconf: falling back to frontend: Teletype
(Reading database ... 4387 files and directories currently installed.)
Preparing to unpack .../libc-bin_2.35-0ubuntu3.8_arm64.deb ...
Unpacking libc-bin (2.35-0ubuntu3.8) over (2.35-0ubuntu3.7) ...
Setting up libc-bin (2.35-0ubuntu3.8) ...
Segmentation fault (core dumped)
Segmentation fault (core dumped)
dpkg: error processing package libc-bin (--configure):
 installed libc-bin package post-installation script subprocess returned error exit status 139
Errors were encountered while processing:
 libc-bin
E: Sub-process /usr/bin/dpkg returned an error code (1)

this issue turned out to be a local one with my setup, see https://github.com/moby/qemu/issues/19
and I cannot be sure if it's something similar with the pipeline since I cannot read the logs, so closing for now


Surprising module resolution behavior vs. esbuild and bun

Acknowledgements

[X] I searched existing issues before opening this one to avoid duplicates
[X] I understand this is not a place for seek help, but to report a bug
[X] I understand that the bug must be proven first with a minimal reproduction
[X] I will be polite, respectful, and considerate of people's time and effort

Minimal reproduction URL
https://github.com/andrewbranch/tsx-module-resolution
Version
v4.6.2
Node.js version
v21.1.0
Package manager
npm
Operating system
macOS
Problem & Expected behavior
I uploaded a repo instead of using StackBlitz because it looks like StackBlitz doesn’t support Bun yet, and I wanted to use it as a point of comparison.
This is probably not a bug per se but I wanted to raise this as a design issue that I think should be considered.
Module resolution of node_modules packages does not work how I expected, and differs from what both esbuild and Bun do. It looks like tsx is choosing whether to transform the input to CommonJS based on the file extension / package.json "type", and then performing module resolution from the transformed syntax. So, when you run npm run tsx-ts in the provided repro, the import declaration gets invisibly transformed to a require, and therefore loads the "require" conditional export of pkg. But on the same code, esbuild and Bun both load the "import" conditional export.
Also unlike esbuild and Bun, the behavior changes based on the file extension or package.json "type" of the importing file. When we try the same code from a .mts file (npm run tsx-mts), the explicit require call fails because it’s not processed by tsx; it’s passed on to Node.js in an ESM file.

Expected
Actual

npm run tsx-ts
{ import: 'import.mjs', require: 'require.js', dynamicImport: 'import.mjs' }
{ import: 'require.js', require: 'require.js', dynamicImport: 'import.mjs' }

npm run tsx-mts
{ import: 'import.mjs', require: 'require.js', dynamicImport: 'import.mjs' }
Errors

All this behavior just falls out of Node.js’s behavior, but it’s not clear to me why tsx can’t or won’t override Node.js here and hide more of the implementation details. I think Bun implemented the intuitive behavior here, and I’ve heard many people suggest tsx as a way to bring Bun-style interop to Node.js, but it seems like the two are fairly far apart on how interop should work.
Moreover, there is no tsconfig.json that can represent what tsx is doing with module resolution. I had previously thought --module esnext --moduleResolution bundler (and soon, --module preserve) were accurate settings, but this difference in conditional "exports" resolution proved me wrong. I’ll have to update the TypeScript docs but it seems there’s no great suggestion I can make for how to type check code written for tsx—--module nodenext is stricter than necessary, but --moduleResolution bundler is inaccurate.
Contributions

[ ] I plan to open a pull request for this issue
[ ] I plan to make a financial contribution to this project

Thank you for your detailed issue report, @andrewbranch. Your insight and feedback are highly valued.
Regarding tsx's perceived functionality
Originally, tsx was marketed as an esbuild powered runtime. However, I've shifted away from this description to prevent misunderstandings. Many people filed bugs expecting tsx to mimic esbuild's behavior exactly. In reality, tsx only leverages esbuild for transforming TypeScript (and ESM syntax within CommonJS environments).
I haven't made explicit comparisons to bun, but I acknowledge the need to refine our branding & messaging. Clarifying what users can expect from tsx is a priority I hope to address in early 2024.
Regarding the first issue with npm run tsx-ts
This issue aligns with an existing report: https://github.com/privatenumber/tsx/issues/239
It's not a popular issue and thus not top-priority, but I plan on investigating it.
My plan is to swap the require condition for import in the resolution for ESM-in-CJS files, and transforming further ESM syntax to CommonJS. This approach would be straight forward once Node.js lands complete support for loading CommonJS via Module Hooks.
However, I believe you're suggesting to run ESM syntax in a module context. Initially, tsx operated this way, but it led to compatibility issues with (outdated) packages containing mixed ESM and CJS code. Transforming ESM syntax to CJS was a more practical solution than attempting to fully adapt all CJS functionality in ESM, considering the strict and opt-in nature of modules.
RE: The second issue with npm run tsx-mts
I experimented with compiling via tsc, and running the output yielded the same error. This is not a bug as you noted, but setting "module": "NodeNext" seems to automatically inject createRequire. This was an unexpected feature for me, and I'm not sure how to feel about its implications considering the strictness of modules. But since TypeScript supports this functionality, it seems like a reasonable default to adopt in tsx.
I'm curious—do you know why TypeScript chose to support import a = require('a') in Modules, but not const a = require('a')? Is it for historical, backwards compatibility reasons?

Thank for the pointer to #239, I’ll follow that!

However, I believe you're suggesting to run ESM syntax in a module context.

Honestly, I don’t have a strong mental model around what’s really possible with the loader APIs, so I wasn’t implying an implementation suggestion here. Just changing the require condition to import when triggered from import syntax seems good enough to me.

I'm curious—do you know why TypeScript chose to support import a = require('a') in Modules, but not const a = require('a')? Is it for historical, backwards compatibility reasons?

TypeScript files can import and export not just values, but types too. CommonJS constructs use expression-level syntax that wouldn’t have made sense for types:
interface Foo {}
module.exports = Foo; // AssignmentExpression, Foo must be a value
const SomeType = require("a"); // VariableDeclaration, SomeType declares a value

Using alternative syntax made it more clear that (a) these constructs would be transformed before emit, and (b) they can declare meanings besides values. So const a = require('a') never has any special meaning in TypeScript files, even in files that are going to emit CommonJS. Even if we did recognize it, we wouldn’t transform it with the createRequire trick, since we try to transform existing valid JavaScript as little as possible.


CZECH REPUBLIC address parsing - Abbreviation in House Name is parsed wrongly as "City"

I am using the Docker image https://hub.docker.com/r/clicksend/libpostal-rest
For CZECH REPUBLIC address parsing - Abbreviation in House Name is parsed wrongly as "City"
curl -X POST -d '{"query": "Namesti Republicky 2090/3a PRAHA HVB BANK CZECH REPUBLIC A.S. CZECH REPUBLIC"}' localhost:8080/parser
[{"label":"road","value":"namesti republicky"},
{"label":"house_number","value":"2090/3a"},
{"label":"city","value":"praha"},
{"label":"house","value":"hvb bank czech republic"},
{"label":"city","value":"a.s."},
{"label":"country","value":"czech republic"}]

probably the structure is not in the training data for Czech Republic, this works and is closer to the addresses it trains on:
"HVB BANK CZECH REPUBLIC A.S. Namesti Republicky 2090/3a PRAHA CZECH REPUBLIC"
You can programmatically check for if you get, for instance two different city tokens or a company suffix as a city and then try rearranging and reparse, or if the pattern happens often can just concat "a.s." when it's encountered as a "city" onto the previous "house" string. Model parses are never going to be perfect in every case so often good to encode some guardrails or forward the few that seem to have logical inconsistencies (like two different city tokens) for manual review.


[Windows] Lock container by ID to prevent concurrent modification

When working with ContainerD runtime, antrea creates OVS port
for Pod asynchronously. Lock needs to be used to prevent
concurrent modification on the same container.
Signed-off-by: Rui Cao<EMAIL_ADDRESS>

/test-all

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@abb6c33). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #1836   +/-   ##
=======================================
  Coverage        ?   26.28%
=======================================
  Files           ?      181
  Lines           ?    15279
  Branches        ?        0
=======================================
  Hits            ?     4016
  Misses          ?    10733
  Partials        ?      530

Flag
Coverage Δ

e2e-tests
26.28% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

/test-networkpolicy

/test-networkpolicy


Item hover highlight is sometimes not cleared on quick mouse leave

This task is automatically imported from the old Task Issue Board and it was originally created by Paweł Grabarz.
Original issue is here.

Steps to reproduce

Open component browser
Hover over any item
Move mouse cursor quickly away from component browser

Might require repeating a few times.
Expected
The highlighted item should lose highlight.
Actual
One of the items in mouse path keeps being highlighted until the component browser is hovered again.
The side effect of this is that the documentation panel keeps referring to the highlighted item, completely disregarding keyboard navigation.
The image shows a state where mouse cursor is outside of the component browser, yet the highlight is still active. Notice the documentation panel showing information about highlighted element, not the active one

No hover highlight in new CB.


Unclear how this page relates to "Azure Enterprise REST APIs" page

Hello,
I'm struggling to understand the differences between these two pages:
https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/ea-portal-rest-apis
https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/enterprise-api
Are they the same API?  Or different?  Could these pages please be improved to add clarity?
Thanks,
Chris

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

ID: 6ed7b604-d89f-1d59-87d6-d32e29eb6245
Version Independent ID: 0113a6ce-3f69-73ce-b063-c07b52348f92
Content: Azure Billing Enterprise APIs
Content Source: articles/cost-management-billing/manage/enterprise-api.md
Service: cost-management-billing
Sub-service: enterprise
GitHub Login: @mumami
Microsoft Alias: banders

@chrisweis Thank you for your post. We will review the documentation with the content owner and get back to you soon.

@chrisweis They are same APIs.
@mumami @bandersmsft For doc-enhancements/doc clarity

@chrisweis We haven't heard back from you, so we will now close this issue.


Ib Requests with subRequest don't work when IB returns "no data" error.

I did a new test unit for test this issue

I trust you and merget #16

@qusma FYI

Yeah this is a legit issue.

Unit test passed and I tested in IB.


APIv2: Flow rate setter fails to actually modify the pipette flow rate

overview
This is an issue to record a bug found with the flow rate setter.
current behavior
Flow rate does not change unless you specify a fractional amount in the atomic aspirate and dispense functions.
steps to reproduce
Try this small protocol on API V2:
def run(ctx):
    tiprack = ctx.load_labware_by_name('opentrons_96_tiprack_300ul', 1)
    plate = ctx.load_labware_by_name('corning_96_wellplate_360ul_flat', 2)
    pipette = ctx.load_instrument('p300_single', tip_racks=[tiprack], mount='right')
    # without flow rate change
    pipette.transfer(100, plate.wells()[0:8], plate.wells()[8:16])
    # with flow rate change
    pipette.flow_rate = {'aspirate': 50, 'dispense': 50}
    pipette.transfer(100, plate.wells()[16:24], plate.wells()[24:32])

expected behavior
Flow rate should change to the value you set it to in your protocol, and remain at that value until otherwise specified.

Closed by #3739


mobile example

Great module! Really like everything about it. Your demo does have a button that works on mobile, but I can't figure out how to enable that functionality. Halp!

Setting the :max-width property small enough will allow it to be displayed on small screen devices.

Worked like a charm! Thank you!


Feature: Support Foce login by SAML provider

Environment

item
version

OS

GROWI
3.6.3

node.js
12.14.0

npm
6.13.4

yarn
1.21.1

(Accessing https://{GROWI_HOST}/admin helps you to fill in above versions)
How to reproduce? (再現手順)

no trouble(this is request)

What happens? (症状)

no trouble(this is request)

Stack Trace

What is the expected result? (期待される動作)

Force SAML login

UI: Checkbox or toggle switch (up to you.)

Note: The option is dangerous. Because if it switches to on,  then it cannot log in by Growi local user. So I think it should be better to put a description.
It profits for end-user that doesn't select the login method button.

Related issue
#615: Feature: Support mostly setting items of SAML provider

This request will be resolved by configuration in admin page.
Solution
Turn off "ID/Pass" Authentication in "Authentication Mechanism Settings" of /admin/security

@yuki-takei Thank you for your advice.
In fact, I set it up exactly as you said and found that Growi should have auto-redirect.
So I will try to find out if the function can be implemented.


Addressing issue 33.

Implements the feature requested in #33.
The argument is called --dont_keep_tars. If this arg is used, the downloaded tar files will be deleted after use.

Feel free to change the name of this arg.

@zshaheen : I tried but was not successful at testing your branch yet. Something must have changed, either conda or NERSC. The installation instructions on
https://e3sm-project.github.io/zstash/docs/html/getting_started.html#installation-from-source
do not work any longer. I get an error message at the last step
python setup.py install
running install
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

    [Errno 13] Permission denied: '/global/common/cori_cle6/software/python/2.7-anaconda-4.4/lib/python2.7/site-packages/test-easy-install-4051.write-test'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

    /global/common/cori_cle6/software/python/2.7-anaconda-4.4/lib/python2.7/site-packages/

Perhaps your account does not have write access to this directory?  If the
installation directory is a system-owned directory, you may need to sign in
as the administrator or "root" account.  If you do not have administrative
access to this machine, you may wish to choose a different installation
directory, preferably one that is listed in your PYTHONPATH environment
variable.

For information on other options, you may wish to consult the
documentation at:

  https://setuptools.readthedocs.io/en/latest/easy_install.html

Please make the appropriate changes for your system and try again.

I don't understand why it's trying to install zstash into a system location instead of directory in my newly created environment. I know it used to work.
Do I need to explicitly pass a --prefix or --install-dir?

@zshaheen : I ran your tests today. One was failing:
+ zstash extract --hpss=zstash_test --dont_keep_tars

DEBUG: Opening index database
INFO: Transferring from HPSS: zstash/index.db
DEBUG: Running zstash extract
DEBUG: Local path : /global/u2/g/golaz/E3SM/code/zstash/tests/zstash_test
DEBUG: HPSS path  : zstash_test
DEBUG: Max size  :<PHONE_NUMBER>44
DEBUG: Keep local tar files  : False
INFO: Transferring from HPSS: zstash/000000.tar
INFO: Opening tar archive zstash/000000.tar
INFO: Extracting file0.txt
DEBUG: Valid md5: cd62ea5821e9564e12eef26589ad9d05 file0.txt
INFO: Extracting file0_hard.txt
INFO: Extracting file0_soft.txt
INFO: Extracting file0_soft_bad.txt
INFO: Extracting file_empty.txt
DEBUG: Valid md5: d41d8cd98f00b204e9800998ecf8427e file_empty.txt
INFO: Extracting empty_dir
DEBUG: Closing tar archive zstash/000000.tar
Traceback (most recent call last):
  File "/global/project/projectdirs/acme/golaz/conda/envs/zstash_env_dev/bin/zstash", line 11, in <module>
    load_entry_point('zstash==0.3.0', 'console_scripts', 'zstash')()
  File "/global/project/projectdirs/acme/golaz/conda/envs/zstash_env_dev/lib/python3.7/site-packages/zstash-0.3.0-py3.7.egg/zstash/main.py", line 50, in main
  File "/global/project/projectdirs/acme/golaz/conda/envs/zstash_env_dev/lib/python3.7/site-packages/zstash-0.3.0-py3.7.egg/zstash/extract.py", line 181, in extract
  File "/global/project/projectdirs/acme/golaz/conda/envs/zstash_env_dev/lib/python3.7/site-packages/zstash-0.3.0-py3.7.egg/zstash/extract.py", line 384, in extractFiles
FileNotFoundError: [Errno 2] No such file or directory: 'zstash/zstash/000000.tar'

I fixed the corresponding code in 96d00c4. All tests are now passing.

The next step will be to clean up the command line arguments --keep vs --dont_keep_tars

@zshaheen : I removed the --dont_keep_tars option and standardized to use --keep everywhere. This will avoid unnecessary confusion, although some default behavior will change.
I modified the tests and verified that they pass.
Do you want to take a look before merging?


Lucene Regexp Query

A cool use case for the regexes would be using them in a Lucene FullText Index. This can be achieved by modding the RegexQuery class from the original Lucene into an alternative version that works with this library instead of Java Patterns.

Scrap that. A MultiTermQuery works like a charm.

Fixing Lucene Regexp Query to work with predictions like the original does it would be a nice to have as well


Add missing babel-eslint

Ignoring stalled travis check (which should not be there in the first place), merging.


[GROG-TECH] new cocktails section

Add cocktails section so that greg may accept fun cocktail recipes that the team creates

so excited for this feature @groman00 !!!! when will this be released????????????

the romanwebnetizens are WAITING

is this an interview question


module structure on the split directory under redux

Do not understand why you want action and Constants There Reducer in a file, this will not lead to less clear, could split into three separate files
Something like this：
module1-
-- moduleAction
-- moduleReducer

@leeir I actually like the compact style, all in one file make it more modularity. I don't need switch between files to make a redux/flux flow. Leave the action at the top and reducer in the bottom make it navi easier. Also, use comment make each block searchable.

I've split constants/actions/reducers into separate files in the past, but it generally leads to a lot of boilerplate that doesn't actually accomplish anything (and makes it a pain to create/modify actions). Users are totally free to take this boilerplate and edit it to fit their needs, I simply wanted to demo an alternative approach to the traditional file structure.


Added new python course in Russian

What does this PR do?
Added new python course in Russian
For resources
Description
This is a basic beginner testers course that teaches you how to write automated UI tests in the Python programming language using the Selenium library. We will also look at popular frameworks and good practices for writing autotests.
Why is this valuable (or not)?
How do we know it's really free?
This is a free course in Stepik
For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[x] Read our contributing guidelines
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction)

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

Work continues on #5830


Delete without removing CRDs

I am debugging some things and I don't want to wait for the control loops to run to trigger events (e.g. authentication to helm repositories).
To do this I can delete the resources and re-create them. However, currently when I do timoni bundle delete ... it seems to try and remove CRDs which takes a very long time. This actually timed out for me.
It would be useful to have a flag to ignore deleting the CRDs when running delete for this kind of use case perhaps.

You can annotate the CRDs and Timoni will skip deleting them, docs here: https://timoni.sh/cue/module/apply-behavior/#disable-pruning

I see, but what if they come from external module?

This would put it in the hands of the module authors but it would make sense to have a configuration flag that would put the annotation in place if users didn't want them removed, if the external module didn't support that then opening an issue/pr against that module should suffice?


Update to swift 5

Hi! Update pls to swift 5!

Hi! Update pls to swift 5!

Hi! Update pls to swift 5!

Hi! Update pls to swift 5!

Hi! Update pls to swift 5!

I updated it to Swift 5. It maybe helps you.
https://github.com/MahmoudMMB/MMBAlertsPickers

I updated it to Swift 5. It maybe helps you.
https://github.com/MahmoudMMB/MMBAlertsPickers

Thanks

I updated it to Swift 5. It maybe helps you.
https://github.com/MahmoudMMB/MMBAlertsPickers

Thanks

What about dark mode?


[AUTOPATCHER] Patches CVE-2021-3903 for vim

        Patches CVE-2021-3903 for vim.
        This patch and PR was automatically generated and needs human verification before merging.

Closing- will fix by updating the version.


GUVNOR-2194 : Guided Decision Table V&V - Improved Reporting

Removed the analysis column from the dtable and added an analysis panel that shows up on the right side of the workbench if the V&V picks up any issues
Removed any TODO code that was in. I'll add them back in when we actually need to figure out ranges. The goal is to keep master as clean as it can be
Removed the condition inspectors classes for each type expect integer, integer is special
Made a lot of method parameters final. @manstis likes finals. I'm starting to like them too now that they have saved me from making bugs

This PR depends on this https://github.com/droolsjbpm/drools/pull/460

http://github.com/droolsjbpm/drools-wb/commit/28de70536


macOS "Syncronize dark mode with my OS's..." not working

Since the last update, OS dark mode syncronization is not working

Maybe this issue is related? https://github.com/getferdi/ferdi/issues/1490

Please try with the latest beta that I have just released. There have been a lot of improvements and bug fixes - specifically for dark mode. https://github.com/getferdi/ferdi/releases/tag/v5.6.1-beta.1
Also, please close this ticket if your issue is resolved.

The "universal dark mode" does not seem to work at all now after updating to v5.6.1-beta.1. All the services are light and only the interface of Ferdi is in dark theme.
{"host":{"platform":"linux","release":"5.11.0-27-generic","screens":[{"id":2,"bounds":{"x":0,"y":0,"width":1920,"height":1080},"workArea":{"x":72,"y":27,"width":1848,"height":1053},"accelerometerSupport":"unknown","monochrome":false,"colorDepth":24,"colorSpace":"{primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL}","depthPerComponent":8,"size":{"width":1920,"height":1080},"displayFrequency":60,"workAreaSize":{"width":1848,"height":1053},"scaleFactor":1,"rotation":0,"internal":false,"touchSupport":"unknown"}]},"ferdi":{"version":"5.6.1-beta.1","electron":"13.1.9","installedRecipes":[{"id":"franz-custom-website","version":"1.0.5"},{"id":"googlecalendar","version":"2.1.1"},{"id":"messenger","version":"1.1.0"},{"id":"slack","version":"1.1.0"},{"id":"todoist","version":"1.2.2"},{"id":"wechat","version":"1.0.1"},{"id":"whatsapp","version":"3.1.0"},{}],"devRecipes":[],"services":[{"id":"bbca5135-1dec-42c3-bdcd-cf2250f60ad3","recipe":"slack","isAttached":true,"isActive":true,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"ab646a92-53c7-41d9-bc97-a270c18e7f07","recipe":"googlecalendar","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"72efb72c-06bd-4cdc-8dd5-5596e4379dc1","recipe":"todoist","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"ee2c5c11-aad3-41f0-a9b8-f260a31ecc01","recipe":"whatsapp","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"f11e23de-962a-464e-a265-59fc21cab80b","recipe":"franz-custom-website","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false}],"messages":[{"type":"error","info":["error","Warning: Failed prop type: Invalid prop actions.service of type Object supplied to _class2, expected instance of _class.\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","info":["error","Warning: Failed prop type: Invalid prop actions.settings of type Object supplied to _class2, expected instance of _class.\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","info":["error","Warning: Failed prop type: The prop stores.app.accentColor is marked as required in _class2, but its value is undefined.\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by WithTheme(Jss(_class2)))\n    in WithTheme(Jss(_class2)) (created by inject-WithTheme(Jss(_class2))-with-stores)\n    in inject-WithTheme(Jss(_class2))-with-stores (created by _class2)\n    in _class2 (created by WithTheme(_class2))\n    in WithTheme(_class2) (created by Jss(WithTheme(_class2)))\n    in Jss(WithTheme(_class2)) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","request":{"result":null,"wasExecuted":true,"method":"getInfo"},"error":{},"response":{},"server":"https://api.getferdi.com"},{"type":"error","request":{"result":null,"wasExecuted":true,"method":"features"},"error":{},"response":{},"server":"https://api.getferdi.com"},{"type":"error","request":{"result":null,"wasExecuted":true,"method":"all"},"error":{},"response":{},"server":"https://api.getferdi.com"},{"type":"error","info":["error","Warning: You cannot PUSH the same path using hash history"]},{"type":"error","info":["error","Warning: Failed prop type: Invalid prop actions.ui of type Object supplied to _class, expected instance of _class.\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","info":["error","Warning: Failed prop type: Invalid prop actions.app of type Object supplied to _class2, expected instance of _class.\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in div (created by _class2)\n    in CSSTransitionGroupChild (created by TransitionGroup)\n    in span (created by TransitionGroup)\n    in TransitionGroup (created by CSSTransitionGroup)\n    in CSSTransitionGroup (created by Appear)\n    in Appear (created by _class2)\n    in _class2 (created by _class)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","info":["error","Warning: Failed prop type: Invalid prop actions.app of type Object supplied to _class, expected instance of _class.\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in div (created by _class2)\n    in CSSTransitionGroupChild (created by TransitionGroup)\n    in span (created by TransitionGroup)\n    in TransitionGroup (created by CSSTransitionGroup)\n    in CSSTransitionGroup (created by Appear)\n    in Appear (created by _class2)\n    in _class2 (created by _class)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","info":["error","Warning: Failed prop type: Invalid prop actions.service of type Object supplied to _class, expected instance of _class.\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in div (created by _class2)\n    in CSSTransitionGroupChild (created by TransitionGroup)\n    in span (created by TransitionGroup)\n    in TransitionGroup (created by CSSTransitionGroup)\n    in CSSTransitionGroup (created by Appear)\n    in Appear (created by _class2)\n    in _class2 (created by _class)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","info":["error","Warning: Failed prop type: The prop customWebsiteRecipe is marked as required in _class2, but its value is undefined.\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in div (created by _class2)\n    in CSSTransitionGroupChild (created by TransitionGroup)\n    in span (created by TransitionGroup)\n    in TransitionGroup (created by CSSTransitionGroup)\n    in CSSTransitionGroup (created by Appear)\n    in Appear (created by _class2)\n    in _class2 (created by _class)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]}],"workspaces":[],"windowSettings":{"width":1386,"height":752,"x":303,"y":188,"displayBounds":{"x":0,"y":0,"width":1920,"height":1080},"isMaximized":false,"isFullScreen":false},"settings":{"autoLaunchInBackground":false,"runInBackground":true,"reloadAfterResume":true,"enableSystemTray":true,"startMinimized":true,"minimizeToSystemTray":false,"closeToSystemTray":false,"privateNotifications":false,"clipboardNotifications":true,"notifyTaskBarOnMessage":false,"showDisabledServices":true,"showMessageBadgeWhenMuted":true,"showDragArea":false,"enableSpellchecking":true,"spellcheckerLanguage":"automatic","darkMode":true,"locale":"en-US","fallbackLocale":"en-US","beta":false,"isAppMuted":false,"enableGPUAcceleration":true,"server":"https://api.getferdi.com","predefinedTodoServer":"https://app.franztodos.com","autohideMenuBar":false,"lockingFeatureEnabled":false,"locked":false,"lockedPassword":"******","useTouchIdToUnlock":true,"scheduledDNDEnabled":false,"scheduledDNDStart":"17:00","scheduledDNDEnd":"09:00","hibernateOnStartup":true,"hibernationStrategy":300,"wakeUpStrategy":"300","inactivityLock":0,"automaticUpdates":true,"showServiceNavigationBar":false,"universalDarkMode":true,"userAgentPref":"","adaptableDarkMode":false,"accentColor":"#7367f0","serviceRibbonWidth":68,"iconSize":20,"sentry":false,"nightly":false,"navigationBarBehaviour":"never","searchEngine":"duckDuckGo","useVerticalStyle":false,"alwaysShowWorkspaces":false,"serviceLimit":5,"hibernate":false,"todoServer":"isUsingCustomTodoService","customTodoServer":""},"features":{"isServiceProxyEnabled":false,"isAnnouncementsEnabled":true,"isWorkspaceEnabled":false,"isTodosEnabled":true},"user":"82c1cf9d-ab58-4da2-b55e-aaa41d2142d8"}}

Can confirm this doesn't work on Ubuntu.

Could this be related to a darkreader upgrade that happened a couple of weeks ago?

With version: 5.6.1-beta.1 on macOS 11.5.2 (20G95) the UI is always in dark mode for me, regardless of what the OS is set to. The "Syncronize dark mode with my OS's dark mode setting" toggle is also inoperable for me, and always stays at "on".

Couldn't reproduce with 5.6.9 on macOS 12:

See https://github.com/getferdi/ferdi/issues/158 for Universal Dark Mode.

I would expect that many of MacOS users are using the "Auto" appearance mode and this one does not work properly. It does not respect the automatically changing light and dark system mode.

This should also work for Linux now.


Rest API for replies

The api needs method to post replies - https://x.desk.com/api/v2/cases/6/replies.  Any plans to add these feature?

I added this interface method to CaseService.java and it seems to work for replies,
@POST(CASES_URI + "/{id}/" + REPLIES_URI)
Call addReply(@Path("id") int caseId, @Body Message reply);


arch linux crashes on new mail

hi there,
I use the arch linux package and it connects to my server, but it crashes on new email
[martin@martin-arch org-mode]$ imapnotify
{"name":"imap_inotify","hostname":"martin-arch","pid":26012,"level":30,"box":"INBOX","msg":"Connected to server","time":"2017-06-13T20:47:48.210Z","v":0}
{"name":"imap_inotify","hostname":"martin-arch","pid":26012,"level":30,"box":"INBOX","msg":"Selecting box","time":"2017-06-13T20:47:48.212Z","v":0}
{"name":"imap_inotify","hostname":"martin-arch","pid":26012,"level":30,"box":"INBOX","msg":"New mail","time":"2017-06-13T20:48:23.436Z","v":0}
/usr/lib/node_modules/imapnotify/node_modules/printf/lib/printf.js:31
  content = str.slice(lastIndex);
               ^

TypeError: Cannot read property 'slice' of undefined
    at tokenize (/usr/lib/node_modules/imapnotify/node_modules/printf/lib/printf.js:31:16)
    at new Formatter (/usr/lib/node_modules/imapnotify/node_modules/printf/lib/printf.js:41:18)
    at module.exports (/usr/lib/node_modules/imapnotify/node_modules/printf/lib/printf.js:459:19)
    at notify (/usr/lib/node_modules/imapnotify/bin/imapnotify:235:17)
    at Connection.<anonymous> (/usr/lib/node_modules/imapnotify/bin/imapnotify:65:9)
    at emitOne (events.js:115:13)
    at Connection.emit (events.js:210:7)
    at Connection._resUntagged (/usr/lib/node_modules/imapnotify/node_modules/imap/lib/Connection.js:1287:14)
    at Parser.<anonymous> (/usr/lib/node_modules/imapnotify/node_modules/imap/lib/Connection.js:191:10)
    at emitOne (events.js:115:13)

Feel free to ask for more information.  The server is a https://github.com/mail-in-a-box/mailinabox

Hi,
that seems to be related to #15.
I don't really have time right now to fix the issue.
You can try the same approach as described in the #15.

I've currently fixed it simply by putting /usr/bin/true in the onNotifyPost export, but this should probably be handled!

I don't use the arch Linux package anymore, the installation via sudo npm install -g imapnotify (if I remember correctly) works fine.


Update all dev dependencies

Update all dev dependencies to latest stable:
css-mqpacker   ^4.0.0  →  ^5.0.1
gulp-htmlmin   ^1.3.0  →  ^2.0.0
gulp-imagemin  ^2.4.0  →  ^3.0.1
gulp-inject    ^3.0.0  →  ^4.1.0

gulp-load-plugins  ^1.2.0  →  ^1.2.3
gulp-responsive    ^2.0.0  →  ^2.3.0

Noteworthy

gulp-imagemin@3 now requires an array of config options.
gulp-inject@4 uses syntax features from ES2015 which requires at least NodeJS v4

Merged this but reverted the change to the imagemin/SVGO removeViewBox attribute since keeping the viewbox is recommended for responsive SVGs. I set it back to false.

Good to know. Thanks @adrinux


Clippy Lints

Current dependencies on/for this PR:

main

PR #6   👈

This stack of pull requests is managed by Graphite.


Logic missing in ethnicity factors

getAttributeRatio() in spawning always returns 1.0, and is not checked against agent ethnicity in moving.py.
This needs to be fixed, possible with a test added.

Okay, I made a few pushes adding in relevant logic.
I still have to make a unit test for this feature though, with an ethnicity example.

Test added now. Ticket cleared.


cannot set palette

Hi,
Please make a way to set palette dynamically from code side.
I'm trying to set it with jqAttr but it's not working.
Tnx for this useful tool.

+1, do you when it will be available? It's a great color picker @narsenico

v1.2.0
The property palette is now editable
const a = AColorPicker.createPicker({
        palette: ['red', 'yellow']
});
a.palette = ['red', '#00ff00', 'rgb(0, 0, 255)'];

It works like a charm! Thanks a lot ;)


💡 Do not close until user clicks outside window

Describe the feature
If the user wants to add multiple emoji they have to repeatedly press their assigned keyboard shortcut to invoke Emoji Mart. Wouldn't it be better if instead of closing the window after each input, it closes when the user clicks outside the window? This is how most emoji pickers I'm aware of work.
An idea of implementation
No response

All the desktop emoji picker I know of on linux (Emote and Smile) closes as soon as you click an emoji, that said it would be nice to enable to select multiple emojis when a hotkey like ctrl is pressed!
But I think that will require to make some changes to the web component we use (unless they already support it)


Modal Dialogs' Auto-Size Behavior Should Include the Nonclient Area (Caption Text)

Godot version
v4.1.1.stable.official [bd6af8e0e]
System information
Godot v4.1.1.stable - Windows 10.0.22621 - Vulkan (Compatibility) - NVIDIA GeForce GTX 1060 (NVIDIA; <IP_ADDRESS>11) - Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz (12 Threads)
Issue description
Modal dialogs should automatically size to their caption's content (nonclient area) as well as their client area.
The confirmation dialogs seem to size correctly for content in their client area, but not for content in the nonclient area (i.e. caption text).  While the client area usually contains the most important information, the data on the caption should also be considered important and should be shown by default.
Attached images show examples.

Steps to reproduce
With a project loaded, select a Node and press <DELETE>.  Note the caption on the confirmation dialog is truncated.
Minimal reproduction project
N/A

How can we guess the size of the text? We don't know what font it's using from Godot's end, nor if the user has customized its size through OS scaling.

You can customize the NC area (which includes the window's caption) by drawing it yourself - applications that have provided their own "chrome" have been doing this for some time, as do so-called Ribbon controls.  That said, I do not know how Godot abstracts the platforms it runs on, nor how deep that abstraction runs or its capabilities.
The simplest approach that I believe would work, from a pure Win32 point of view, would be to handle the WM_INITDIALOG message, get a DC for the nonclient area (GetDCEx( ..., DCX_WINDOW )), and use a function like GetTextExtentPoint32A(...) to get the extent of the caption's string.  With that, you can adjust the width of the dialog if necessary, accounting for things like border widths, margins, etc.
Scaling/DPI functions also exist that could help ensure a proper width is used.  Changing the height of the NC area would require more low-level Window message handling, but starting with a more appropriate width would be a good start, IMHO.
(Although if the NC area was handled completely, Godot could do something like placing a help button ([?]) onto the caption for more contextual help for known errors.   Just spitballing... 🙂)
Peace!
-=- James.

cc @bruvzg

Should be doable on Windows and macOS (but should account for the rest of title bar elements), no idea about X11. But I'm not sure if it is worth doing, trimming the title bar text is standard behavior on all OSes, and title bars should not contain any vital information.


OOM in getUBPhiPaths

While building current LLVM, getUBPhiPaths recurses to depth ~1000, eventually exhausting RAM on the machine I'm using. I've read the code and we already have some attempts to use less resources in this part of Souper. My current thought is that we simply permit Souper to fail (by bailing on this particular expression) when such a large depth of phi nodes is found, what do people think?

Yes, this part was optimized for resource usage, but looks like the optimization is not good enough for building current LLVM. The approach that you proposed is fine to me.

Fixed.


Weird color on inactive tab on bufferline

How does this work for you?

It's due to a theme conflict with bufferline.nvim, it will be solve in a new release soon. :)


How to manage arming exterior mode?

The alarm has multiple states, represented on the website by:
- Disconnect
- Total
- Day
- Night
- Exterior

https://i.imgur.com/kUAFt9b.png
I have only 4 states with homebridge: home, away, night, off. I suppose exterior is not manage by the plug-in, but most of installations include an exterior sensors. Is there a way to also active the exterior mode using homebridge? It's a too steps process on the website. You can't select an icon that does both at the time. You must activate in total then exterior separately. Having a fifth icon (or alarm icon on homekit) to manage this exterior setting would be amazing.

Unfortunately we can only use the states currently supported in HomeKit, which is:

stayArm - The home is occupied and residents are active.
awayArm - The home is unoccupied.
nightArm - The home is occupied and residents are sleeping.
disarmed - The security system is disarmed.
triggered

Reference: https://developer.apple.com/documentation/homekit/hmcharacteristicvaluecurrentsecuritysystemstate
Given the states above, do you think it would make sense to include the exterior arm state in any of them? For example, we could combine exterior into the night state. I guess it's a matter of preference.

Including exterior arming in awayArm would be amazing. It will avoid 2 steps. Only one click and both are armed. I also think this configuration won't effect users with no exterior.

I see. Let's start with that approach 👍

The new My Verisure app lets you arm interior and exterior independently so I think the best option would to make HomeKit see them as two different alarm systems. You could still enable/disable simultaneously with scenes/shortcuts.


Transform option

I have added a transform option. It's a small addition with great benefit!
It can be used to transform the data from the file using official node.js transform streams, e.g. template engines (jade, coffeescript), decompression, decryption, replacing data, etc.

The ETag and Last-Modified headers when the transform option is used match the original file; this means that browsers will cache the content based on this and if your transform is dynamic or you turn it off, users will still have the older version of the asset.

It depends on the type of transform. For example replace("a","b") will be fine but replace("a", current_time) is not.
I would suggest the default is dynamic (don't let the browser cache it) because that will work in all scenarios. It should also be possible to override it in the config in case the transform will always lead to the same result as long as the file hasn't changed. That should be mentioned in the docs.

Sure. Feel free to update the PR for what you think the best way to solve this issue is, but the current behavior is not ideal.

I have updated to code. lastModified and etag now defaults to false unless it's explicitly overridden in the options.

Hey would be really nice to get this in. @peterbartels do you plan to resolve the conflicts?

Also, I believe this breaks when the client requests only a part of the file, because the transform stream will no longer have access to the complete file contents. For example with the replacement stream, if the file contains "foobar" and the stream is made to replace all "foo" with "bar", a normal request will get back "barbar", but a ranged request skipping the first byte would end up with "oobar" in this PR implementation.

@dougwilson I created a failing test for this case:

Also, I believe this breaks when the client requests only a part of the file, because the transform stream will no longer have access to the complete file contents. For example with the replacement stream, if the file contains "foobar" and the stream is made to replace all "foo" with "bar", a normal request will get back "barbar", but a ranged request skipping the first byte would end up with "oobar" in this PR implementation.

Can I push to this PR directly or should I reopen it somehow?

I am going to take some liberty here and close this in favor of the much more deeply discussed #195 so that we can consolidate any conversation going forward. We are not going to try and land this feature soon, as we are focusing on the v5 push for express and this is not a breaking change, but I dont want to leave too many open PRs which are unlikely to see progress, especially when they are duplicates in many ways.


Watch mode doesn't handle filesystem changes

Steps to reproduce

Configure a build with a list of entries (e.g. by glob)
Run the build with -w/--watch
Rename one of the entries

Expected
Well, it's not clear what's expected because the API doesn't support glob entries or a way to provide them dynamically. But ideally there would be a way to react to filesystem changes, somehow.
Observed
error: Could not resolve [... previous path to the file ...]
Mitigation
For anyone looking to work around this limitation, I've used a flag called once (so watch mode isn't automatically enabled), run an initial build, then call the watch function to run subsequent builds, which retrieves a new list of entries on each change. (This is probably not the most efficient, as the watch function provides information about what changed, but I've honestly lost too much time today to worry about that right now.)

To be clear: This is only a limitation with entryPoint files.
Solving this is actually very hard since there's natural ambiguity. When a file is renamed, for example foo.js → bar.js, this is what most OSes will report:

foo.js deleted
bar.js created

What makes this hard:

order is not guaranteed; some programs may write bar.js first and unlink foo.js afterward
usually bar.js will receive a different inode than foo.js so you can't rely on that
performing content comparison has a race condition

The least unreliable method is probably content comparison.
You'd do something like this:

checksum foo.js whenever it changes
when it is deleted, wait for a short amount of time to allow writes of the new file to finish
scan all files in the directory tree and hash their contents (this can be very slow if there are a lot of files in the source tree)
if another file has the same content as the previously-existing foo.js and that file appeared within a short time window of foo.js disappearing, you make a (risky) assumption that "foo.js is now called bar.js".

Clearly some issue with this approach. For example, the user may use an editor that allows changing the name of the file while also saving changes, which means that the checksum of the "new" file (bar.js) will not match that of the "old" fole foo.js. Another issue is that with step 4 — it is not unheard of to have two files with the same content but different names (maybe same basename but in different directories.) If you were to write a file like that within your "peek" time window in step 4, you might accidentally map the rename to the wrong file.
However on some systems we can get reliable filesystem events. For example, on macOS we can listen for events directly from fsevents, skipping Chokidar's interpretation (which is what Estrella uses and it does not support "rename"). macOS kqueue will issue two consecutive (second immediate) "moved" events when a file is renamed. We can use this to support rename tracking on some platforms.

I've started some initial work on branch https://github.com/rsms/estrella/compare/watch-rename
You can try it by checking out the source and

run ./build.js -g
run (cd test/watch && ESTRELLA_TEST_VERBOSE=1 node test-rename.js)

You should see this:
$ (cd test/watch && ESTRELLA_TEST_VERBOSE=1 node test-rename.js)
Wrote tmp-out.js (16B, 5.94ms)
Watching files for changes...
~~~~~~~~~~~ step 1 ~~~~~~~~~~~
moving file 'tmp-in.ts' -> 'tmp-in-renamed.ts'
1 file changed: tmp-in.ts
Wrote tmp-out.js (16B, 2.56ms)
~~~~~~~~~~~ step 2 ~~~~~~~~~~~
writing to new file 'tmp-in-renamed.ts'
1 file changed: tmp-in-renamed.ts
Wrote tmp-out.js (16B, 1.84ms)
~~~~~~~~~~~ step 3 ~~~~~~~~~~~
buildProcess ended { ok: true }
PASS

For detailed information, turn on debug logging: (cd test/watch && ESTRELLA_TEST_VERBOSE=1 node test-rename.js -estrella-debug)

I appreciate all of the detail in your response! And share your concerns about the various ambiguities that arise. I can’t look at your branch atm but did want to give this an initial response and some thoughts on the challenges.

There’s already facilities for addressing race conditions in a debounce, it could be helpful here.
Git will often be available and can help provide rename+edit insights.
The whole build process is so fast that just invalidating the whole cache when the tree changes is probably a reasonable first stab at it.
Worth a note: renaming files is definitely a common task but adding new ones was where I ran into trouble. My goal wasn’t to get super efficient about refactoring, just to see changes at all when I was building new content/functionality, without restarting the process.

There’s already facilities for addressing race conditions in a debounce, it could be helpful here.

Could you point me in the right direction? Perhaps a ref implementation. I'm not sure what you mean with "debounce" in this context.

Git will often be available and can help provide rename+edit insights

Agreed, however Estrella can't rely on git so I'd leave this for the author of their build.js script to implement. I.e. a simple exec with child_process can be used to trigger rebuilds and reconfigure a build script.

The whole build process is so fast that just invalidating the whole cache when the tree changes is probably a reasonable first stab at it.

What does "invalidating the whole cache" mean? Estrella doesn't cache information about the file system. It simply asks the OS to inform it about changes to the sources files which esbuild reports as "used for compilation." You could skip the -watch flag and instead use estrella.watch in your build script to watch your entire source directory and trigger a rebuild whenever it changes.

[...] adding new ones was where I ran into trouble

Estrella only watches files for changes which are actually used in the compilation. That means that until you import or require a new file, it won't trigger any builds. This is a good thing since it means that Estrella is really fast and only rebuilds when needed. This works in cooperation with esbuild which provides estrella with a list of all source files actually used in a compilation :-)

Could you point me in the right direction? Perhaps a ref implementation. I'm not sure what you mean with "debounce" in this context.

Sure, here’s one. (I’m not endorsing lodash, just linking it because I’m on phone and it was easiest for me to find.)

Agreed, however Estrella can't rely on git so I'd leave this for the author of their build.js script to implement. I.e. a simple exec with child_process can be used to trigger rebuilds and reconfigure a build script.

This seems perfectly reasonable.

What does "invalidating the whole cache" mean? Estrella doesn't cache information about the file system. It simply asks the OS to inform it about changes to the sources files which esbuild reports as "used for compilation." You could skip the -watch flag and instead use estrella.watch in your build script to watch your entire source directory and trigger a rebuild whenever it changes.

This is essentially what I am doing right now as a work around.
This is probably a good point to make my use case more clear, as I’m not using Estrella to build but effectively as a faster ts-node for test runs. Like most test runners, the ones I use (currently Ava for personal projects, Uvu for one I contribute to; Uvu doesn’t have a watch mode which is what led me to Estrella in the first place) also take a glob and imports matching modules dynamically. So there’s no real entrypoint. There surely could be, but that’s a fair bit of DX friction for a TDD workflow.
For what it’s worth, I’m currently looking into moving to another approach, using esbuild transform dynamically at import time. But I wanted to be sure to follow up since I did open this issue, and answering your followup questions might help Estrella serve this use case in the future.

Could you point me in the right direction? Perhaps a ref implementation. I'm not sure what you mean with "debounce" in this context.

Sure, here’s one. (I’m not endorsing lodash, just linking it because I’m on phone and it was easiest for me to find.)

I'm not sure how a generic debounce function would help. Are you imagining using a debounce methodology for waiting for events? I'm sorry, I think you lost me here. The issue with reliability it not about event frequency or timing even, but that of uncertainty; the fact that at between two points in time things might happen that you can not know and so you have to make the assumption that stuff always happens between to measurements or readings.

This is probably a good point to make my use case more clear, as I’m not using Estrella to build but effectively as a faster ts-node for test runs. Like most test runners, the ones I use (currently Ava for personal projects, Uvu for one I contribute to; Uvu doesn’t have a watch mode which is what led me to Estrella in the first place) also take a glob and imports matching modules dynamically. So there’s no real entrypoint. There surely could be, but that’s a fair bit of DX friction for a TDD workflow.

Ah, I see. Thanks for clarifying that. Estrella only handles watching of source files. For anything not part of a compilation source tree you'll have to either use the provided watch function (which is a light wrapper around Chokidar, accepting all Chokidar options) or use something else.

For what it’s worth, I’m currently looking into moving to another approach, using esbuild transform dynamically at import time. But I wanted to be sure to follow up since I did open this issue, and answering your followup questions might help Estrella serve this use case in the future.

👍

I'm not sure how a generic debounce function would help. Are you imagining using a debounce methodology for waiting for events? I'm sorry, I think you lost me here.

It would allow reconciliation of a created file and a deleted file, which was in reality a “moved” or “renamed” file. Denouncing the two events would let you perform a diff (which could use git’s preferred algorithm even without a repo present), to infer a probable path change.

Shipped with release 1.4.0


Unable to Login after ADS Instance Creation

Bug Report
System Information

Operating System (Including distribution name and version number)
-- Debian 9.5 minimal install
AMP version and build date (Always use the version number, 'latest' is not valid!)
-- AMP Instance Manager v<IP_ADDRESS> built 05/01/2019 17:30
Which AMP release stream you're using (Mainline, Nightly or FastTrack)
-- Nightly

I confirm:

[X] that I have searched for an existing bug report for this issue.
[X] that I am using the latest available version of AMP.
[X] that my operating system is up-to-date.

Symptoms
I am trying to login after initial quickstart setup and configuring the Instance via Webinterface.
I would expect a normal login.
In contrast the login screen hangs in a loop and keeps there forever. As seen in this picture:

In addition, it looks like the XHR Request to the endpoint is timing out. See here:

One can see the requests on the backend TMUX Session:

Reproduction

Create New AMP Setup
Proceed with Quickstart
Configure Instance via Webinterface and wait for full restart
Try to login with the credentials, you configured before.

Please Note:

I cleared the cache every time before i tried to login
Tried with multiple machines, one which was extra created for it
used multiple browser

If you edit AMPConfig.conf for that instance and change LogLevel to 0 do you get any additional log output?

Thats the output of the ADS TMUX Session when logging in:

Webserver Output:

Sadly no luck :(

And what port is that instance running on?

Closed as invalid as the issue is caused by a reconfiguration (instance is trying to authenticate against itself as a remote login host, causing a loop)


New Full Logbook

Summary
I have created a feature to extract a more exhaustive logbook for Aurora boards. You can now retrieve a CSV file that includes attempts on boulders that haven't been climbed yet.
New Logbook Fields

tries: Returns the tries in the session.
tries_total: Returns all tries on the same boulder (also taking angle and is_mirror into account).
sessions_count: Returns the number of sessions on the boulder.
logged_grade: Returns the grade that has been logged by the user.
displayed_grade: Returns the grade provided by the app (integrated because the difficulty is only logged when a climb has been completed successfully).
is_ascent: Indicates whether the boulder was climbed in this session.

These features represent the information I’d like to use for my own analysis, but I believe they might be useful for others as well.
Problems/Issues/Questions

displayed_grade Limitation: The displayed_grade only works when a local database is provided. I haven't found an elegant way to retrieve this information from the API without significant performance issues. One potential solution is to integrate results from get_climb_stats and use the most logged or median difficulty.
Testing Scope: The feature has only been tested with my own data from Grasshopper and Tension boards. More extensive testing might be needed to ensure robustness.
Backward Compatibility: There might be issues with how tries were saved in older versions where the mechanics for "tries" were different. My database doesn't include such sends, making it difficult to test scenarios where the lookup returns something like "3 months".
Code Quality: The code is not very elegant at this point and could benefit from further refactoring and cleanup.

Recommendations
To balance functionality and performance, I propose maintaining two separate functions:

Basic Logbook: For general use without a requirement for a local database.

Detailed Logbook: For more in-depth analysis, requiring a local database to avoid performance issues.

Currently, the full logbook returns NA for displayed_grade when no local database is available, resulting in slow performance. Using a local database improves speed significantly.
Conclusion
If these features align with your goals for the project, I am happy to refine the code based on your feedback and suggestions. Thank you for the opportunity to contribute. I look forward to building visualizations with this data.

Tested locally - I actually have two accounts, one from pre-bids and one from post-bids. I'm not sure if this is something that all pre-bids users had to do or if it was just me forgetting my account.
Anyways, post-bids behavior is working well. Pre-bids fails with the following error:
File ".../boardlib/api/aurora.py", line 399, in get_bids_logbook
    return sync_results["PUT"]["bids"]
KeyError: 'bids'

So maybe we can just try/except on the attempt to get bids to fall back on the current behavior in that case. Once that error is fixed and https://github.com/lemeryfertitta/BoardLib/pull/38#discussion_r1636935396 is addressed, I think this PR will be good to go and we can get these features released.

Thanks for testing! I was able to recreate your error by providing a database with an empty bids table. There's a similar issue with an empty ascents table, though it's unlikely to occur. In both cases, I think returning an empty table would be better than raising an unspecific error. If you have the time, it would be great if you could test whether this fix works with your old account.
Before merging the logbook commands, it would be helpful if you could test the basic functionality of the moon logbook. I created an account with a dummy logbook using the current moonboard app, but I couldn't get it to work with your original command, even after rolling back to an older commit.
Are the tests up to date? I encountered several errors when running them. I'd like to experiment with writing my first tests, and this project seems like a good starting point, if you don't mind.

In both cases, I think returning an empty table would be better than raising an unspecific error. If you have the time, it would be great if you could test whether this fix works with your old account.

Good idea, better than my suggestion. I tested your fix and it works perfectly for both of my accounts.

Before merging the logbook commands, it would be helpful if you could test the basic functionality of the moon logbook. I created an account with a dummy logbook using the current moonboard app, but I couldn't get it to work with your original command, even after rolling back to an older commit.

I tested and the moon logbook is indeed broken. A quick investigation suggests that moon has recently changed their site. The API looks to be mostly the same but I think they changed the login flow. I'll create a separate ticket for this. Since that is broken anyways, let's still merge your functionality into the main logbook command. Don't worry about breaking Moon more since it is already broken.

Are the tests up to date? I encountered several errors when running them. I'd like to experiment with writing my first tests, and this project seems like a good starting point, if you don't mind.

Please feel free to improve/add to the tests. I used them when I worked on the first release of this library but as changes were made they were ignored. If you are motivated, it would be great to get them fixed up and eventually add them to Github CI and potentially block merging for changes with failing tests.

I have made the following updates in this Pull Request:

Unified Logbook Command: Integrated the new version for a more streamlined experience.
Bug Fixes: Resolved minor bugs, including issues with grade conversion.
Updated Unit Tests: Ensured the unit tests are up to date and functional.
Documentation: Added detailed information about the new logbook features in the README.md.

Future Improvements I Plan to Work On:

Enhanced Error Handling: Focusing on login errors and issues with incorrect database files.
Expanded Unit Tests: Planning to add more comprehensive tests to improve reliability.
Visualizations: Developing D3.js visualizations for logbook data. I aim to create a solution that allows users to view a static .html file without needing to run a local server.

Feel free to merge, especially if it is useful for Climbdex as suggested by @gardaholm. I hope it doesn't cause any headaches there. I'll focus on the visualizations and open a separate PR if I manage to get to a point that seems useful in this regard.


Honor device for initializer with repeating value

Note that this isn't easy to test since we don't always have any other device than CPU.


chore: fetch content from multiple categories

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1962

Relevant Lines:
1962

💛  - Coveralls


[BUG] Snowpack crawls mounted directories marked static: true and resolve: false for dependencies

Bug Report Quick Checklist

[x] I am on the latest version of Snowpack & all plugins.
[x] I use package manager npm
[x] I run Snowpack on OS linux
[x] I run Snowpack on Node.js v12+

Describe the bug
Snowpack crawls subdirectories looking for dependencies even if they are marked as static: true and resolve: false in a mount config.
To Reproduce
I have a parent repo with a submodule. I want the submodule directory to be reachable, so I add this mount config to snowpack.config.js:
module.exports = {
  "mount": {
    "./submodule/": { url: "/my-submodule" }
  }
}

I do not want snowpack to do anything to the files in this submodule, so I use the static: true and resolve: false options:
module.exports = {
  "mount": {
    "./submodule/": { url: "/my-submodule", static: true, resolve: false }
  }
}

Unfortunately, snowpack still crawls my submodule directory looking for dependencies. The dev server fails to start because it cannot find one of the dependencies of the submodule.
It seems like a bug that snowpack is looking for my submodule dependencies even though I have marked it as static: true.
Expected behavior
I would expect the files in /submodule/ to be ignored by snowpack's pipeline and reachable via the dev server. Instead, the server fails to start due to a missing dependency.
Anything else?
The server starts correctly if I tell it to exclude this directory:
module.exports = {
  "exclude": ['**/submodule/**/*'],
}

Of course, this is not what I want. I want the directory mounted, and I want it to skip the dependency pipeline.

I'm experiencing the same issue. Unfortunately, the "exclude" workaround described above fixes the build but means the static files no longer get served.
I imagine our use cases are similar - in my case, I have a pre-built website with a bunch of pre-minified JS and CSS files, and I simply need them served as-is, with no transformation.

I have submitted PR #3611 for this.


Update documentation for git-annex

[ ] Downloading data
[ ] Uploading (for core team)
[ ] Creating PRs
[ ] Brief description about the particularity of this git-annex repos (e.g., the presence of a git-annex branch, etc.)

Lots of notes here, including extra caveats: https://github.com/spine-generic/data-multi-subject_DO-NOT-USE/issues/20#issuecomment-672180622


Problem with no-callback-literal

I fail to see what's invalid with the following code, what makes this callback literal?
  ], (err, result) => {
    callback(...response(err, (result ? result.paymentProvider : '')))
  })

results in
Unexpected literal in error position of callback  standard/no-callback-literal

Confirm, it complains about callback with rested arguments.

Also, it is complaining about:
    if (err) {
      log.error(err, 'Cannot get from database')
      return cb({
        message: 'Cannot get data',
        code: 500
      })
    }

We use this frequently since we don't actually want the end user to see the backend message since it is 100% useless to them (and could potentially leak table names, etc), so we return an object that our HTTP framework understands.

@toddself We have a similar setup at work, but we still use Error instances instead of a plain object. Something like this:
class UserError extends Error {
  constructor (...args) {
    super(...args)
    this.name = this.constructor.name
    Error.captureStackTrace(this, this.constructor)
  }
}

app.use((err, req, res, next) => {
  if (err instanceof UserError) {
    // send nice detailed error
  } else {
    // send generic 500 and log error
  }
})

This was easy to fix by just moving the object creation to a new variable and returning that variable.
Not sure if this is a bad thing though?

I agree. It should be removed all together

I really don't think so. E.g. the code posted by @toddself is exactly the code we want to specifically want to disallow, since it breaks assumptions that people have on how Node.js-style callbacks works.

I’m guessing the rule semantics didn’t take spread operators into account.

This problem would be nice to fix though, this should be reported upstream to ESLint, anyone feel up for doing that?

@LinusU This problem would be nice to fix though, this should be reported upstream to ESLint, anyone feel up for doing that?

The problem is that we're the maintainers of the no-callback-literal rule ;) https://github.com/standard/eslint-plugin-standard

Let's move discussion here: https://github.com/standard/standard/issues/1352


Documentation for correct use of streaming AEAD API with StreamTag::Finish

closes #139
#139 mentions the current example should be extended, but I felt like it grew so long it might actually have users turn away from it.
cc @vlmutolo, @snsmac

This PR has been sitting around for a while now. Since no comments have been added to it, I've updated what was missing and will merge it now.

For what it's worth, I just looked at the diff here and I think the docs are good. It's definitely long, but I was able to read through it and understand what was going on with very little trouble.

For what it's worth, I just looked at the diff here and I think the docs are good. It's definitely long, but I was able to read through it and understand what was going on with very little trouble.

Thanks for taking a look. I agree it's a bit long, but I couldn't find a slimmer yet clear way to express it. Let me know if you come up with anything by chance.


Maximum distance to distinguishable features

Hi,
We're evaluating Visual SLAM for large warehouse areas where the distance to the nearest visible objects can be up to 100 meters.
What is the limitation for the distance of the features detected on camera? In other words, how far can a distinguishable feature be in order for the Visual SLAM to work?
Unfortunately, this information doesn't seem to be available anywhere.

This is a function of your stereo camera selection, not Visual SLAM.  Look at the specification for your stereo camera, and what the maximum depth detected is.  It's very likely less than 100m.
From a civil engineering perspective most buildings have a requirement which would put a structural pillar at <30m.  Unless your sensors have a narrow field of view, it should be less than 100m indoors.  It's possible to have >=100m outdoors, but then GPS becomes a localization option.
You could derive your perception requirements from the domain of operation, and then use those requirements to inform the selection of sensors for perception.


Backslashes disappear from "find in project"

To reproduce:

Shift+command+f to bring up the 'find in project" pane
Ensure the regex option is selected
Search for a regex that includes a backslash (e.g. console\.log)
Click any result to go to the file in which it appears
Press shift+command+f again.

The backslash has disappeared from the input field. It now says console.log.
This has been present in atom for me for months, as long as I can remember. I just reproduced this with --safe.
Mac OSX, Atom 0.186.0

Did you quote the backslash, i.e. \\
On Fri, Mar 6, 2015 at 12:39 PM, Brian Black<EMAIL_ADDRESS>wrote:

To reproduce:

Shift+command+f to bring up the 'find in project" pane
Ensure the regex option is selected
Search for a regex that includes a backslash (e.g. console.log)
Click any result to go to the file in which it appears
Press shift+command+f again.

The backslash has disappeared from the input field. It now says
console.log.
This has been present in atom for me for months, as long as I can
remember. I just reproduced this with --safe.
—
Reply to this email directly or view it on GitHub
https://github.com/atom/atom/issues/5887.

No.
On Mar 6, 2015 3:47 PM, "mark-hahn"<EMAIL_ADDRESS>wrote:

Did you quote the backslash, i.e. \\
On Fri, Mar 6, 2015 at 12:39 PM, Brian Black<EMAIL_ADDRESS>wrote:

To reproduce:

Shift+command+f to bring up the 'find in project" pane
Ensure the regex option is selected
Search for a regex that includes a backslash (e.g. console.log)
Click any result to go to the file in which it appears
Press shift+command+f again.

The backslash has disappeared from the input field. It now says
console.log.
This has been present in atom for me for months, as long as I can
remember. I just reproduced this with --safe.
—
Reply to this email directly or view it on GitHub
https://github.com/atom/atom/issues/5887.

—
Reply to this email directly or view it on GitHub
https://github.com/atom/atom/issues/5887#issuecomment-77632550.

Did quoting the backslash fix it?
On Fri, Mar 6, 2015 at 1:05 PM, Brian Black<EMAIL_ADDRESS>wrote:

No.
On Mar 6, 2015 3:47 PM, "mark-hahn"<EMAIL_ADDRESS>wrote:

Did you quote the backslash, i.e. \\
On Fri, Mar 6, 2015 at 12:39 PM, Brian Black<EMAIL_ADDRESS>wrote:

To reproduce:

Shift+command+f to bring up the 'find in project" pane
Ensure the regex option is selected
Search for a regex that includes a backslash (e.g. console.log)
Click any result to go to the file in which it appears
Press shift+command+f again.

The backslash has disappeared from the input field. It now says
console.log.
This has been present in atom for me for months, as long as I can
remember. I just reproduced this with --safe.
—
Reply to this email directly or view it on GitHub
https://github.com/atom/atom/issues/5887.

—
Reply to this email directly or view it on GitHub
https://github.com/atom/atom/issues/5887#issuecomment-77632550.

—
Reply to this email directly or view it on GitHub
https://github.com/atom/atom/issues/5887#issuecomment-77635672.

I'm guessing that's because the current selection is used as the pattern when you hit cmd-shift-f. If you click somewhere else in the file (so that console.log is no longer selected) before you hit cmd-shift-f again -- it should use the old pattern with the backslash.

@mark-hahn No, that doesn't fix it - I'm trying to search for a regex, using \b as a character class. I'm not trying to search for a literal backslash.
@izuzak : it looks like you're right. It's a bit confusing though, since when you click a line in the 'find' results, it goes to the file and selects the matching string - but the 'find in project' pane remains open, with the regex still in the input field. doing cmd+shift+f puts focus on it, and only then does the selection get copied into that input.

Can you open an issue on find-and-replace repo about this?

@benogle done

Closing in favor of https://github.com/atom/find-and-replace/issues/366.


Changes and tests for #30 to handle updates to query prop

Added tests for changes done by @BradfordMedeiros in a different pull request.

Codecov Report

Merging #40 into master will decrease coverage by 1.09%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master      #40     +/-   ##
=========================================
- Coverage   70.86%   69.76%   -1.1%
=========================================
  Files           6        6
  Lines         127      129      +2
  Branches       17       18      +1
=========================================
  Hits           90       90
- Misses         34       35      +1
- Partials        3        4      +1

Impacted Files
Coverage Δ

src/QueryBuilder.jsx
45.07% <0%> (-1.31%)
: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 f97f3af...d0ef59f. Read the comment docs.

@muralikg looks like there is a drop in coverage. Could you please ensure the tests are covering at least 70% of the code.

@pavanpodila I have fixed my test to bring the coverage above 70% please let me know if you need any changes.

@pavanpodila Any ideas on testing the async behavior of setState?
I had to write some ugly test case when code flows through the if condition. I am not sure how to test for the case when the if condition is skipped.

closing due to inactivity


task is not considered UP-TO-DATE when onlyIfModified == true && overwrite == false

This up-to-date check is backwards - when onlyIfModified is true, then it will never be up-to-date.
It should be possible to set onlyIfModified = true and overwrite = false and only download if the files are newer, but that doesn't seem to work in the current state.
        getOutputs().upToDateWhen(new Spec<Task>() {
            @Override
            public boolean isSatisfiedBy(Task task) {
                return !(isOnlyIfModified() || isOverwrite());
            }
        });

I cannot reproduce this. I tried the following combinations:
File does not exist:

onlyIfModified
overwrite
up-to-date

false
false
false

true
false
false

false
true
false

true
true
false

File exists and is up to date (i.e. not older than on the server):

onlyIfModified
overwrite
up-to-date

false
false
true

true
false
true

false
true
false

true
true
true

File exists and is not up to date (i.e. older than on the server):

onlyIfModified
overwrite
up-to-date

false
false
true

true
false
true

false
true
false

true
true
false

As far as I can tell, everything is correct. You are suggesting that if onlyIfModified equals true and overwrite equals false and the file exists, but is too old, it should still be downloaded (i.e. up-to-date should be false). However, that would mean the file is overwritten although overwrite is false. This is not the intended behaviour.
I'm closing this issue. If you have any other concerns or if I misunderstood you somehow, feel free to reopen it.

Same here with gradle 5.2 and 4.10


Angular Invoking error

Currently receiving this error:
Error: [$injector:strictdi] function($timeout, $q) is not using explicit annotation and cannot be invoked in strict mode

Now I looked into it, but it looks like your invocation is correct. You may have to do a explicit $inject though... I'll let you know what I find.

It appears this is a versioning issue. You've already fixed it, but when I pull from ionic plugin add ... it's an older version of the file without the bracket notation.


nested armature  error on dispose

when i use nested armature ,  it has error  on dispose armature .

Hi,
The bug has been fixed in master branch.


Migrate dashboard to blog like format

What does this PR do?
This PR moves the dashboard to blog-like format. The dashboard widgets were all missing titles and had a user tag left in the payload.
Motivation

Additional Notes

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached

Do you have the link on staging?


Calibration: add missing file and correct config file name

Please rebase your PR with master HEAD. Two simple files change should come with one commit.


DataTable error message could be more clear

I had some trouble setting up a DataTable to do what I wanted, and the error messages weren't particularly helpful. Active typing / error checking could help with clarity.
I'm running carbon-components-react v5.23.0
https://codesandbox.io/s/k58r693p8o
(CodeSandbox is based on DataTable Storybook story with only small addition)

Note that the filterRows field function does not return an array as it should.
Try to type in the TableToolbarSearch component.
Errors should show up in the Console and Problems tabs, but none make the root cause clear (filterRows function not returning an array)

Hi @ColbyJohnIBM! 👋 Thanks for taking the time to make this issue 😄
Definitely agreed that we could add some dev-time checks here to make implementing custom filterRows a much more enjoyable experience!


assert:read content of undefinedinsn address

Summary
read content of undefinedinsn address to catch possibly ram bit flip
Impact
for debug
Testing

@leo11261 please fix the conflict.


On Windows still " Server certificate verification failed: unable to get local issuer certificate" with Cro

I can confirm that I can install and test IO::Socket::Async::SSL:ver<0.7.5> successfully.
==> Testing: IO::Socket::Async::SSL:ver<0.7.5>
==> Testing [OK] for IO::Socket::Async::SSL:ver<0.7.5>
==> Installing: IO::Socket::Async::SSL:ver<0.7.5>

Test with:
use Cro::HTTP;
my $resp = await Cro::HTTP::Client.get('https://www.perl6.org/');

await runs out of time.
E:\Development\CZDS\Download>perl6 test.pl6
Tried to get the result of a broken Promise
  in block  at C:\rakudo\share\perl6\site\sources\0609EA0BB03C70C2C15DB4B144D7041C1059D14C (Cro::TLS) line 108

Original exception:
    An operation first awaited:
      in block  at C:\rakudo\share\perl6\site\sources\70DD524CA8827A911588D5FFEB621C3FD9423B96 (IO::Socket::Async::SSL) line 323

    Died with the exception:
        Server certificate verification failed: unable to get local issuer certificate
          in block  at C:\rakudo\share\perl6\site\sources\70DD524CA8827A911588D5FFEB621C3FD9423B96 (IO::Socket::Async::SSL) line 323

I don't see it mentioned here, but I recall it being mentioned that this wasn't a problem with the some other Raku HTTP client. I took a look into why and...they don't do certificate verification, it seems. :scream_cat:
Thus one can, I guess, pass :insecure and to this module and get the same result (e.g. it works), though that's a really bad idea. It seems the underlying issue is that SSL_CTX_set_default_verify_paths on Windows doesn't really do anything useful since there isn't anything to hand in the right kind of format for it to load; this post on SO hints at what we might do to resolve this.

This code seems to work for getting certificates from the Windows certificate store:
#!/usr/bin/env perl6
use NativeCall;

my constant HStore = Pointer;
sub CertOpenSystemStoreA(Pointer, Str) returns HStore
        is native('Crypt32.dll') {*}
sub CertCloseStore(HStore, int32)
        is native('Crypt32.dll') {*}

my class PContext is repr('CStruct') {
    has int32 $.cert-encoding-type;
    has Pointer $.cert-encoded;
    has int32 $.cert-encoded-bytes;
    # There's further properties, but we don't need to access them
}
sub CertEnumCertificatesInStore(HStore, PContext) returns PContext
        is native('Crypt32.dll') {*}
sub CertFreeCertificateContext(PContext)
        is native('Crypt32.dll') {*}

my $win-cert-store = CertOpenSystemStoreA(Pointer, "ROOT");
my $p-context = PContext;
while $p-context = CertEnumCertificatesInStore($win-cert-store, $p-context) {
    note $p-context;
}
CertFreeCertificateContext($p-context);
CertCloseStore($win-cert-store, 0);

Now it's a matter of figuring out how to integrate it.


ci: fix semver-checks master

Ok now I think I've nailed this! 🚀
Closes #3018.
How I tested this?

I merged this PR to my master branch in my storopoli/rust-bitcoin repo.

I've set the following settings in the repo settings to mimic what we have for rust-bitcoin:

I've made a PR (cherry-picked from Toby) that breaks semver, see https://github.com/storopoli/rust-bitcoin/pull/10. It correctly labelled as API break and added a comment to the PR

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 83.092%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
19652

Relevant Lines:
23651

💛  - Coveralls

because I don't even know what scripting language is being used

Ignorance is a bliss. I which I didn't know either.

Lol, glad I didn't look it up :)

FWIW ACK merging this. I can't put a proper ACK because I don't even know what scripting language is being used so my review is too shallow to warrant any worth.

I think I am more a JS hater (it belongs only in the browser to make things do things) than Rust maximalist.
The Geiger counter is going crazy with all the exposure to radioactive JS over these past days.
But I trimmed it down to the bare minimum.
I've updated the PR description with an overview and some implementation notes.
That might help people that want to review this.

it belongs only in the browser

WASM belongs there ;)
Thanks @obi1kenobi we had a rule to resolve conversations before but removed it. It was intentionally left out of the PR to not trigger re-review but should not have been marked as resolved.

Yeah my bad, I got trigger-happy with the resolve to unclutter things for the reviewers since we are planning to merge this without the -n and tackle in a new PR. I'll add in the TODO to #3003.

ACK 6ab8f99 thanks for sticking with this!!

Thanks, after this is merged I'll get back to #3003 TODO list.


Inc/Dec statements don't work

++ and -- give an error.
error: Unknown literal ++``

Yeah I think I removed those from the parser, so they aren't called but I kept the statements in. Imo the implementation is silly, and it should be parsed as an expression instead of an individual statement.