Widget for tag display

Have you planned to create a widget to display tags with links on them in view actions or this repository will contain only TaggableBehavior?
IMHO: Separate repository with require will be better solution.

We need to think around that widget features.

All cases i could imagine for tags widgets but not sure all of them will be really useful:

Display tags of model as list with <li> elements (main goal of widget).
Add configurable links for model's tags like: /post/tag/awesome-tag -> will display all posts tagged as awesome-tag
Add configurable links for global tags list: /tag/awesome-tag -> will display all model types tagged as awesome-tag (posts, articles &  news for example).
Ability to select more than one widget to filter models.
Related tags (usually using together in models).
Ajax adding tags (without going to model editing page) if allowed in RBAC.
Ajax removing tags (without going to model editing page) if allowed in RBAC.
Not sure about it (semantically better use lists for it), but another tag wrappers could be useful, like each tag in <span>.

@a-komarev
I think 1+2+3+4+5+8 = one widget.
And 9 = other widget.

Separate repository with require will be better solution.

I do not think its good idea since taggable name choosed not only for behavior, but for highly reusable components around tagging staff.

@a-komarev As i see we have 2 widgets here (except 6,7,10): TagWidget and TagCloudWidget. Both use Menu for rendering.

6, 7, 10 are for TagInputWidget

Display widgets should be able to replace spaces in links with + sign. It's W3C standard:

URLs cannot contain spaces. URL encoding normally replaces a space with a plus (+) sign or with %20.

Example:
Tag url good practice should be linked to /tag/url+good+practice

@a-komarev It already handled by framework.

Am I missed something?
<?php foreach ($model->tagNames as $tag) : ?>
    <?= Html::a($tag, ['/tag/' . $tag]) ?>
<?php endforeach ?>

This code generating me links with spaces: /tag/url good practice.

@a-komarev

Am I missed something?

Yes, ofcource. This:
<?= Html::a($tag, ['/tag/' . $tag]) ?>

is not right solution. Such tasks should be solved by configuring urlManager rules + using code like this:
<?= Html::a($tag, ['/tag/index', 'tag' => $tag]) ?>

or even better:
<?= Html::a($tag, ['/tag/index', 'tagSlug' => $tagSlug]) ?>

Last example when Tag model use SluggableBehavior.
Rules example:
'rules' => [
    'tag/<tag>' => 'tag/index',
    // or
    'tag/<tagSlug>' => 'tag/index',
],

Thanks for a brief explanation! And this way more flexible for multiple tags filtering I suppose.
I reserved tag/index method for list of all tags and tag/view is working well now. Tags are passing through params with + sign instead of spaces.
<?php foreach ($model->getTagNames(true) as $tag) : ?>
    <?= Html::a($tag, ['/tag/view', 'tag' => $tag]) ?>
<?php endforeach ?>

@a-komarev Can you open separate documentation issue? We can explain how to set up urlManager + show controller and other examples inside Advanced Usage section.


Support to interpolation to rules name

I closed the old topic to make it more specific.
Currently LESS have support to string interpolation and scape for values. It's possible make it work on rules name?For instance:
@name: "span";
~".@{name}" { font-size: 12px; }

Resulting in:
.span { font-size: 12px; }

So, finally, we can do it work:
@columns: 12;

.span-n(@i) when (@i < @columns + 1) {
  ~".span@{i}" {
    width: 60px * @i;
  }

  .span-n(@i + 1);
}

.span-n(@i) {
}

.span-n(1);

Resulting in:
.span1 { width: 60px; }
.span2 { width: 120px; }
...

It's very useful to make LESS more flexible on variables. For instance: you will can configure a namespace for a project, like:
@namespace: "base";

...
~"#@{namespace}" {
  // content
}

I think that 93b23d2c24936d5bd829ba1f725ef442e9475747 (5 days ago) just fixed that. Either use the master-branch or wait for the nest release to use that feature.

Wow! Perfect!!! Thanks!


v3.6.0 -- the definitive branch

Let's discuss our ongoing progress here.
Refer back to #2235 for the initial discussion on v3.6.0.

Coverage remained the same at 100.0% when pulling ce0618af0fde7ed0c0d33c37d8962438c42fff08 on v3.6.0 into 4cd774c020aa95b5a191385ac11b00b505b4feab on master.

Deploy preview for react-boilerplate failed.
Built with commit 85a0d105bf7674077202f2c92b09b86f928114d3
https://app.netlify.com/sites/react-boilerplate/deploys/5b1fc2e9b312747ea679a960

I pushed a few things. None of them major.
Major deps we might still want to update for this release:

styled-components (v2 to v3)
eslint
jest

I'll go over them ASAP and fix the relevant breaking changes (as well as any corresponding docs).
Open questions:

Are we keeping stylelint? If yes, we need to give it a config.
Anything else?

Before release, we'll need to do an in-depth review, testing and make sure docs are up-to-date.

IMO...

we should ditch stylelint for now-- I can't remember who but someone contributed a great config and its on its own branch, so lets revisit that particular branch instead. It dealt with styles as a whole as well.

i prefer the --fix tag but i'm open to anything here, just my preference

none off the top of my head now but i'll come back later

styled-components v2 to v3 should be a painless upgrade fwiw, almost no breaking changes

stylelint has been in here since v3.0 according to Changelog.md. I think it would be a flub to remove it without replacing it with something else.
Were you referring to #2095? Cause it has both some stylelint and prettier-related stuff, both of which I would be happy to add into 3.6. Unless there are objections.

Sounds good for the --fix flag! I added a git add cmd to ensure fixes get added to the commit.

@mxstbr I quickly read through the releases of styled-components from 3.0 to the latest 3.3.2 and didn't find the need for any changes in the codebase. Tests still pass and everything looks good in the browser. Could you let us know if there's anything we missed maybe? I'm not a styled-components user so I don't know its ins and outs.

Nope, shouldn't require any changes for y'all!

I upgraded a bunch more dependencies after going through their change logs. Will continue tomorrow.

I've been using styled-components, ^3.1.5, for quite a while now. No issues at all.

@gretzky I added a few updates (mostly react and offline-plugin which now supports webpack v4). Nothing huge. However, I opened a new branch with v3.6.0 as the base. In it, I started the process of upgrading eslint.
It's in its own branch because it requires lots of changes and will make this PR's diff unreadable. So I suggest merging the eslint branch into v3.6.0 at the end, before release. Sounds good? (It's #2244)
Second question: Any objection to me using that same branch to add prettier?

PLEASE add Prettier!!!!!

Great work @julienben, let me know if there's anything specific you want me to look at. Otherwise, I'm going to plug away at a CRA-RBP combo repo

Otherwise, I'm going to plug away at a CRA-RBP combo repo

Yesssssss :tada: :tada: :tada:

I just pushed what should hopefully be the last major commit. Still has a minor issue with node versions and dependencies but I'm on it. It includes:

A few more dependency upgrades
webpack-cli and jest-cli have moved major versions but thankfully the breaking changes don't affect us.
The dependencies which weren't upgraded to their latest versions (ngrok and plop) couldn't be because of Node 8+ requirements.
I also added a stylelint config and command (as recommended by the styled-components website) and wrote some docs for it.

I believe we're pretty much ready for final review. The only things still open in my mind are:

Any more doc updates we want to make?
Let's write a changelog. I'll do it unless someone wants to volunteer.
Let's do some in-depth testing and reviewing to catch whatever AppVeyor and Travis can't. Anyone who wants to help with this is more than welcome. Especially those with unique setups (ahem Windows ahem) or older versions of Node. We need:

Full Regression Testing as described in the docs
Checking that the template app was properly updated in the same way as the sample app.
Checking the generators.

@react-boilerplate/collaborators @mxstbr Final stretch! Let's get this out there!

PS: Don't forget to use the the no-whitespace feature for a MUCH shorter diff:
https://github.com/react-boilerplate/react-boilerplate/pull/2242/files?w=1

@justingreenberg agreed on json files

I combed through the docs and I couldn't think of anything that needed to be added-- I added a few in the original cherry picks before so those should cover most new material (from what I remember). Users are always great at pointing out any lacking docs as well.
I can write the changelog right now

@gretzky ok, i will add to pretierignore
i'm working on cross-OS compatability to fix AppVeyor build... it does not like some of the filesystem stuff we are doing. i can't reproduce the error locally, so i will be triggering builds to test it.
maybe this has already been addressed and i missed it, but is there really a good reason to continue supporting node 6?
on another note, in dealing with the extract-intl issue, it was kinda crazy that the DEFAULT_LOCALE was hidden in a deeply nested folder (even in generated app) which is used in build scripts, etc.
import { DEFAULT_LOCALE } from '../containers/App/constants';

so, i moved it to root i18n.js which i think makes a lot more sense

It's late here so just a quick comment about JSON and prettier: I added it to the pre-commit hook as well so you'll want to remove it there too.
That being said, do you have a quick example of a JSON that is made less readable by prettier? Only cause I'm not sure what you mean. I use it in my projects because (for regulation purposes - medical field) I have to keep logs of all my tests on every release and Jest outputs a giant JSON with no formatting whatsoever. So the commit hook fixes that for me in a completely effortless way.
Also, could your issue with it be fixed/mitigated by using a larger char width on JSON files?

@justingreenberg I'm all for removing support for Node 6. Personally, I know of many projects that still use it but they're all having out-of-date dependency issues that would be solved by upgrading. I say we nuke node 6.

this is almost ready, just need to update the plop Regex to conform to new file updates... i will try to wrap it up tonight
ref https://github.com/react-boilerplate/react-boilerplate/blob/master/internals/generators/language/index.js

Some updates:

Upgraded the last dependencies that needed Node v6. Had to update the ngrok setup with it.
Ran the Full Regression Testing and everything went fine except for the generators needing a small fix in the selectors. Done.
Had to add an .nvmrc per Netlify docs to trigger a build on Node 8 instead of 6.

Small issue:

When you use a generator, the code coming out of it isn't always passing linting. We can't fix that permanently because it depends on the length of the component/container name. The only thing we could do would be to run "prettier --write" on the files coming out of the generator. Seems like a bit of overkill but feasible as it's already happening in generate-templates-for-linting.js.
Prettier + JSON is still alive for now.

baee117 should've probably not been a squash commit, which means all the contributors' work is now credited to @gretzky if I understand that correctly? Shall we undo that before merging this so every contributor gets their name on the contributors list?

@mxstbr How does one do that? In a completely new branch?

I can't approve my own PR so just letting you (@gretzky and @justingreenberg) know that I'm good with the codebase as it stands now. Nothing I feel the need to add or change before this becomes v3.6. You?

Not sure, I'm not really a git wizard 😅 There's gotta be a way to take a new branch without squashing all the commits and then moving all these commits over there—maybe just gotta cherry pick them all?

Closed in favor of #2248


WIP: Server: Move EULA specific code into its own file

I tried to not break anything in the web interface, as it reads values straight from the ´MinecraftServer´ instance. And from what I tested, nothing should be broken. Nothing visible anyways :D
For the time being, I moved the debug flag into ´global´, so we don't need new ones for every file. I'm going to rebase #32 with something similar, so if you'd like me to do something else, please let me know.
Don't merge this yet
I'm going to redo this slightly, mainly reverting 362b192 and thus the changes in ServerSummary.js. I'll also break this into more incremental commits.
But I'd like to get your opinion on some changes early.

What do you think about the API? Should the paths be changed and new ones added for the Eula instance?
If / when support for multiple maps / servers is added, those will have to change anyways, so waiting till then could save us from some extra work.
I think moving towards async code would be beneficial.
If async/await is used, it shouldn't make the code any harder to understand and, if done properly and with good documentation, it would result in cleaner and faster code.
I know this is a bit early and this isn't the right place for it, but I thought about it when making this, so I'll write it down.
How would you feel about moving the whole web interface into its own repo? It already kind of is it's own package. Maybe something like npm run install [path] could be added, that builds and moves the interface into a folder, where it could then be used with the server and API. That would also force writing api based code, so it doesn't rely on internal variables / functionality.

If we want to break out classes in the API, we should probably investigate ExpressJS routing and separate things from the API vs. Minecraft state. I have been meaning to go down this rabbit hole anyway once work on the Preferences tab of the web app starts progressing.
I fully agree with the async changes. We will have to tweak both the minecraft-server and minecraft-api and fully regression test, but no bigs.
Is the intent to have the api and server classes be npm install-able? I haven't given that much thought but could be useful and would guide the build process quite a bit. There's work to do there to let the api and server be independent of the web app and vice versa, but doable.

Also if we are going to have classes of minecraft-server.properties, we should invent a directory structure, something like
<root>/
├ doc/
├ dist/                                                # holds the built parts
├ src/
├── api/                                          # holds minecraft-api.js parts
├── minecraft/                               # holds minecraft-server.js parts
├── minecraft-server-manager/  # holds the webapp parts
├── minecraft-server/                   # holds the minecraft installation
├ ...

Thoughts?

I added a "WIP" to the front of this PR so I don't merge it until you remove it.

(I'm not too eloquent with english, so I'm sorry if the bellow seems a bit too harsh or hard to follow)
As far as the folder structure goes, I feel something like this would be good:

docs \
// Holds all scripts and the data they generate, as not to create conflicts with the Minecraft Server executable
manager \
// Holds unloaded maps (preferably as compressed files)
-\ maps \
// Holds .png files that would be used as the server icon seen in Minecrafts mutiplayer tab
-\ icons \
// Holds Minecraft Server .jar executables
-\ servers \
// Holds backups of all maps. Filenames should consist of a timestamp and the world name
-\ backups \
// Holds automatically managed log files (preferably as compressed files)
-\ logs \
// Holds all files generated by the Minecraft Server executable
server \
-\ server_name_foo \
...

At some point it would make sense to have the manager logic be npm installable. That has also influenced the folder structure above.

I don't see a reason why the server side files would need compiling, combining or some other build process before they'd be ready for use. If they're to be npm installable, I feel like the folder structure should stay as simple and as "shallow" as possible.
I don't really know what we would gain from separating the API into multiple files. My idea was to move most logic that directly deals with the Minecraft server and its files into their own classes and have minecraft-server.js pretty much only manage configs. The api would then only allow calling all functions that minecraft-server.js has through a web interface
If or when the web interface were to be separated from this project, I don't think it should need to know anything about the managers internal state. Just where to access the api and that's it. All the rest needed would come from api calls.

I would like this to be able to handle multiple maps and servers at the same time. To achieve that, the logic should most likely be map based. I know how it would work and I'm now trying to articulate it in #28, but it's a lot do :D
In short, to allow high level of configurability, the manager (minecraft-server.js atm) would load .json files that hold string id'd info about maps, servers, their versions, etc. When the user tries to load a map through the web interface, the manager would then go through those configs and move / create the files at the right folders.

Finally not a WIP branch anymore! I added tests for the class and changed minecraft-server.js in a way the API can be left untouched


Wireguard server conflict with Surshark VPN on Windows - Fixed

First, thanks so much for writing this utility.  It worked great on my Windows 11 Home install which had to use ICS instead of NAT, I was able to connect an android client and everything seemed to work great.
Unfortunately it seems to conflict with my prior Surfhshark VPN install on the same Windows PC.  SS can't connect any more using wireguard and when I use the other options (Openvpn tcp or udp) it won't connect or if it does, only connects for a few seconds and then drops again or it allows uploads but not downloads (SS using OpenVPN UDP is doing this currently).
I've uninstalled and re-installed SS (and rebooted), when I start SS it gives me a warning that I'm running another VPN and I should disconnect it to avoid problems.  Sometimes it gives me this warning even if the WireGuard service is stopped (WireGuard Tunnel: wg_server), still testing all this out.  Has anyone reported anything like this?  Any thoughts on what I might try for troubleshooting?
Quick followup reading about multiple wireguard interfaces on windows and on this site https://superuser.com/questions/1728801/how-to-use-multiple-vpn-clients-with-wireguard-on-windows it mentioned a possible problem with using <IP_ADDRESS>/0 for "allowed IPs" as that can cause Windows to activate a kill-switch/block-untunnelled-traffic setting.  I'll reinstall wireguard with wgserver and try changing that setting per that site.  Their explanation makes sense since I was having the problem even without running the new wireguard server.  Further followup, changing this on the WG server config didn't make a difference and that posting seemed to be addressing VPN clients, not servers.  My PC is the SS client; SS has a kill-switch option that is toggled off and I have it set to only route one specific app right now.  Since the problem is with the initial connection and/or handshake to the SS server and the problem goes away when I uninstall WG, it must be some configuration created by the WG install causing the problem.

Switching from ICS to NAT seems to have resolved the problem.  SS can now connect using WG protocol again, even while the new Wireguard server/service is running.  I installed Hyper-V on windows home 11 version 23H2 using the script below (virtualization was already enabled in BIOS), ran the 'enable NAT' step in WGS4W and everything works great.  Thanks again for writing this utility.
One suggestion I would make is to add a 'refresh' button on the main panel that shows the status of the install components (tunnel installed etc etc).  When I deactivate/reactivate the server, it seems like I need to stop and restart WGS4W to update the red/green component status; maybe if I was more patient and waited longer it would auto refresh :)
Here's the Hyper-V install script, it just gets saved as a .bat file and run as admin followed by a restart:
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages*Hyper-V*.mum >hv-home.txt
for /f %%i in ('findstr /i . hv-home.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages%%i"
del hv-home.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
pause


[type: test]:Fix the error about collect method in AbstractLogCollector

// Describe your PR here; eg. Fixes #issueNo

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed mvn clean install -Dmaven.javadoc.skip=true.

The collect method is a redundant test here. It will not have any impact after deletion and will not change the coverage

Codecov Report

Merging #3281 (782b7be) into master (16cd633) will increase coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #3281   +/-   ##
=========================================
  Coverage     58.21%   58.22%
+ Complexity     4635     4633    -2
=========================================
  Files           744      744
  Lines         21047    21043    -4
  Branches       1925     1924    -1
=========================================
- Hits          12253    12252    -1
+ Misses         7700     7696    -4
- Partials       1094     1095    +1

Impacted Files
Coverage Δ

...yu/plugin/logging/utils/LogCollectConfigUtils.java
66.66% <0.00%> (-4.45%)
:arrow_down:

...gin/logging/rocketmq/RocketMQLogCollectClient.java
68.00% <0.00%> (-4.00%)
:arrow_down:

...henyu/register/client/http/utils/RuntimeUtils.java
51.72% <0.00%> (-3.45%)
:arrow_down:

...rg/apache/shenyu/plugin/hystrix/HystrixPlugin.java
74.07% <0.00%> (-0.93%)
:arrow_down:

...henyu/admin/service/impl/UpstreamCheckService.java
69.40% <0.00%> (-0.75%)
:arrow_down:

.../plugin/grpc/loadbalance/AbstractLoadBalancer.java
70.32% <0.00%> (-0.33%)
:arrow_down:

...a/org/apache/shenyu/common/utils/VersionUtils.java
67.85% <0.00%> (ø)

...plugin/logging/body/LoggingServerHttpResponse.java
53.76% <0.00%> (+0.57%)
:arrow_up:

...plugin/resilience4j/build/Resilience4JBuilder.java
50.00% <0.00%> (+2.38%)
:arrow_up:

...in/response/strategy/NettyClientMessageWriter.java
73.91% <0.00%> (+4.34%)
:arrow_up:

... and 2 more

Continue to review full report at Codecov.

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


chore(docs): show extends clauses for classes

Classes like MatAnchor in the button docs should indicate that those are extending the MatButton class.
Clauses without any related Dgeni doc can be ignored, because no information for this is available (right now; e.g. MatSlideToggleBase with mixins)

I think a little css would make it look good

@jelbourn Updated the PR and addressed the feedback.

There's a lint error: you can add merge-ready when ready

Seems unrelated. But can fix in the PR as well

Lint issue will be fixed by #8086.


Close Calendar by tapping on the grey area

Question
Do we have any work around so that when users tap on the grey area, the calendar should be closed.
Current behavior
Tapping on the grey area doesn't take any effect
Expect behavior
Tapping on the grey area calendar will be close, like we press the cancel button.
Thank you in advanced!

Isn't that the case?
I am using "@react-native-community/datetimepicker": "^2.2.3" and if tap on the backdrop outside of the calendar component, the calendar closes.
And the event in the onChange handler has type: "dismissed"

hello, thanks for reporting; I'm closing this because it does not follow the issue template, so it's hard to help.


Tech Spec

Tech Spec for the broker implementation.
The machine the experiment benchmarks are collected; browser and IDE were open -

Model name
AMD Ryzen 9 3950X 16-Core Processor

Memory
64GB

OS
Ubuntu 20.04.1 LTS

When the experiment program starts up, the 51,000 requests in their with priority takes roughly 6s to process.
When Apache Benchmark is used to simply push requests to the pipeline in a single machine here is the throughput experienced -
$ ./apache-benchmark.sh
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100000 requests
Completed 200000 requests
Completed 300000 requests
Completed 400000 requests
Completed 500000 requests
Completed 600000 requests
Completed 700000 requests
Completed 800000 requests
Completed 900000 requests
Completed 1000000 requests
Finished 1000000 requests

Server Software:
Server Hostname:        localhost
Server Port:            58080

Document Path:          /broker
Document Length:        0 bytes

Concurrency Level:      5
Time taken for tests:   58.764 seconds
Complete requests:      1000000
Failed requests:        0
Total transferred:      64000000 bytes
Total body sent:        153000000
HTML transferred:       0 bytes
Requests per second:    17017.22 [#/sec] (mean)
Time per request:       0.294 [ms] (mean)
Time per request:       0.059 [ms] (mean, across all concurrent requests)
Transfer rate:          1063.58 [Kbytes/sec] received
                        2542.61 kb/s sent
                        3606.19 kb/s total

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.4      0      38
Processing:     0    0   0.8      0      87
Waiting:        0    0   0.7      0      72
Total:          0    0   1.0      0      88

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%      0
  90%      0
  95%      0
  98%      3
  99%      5
 100%     88 (longest request)

Overall, it's a novel approach and would improve developers' life if it lives up to its promises of scalability and throughput. I would be interested to compare it with an ESB backed by existing brokers.


Manual publish

Manual publish

Internal previews
Toggle expand/collapse

📄 File
🔗 Preview link

docs/core/compatibility/9.0.md
Breaking changes in .NET 9

docs/core/diagnostics/built-in-metrics-aspnetcore.md
ASP.NET Core metrics

docs/core/diagnostics/built-in-metrics-diagnostics.md
.NET extensions metrics

docs/core/diagnostics/built-in-metrics-system-net.md
docs/core/diagnostics/built-in-metrics-system-net

docs/core/diagnostics/trace-perfcollect-lttng.md
Trace .NET applications with PerfCollect

docs/core/extensions/dependency-injection-guidelines.md
Dependency injection guidelines

docs/core/extensions/dependency-injection.md
Dependency injection

docs/core/extensions/logging.md
Logging in C# and .NET

docs/core/extensions/options.md
Options pattern in .NET

docs/core/install/linux-ubuntu.md
Get Ubuntu version

docs/core/porting/cpp-cli.md
docs/core/porting/cpp-cli

docs/core/project-sdk/msbuild-props.md
MSBuild reference for .NET SDK projects

docs/core/runtime-config/garbage-collector.md
Garbage collector config settings

docs/core/testing/unit-testing-mstest-runner-extensions.md
MSTest runner extensions

docs/core/testing/unit-testing-mstest-runner-intro.md
docs/core/testing/unit-testing-mstest-runner-intro

docs/core/testing/unit-testing-mstest-runner-vs-vstest.md
MSTest runner and VSTest comparison

docs/csharp/language-reference/keywords/protected-internal.md
"protected internal - C# Reference"

docs/csharp/language-reference/operators/stackalloc.md
stackalloc expression (C# reference)

docs/framework/network-programming/tls.md
Transport Layer Security (TLS) best practices with the .NET Framework

docs/fundamentals/code-analysis/quality-rules/ca1008.md
docs/fundamentals/code-analysis/quality-rules/ca1008

docs/fundamentals/code-analysis/style-rules/ide0300.md
Use collection expression for array (IDE0300)

docs/fundamentals/code-analysis/style-rules/ide0301.md
"IDE0301: Use collection expression for empty"

docs/fundamentals/code-analysis/style-rules/ide0302.md
Use collection expression for stackalloc (IDE0302)

docs/fundamentals/code-analysis/style-rules/ide0303.md
docs/fundamentals/code-analysis/style-rules/ide0303

docs/fundamentals/code-analysis/style-rules/ide0304.md
Use collection expression for builder (IDE0304)

docs/fundamentals/code-analysis/style-rules/ide0305.md
"IDE0305: Use collection expression for fluent"

docs/orleans/grains/stateless-worker-grains.md
Stateless worker grains

docs/orleans/implementation/testing.md
docs/orleans/implementation/testing

docs/orleans/resources/best-practices.md
Best practices in Orleans

docs/standard/assembly/set-attributes.md
Set assembly attributes in code

Note
This table shows preview links for the 30 files with the most changes. For preview links for other files in this PR, select OpenPublishing.Build Details within checks.

closing because I need to make a new PR manually to address the conflicts.


ci: update go version for test

Coverage remained the same at 56.518% when pulling a2fef25338fdf78fa061f960b90e5754feda8724 on update_ci_go_version into a26a0910e60eb011b4e1d1daaa0dc7b5533b3ab0 on main.


missing treePath for renderNode function

Fixes issue #54

Just merged it. thanks for the PR. Sorry that it took so long to merge. Just oversaw this.

just relased version 1.1.0 on tag rewrite


Restore array keys when an item is deleted from the elastic index.

Hi,
I had a slight problem with the search driver. The scenario is as followed:

I fetch a list of items trough the search driver
I delete an item, it will be deleted from the database directly and a little bit later from the elastic index.
Meanwhile, before the elastic index has processed the delete, I fetch the list again.
The list results the items, including the deleted item. Then it goes trough the map function (ElasticEngine.php). This function filters out the deleted item, so the item lists is correct.

At the end of the map function it does a filter() on the collection. Which is great, because we want to lose the deleted item. But the array keys are not reset, which will break any javascript when the result is parsed to json.
For example:
[0] => ...,
[1] => ...,
[2] => ...,

We delete key 1:
[0] => ...,
[2] => ...,

The solution will be to add a values() function to the filter() function in map. I suggest we change the map function in ElasticEngine.php from:
public function map($results, $model)
{
    if ($this->getTotalCount($results) == 0) {
        return Collection::make();
    }

    $ids = $this->mapIds($results);

    $modelKey = $model->getKeyName();

    $models = $model->whereIn($modelKey, $ids)
                    ->get()
                    ->keyBy($modelKey);

    return Collection::make($results['hits']['hits'])->map(function ($hit) use ($models) {
        $id = $hit['_id'];

        if (isset($models[$id])) {
            return $models[$id];
        }
    })->filter();
}

To:
public function map($results, $model)
{
    if ($this->getTotalCount($results) == 0) {
        return Collection::make();
    }

    $ids = $this->mapIds($results);

    $modelKey = $model->getKeyName();

    $models = $model->whereIn($modelKey, $ids)
                    ->get()
                    ->keyBy($modelKey);

    return Collection::make($results['hits']['hits'])->map(function ($hit) use ($models) {
        $id = $hit['_id'];

        if (isset($models[$id])) {
            return $models[$id];
        }
    })->filter()->values();
}

Thanks! I fixed that in v3.3.2 and added test for that case as well.


Dynamic imports error: The keyword 'yield' is reserved

Using the following import statements as described here...
const DocReady = await import('es6-docready')
const Raven = await import('raven-js')
const lozad = await import('lozad')
const unhandledRejection = await import('unhandled-rejection')

...produces this error:
--- cache cleared ---
--- FuseBox 3.5.0 ---
  → Typescript config file:  /src/tsconfig.json
  → Typescript forced script target: ES5
  → Typescript script target: ES5
Acorn error: The keyword 'yield' is reserved (6:15)
File: /Users/daniel/Dev/nylon-web/src/scripts/nylon.js

4  var tslib_1 = require("tslib");
5  /* dependencies */
6  var DocReady = yield $fsmp$('es6-docready');
7  var Raven = yield $fsmp$('raven-js');
8  var lozad = yield $fsmp$('lozad');
9  var unhandledRejection = yield $fsmp$('unhandled-rejection');

Bundle "nylon"

└──  (0 files,  100 Bytes) default
size: 100 Bytes in 200ms

Launching quantum core
  → Generating abstraction, this may take a while
  → Abstraction generated
  → Process bundle nylon
  → Process package default
  →   Files: 0
  → Render bundle nylon
  → Uglifying nylon...
  → Using uglify-js because the target is set to ES5 and no es6 option is set
  → Done uglifying nylon
  size:  464 Bytes, 290 Bytes (gzipped)

That's invalid syntax., All await keywords must be within async block
async function foo(){
   const lozad = await import('lozad')
}

That's invalid syntax., All await keywords must be within async block
async function foo(){
   const lozad = await import('lozad')
}

thanks


Allow multiple ReCaptchas in one page

Currently, it is not possible to place two or more ReCaptcha elements in one HTML page with the tools provided by ZF.
It can be done manually, see here or here.
I think, a framework should be able to provide this as well. I would suggest to move to "explicit_render" for any captcha and allow setting unique names via a new option (or use the existing name?).

This repository has been closed and moved to laminas/laminas-captcha; a new issue has been opened at https://github.com/laminas/laminas-captcha/issues/2.


Revert "[AMBARI-24264] Suppress log messages from the credential_store_helper"

This reverts commit 9e2eb9c99d7e84dc175f4a30e212686caf4e1213.
What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
How was this patch tested?
(Please explain how this patch was tested. Ex: unit tests, manual tests)
(If this patch involves UI changes, please attach a screen-shot; otherwise, remove this)
Please review Ambari Contributing Guide before opening a pull request.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3032/
Test FAILed.
Test FAILured.


Rackhd rename

rename Monorail API to RackHD API throughout content
break apart getting_started from content in development_guide
remove a few dead files that aren't used
rename the docs directory monorail to rackhd and fix all the relevant links

A sad day :cry:
At least we still have our yelp link up to Monorail (http://rackhd.readthedocs.org/en/latest/software_architecture.html?highlight=yelp#major-components).
:+1: after fixing my own spelling mistake.

Hah - read more carefully, the architecture calls it all out as the monorail engine. :-)

there is still one place need to update ,  about spelling  'mMnorail'  to 'RackHD'  of "Install the mMnorail Packages: " in file "docs/monorail/ubuntu_install_instructions.rst"    :-)
:+1:  after this fix

Are you saying that the term "monorail" needs to be removed from the entire doc?
For example, should "monorail engine" be changed to "workflow engine"/

Personally, I don't like "Getting Started" as the section title, because it is vague and could mean anything.
Think something like "Setting Up a Test Version of RackHD" or "RackHD: Quick Setup" would be better.

But I like the idea of breaking it out into its own section....

@bossidy updated to RackHD: Quick Setup. In general we renamed most of what we'd been calling monorail internally to RackHD, but I intentionally left in the monorail engine reference.

@christineday just a housekeeping note, when you merge a PR it's also good to click the "Delete Branch" button afterwards, that way we don't end up with hundreds of branches over time :)

@benbp thanks for the reminder!!! Will do.


Feature Request: Launch from command line

It would be very nice to launch Markoff directly from the command line (markoff file.md).

This is already possible - put this in your shell's dotfile:
alias markoff="open -a Markoff"

OK, thanks @frou. That solves it for me. An included "binary" would nice anyway ;-)

It would be nice if you could specify the file to open. Do we know if this is possible?

@ajwhite You would do that with open -a Markoff filename.md.
This is now in my init.vim:
augroup Markdown
  autocmd FileType markdown nnoremap <buffer> <leader>m :call OpenMarkoff()<CR>
  autocmd FileType markdown :call OpenMarkoff()<CR>
augroup END

function OpenMarkoff()
  exe '! open -a Markoff '.expand('%')
endfunction

What I'd really like is a way to tell Markoff to open at a specific line number (which I would set to be the current line Neovim).

Even better would be a clean way to have Markoff "open" STDOUT


Provide cursor offset search and set methods

Related:

https://github.com/livingdocsIO/livingdocs-framework/pull/573
https://github.com/livingdocsIO/livingdocs-editor/pull/4496

Motivation
In order to support maintaining the cursor position when moving up and down with the arrow keys in between editable containers (e.g. paragraphs) we implement methods to search a character offset given a coordinate set as well as a method to create a cursor at a given character offset.
const {wasFound, offset, distance} = this.editable.findClosestCursorOffset({editable, element, origCoordinates})
if (wasFound) this.editable.createCursorAtCharacterOffset({element, offset})

Changelog
🎁  findClosestCursorOffset({element, origCoordinates, requiredOnFirstLine, requiredOnLastLine})
Takes an element containing text nodes and a coordinate box and uses the left coordinate to position a character offset in element that most closely matches the left coordinate value. Returns an object with wasFound to indicate if a character offset could be found and offset to indicate the actual offset.
Internally, this uses a binary search to set the cursor at a position, calculating its bounding box, comparing the cursors left value to the given left value and iterating towards the result.
If the requiredOnFirstLine or requiredOnLastLine flags are given it will also use the top coordinate to make sure the character offset is only found on the right line. This is useful when navigating the cursor with the arrow key down from a paragraph to the next (requires the cursor to be on the first line).
🎁  createCursorAtCharacterOffset ({element, offset})
Creates a cursor in the given element at the given character offset. Returns the created cursor.
Calls setVisibleSelection internally.
🐞 Fire switch event more reliable
In certain situations the switch event was not fired. This depended on how the browser would set the the range of the current cursor. If the range of a cursor was in an element node and not a text node it would not fire. This affected emtpy editable elements the most but occurred also frequently in other situations.
Internal Changes
Binary Cursor Search
Add a helper method to perform a binary cursor search given a setup of methods. See the code file for more documentation.
Element utils
Add the following util methods to perform operations on elements:

textNodesUnder, returns all text nodes under a given DOM node
getTotalCharCount, count all text node characters under a given DOM node
getTextNodeAndRelativeOffset, takes an absolute character offset and a DOM node and loops through all nested text nodes to find the text node as well as the relative offset in that text node to which the absolute offset translates to

:tada: This PR is included in version 2.9.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


"Chiuiești", "Dosu Bricii", "Huta", "Măgoaja", "Strâmbu", "Valea Cășeielului", "Valea lui Opriș" are listed in the drop-down

Description:
When user writes "Chiuiești", "Dosu Bricii", "Huta", "Măgoaja", "Strâmbu", "Valea Cășeielului" and "Valea lui Opriș" the locations appear in the drop-down menu next to the comune and the county which is a part according to the law
Precondition:
The website is up an running.

Step 2
Press "x" button.
Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Dosu Bricii"
Expected results
The location appears in the drop-down menu as "Sat Dosu Bricii, CLUJ (Chiuiești)"

Step 4
Press "x" button.
Expected results
The location was deleted from the search bar.

Step 5
Write in the search bar "Huta"
Expected results
The location appears in the drop-down menu as "Sat Huta, CLUJ (Chiuiești)"

Step 6
Press "x" button.
Expected results
The location was deleted from the search bar.

Step 7
Write in the search bar "Măgoaja"
Expected results
The location appears in the drop-down menu as "Sat Măgoaja, CLUJ (Chiuiești)"

Step 8
Press "x" button.
Expected results
The location was deleted from the search bar.

Step 9
Write in the search bar "Strâmbu"
Expected results
The location appears in the drop-down menu as "Sat Strâmbu, CLUJ (Chiuiești)"

Step 10
Press "x" button.
Expected results
The location was deleted from the search bar.

Step 11
Write in the search bar "Valea Cășeielului"
Expected results
The location appears in the drop-down menu as "Sat Valea Cășeielului, CLUJ (Chiuiești)"

Step 12
Press "x" button.
Expected results
The location was deleted from the search bar.

Step 13
Write in the search bar "Valea lui Opriș"
Expected results
The location appears in the drop-down menu as "Sat Valea lui Opriș, CLUJ (Chiuiești)"


Upgrading angular/core and angular/cli to Angular 10 leads to incompatible peer dependency for angular/material

Description
Hello guys, when I am trying to upgrade my Angular 9 project to Angular 10 with
ng update @angular/core @angular/cli

the following peer dependency warning is displayed:
Package "@angular/material" has an incompatible peer dependency to "tslib" (requires "^1.9.0", would install "2.0.0")

Obviously the next step is to update @angular/material to version 10.x (based on the steps in https://update.angular.io/, and this probably won't matter much because then @angular/material will actually have tslib 2.0.0 as a dependency.
However this is quite strange and I am not sure what is the best approach here.
Are we supposed to use
ng update @angular/core @angular/cli --force

to ignore the warning and simply install the new @angular/material afterwards, or we have to update the tslib dependency in our project to 2.0.0 manually and then execute
ng update @angular/core @angular/cli

to avoid this warning? Is there a difference between these two things and what is the best approach?

@tachojelev, I think the best approach would be to update Angular packages at the same time using ng update @angular/core @angular/cli @angular/material.
That said, there is no difference in any of the above approaches, if the only incompatible peer dependency warning is related to tslib.

Moving to the the FW repo, maybe they want to reconsider what's suggested in the update guide.


Update estrella version to fix #3

Fixes #3 by using a version of estrella which builds on Apple silicon but does not break the current build.js script.

Thank you!


xcaddy_0.3.1_windows_arm64: doesn't run

This one:
https://github.com/caddyserver/xcaddy/releases/download/v0.3.1/xcaddy_0.3.1_windows_arm64.zip
doesn't run on my Win10 PRO ARM based Miix630. Error is:
λ  .\xcaddy.exe
go: cannot match "all": go.mod file not found in current directory or any parent directory; see 'go help modules'
2022/10/10 17:21:01 [ERROR] exec [go list -m -json all]: exit status 1:

Looks like xcaddy is running fine. I don't know what the problem is with that information, we'd need to be able to reproduce this from scratch. Make sure you're running the latest Go version and your Go project is set up correctly.

Looks like xcaddy is running fine. I don't know what the problem is with that information, we'd need to be able to reproduce this from scratch. Make sure you're running the latest Go version and your Go project is set up correctly.

???
I have a ARM based Windows box.
I download your xcaddy ARM64 artifact / release, extract it to a new directory and run the xcaddy.exe binary... which results in the given error.
Si, I run just the binary. What has this to do with any GO version I may or may not have installed?

Looks like xcaddy is running fine. I don't know what the problem is with that information, we'd need to be able to reproduce this from scratch. Make sure you're running the latest Go version and your Go project is set up correctly.

???
I have a ARM based Windows box.
I download your xcaddy ARM64 artifact / release, extract it to a new directory and run the xcaddy.exe binary... which results in the given error.
Si, I run just the binary. What has this to do with any GO version I may or may not have installed?

The output you shared is generated from xcaddy itself. Can you share what you are trying to do, what the current directory contains, and your intended goal? I believe there's a confusion of what xcaddy does or what you're expecting it to do on its own.

Looks like xcaddy is running fine. I don't know what the problem is with that information, we'd need to be able to reproduce this from scratch. Make sure you're running the latest Go version and your Go project is set up correctly.

???
I have a ARM based Windows box.
I download your xcaddy ARM64 artifact / release, extract it to a new directory and run the xcaddy.exe binary... which results in the given error.
Si, I run just the binary. What has this to do with any GO version I may or may not have installed?

The output you shared is generated from xcaddy itself. Can you share what you are trying to do, what the current directory contains, and your intended goal? I believe there's a confusion of what xcaddy does or what you're expecting it to do on its own.

I just want to run the xcaddy binary on my ARM based Windows 10 PRO system. That's that simple!!!
The ARM64 binary is not running on an ARM based Windows 10 PRO.
It's not about "doing something wrong". The binary is not starting / running / executed... that simple.
I use xcaddy on another Windows X64 systems since... ever. Again, this here is about "the ARM64 xcaddy binary is NOT running at all"...

... and please re-open this issue.
Thanks!

I just want to run the xcaddy binary on my ARM based Windows 10 PRO system. That's that simple!!!
The ARM64 binary is not running on an ARM based Windows 10 PRO.
It's not about "doing something wrong". The binary is not starting / running / executed... that simple.

False. That error is generated by xcaddy trying to invoke go list -m -json all which is returning an error related to your local Go project setup.
When you are ready to cooperate we can reopen this issue if it is a bug. Please kindly answer Mohammed's questions so we can help you.

See the readme. It seems like you're using it incorrectly.
The usecase of using it with no arguments only works if you're currently inside the directory of a plugin you're building.
If you're trying to use it to make a build of Caddy (not plugin development) then you must use the build command.

holly cow. sorry for the noise, I wanted to run CADDY on my ARM64 box as I do on some other "servers" as well... have no idea how I mixed it up with Xcaddy now. Guess I need some sleep...
Again, sorry and thanks for your patience....


ENH: Faster merge_asof() through a single-pass algo

Out of curiosity, I took a crack at a single-pass merge_asof(). My sample passes the existing regression tests but is "wrong" in that it works only for a single object-type "by" parameter. I use PyObjectHashTable while scanning through the right DataFrame to cache the most recently found row for each "by" object.
I could add a little type differentiation if there is interest. I see that Tempita is getting some use in pandas. The main question is whether I can use multiple columns in the "by" parameter, which would be useful for matching things like ['ticker', 'exchange']. Still investigating.
$ asv continuous master -b "join_merge.merge_asof_*"
· Creating environments
· Discovering benchmarks
·· Uninstalling from conda-py2.7-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt
·· Installing into conda-py2.7-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt..
· Running 4 total benchmarks (2 commits * 1 environments * 2 benchmarks)
[  0.00%] · For pandas commit hash c4302949:
[  0.00%] ·· Building for conda-py2.7-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt..
[  0.00%] ·· Benchmarking conda-py2.7-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt
[ 25.00%] ··· Running join_merge.merge_asof_by.time_merge_asof_by                                               41.07ms
[ 50.00%] ··· Running join_merge.merge_asof_noby.time_merge_asof_noby                                           12.90ms
[ 50.00%] · For pandas commit hash 97de42ab:
[ 50.00%] ·· Building for conda-py2.7-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt..
[ 50.00%] ·· Benchmarking conda-py2.7-Cython-matplotlib-numexpr-numpy-openpyxl-pytables-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt
[ 75.00%] ··· Running join_merge.merge_asof_by.time_merge_asof_by                                              608.08ms
[100.00%] ··· Running join_merge.merge_asof_noby.time_merge_asof_noby                                           81.03ms
   before     after       ratio
  [97de42ab] [c4302949]
-   81.03ms    12.90ms      0.16  join_merge.merge_asof_noby.time_merge_asof_noby
-  608.08ms    41.07ms      0.07  join_merge.merge_asof_by.time_merge_asof_by

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.

so you don't actually need tempita here. you factorize things, and so only need to deal with int64's.

@jreback The single-pass nature of this is that I'm not doing the factorizing any more. I'm comparing the values in the "on" column directly, which is fine since timestamps are stored as integers anyway. But if I ever want to compare floats, then I assume I'll need proper type differentiation.
I've issued a PR for the sample code to show how I did it. As I describe at the top of message there, do not merge in its current state...

@chrisaycock you can use the groupby factorization (its quite cheap to do this)
In [5]: df = pd.DataFrame({'A' : pd.date_range('20130101',periods=3), 'B' : list('aab'), 'C' : range(3)})

In [6]: g = df.groupby(['A', 'B'])

In [7]: g.grouper.group_info
Out[7]: (array([0, 1, 2], dtype=int64), array([0, 2, 5], dtype=int64), 3)

Using the setup from the join_merge.merge_asof_by benchmark:
In [39]: %timeit pd.merge_asof(df1, df2, on='time', by='key')
10 loops, best of 3: 41.4 ms per loop

But the factorization takes way longer than that and we haven't even gotten to the actual joining logic:
In [40]: %timeit df1.groupby(['key', 'time']).grouper.group_info
10 loops, best of 3: 28.2 ms per loop

In [41]: %timeit df2.groupby(['key', 'time']).grouper.group_info
10 loops, best of 3: 177 ms per loop

The fastest possible approach is a single-pass algorithm. (And if we want this function to be remotely competitive with q/kdb+'s aj[], then we need to pay attention to performance.)


Support custom ignore_change

Is your request related to a new offering from AWS?
Is this functionality available in the AWS provider for Terraform? See CHANGELOG.md, too.

No 🛑: please wait to file a request until the functionality is avaialble in the AWS provider
Yes ✅: please list the AWS provider version which introduced this functionality

Yes https://developer.hashicorp.com/terraform/language/meta-arguments/lifecycle#ignore_changes
Is your request related to a problem? Please describe.

currently, there is no way to config what changes can be ignored by using rds_aurora module, such as master_password, database_name, etc.
Describe the solution you'd like.

Would like to have the ability to merge a list of variables into the default ignore_changes list.
Describe alternatives you've considered.

seems no obvious alternatives.
Additional context

Terraform core does not support this

Terraform core does not support this

do you mind elaborate a bit? not a TF expert, but I don't see why it wouldn't work.

Terraform does not support variables within lifecycle blocks - they have to be defined statically

thank you. I found the document. will close this.

@bryantbiggs any thoughts on adding "master_password" as a static value in the ignore_changes block?

What would be the motivation for that?

we don't want to use secret manager, also can't set plain text in tf file, and to prevent TF reset master_password

Ah, ok. Letting RDS manage this is the recommendation which means no changes to the current codebase


Instead of set the style every time, could I set the default style for component?

For example, When I want to use the flat and custom style for the button, I have to set the style for the button every time. could I achieve this in the css file?
any help is appreciated.

You can also use a Java class that extend Button. Add the css class in the constructor and reuse the Java class. At least this is what I would do.

You can also use a Java class that extend Button. Add the css class in the constructor and reuse the Java class. At least this is what I would do.

thanks for your quick reply.
because the Button is already in may places in my project, If I extend it , too much change will be made. I am wondering whether I could do this by writing some CSS code.

About how "many" places you use this kind of Button are we talking 50? 200? Changing this is much in your Java Code is the much cleaner approach. Also you can estimate the time that this change takes this via Java much better since the scope is very clear. Also you can change later on all the buttons to your liking at once.
I can guarantee, there is no easy way to do this via css, What you can do is copying this project, and change the look of the default button, not clean and you still have to touch the Java code.

About how "many" places where you use these kind of Button are we talking 50? 200? Changing this is in your Java Code is the much cleaner approach. Also you can estimate the time that this change takes much better since the amount of effort is very clear. Also when doing this you can later on change all the buttons at once to your liking.
I can guarantee, there is no easy way to do this via css, What you can do is copying this project, and change the look of the default button, not clean and you still have to touch the Java code.
I am not able to give reliable advice since your description lacks of details.

thanks for your advice.


Add Dutch translation

changes visible on https://dev.openaedmap.org/ (note: the site is in early stages of development and adding AEDs is not functional yet)


[RESOLVED] Interface eth0(): High error rate (>2 for 5m)

Problem started at 11:24:29 on 2023.05.06
Problem name: Interface eth0(): High error rate (>2 for 5m)
Host: S100-Primario
Severity: Warning
Operational data: errors in: 4, errors out: 0
Original problem ID: 20389
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23483&eventid=20389

Problem has been resolved in 6m 0s at 11:30:29 on 2023.05.06
Problem name: Interface eth0(): High error rate (>2 for 5m)
Host: S100-Primario
Severity: Warning
Original problem ID: 20389


Feature: Enhance OPC-UA adapter to be more customizable and to perform additional functions

Is your feature request related to a problem? Please describe.
No issue
Describe the feature you are requesting, as well as the possible use case(s) for it.
Currently, when a successful subscription is made to the opc-ua server by the opc-ua adapter, the subscription details are stored such that the subscription will always be maintained even when the adapter is restarted or the thing is disconnected from the channel in magistrala.
This is a proposal that when the thing is disconnected from the channel, there needs to be an option to disconnect the adapter from the server so that the adapter will not keep consuming data from the opc-ua server.
Additionally, we can have the adapter such that it exposes another endpoint apart from /browse which can be used to perform these operations, say to establish a connection to a server, disconnect from a server.
Indicate the importance of this feature to you.
Nice-to-have
Anything else?
No response

Also update the adapter to the latest version of gopcua library.

Additional proposal to add the following endpoints:

/subscribe to give provision for manual subscription to a server.
/unsubscribe to allow a user to manually cancel a subscription to a sever.


Use new ReversableRange for range literals

See https://github.com/Shopify/liquid/pull/1109 for further context.

Is this ready for review yet?

No, not yet ready for review, apologies. I'll mark it as WIP.


Pytorch squad ERROR

Hi, when I use dcoker image nvcr.io/nvidia/pytorch:20.12-py3 to run bash pytorch/scripts/run_squad.sh ori fp16, it will occur ERROR that

Evaluating:   0%|                                                                                | 0/170 [00:18<?, ?it/s]
Traceback (most recent call last):
File "/workspace/FasterTransformer/build/pytorch/run_squad.py", line 497, in
main()
File "/workspace/FasterTransformer/build/pytorch/run_squad.py", line 486, in main
result = evaluate(args, model, tokenizer, prefix=global_step)
File "/workspace/FasterTransformer/build/pytorch/run_squad.py", line 98, in evaluate
outputs = model(*inputs)
File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 744, in _call_impl
result = self.forward(*input, **kwargs)
File "/opt/conda/lib/python3.8/site-packages/torch/nn/parallel/data_parallel.py", line 167, in forward
outputs = self.parallel_apply(replicas, inputs, kwargs)
File "/opt/conda/lib/python3.8/site-packages/torch/nn/parallel/data_parallel.py", line 177, in parallel_apply
return parallel_apply(replicas, inputs, kwargs, self.device_ids[:len(replicas)])
File "/opt/conda/lib/python3.8/site-packages/torch/nn/parallel/parallel_apply.py", line 86, in parallel_apply
output.reraise()
File "/opt/conda/lib/python3.8/site-packages/torch/_utils.py", line 428, in reraise
raise self.exc_type(msg)
StopIteration: Caught StopIteration in replica 1 on device 1.
Original Traceback (most recent call last):
File "/opt/conda/lib/python3.8/site-packages/torch/nn/parallel/parallel_apply.py", line 61, in _worker
output = module(*input, **kwargs)
File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 744, in _call_impl
result = self.forward(*input, **kwargs)
File "/workspace/FasterTransformer/build/pytorch/utils/modeling_bert.py", line 147, in forward
outputs = self.bert(
File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 744, in _call_impl
result = self.forward(*input, **kwargs)
File "/workspace/FasterTransformer/build/pytorch/utils/modeling_bert.py", line 101, in forward
extended_attention_mask = extended_attention_mask.to(dtype=next(self.parameters()).dtype)  # fp16 compatibility
StopIteration

How can I overcome it?

You can try to fix this issue by modifying the codes
            extended_attention_mask = extended_attention_mask.to(dtype=next(self.parameters()).dtype)  # fp16 compatibility
            extended_attention_mask = (1.0 - extended_attention_mask) * -10000.0

        embedding_output = self.embeddings(
            input_ids=input_ids, position_ids=position_ids, token_type_ids=token_type_ids, inputs_embeds=inputs_embeds
        )
        if self.use_ext_encoder:
            encoder_outputs = self.encoder(embedding_output, extended_attention_mask, seq_lens)
        else:

to
            extended_attention_mask = extended_attention_mask.to(dtype=torch.float32)  # fp16 compatibility
            extended_attention_mask = (1.0 - extended_attention_mask) * -10000.0

        embedding_output = self.embeddings(
            input_ids=input_ids, position_ids=position_ids, token_type_ids=token_type_ids, inputs_embeds=inputs_embeds
        )
        extended_attention_mask = extended_attention_mask.to(dtype=embedding_output.dtype)
        if self.use_ext_encoder:
            encoder_outputs = self.encoder(embedding_output, extended_attention_mask, seq_lens)
        else:

It seems to be a known issue of pytorch.

Close this bug because it is inactivated. Feel free to re-open this issue if you still have any problem.


(PR created) Let runAsync allow re-entrance, or allow users to know whether it is already running async tasks

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Use case
When implementing and using https://github.com/fzyzcjy/flutter_convenient_test, I realize it is hard to avoid runAsync's re-entrance. Currently, if a runAsync is inside another one, it errors Reentrant call to runAsync() denied. However, this proposal proposes that, we can allow the second function to be called directly.
Example where this comes into a problem: Suppose I have a Future<void> login() { ... } which does some operations that needs runAsync, and another logout() { ... }. Then, when implementing prepareUser() { logout(); somethingElse(); login(); }, It is tempting to wrap prepareUser with a runAsync, but that cause the reentrant problem.
Proposal
Rough code:

Change flutter_test as

diff --git a/packages/flutter_test/lib/src/binding.dart b/packages/flutter_test/lib/src/binding.dart
index be9abeb568..11ee9d4837 100644
--- a/packages/flutter_test/lib/src/binding.dart
+++ b/packages/flutter_test/lib/src/binding.dart
@@ -376,6 +376,8 @@ abstract class TestWidgetsFlutterBinding extends BindingBase
   /// [LiveTestWidgetsFlutterBinding] (tests running using `flutter run`).
   test_package.Timeout get defaultTestTimeout;

+  bool get runningAsyncTasks; // NOTE MODIFIED add
+
   /// The current time.
   ///
   /// In the automated test environment (`flutter test`), this is a fake clock
@@ -1141,6 +1143,8 @@ class AutomatedTestWidgetsFlutterBinding extends TestWidgetsFlutterBinding {
   FakeAsync? _currentFakeAsync; // set in runTest; cleared in postTest
   Completer<void>? _pendingAsyncTasks;

+  bool get runningAsyncTasks => _pendingAsyncTasks != null; // NOTE MODIFIED add
+
   @override
   Clock get clock {
     assert(inTest);
@@ -1643,6 +1647,8 @@ class LiveTestWidgetsFlutterBinding extends TestWidgetsFlutterBinding {
   bool _viewNeedsPaint = false;
   bool _runningAsyncTasks = false;

+  bool get runningAsyncTasks => _runningAsyncTasks; // NOTE MODIFIED add
+
   /// The strategy for [pump]ing and requesting new frames.
   ///
   /// The policy decides whether [pump] (with a duration) pumps a single frame

runAsync (or runAsyncReEntrance can be:

    if (runningAsyncTasks) {
      return await callback();
    } else {
      return await runAsync(callback);
    }

I'd like to understand this a bit more before digging into the PR.
I think the intent of the runAsync method was to only be called at the top level, preferably using the WidgetTester provided by testWidgets. It sounds like you are directly referencing the TestWidgetsFlutterBinding.instance or passing around the reference to the binding, which is opening you up to running into this issue more than I would expect an average user to.
In your example, each of the methods could be implemented without using runAsync internally, then when you are writing a test calls to those methods would be passed to runAsync. That way any awaits that are internal to the call would be run in the same true async context as the outermost call and work as expected.
Could you expand on the use case and why it would be useful to re-enter the runAsync method outside of the top level?

In your example, each of the methods could be implemented without using runAsync internally
Could you expand on the use case and why it would be useful to re-enter the runAsync method outside of the top level?

Sure! It is because I hope the tests are more neat. The https://github.com/fzyzcjy/flutter_convenient_test, or the https://www.cypress.io/ style (cypress is a famous web testing framework), seems to be that, try to make the test script as neat as possible. For example,
final whateverFinder = ...;
while(whateverFinder.evaluate().isEmpty) await tester.pumpAndSettle();
await tester.tap(whateverFinder);
await takeScreenshotAndSaveItForDebug();

is converted into
await whateverFinder.tap(); // automatically include auto-retry, take debug screenshot, etc

Thus you can see the main idea - make tests neat and simple. Now back to the runAsync thing. Without that, I have to wrap each calls in top level with an extra runAsync:
await tester.runAsync(() async => switchUser(...));
expect(tester.binding.takeException(), null);

but with the proposal,
await switchUser(...);

and done.

So, I feel like there are two separate use cases here:
The first case you give, where you're combining many WidgetTester calls into a single one for convenience, shouldn't need runAsync because app interactions should not need to run truly async and can be handled with the various pump methods.
The second case with switchUser seems like it could possibly be the case that runAsync is intended to solve, where during a test with FakeAsync, someone needs to run something that requires running asynchronously separately from the WidgetTester methods.
In the first case, we don't really want calls to runAsync because they're expensive and require creating brand new Zones for each call. In the second case, we probably don't want the runAsync to be transparent, because it hides the fact that the call is running in a truly asynchronous setting.
I've looked over your flutter_convenient_test package a bit (admittedly at a high level), but I can't see a case where you'd need to have a re-entrant version of runAsync. Could you point me to a specific place in the codebase where you ran into this and it can't be resolved without a re-entrant runAsync?

Hi thanks for the reply!

The first case you give, where you're combining many WidgetTester calls into a single one for convenience, shouldn't need runAsync

Yes I agree. That's just to show the philosophy, not to show the need of runAsync

In the second case, we probably don't want the runAsync to be transparent, because it hides the fact that the call is running in a truly asynchronous setting.

For a (traditional) Flutter widget test, definitely - I can see the philosophy of Flutter widget test is that it needs to be super clear and prefer low-level full-control things. For example, users need to manually pump etc.
However, for flutter_convenient_test's philosophy, which mimics Cypress (popular for Web testing), I want to make users write as little work as possible, and make it transparent is indeed a good thing.

I've looked over your flutter_convenient_test package a bit (admittedly at a high level), but I can't see a case where you'd need to have a re-entrant version of runAsync. Could you point me to a specific place in the codebase where you ran into this and it can't be resolved without a re-entrant runAsync?

There is no needs inside that package itself, but as mentioned above (the switchUser example), it can be needed by users of flutter_convenient_test (e.g. my internal code for my app).

With that context, I think this would be better supported with a custom TestWidgetsFlutterBinding in your flutter_convenient_test package that either adds a new reentrant version or simply overrides runAsync and allows reentrance.
As you mentioned, flutter_test has different priorities than testing frameworks built on top of it. Making runAsync reentrant, even by opting-in to reentrance, would allow users to get into states that weren't intended and would be difficult to resolve and maintain long term. That may be a beneficial cost-benefit tradeoff for higher level testing frameworks, but I don't believe it's beneficial at the flutter_test level.
Thanks for the discussion and your continued contributions to improving Flutter!

a custom TestWidgetsFlutterBinding in your flutter_convenient_test package that either adds a new reentrant version or simply overrides runAsync and allows reentrance.

Good idea! I will do that.

Good idea! I will do that.

One thing to note on this is there's a known issue with custom bindings and integration_test right now where you'd have to make sure your custom binding is initialized before the bootstrapping script is run. It is on my list to fix, but not high enough on that list for me to have a timeline of when I'll get to it.
You can see #113097 for further info on that issue.

I see. Thank you!


Update object to 0.33.0

object 0.33.0 has a breaking change for relocations which needs a larger than usual fix here. I already did this fix for testing purposes, but I don't need the change myself.

Thank you for this! I've pushed up a commit where I'm attempting to add a vet and address the cargo deny CI failure.


Multiple types

I am interested in having options supporting the following cases:
--option=yes
--option=false  # and all the other cases supported by Boolean.
--option=achoice
--option=anotherone  # support all within a group as Choice does.

--int=no  # again, Boolean supported.
--int=23  # but an IntRange as well.

Is it possible to chain different types? Of course Choice(['yes', 'true', 'no', 'false', 'achoice', ...]) works, but I believe it looks ugly on the help page (a help usage such as BOOL or [achoice|...] seems optimal to me).

Turns out this works pretty well:
import click

def validate_foo(ctx, param, value):
    try:
        return int(value)
    except ValueError:
        return value

@click.command()
@click.option('--foo', callback=validate_foo)
def cli(foo):
    print(repr(foo))

cli()

foo will be an int if it can be parsed into one, else it's a string. That said, I don't think doing this is a great idea for UI.

Thanks for your reply.

That said, I don't think doing this is a great idea for UI.

Why so?

Perhaps it depends, but I suspect that having not a single possible type for an option only adds to complexity. What's your usecase?

I have options which can be either activated or specifically tuned for a task. I am writing a "universal input generator" for a couple quantum chemistry packages.
As an example, one such package specifies an approximation called "resolution of identity". It comes in many flavours. We have the following keywords: RI, NoRI (turned off), RIJK and RIJCOSX. I would like to have a boolean-like behaviour for RI/NoRI, but Choice()-like behaviour for the other two like so:
--ri       # RI
--ri=yes   # RI
--ri=no    # NoRI
--ri=false # NoRI
--ri=jcosx # RIJCOSX
--ri=jk    # RIJK

What do you think, can I do better/simpler?

I see. No, I don't think you can do better. However, the first line won't be possible -- either options are flags or they aren't. See #370 for the rationale.
Take a look at click/types.py, you could write a generic ChainType that tries the convert methods of multiple types.

I haven't thought about that (regarding --ri and --ri=yes).
And thanks for the suggestion. I'll try to figure out a way to do it in a more consistent way.


Dark theme support

I use Application to setting my app as README saying.
But when the System Theme has changed to dark/light theme, my app will not auto change theme.
If I do not set Application and just use LocalizationApplication, my app won't go wrong.

I can confirm I am seeing the same issue - changing to dark mode will relaunch the activities, but the dark mode is not enabled. Restarting the process will fix it. I had my own language switching code and it has the same issue as this library...

I found the issue in your code: https://github.com/akexorcist/Localization/blob/ed371bed0847cb306a08d67ce186615f29a8802e/localization/src/main/java/com/akexorcist/localizationactivity/core/LocalizationContext.kt#L17
You can't create the Configuration instance this way. You need to use Configuration() and only set the Locale. You only need to specify the values you would like to modify. The javadoc explains is:

/**
* Return a new Context object for the current Context but whose resources
* are adjusted to match the given Configuration.  Each call to this method
* returns a new instance of a Context object; Context objects are not
* shared, however common state (ClassLoader, other Resources for the
* same configuration) may be so the Context itself can be fairly lightweight.
*
* @param overrideConfiguration A {@link Configuration} specifying what
* values to modify in the base Configuration of the original Context's
* resources.  If the base configuration changes (such as due to an
* orientation change), the resources of this context will also change except
* for those that have been explicitly overridden with a value here.
*
* @return A {@link Context} with the given configuration override.
*/
public abstract Context createConfigurationContext(
@NonNull Configuration overrideConfiguration);

Fix in https://github.com/akexorcist/Localization/commit/32095d834bb99f793902118ad88230ad870663ce and https://github.com/akexorcist/Localization/commit/3a35ade5ade2238fc0074b6ca0f43ec7c474b175
But I have to do the full testing before release this because there're a lot of changes from these code.

From @DanielNovak suggestion. 32095d8 and 3a35ade gonna be solve this problem
But I have to do the full testing before release this because there're a lot of changes from these code.

Do you plan in releasing a new version soon ? Or at least an alpha or snapshot?

@BugsBunnyBR Yes, soon.
But if you want to try the early release version. Try JitPack
// build.gradle (project)
allprojects {
    repositories {
        /* ... */
	maven { url 'https://jitpack.io' }
    }
}

// build.gradle (app: module)
dependencies {
    /* ... */
    implementation 'com.github.akexorcist:Localization:develop-SNAPSHOT'
}

@xz-dev @DanielNovak @BugsBunnyBR Good news, 1.2.7 is rolling out


App does not work (location)

Referencing https://github.com/corona-warn-app/cwa-app-android/issues/524 from this repository and one I opened in the API's repo https://github.com/google/exposure-notifications-android/issues/49
This obviously has to do with Google's API, but maybe there is a way around it. I will not use the app anymore, if I have to share my location. Too many apps harvest the device's location data so I want to have my location turned off 99,9% of the time.

Hi @marceljay
You might like to read through the wishlist item https://github.com/corona-warn-app/cwa-wishlist/issues/160 "App does not work any longer if GPS is deactivated" where you can find some up-to-date references and tips.

What @MikeMcC399 said ^
If you want a detailed explanation on why you need location enabled, see my thread here (German) and the CWA FAQ entry on this topic 🙂.

Thank you, everyone, for your feedback.
According to the Exposure Notification release notes, the bug will be fixed in an upcoming Android release. There is currently no workaround possible for this issue.

Locationless scanning
With Android 11, version 1.6 and higher of Exposure Notifications works without having to enable Location Services. This means there are now additional cases in which it is not necessary to prompt users to manually enable this setting.

As @MikeMcC399 already mentioned, there is an open discussion here as well https://github.com/corona-warn-app/cwa-wishlist/issues/160
Since there is no workaround possible, this issue will be closed.
Best regards,
SG
Corona-Warn-App Open Source Team


fix: make dark/light lowecase for style names in gtk

I tried to use Latte flavour, but all window titles are black. The reason of that I think is here: https://github.com/catppuccin/gtk/issues/100, so we need to use dark and light instead of Dark and Light in style.
current style:

fixed style:

I believe this actually broke dark mode on my system.

yeh, see #159 which should fix it - though clearly there is some conflict here.


Dev

SMTP support (burp collaborator + notification)
BIID intercept via upstream proxy (compatible with all OS)

Blocked by https://github.com/projectdiscovery/proxify/issues/24 and https://github.com/projectdiscovery/notify/pull/24

Closing due to dep conflict


enable dep-bot to benefits from action version bump up

like https://github.com/sustainable-computing-io/kepler/commit/8c6c8b9dd6272902edd46f28b5d1ad92337de5c6
dep-bot will help us make auto version bump up for kepler-action.
hence we'd better enable dep-bot for this repo.

example version bump up for kepler-action commit at https://github.com/sustainable-computing-io/kepler/commit/a759d2baeb0d4a92b7acbca5116a0f848449c3a7


groupby optimization

provide the benchmark regards to #2175
Running against 1M rows with binary category data. The first half is all 1, the rest is 0. Each test will repeat ~100~ >= 3 times. The aggregation is only using count for proof of concept purpose. If this works really well, then further change will apply to other built-in group-by operators.

A brief summary of improvements in v2:
1 thread, 16% faster.
2 threads, 9% faster.
4 threads, 32% faster.
8 threads,  53 % faster.
12 threads (max concurrency on my machine), 72% faster.
A brief summary of improvements in v1:
1 thread, 6% faster.
2 threads, 2% faster.
4 threads, 19% faster.
8 threads,  40% faster.
12 threads (max concurrency on my machine), 64% faster.

without any optimization enabled:
nrows: 1000000
reps: 100
=============== bench_test_aggreate_count ================
nthreads: 1
Elapsed time: 68031.1 ms
Average single pass: 680.311 ms
========================== END ===========================
nthreads: 2
Elapsed time: 35193.7 ms
Average single pass: 351.937 ms
========================== END ===========================
nthreads: 4
Elapsed time: 25837 ms
Average single pass: 258.37 ms
========================== END ===========================
nthreads: 8
Elapsed time: 30760.8 ms
Average single pass: 307.608 ms
========================== END ===========================
nthreads: 12
Elapsed time: 43284.2 ms
Average single pass: 432.842 ms
========================== END ===========================

v2 optimization:
a finite set of cyclic local buffers (resolve the file handler hog) + uplifting first local buffer as the global buffer (saves effort to open a new buffer as global one) + skipping empty segments (avoid unnecessary context switches)
nrows: 1000000
reps: 3
=========== bench_test_aggreate_count summary ============
nthreads: 1
Elapsed time: 1723.51 ms
Average single pass: 574.507 ms
========================== END ===========================
nthreads: 2
Elapsed time: 956.427 ms
Average single pass: 318.811 ms
========================== END ===========================
nthreads: 4
Elapsed time: 524.067 ms
Average single pass: 174.691 ms
========================== END ===========================
nthreads: 8
Elapsed time: 435.011 ms
Average single pass: 145.006 ms
========================== END ===========================
nthreads: 12
Elapsed time: 365.199 ms
Average single pass: 121.735 ms
========================== END ===========================

v1 optimization:
each thread has its own local buffer, and all local buffers will be merged into global one at last. This approach suffers from exhausting file handlers, with complexity O(p^2*log(p)), where p denotes number of threads in thread pool impl.
nrows: 1000000
reps: 100
=========== bench_test_aggreate_count summary ============
nthreads: 1
Elapsed time: 63486.9 ms
Average single pass: 634.869 ms
========================== END ===========================
nthreads: 2
Elapsed time: 34456.2 ms
Average single pass: 344.562 ms
========================== END ===========================
nthreads: 4
Elapsed time: 20962.5 ms
Average single pass: 209.625 ms
========================== END ===========================
nthreads: 8
Elapsed time: 18505 ms
Average single pass: 185.05 ms
========================== END ===========================
nthreads: 12
Elapsed time: 15648 ms
Average single pass: 156.48 ms
========================== END ===========================

slightly alter our goal and defer adopting atomic as our solution since it's more complicated than we thought and it needs more dedication and consideration. There's no harm to merge the relevant work into master.

Added a logic to skip empty segments when grouping by on very few keys, and the perf is the same as the all thread-local buffer impl.
=========== bench_test_aggreate_count summary ============
nrows: 1000000
nthreads: 1
reps: 1
1566232929 : PROGRESS: groupby_aggregate_impl.cpp(group_aggregate_container:242): num_local_buffers: 3
1566232929 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:191): Filling group container:
1566232930 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:205): Group container filled in 0.609557
1566232930 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:206): Writing output:
1566232930 : PROGRESS: groupby_aggregate_impl.cpp(merge_local_buffer_set:441): Merging local buffer set
1566232930 : PROGRESS: groupby_aggregate_impl.cpp(merge_local_buffer_set:492): Merging finished in 5.271 ms.
1566232930 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:209): Output written in: 0.007064
Elapsed time: 621.634 ms
Average single pass: 621.643 ms
========================== END ===========================
=========== bench_test_aggreate_count summary ============
nrows: 1000000
nthreads: 2
reps: 1
1566232930 : PROGRESS: groupby_aggregate_impl.cpp(group_aggregate_container:242): num_local_buffers: 3
1566232930 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:191): Filling group container:
1566232930 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:205): Group container filled in 0.327577
1566232930 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:206): Writing output:
1566232930 : PROGRESS: groupby_aggregate_impl.cpp(merge_local_buffer_set:441): Merging local buffer set
1566232930 : PROGRESS: groupby_aggregate_impl.cpp(merge_local_buffer_set:492): Merging finished in 7.233 ms.
1566232930 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:209): Output written in: 0.00887
Elapsed time: 342.15 ms
Average single pass: 342.168 ms
========================== END ===========================
=========== bench_test_aggreate_count summary ============
nrows: 1000000
nthreads: 4
reps: 1
1566232930 : PROGRESS: groupby_aggregate_impl.cpp(group_aggregate_container:242): num_local_buffers: 3
1566232930 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:191): Filling group container:
1566232930 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:205): Group container filled in 0.204253
1566232930 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:206): Writing output:
1566232930 : PROGRESS: groupby_aggregate_impl.cpp(merge_local_buffer_set:441): Merging local buffer set
1566232930 : PROGRESS: groupby_aggregate_impl.cpp(merge_local_buffer_set:492): Merging finished in 11.627 ms.
1566232930 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:209): Output written in: 0.013266
Elapsed time: 223.665 ms
Average single pass: 223.68 ms
========================== END ===========================
=========== bench_test_aggreate_count summary ============
nrows: 1000000
nthreads: 8
reps: 1
1566232930 : PROGRESS: groupby_aggregate_impl.cpp(group_aggregate_container:242): num_local_buffers: 3
1566232930 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:191): Filling group container:
1566232931 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:205): Group container filled in 0.161291
1566232931 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:206): Writing output:
1566232931 : PROGRESS: groupby_aggregate_impl.cpp(merge_local_buffer_set:441): Merging local buffer set
1566232931 : PROGRESS: groupby_aggregate_impl.cpp(merge_local_buffer_set:492): Merging finished in 11.68 ms.
1566232931 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:209): Output written in: 0.013831
Elapsed time: 181.267 ms
Average single pass: 181.276 ms
========================== END ===========================
=========== bench_test_aggreate_count summary ============
nrows: 1000000
nthreads: 12
reps: 1
1566232931 : PROGRESS: groupby_aggregate_impl.cpp(group_aggregate_container:242): num_local_buffers: 3
1566232931 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:191): Filling group container:
1566232931 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:205): Group container filled in 0.129864
1566232931 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:206): Writing output:
1566232931 : PROGRESS: groupby_aggregate_impl.cpp(merge_local_buffer_set:441): Merging local buffer set
1566232931 : PROGRESS: groupby_aggregate_impl.cpp(merge_local_buffer_set:492): Merging finished in 14.669 ms.
1566232931 : PROGRESS: groupby_aggregate.cpp(groupby_aggregate:209): Output written in: 0.016372
Elapsed time: 152.191 ms
Average single pass: 152.213 ms

With skipping the empty segments impl + uplifting local buffer as global buffer, the perf is even faster.
=========== bench_test_aggreate_count summary ============
nrows: 1000000
nthreads: 1
reps: 3
Elapsed time: 1723.51 ms
Average single pass: 574.507 ms
========================== END ===========================
=========== bench_test_aggreate_count summary ============
nrows: 1000000
nthreads: 2
reps: 3
Elapsed time: 956.427 ms
Average single pass: 318.811 ms
========================== END ===========================
=========== bench_test_aggreate_count summary ============
nrows: 1000000
nthreads: 4
reps: 3
Elapsed time: 524.067 ms
Average single pass: 174.691 ms
========================== END ===========================
=========== bench_test_aggreate_count summary ============
nrows: 1000000
nthreads: 8
reps: 3
Elapsed time: 435.011 ms
Average single pass: 145.006 ms
========================== END ===========================
=========== bench_test_aggreate_count summary ============
nrows: 1000000
nthreads: 12
reps: 3
Elapsed time: 365.199 ms
Average single pass: 121.735 ms
========================== END ===========================

moved benchmark testing code into #2260.

@hoytak, my bad, this is not my most recent change.

passed internal


#538 - WIP - Redesign Organizations Page

Done

Hierarchy example-
Grand parent- Code for All
Parent-Code for America
Child- Hack for LA

Children go straight to Organization's page.

Parents without children go straight to Organization's  page

View All button expands view.

Wrote test code contributor spec , Test passing locally

Issues to be worked:
1. Tab Selected Color not changing, Hovering is working
 2. CheckBox Text Color not changing

3. Dropdown pointer color #004364 not changing

Thanks Kevin for reviewing . Thats is why I wanted review, I will make the appropriate changes . Thanks for guiding me


Issue4243

This PR solves #4243 by

renaming the accordion for the 'hot water' section;
attaching the proper units to each section.

Additionally, the 13% hot water demand maximum for solar thermal panels in the Buildings section is now mentioned in the slider text.

Thanks for checking, I have corrected the Dutch translation as well.


Allow the addition of IP-based ingress rules

Based on #44.

@antonbabenko when this planned to go into master :)?

@holms it is rather tricky to maintain two versions of modules for 0.11 and 0.12. Now all features are in 0.12, and v2.6.0 has been released with this feature.
I apologize for the delay with this!

That’s fine:) using 0.12 already


ref: move template to use action package

What this PR does / why we need it:
This refactors helm template to use core logic found in action.Install instead of having a one-off implementation of chart rendering.
Special notes for your reviewer:
If applicable:

[ ] this PR contains documentation
[x] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

closing in favour of #5365


Using vue-cli-service lint --fix, lints/fix all matched files instead of just staged files

Description
I have the following config
"lint-staged": {
    "*.vue": [
      "vue-cli-service lint --fix"
    ]
}

when running it will actually fix my entire code base instead of just the staged files.

*ts included 🤷♂

Could be any mistake on my end?
I'm running<EMAIL_ADDRESS>

Update:
Just changed my config to:
{
    "linters": {
      "*.{ts,tsx}": [
        "prettier --write --parser typescript",
        "git add"
      ],
      "*.vue": [
        "prettier --write --parser vue",
        "git add"
      ],
      "*.{ts,vue}": [
        "vue-cli-service lint",
        "git add"
      ]
    }
  }

Works perfectly now!


Respect Default Arguments When Using @Property

Is your feature request related to a problem? Please describe.
I can define a component that takes an argument annotated with @Property and provide a default value, however, when the module is generated, the default value is completely ignored and only getProperty(<key>) is used rather than getProperty(<key>, <default>).
Describe the solution you'd like
Ideally, during generation, the default value is acknowledged and respected in the result as described above.
Describe alternatives you've considered
Alternative is to instead make the argument nullable, then using ?: where I'm using the property to get the default, but this sort of masks the fact there is a default property.
Target Koin project
koin-annotations

problem is to deal with default arguments case. How to know if you want the default argument value when you use @Property 🤔

Maybe this is overly complex and it also may not work out like I'm thinking, but something like this seems like it might work.
interface DefaultGenerator<T> {
    fun generate(): T
}

annotation class Property(/*...*/ defaultGenerator: KClass<out DefaultGenerator<*>>? = null)

You would then generate code that uses getProperty(<key>, <call the generate function if it exists>)
It's may not be worth the added complexity and at this point it seems easier to define the default in the code rather than the parameters, but I think the theory behind the above would work (there would obviously be some requirements that the implementation of the DefaultGenerator either has a no args constructor or is an object).

There may be some expanded/interesting use cases for this in relation to #54.

I'm stuck on some dev about accessing the default value expression. I'm waiting some support on this point 👍

I'm stuck on some dev about accessing the default value expression. I'm waiting some support on this point 👍

I'm not sure I understand what you're saying? Are you waiting for some external support from KSP? Or are you saying you want some support on this in the form of a PR/contribution to the project?

Either design an annotation that provides the default value itself, or for now we are on hold. The solution would need us to go through IR exploration.

@Property("key", "defaultValue") generated code then uses the getProperty("key", "defaultValue")
yes, this was one of the initial states. I can go for this/

I need a separated branch build for it. I will post here the RC releases that will be published

The problem here is that we can't go with generic type value annotation class Property(val value: String, val defaultValue : Any)
We need a String or another kind of compatible/primitive data.
The question is then, how to provide properties and default values with annotations way.

That's an idea, but what happens if multiple annotated values are provided for the same property? I guess we detect that and throw an error?
I'm also having Junit's @ValuSource annotation come to mind. It has multiple fields/properties but you only set one, the one that you set must correspond to the type of your parameter. Something similar could maybe be done here, though the tricky part is figuring out how to tell the difference between a set value and an unset value because annotations can't have nullable properties. Junit makes use of arrays, but I'm not certain if that makes sense here.
In short, the proposed approach looks good.

ok thanks 👍

#141 is bringing @ProperyValue to add on a field, to associate the right Property default value


TestCommand throwing error

Hey guys,
Created a fresh Laravel app, tried to run migrations and received this error:
syntax error, unexpected ')'

  at vendor/nunomaduro/collision/src/Adapters/Laravel/Commands/TestCommand.php:104
    100▕             $parallel ? [
    101▕                 'LARAVEL_PARALLEL_TESTING'                    => 1,
    102▕                 'LARAVEL_PARALLEL_TESTING_RECREATE_DATABASES' => $this->option('recreate-databases'),
    103▕             ] : [],
  ➜ 104▕         ))->setTimeout(null);
    105▕
    106▕         try {
    107▕             $process->setTty(!$this->option('without-tty'));
    108▕         } catch (RuntimeException $e) {

      +1 vendor frames
  2   [internal]:0
      Composer\Autoload\ClassLoader::loadClass("NunoMaduro\Collision\Adapters\Laravel\Commands\TestCommand")

  3   [internal]:0
      spl_autoload_call("NunoMaduro\Collision\Adapters\Laravel\Commands\TestCommand")

This line was throwing an error when trying to run migrate in a new Laravel app.
https://github.com/nunomaduro/collision/blob/stable/src/Adapters/Laravel/Commands/TestCommand.php#L103
Once I removed the extra comma it worked.
Cheers

What PHP version are you using?

What PHP version are you using?

Collision requires PHP ^7.3 or PHP 8.

Collision requires PHP ^7.3 or PHP 8.


Default to not logging GitHub token debugging

As argued for in
https://github.com/badges/shields/issues/1314#issuecomment-350564524.
It populates large quantities of text in the logs, where I wish to only
see errors.

Warnings

:warning:

This PR modified helper functions in lib/ but not accompanying tests. That's okay so long as it's refactoring existing code.

Messages

:book:

:sparkles: Thanks for your contribution to Shields, @espadrine!

  Generated by :no_entry_sign: dangerJS


[iOS] Problem with snapToItem and lockScrollWhileSnapping=true

Hi!
If you try to do snapToItem the scroll goes back to the next item instead of going to index sent.
<Carousel
            ...
            enableMomentum={false}
            lockScrollWhileSnapping={true}
 />

If I comment 591 line to 595 it works
     // Snap as soon as next or previous item becomes active on iOS (buggy on Android)
    // WARNING: '_onScrollEnd()' is going to be called twice in a row
    /* if (this._canLockScroll() && IS_IOS &&
         (nextActiveItem === this._activeItem - 1 || nextActiveItem === this._activeItem + 1) &&
         (this._itemToSnapTo !== this._activeItem - 1 && this._itemToSnapTo !== this._activeItem + 1)) {
        this._onScrollEnd && this._onScrollEnd(event);
     }*/

React native: 0.48.4
RN-SC: 3.3.3 / 3.3.2
Thanks for the support!

Hi @KarlosQ,
Well, good catch! I will need to either get rid of this feature or add yet another flag...

I've decided to remove the code since the associated feature wasn't essential but was really error-prone. The fix has been published in version 3.3.4 ;-)


Organize GIFs in a table and Add a GIF

Added one more code gif and organized all of them in a table


starting work

At this point, we should be each creating new files for the scripts we will work on. Therefore, there will be no conflicts. The only problem might be that more than one of us starts working on the same type of script, which would not be a git conflict.
I will not be working on output tables or graphs. I am working on the calculation of the “universal” output files;
(1) all estimates, se’s and CI’s for subunits (qdt_mass_g_m2_yyyy.txt),
(2) all comparisons among units within refuges (CompareSSMassWithinRefuge_yyy.txt, where XX is species,
(3) arbitrary comparisons of groups of subunits (e.g., management) and over years (tbd; EAL working on this).
I just pushed all the output files that are ready.
Let me know if this does not make sense.

We can use issues to keep track of things within git hub. OK to repeat in email, but here it can be centralized

Makes sense. Thumbs up.


Make zip feature stable

Removes all code related to the zip install feature as experimental in preparation for a stable release.
Microsoft Reviewers: Open in CodeFlow

/azp run


Develop 3-4 use-cases to how the system can be used

Assignment due on 2/16/15: Develop 3-4 use-cases that can benefit the development process on how the system can be used on completion of the SPDX Git scanner.

ID: 1
Title: Request SPDX for Git Branch
Description: User requests an SPDX document for their Git Branch, upon completion, expects a single SPDX document to appear in the branch

User executes git scanner with arguments of the git branch
System retrieves all files and packages from the branch
System iterates through each file and checks if that file has been scanned by checking the DB using the file's SHA1
If the file has never been scanned, scan it through doSOCS
Upon completion iterate through all files and generate a single SPDX document based on new scans and previous scans stored in cache from the DB
Insert the new SPDX document into the Git branch.
Notify the user that the document has been placed in the Git branch

Added 2 use-cases to the Wiki. We are in need of 1 more.

Completed on WIKI