tty issues when switching to raw mode on Windows

While investigating https://github.com/nodejs/node/issues/5384 and a host of related issues, we have discovered a few issues and incompatibilites with the current Windows implementation of tty in libuv.

Switching to raw mode doesn’t work reliably. This is by far the most severe issue, and the cause of arrow keys not working on Windows per recent user reports. Libuv is relying on CloseHandle to interrupt the call to ReadConsole in another thread. This might have worked on older versions of Windows, but it is unreliable on Windows 7, and doesn’t work at all in Windows 8.1 and higher. On Windows 8.1 and higher, ReadConsole doesn’t return until ENTER is pressed.
Even when ReadConsole is interrupted successfully, any keypresses in its buffer are lost forever, whereas on Linux switching to raw mode causes any buffered keypresses to be emitted as raw keypresses.

After much investigation, we have identified two possible fixes:

Make ReadConsole return. We have tested CloseHandle, SetConsoleMode, CancelIoEx and none of those do the job reliably. The only reliable way we have found is to send VK_ENTER to the console using WriteConsoleInput, similarly to how libuv already does to cancel the console wait in raw mode.
Eliminating the use of ReadConsole and implementing line input in terms of ReadConsoleInput. This essentially amounts to re-implementing a good portion of ReadConsole’s functionality.

Fix a) is much easier, and also the only fix of the two that would be admissible in Node LTS releases, so we are pursuing it first. It doesn’t address the second issue (pending line input getting lost when transitioning to raw mode), but again that seems less critical.
Regarding fix b), I wanted to first get your feedback on whether it would be desirable before deciding if we should attempt it. We would have the ability to emulate the Unix tty behavior more closely, and re-play any pending line input after switching to raw mode (fix issue 2). We would have to keep our own buffer and process arrow keys, backspace, etc.. Line history is implemented by ReadConsole, and doesn’t seem to have a counterpart in the Unix tty implementation. There are a few Node modules implementing history though, including the built-in readline module, so it might not be a bad thing to level this platform difference. The Unix tty also doesn’t handle arrow keys - they are returned as escape sequences. Again, we could consider emulating the same, which would probably also make it easier to implement. Would such behavior be desirable? It would have to be considered a breaking change on Windows.
cc @saghul @piscisaureus

Sounds good to me! As for b), it looks quite complex, I'd got here if we have no other choice, I trust your judgement there. :+1:

I know the CloseHandle() trick doesn't work since windows 8 any more (I'm not aware of any reliability issues with Windows 7 though) but as @orangemocha said, there aren't really any good alternative ways to cancel a line buffered read.
Most of the time node got away with it by making sure to never start reading in line buffered mode in the first place; when we start up the repl just switch to raw mode before starting to read on stdin.
But somehow every year or some somehow comes along and makes a change that reverses the order. I find this really an issue with open source (and node in particular) - institutional knowledge is lost so fast. All the subtle mistakes we made and fixed in the repl, url/path path parsing, module loading etc., are made again about every other release, and they will be made again, probably somewhere in the next 12 months, and things will break, and people will complain, and patches will be released, and the cycle will start all over.
Anyway, that was a grumpy tangent.
My advice would be to get rid of line buffered mode entirely. Who needs it anyway?
If not then just land any hack you have in mind.
The only thing I would strongly recommend against is building readline into libuv. It's really not worth it.

Thanks for your insights Bert!

Thanks for your input, @piscisaureus !

node got away with it by making sure to never start reading in line buffered mode in the first place

There might have always been a race condition there. Even if you just do process.stdin.setRawMode(true), the mere initialization inside the process.stdin getter runs this code https://github.com/nodejs/node/blob/c490b8ba54df6c730f7bfd02aaafe7c34f571f9e/src/node.js#L665-L716.
The first line in that range triggers a line buffered read, with the following code path:

 	node.exe!uv_tty_queue_read_line(uv_loop_s * loop, uv_tty_s * handle) Line 488	C
 	node.exe!uv_tty_queue_read(uv_loop_s * loop, uv_tty_s * handle) Line 507	C
 	node.exe!uv_tty_read_start(uv_tty_s * handle, void (uv_handle_s *, unsigned int, uv_buf_t *) * alloc_cb, void (uv_stream_s *, int, const uv_buf_t *) * read_cb) Line 937	C
 	node.exe!uv_read_start(uv_stream_s * handle, void (uv_handle_s *, unsigned int, uv_buf_t *) * alloc_cb, void (uv_stream_s *, int, const uv_buf_t *) * read_cb) Line 89	C
 	node.exe!node::StreamWrap::ReadStart() Line 129	C++
 	node.exe!node::StreamBase::ReadStart(const v8::FunctionCallbackInfo<v8::Value> & args) Line 41	C++
 	node.exe!node::StreamBase::JSMethod<node::StreamWrap,&node::StreamBase::ReadStart>(const v8::FunctionCallbackInfo<v8::Value> & args) Line 117	C++
     [...]
    at ReadStream.Socket._read (net.js:398:10)
    at ReadStream.Readable.read (_stream_readable.js:336:10)
    at ReadStream.Socket.read (net.js:289:43)
    at ReadStream.Socket (net.js:171:12)
    at new ReadStream (tty.js:27:14)
    at process.stdin (node.js:665:19)

..and the last line cancels the read, in:
	node.exe!uv_tty_read_stop(uv_tty_s * handle) Line 989	C
 	node.exe!uv_read_stop(uv_stream_s * handle) Line 107	C
 	node.exe!node::StreamWrap::ReadStop() Line 134	C++
 	node.exe!node::StreamBase::ReadStop(const v8::FunctionCallbackInfo<v8::Value> & args) Line 46	C++
 	node.exe!node::StreamBase::JSMethod<node::StreamWrap,&node::StreamBase::ReadStop>(const v8::FunctionCallbackInfo<v8::Value> & args) Line 117	C++
     [...]
    at process.stdin (node.js:716)

The bug in Node started appearing much more frequently after a c-ares update. My best theory is that the c-ares update caused a change in the timing in Node's startup, in which turn causes the problematic side of the race condition to win the race more often.

My advice would be to get rid of line buffered mode entirely. Who needs it anyway?

@piscisaureus I am not sure... is that realistic? Are you suggesting that most users don't read from stdin directly, but rather use the readline module? In any case, it would be a significant breaking change and it would have to go through some deprecation period.
Re-implementing buffered line read in libuv in terms of raw mode would have to be motivated by the opportunity to emulate the unix behavior more closely. I gather from your feedback that is not a very useful goal.
In any case, we'll need to land the hack to make ReadConsole return. A pull request is coming soon.

I am not sure... is that realistic? Are you suggesting that most users don't read from stdin directly, but rather use the readline module?

Well, people read from stdin. But do people really read from the console in line buffered mode?
Note that your typical echo foo | node bla.js is unaffected, since stdin is a pipe in this case and not a console.

Re-implementing buffered line read in libuv in terms of raw mode would have to be motivated by the opportunity to emulate the unix behavior more closely. I gather from your feedback that is not a very useful goal.

It is my sense that it's not a useful goal. But I don't know everything, so if there is evidence to the contrary I will change my opinion.
It'd also be a little weird though as node would end up with two implementations of readline, one in node's readline module and one in libuv.

In any case, we'll need to land the hack to make ReadConsole return. A pull request is coming soon.

(y)

The Windows 10 update coming some time later this year makes changes of some kind to the console subsystem (the background being the new Linux subsystem which at the very least needs Windows to be as good as a vt100, sigh). I don't know if this will manifest in any API-level changes (though the ability to use ANSI escape codes might be useful for output, at least) but it may make this

Re-implementing buffered line read in libuv in terms of raw mode would have to be motivated by the opportunity to emulate the unix behavior more closely. I gather from your feedback that is not a very useful goal.

more feasible. Or it may not.


[369] allow support users to edit confirmed allocation numbers

Context

This trello ticket

Changes proposed in this pull request

Add edit/update functionality to change allocation numbers on the Support console

Guidance to review

Go to the support console
Click on the PE Allocations tab
Choose a provider
Click the Change link on the allocation number

Checklist

[x] Make sure all information from the Trello card is in here
[x] Attach to Trello card
[x] Rebased master
[x] Cleaned commit history
[x] Tested by running locally

 Allow support users to edit confirmed allocation numbers

Closing this as feature no longer needed


Update SipPhone.java

My asterisk had some problems with your implemention of the unregister method. With the register without password it response allways an 401: Unauthorized exeption.
So i had added the unregister method with the username and password parameter. When the old parameter are used nothing has changed.
Added new unregister method with username and password to pass the security challenge at an asterisk.
I'm sorry that my English isn't as well as it should be.
Please check the changed javadoc.
Regards
Daniel Brenzel

Hi,
It seems that you're passing a username and password explicitely, but the existing method is using the credentials hashmap at https://github.com/efinder2/sipunit/blob/314d78c40a725aeb9a302f227028383d2e387956/src/main/java/org/cafesip/sipunit/SipPhone.java#L100, I'm wondering if we should rather reuse the credentials map and addUpdateCredential instead of creating a new method ?

I hadn't see the credantials hashmap before. Sorry maybe I was a bit to fast. Monday I'll check this at work. At the moment I havn't access to the source code and the test-server.
It would be nice if you add a reference to the credentials to the unregister method. I only had saw the password and username field in the register-method so I was a bit confused. I thought you need a password.
It would be nice, if the register-method store the credentials.
Should I Implement this?

Yes, please implement this if you can that would be a nice contribution


[Windows] Cpp compile failure

In linux both RyuJIT and Cpp compiler work fine, but it is just RyuJIT work fine in windows.
Code
using System.Diagnostics;

namespace Launcher
{
    class Program
    {
        static void Main(string[] args)
        {
            Process.Start("abc.exe", "test");
        }
    }
}

Short log
         link  @"obj\release\netcoreapp3.1\win-x64\native\link.rsp"
   1:7>Launcher.obj : error LNK2019: unresolved external symbol CryptProtectMemory referenced in function "public: static unsigned char __cdecl System_Private_CoreLib::Interop_Crypt32::CryptProtectMemory(class System_Private_CoreLib::System::Runtime::InteropServices::SafeBuffer *,unsigned int,unsigned int)" (?CryptProtectMemory@Interop_Crypt32@System_Private_CoreLib@@SAEPEAVSafeBuffer@InteropServices@Runtime@System@2@II@Z) [D:\a\Sample\Sample\Launcher.csproj]
           Hint on symbols that are defined and could potentially match:
             "public: static unsigned char __cdecl System_Private_CoreLib::Interop_Crypt32::CryptProtectMemory(class System_Private_CoreLib::System::Runtime::InteropServices::SafeBuffer *,unsigned int,unsigned int)" (?CryptProtectMemory@Interop_Crypt32@System_Private_CoreLib@@SAEPEAVSafeBuffer@InteropServices@Runtime@System@2@II@Z)
   1:7>Launcher.obj : error LNK2019: unresolved external symbol CryptUnprotectMemory referenced in function "public: static unsigned char __cdecl System_Private_CoreLib::Interop_Crypt32::CryptUnprotectMemory(class System_Private_CoreLib::System::Runtime::InteropServices::SafeBuffer *,unsigned int,unsigned int)" (?CryptUnprotectMemory@Interop_Crypt32@System_Private_CoreLib@@SAEPEAVSafeBuffer@InteropServices@Runtime@System@2@II@Z) [D:\a\Sample\Sample\Launcher.csproj]
           Hint on symbols that are defined and could potentially match:
             "public: static unsigned char __cdecl System_Private_CoreLib::Interop_Crypt32::CryptUnprotectMemory(class System_Private_CoreLib::System::Runtime::InteropServices::SafeBuffer *,unsigned int,unsigned int)" (?CryptUnprotectMemory@Interop_Crypt32@System_Private_CoreLib@@SAEPEAVSafeBuffer@InteropServices@Runtime@System@2@II@Z)

Full log (Step Build)
https://github.com/LizeHelesta/Sample/runs/466829439

Can you try adding:
    <ItemGroup>
      <NativeLibrary Include="Crypt32.lib" />
    </ItemGroup>

To your project an see if it fixes the failure?

@MichalStrehovsky It work, log


Move away from DevExpress, to other open source tools

DevExpress is a very good tool nevertheless. Due to its licensing model, every developer consumes 1 license, making this open source project limited to those who have license.
This also limits where the application can be compiled without displaying DevExpress trial version dialog.
What will replace DevExpress is still unknown at the moment. I am fairly new to C# and its open source tools so if anyone can suggest anything, please help me out. Thanks.

Thanks to my manager, i am able to get a full license to develop with DevExpress without having to spend time looking for alternative for now.
Will consider to reopen this issue when my license expires.


Question: use camel dependency version 3.20.3 or higher

Hi,
The current release of camel-k is using camel 3.20.1.
The problem is that I use azure service bus component and the "abandon message" feature on failure is implemented from camel 3.20.3.
Any chance that you upgrade the camel dependency version soon ?
thanks

Hello. I don't think so. The main limitation at this stage is that we need to use Camel Quarkus runtime, which is the one that really drives the Camel version adopted. In the future we should be a bit more free and be able to use other versions, but at this stage this is not available. Sorry.

Ok thanks for the reply, I'll manage the error/failure in another way


test: manager and scheduler config

Signed-off-by: Gaius<EMAIL_ADDRESS>
Description

Add scheduler config' CDNDirPath attribute test.
Add manager config test.

Related Issue
Fix #391

Motivation and Context
N/A

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation Update (if none of the other choices apply)

Checklist:

[x] Code compiles correctly.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Codecov Report

Merging #392 (4a78b0c) into main (c461000) will decrease coverage by 0.15%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #392      +/-   ##
==========================================
- Coverage   42.42%   42.27%   -0.16%
==========================================
  Files          73       72       -1
  Lines        5640     5637       -3
==========================================
- Hits         2393     2383      -10
- Misses       2901     2906       +5
- Partials      346      348       +2

Flag
Coverage Δ

unittests
42.27% <ø> (-0.16%)
:arrow_down:

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

Impacted Files
Coverage Δ

pkg/util/net/iputils/ip_utils.go
61.22% <0.00%> (-4.09%)
:arrow_down:

client/daemon/peer/peertask_stream.go
58.11% <0.00%> (-1.14%)
:arrow_down:

client/daemon/peer/piece_manager.go
67.07% <0.00%> (-0.82%)
:arrow_down:

client/daemon/peer/peertask_base.go
32.76% <0.00%> (-0.73%)
:arrow_down:

client/daemon/peerhost_stub.go


Declaration Constructors should instead be able to take the enum for a Color Keyword instead of a Color Keyword value.

Unnecessary use of objects as part of a constructor.

Resolved.


False Map Data

Challenge http://www.freecodecamp.com/challenges/waypoint-get-set-for-ziplines has an issue. Please describe how to reproduce it, and include links to screenshots if possible.
Hello,
I opened my account today (after the changes you guys did), and suddenly it says that I've completed the following challenges in the pictures (which I did not). Also, it added a lot of new challenges (but I believe I've already completed some of them) However, my map doesn't show that. I'm really confused and frustrated as I feel like my effort has gone to waste. I'm not sure how to continue even or from where to start!

@jasminej90 This is a known issue that we're fixing. Thanks for your patience. For more information, read: https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/August-2015-Improvements


Site search

Issue to document so options for site search:
Option 1. From @timrobertson100 :

just spotted “Google has discontinued sale/renewal of the Google Site Search since Apr 1 2017. The product will be completely shut down by April 1, 2018.” https://enterprise.google.com/search/products/gss.html

Suggestion by @timrobertson100: https://lunrjs.com/, a node.js option (browser or server side) used by http://bid.gbif.org/

Option 3. tipue_search a Pelican plugin that uses BeautifulSoup to generate a json search file on generation and the plugin to search it with JS. Here's a tutorial

Tested Tipue search: seems like the most straightforward option for now.
@timrobertson100 question: do we want a

Search box in the top navigation, where you can type right away
Search icon in the top navigation, which on click opens a search page with a search box.

Option 1 is slightly more convenient, but requires all search specific javascript to load for every page + takes up more space in the navigation bar (trickier for mobile). Option 2 is the reverse. Something like GBIF BID is like option 2, but without a new page load.

Website now has a dedicated search page that can be accessed from the navbar. Search is implemented with tipue search and styled with bootstrap by adding some classes with jQuery (https://github.com/tdwg/tdwg-theme/pull/11). Closing issue.


create_ap: init at 0.1

Test build, not test run (except for ./result/bin/create_ap --help).

Don't merge yet, I will test this now.

Hm. Cannot test as I'm not running network manager. Maybe someone else can do this? If not, we could close this unmerged, I think...


Remove excess memoization of ConnAdapter instances

Removed memoization of ConnAdapter returned by QC.default_conn_adapter in Queue
QC.default_conn_adapter already memoizes ConnAdapter instance if needed, so memoizing it again is unnecessary.
This double memoization had problem: despite default_conn_adapter memoizing its connection adapter instance as thread-local variable, there's global instance of Queue in @default_queue, and it memoizes @conn_adapter taken from QC.default_conn_adapter. So connection becomes global.
https://github.com/QueueClassic/queue_classic/blob/4260d8963ddef91bdb9ae390d93e811521b83350/lib/queue_classic/config.rb#L30-L33
For example, this singleton connection causes problems with ActiveRecord pool reaper (https://github.com/QueueClassic/queue_classic/issues/317#issuecomment-520186299).
If connection adapter (and its connection) was really intended to be global, and not per-thread, then I don't understand why QC.default_conn_adapter has thread-local memoization (8e208e2fe529da194a0dddc721f2e57f0d45ab9f).
As Queue has setter conn_adapter=, for backwards compatibility, if connection is set via setter, it's then returned by conn_adapter. However, I don't understand necessity of this setter API, as overwriting connection adapter for existing queue instance is a recipe for mess. Maybe should be deprecated in future.
Potential problems with this change: it breaks assumption that there's single global connection for all threads. But 8e208e2fe529da194a0dddc721f2e57f0d45ab9f suggests that it's not design assumption but a bug, and there should be one connection per thread. If an app starts lots of threads, uses QC in them and then kills them, it would be really bad as connections will remain open until GC, however isn't it by design? ConnAdapter has disconnect method.

Removed memoization of ActiveRecord::Base.connection in default_conn_adapter
Connection borrowed from ActiveRecord pool by calling connection shouldn't be stored anywhere as it will be likely returned back to pool with ActiveRecord::Base.clear_active_connections!, or with reap if thread that borrowed it is dead. Rails calls this method after handling each request. Again, ActiveRecord has its own memoization for connection assigned to current thread.
This probably fixes #317 (common PG::ConnectionBad: connection is closed error).
Memoization for non-activerecord connections remains, as connection managed by QC itself should have its owner. Also, there's setter too, and if ConnAdapter is set via setter, it's no longer taken from ActiveRecord.
Potential problems with this change: when using ActiveRecord without Rails, you have to call clear_active_connections!, but at least now it's safe to call it.

Removed memoization of ActiveRecord::Base.connection in default_conn_adapter

This was definitely a problem for us when we upgraded from Rails 5.1 to 5.2.
Due to AR reaping an idle connection, we had hard to debug error: if a worker was idle for 300 seconds or more and then finally received a request, all AR models continued to work fine, but invoking deliver_later (ActiveJob powered by QueueClassic) resulted in a PG::ConnectionBad exception.
Current workaround for us is to disable sharing connection via setting export QC_RAILS_DATABASE=false.
@kolen thanks for looking into this!

@kolen my understanding is that https://github.com/QueueClassic/queue_classic/pull/312 took a bit different implementation direction, nonetheless it fixed the root cause.

Closing, seems that the issue has been fixed.


Need to draft chapters 25 and 28

@pvelleman I'm not sure how to get the 39 observations of logAge and logDiam from Craters.csv from the  168 that in that file.  Thanks in advance for any guidance, Nick

Craters <- read.csv("http://www.amherst.edu/~nhorton/sdm4/data/Craters.csv")
dim(Craters)
[1] 168   4
Craters <- mutate(Craters,

logDiam = log(Diam.km.),
logAge = log(age..Ma.))

Cratermod <- lm(logDiam ~ logAge, data=Craters)
favstats(~ logAge, data=Craters)
min       Q1  median      Q3      max     mean       sd   n missing
-9.808177 3.608111 4.82391 5.94985 7.783224 3.761161 3.464722 168       0


Better plugin organization: take into account common vs node vs web plugins

The contrib has a separation already https://github.com/open-telemetry/opentelemetry-js-contrib/tree/master/plugins
However, I'm guessing core would also have some common parts (the "core" parts :) )
Also
grpc-js is only for node, but there's also a grpc plugin which is also for node. Not sure what the difference is.
It should be easy for someone that tries to create a plugin to understand what the structure of what needs to be implemented looks like.

I think we should probably split this into web, node, and common directories. Not just for plugins but for the whole project.
As far as plugins go, they should go into contrib.


Failing Test in Australia/Melbourne

The particular test that uses Date.parse to construct a unix timestamp was failing in the Australia/Melbourne timezone - the returned unix timestamp actually works out to be October 11 in Melbourne.

In the past we've normalized the dates using moment tz to avoid tests failing when run on machines in different timezones:
https://github.com/stefanpenner/ember-moment/blob/master/tests/unit/helpers/date.js

Ok cool that makes sense. Thanks Jason. PR Updated.

LGTM


🍔 Modify hamburger icon

Summary

This issue will implement the https://github.com/jonsuh/hamburgers to make it work with Squarespace
The idea is to generate the corresponding icon CSS into the site, this will be working as no js required

Implementation

The plugin using gulp for bundle the sass files
There is issue with gulp-sass that not allow to append custom string (or data) to the end of the sass file to dynamically import
Therefore I made a trick on node_modules/gulp-sass/index.js opts.data = file.contents.toString() + opts.data; to append the type import
So only height can be config right now (default 2px)

Can be closed now as it will be taken care of in https://github.com/BeyondspaceStudio/beyondspace-admin/pull/82


Fix null pointer exception when logging on Android

The Android plugin expected for the attributes argument to
always be present when called from Dart code.
Adding a default empty attributes object fixes this issue.

@triztian great catch; thanks for this

@triztian great catch; thanks for this


[release-1.20] Add kubernetes registry in front of ServiceEntry

Manual cherrypick required.
#51003 failed to apply on top of branch "release-1.20":
Applying: add kubernetes registry infront of serviceentry
Applying: add test
Applying: add release note
Applying: address comments
Using index info to reconstruct a base tree...
M	pilot/pkg/serviceregistry/aggregate/controller.go
Falling back to patching base and 3-way merge...
Auto-merging pilot/pkg/serviceregistry/aggregate/controller.go
CONFLICT (content): Merge conflict in pilot/pkg/serviceregistry/aggregate/controller.go
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0004 address comments
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

@hzxuzhonghu this never landed if you are interested in patching it up


Changes to use f-strings instead of format

Codecov Report
Base: 63.41% // Head: 63.47% // Increases project coverage by +0.06% :tada:

Coverage data is based on head (3b09127) compared to base (2edd000).
Patch coverage: 54.54% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #51      +/-   ##
==========================================
+ Coverage   63.41%   63.47%   +0.06%
==========================================
  Files          10       10
  Lines         574      575       +1
==========================================
+ Hits          364      365       +1
  Misses        210      210

Impacted Files
Coverage Δ

dfimagetools/artifact_filters.py
83.67% <0.00%> (ø)

dfimagetools/data_stream_writer.py
0.00% <ø> (ø)

dfimagetools/decorators.py
0.00% <0.00%> (ø)

dfimagetools/environment_variables.py
75.75% <ø> (-0.72%)
:arrow_down:

dfimagetools/file_entry_lister.py
50.60% <0.00%> (ø)

dfimagetools/path_resolver.py
96.15% <ø> (ø)

dfimagetools/bodyfile.py
95.86% <85.71%> (+0.06%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Review comments H1L021 PR # 46 - Python Script

Comment in PR #46 @H1L021
Regarding the python script. It is really cool :D I was thinking on doing something similar LOL. I just tested it and it works. Just a quick question: Would the script work when creating relationships in a year different than 2022?

Actually, it won't and I put as a To-Do task at the end of my PR.
I will create a new PR to add current year instead of 2022

Hi @H1L021 I just modified your PR with the update to the script.
I am basically working with a dictionary instead of a list.
The keys of the dictionary are the years, and the values of the dictionary are lists with the numbers used for the ID.
As we discussed before, I added this script to the ossemDM.py script so we can now add the ID to new yaml files after merging PR's. 🍻
Even though your script is now part of the ossemDM.py script, please do not delete the updated generate_uuid. py script. 🙏 I will archive the script within the project later. We might need to use it in the future 👍
I am closing this issue. Thank you again 🙌


 I've tried and while there are no explicit errors, the module doesn't seem to function.

It works half way for me. It redirects only if the translation is available in my i18n files. For now, I'm staying on angular 5. To be compatible with angular 6 this library would have to use the new angular/router and rxjs6.

FYI, I've opened a PR regarding this topic https://github.com/Greentube/localize-router/pull/131

Solved by PR from @NKjoep


Issue#1087: Fix filters dropdown items are not viewable

First thing, PLEASE READ THIS: ReactPlay Code Review Checklist

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
I have made the dropdown title and dropdown in two separate lines and also, removed some remove some padding which was a lot of spaces in the mobile view.
Also, I have made changes in the Tube2Tunes.js play file because the import was breaking the code because of file naming mismatch while importing.
Fixes #1087
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.
Checklist:

[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Screenshots or example output

Great work @niteshseram and good to see you here as well(after the web apis project 👍 )

Thanks @atapas


Adding a link to an example to turn off Cortana

Adds a link to an example of the powershell command

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

committed suggested change. thanks.

@dstrome PR has been copyedited and is ready for final review, could you please check and merge? Thanks!

section removed from topic and replaced with link to https://docs.microsoft.com/en-us/microsoftteams/cortana-in-teams


[feature](file reader) Merge broker reader to the new file reader

Proposed changes
Issue Number: close #xxx
Currently, there are two sets of file readers in Doris, this pr rewrites the old broker reader with the new file reader.
TODO:

rewrite stream load pipe and kafka consumer pipe

Problem summary
Describe your changes.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[x] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[x] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[x] No Need

Does it need to update dependencies:

[ ] Yes
[x] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[x] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 34.68 seconds
load time: 429 seconds
storage size:<PHONE_NUMBER>4 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221209155101_clickbench_pr_61199.html


import Red Hat ice_setup spec file

This PR is a straight import of what we're shipping downstream in the RHEL packages for the v1.2.3 RHCeph product (minus the %changelog).

:+1:


PUBLIC pseudo-role for virtual schema privileges

Background: https://airtable.com/tblD3oZPLJgGhCmch/viw8IfZMg9Up8SP33/rec4QhSATOgIYt9W8
PM: @awoods187
Eng Partner: @mberhault

Turns out the only thing to really document here is that all users belong to the new public role, and you can grant/revoke privileges to that role. So there's now a way, for example, to make a table readable to every user in the system, e.g.,GRANT SELECT ON mytable TO public. There was no way of doing this before.
Based on chats with @mberhault, there aren't any other docs implications here.


Unable to start controller

The latest version doesn't start because of the following error
argocd-progressive-rollout-5dc46f5d86-x5qb8 argocd-progressive-rollout 2021-04-12T10:06:16.393Z	INFO	controller-runtime.metricsmetrics server is starting to listen	{"addr": ":8080"}
argocd-progressive-rollout-5dc46f5d86-x5qb8 argocd-progressive-rollout 2021-04-12T10:06:16.393Z	ERROR	setup	unable to read configuration	{"error": "strconv.ParseBool: parsing \"\\\"true\\\"\": invalid syntax"}
argocd-progressive-rollout-5dc46f5d86-x5qb8 argocd-progressive-rollout github.com/go-logr/zapr.(*zapLogger).Error
argocd-progressive-rollout-5dc46f5d86-x5qb8 argocd-progressive-rollout 	/go/pkg/mod/github.com/go-logr/zapr@v0.2.0/zapr.go:132
argocd-progressive-rollout-5dc46f5d86-x5qb8 argocd-progressive-rollout main.main
argocd-progressive-rollout-5dc46f5d86-x5qb8 argocd-progressive-rollout 	/workspace/main.go:74
argocd-progressive-rollout-5dc46f5d86-x5qb8 argocd-progressive-rollout runtime.main
argocd-progressive-rollout-5dc46f5d86-x5qb8 argocd-progressive-rollout 	/usr/local/go/src/runtime/proc.go:204

After some investigation this seems related to the quote clause in the Secret.yaml. We should also understand why the installation fails as per https://github.com/Skyscanner/argocd-progressive-rollout/runs/2322327460?check_suite_focus=true but the action results in a pass.


Update en-US.json

"Size"

We've decided not to add a size field to contracts, as that would only be useful for some contracts. In the future, please submit all changes to a repo in a single PR, instead of one per file.


Terminal can not detect keyboard/mouse interactions correctly

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

VS Code Version: 1.84.2
OS Version: Windows10

When working with some python packages such as unicurses I face an issue with terminal. Packages like that are used to interact with terminal with keyboard and mouse buttons. The problem in VSCode terminal is that I think the key presses are not directly sent to the shell session and something is in the middle of this route.
A simple way to demonstrate the problem is using one of the unicurses examples which works perfectly fine in cmd, powershell, etc. But if you run it in the vscode terminal (with any shell you want) It will not work.
(This issue is filled in a bug report template, however I'm not sure what I'm asking is a bug or a feature request)

You can enable terminal.integrated.sendKeybindingsToShell for your use case

@meganrogge The solution provided did not change the result. Can you review it again?

This looks like an issue with our old terminal backend "winpty", going forward we are focusing our efforts on the new backend "conpty" which is build by the Console team at Microsoft and should fix many issues with the terminal under Windows. You will need to upgrade Windows to use conpty. You can read more about ConPTY here and here.
/duplicate https://github.com/Microsoft/vscode/issues/45693


Modify link information to correct

"https://cdn.ampproject.org”/" to "https://cdn.ampproject.org"

Current link address is wrong on amp-html-format.md.


[feat] Consider using Enzyme for testing more complex React components

Enzyme
Does your feature request relate to a specific USWDS component?
No
Is your feature request related to a problem? Please describe.
Not necessarily a problem, however our tests are currently limited strictly to RTL and its interaction with the DOM. For a mostly presentational library like this one, that might very well be sufficient. In the event that we want to start testing more specifically to React (props, state, or other implementation details), that's when Enzyme starts to come in handy.
Describe the solution you'd like
If there is agreement that Enzyme truly adds value to our tests (or that we should be testing implementation details in the first place), then we should add Enzyme as a dependency (see Enzyme documentation linked above). New unit tests, where appropriate, should rely on Enzyme for testing logic that cannot be covered by.
Even as the person raising this "issue" I would strongly caution that Enzyme can lead to brittle tests when tightly coupled to implementation details that are subject to change. I would recommend using Enzyme sparingly, typically only where RTL alone is not sufficient.
Describe alternatives you've considered
Alternatively, we do not implement Enzyme. I think it is plenty reasonable to want to keep this library lean, and lean towards making sure that enzyme is not necessary for testing components used within this library. I think that is fully possible, provided they all retain low complexity.

I agree that RTL should be the preferred testing solution, especially considering that this library has a heavy focus on presentational components that are primarily just rendering DOM, without explicit logic related to props & state. I will also note that Enzyme has had an open issue for React 17 support since Aug 2020 and the lack of movement on it is concerning to me.
Are there any specific use cases where we see Enzyme's testing capabilities providing new value here? I'm thinking about the ComboBox component, since that is probably our most complicated component at this time (cc @haworku ). I would also love to hear what @jenniferlynparsons thinks since I know you have lots of opinions on F/E testing :)

I agree that RTL should be the preferred testing solution, especially considering that this library has a heavy focus on presentational components that are primarily just rendering DOM, without explicit logic related to props & state. I will also note that Enzyme has had an open issue for React 17 support since Aug 2020 and the lack of movement on it is concerning to me.
Are there any specific use cases where we see Enzyme's testing capabilities providing new value here? I'm thinking about the ComboBox component, since that is probably our most complicated component at this time (cc @haworku ). I would also love to hear what @jenniferlynparsons thinks since I know you have lots of opinions on F/E testing :)

I agree with being cautious about implementing Enzyme on the library for all the reasons stated. RTL is the preferred testing library of the React team, which gives it a lot of credence.
In my experience, if there appears to be a need to test implementation details it's a useful exercise to consider if there's a way to test the same thing with RTL that hasn't been uncovered. Alternately, that's where I can see integration tests become valuable.
Reference: Write tests. Not too many. Mostly integration.

I agree with being cautious about implementing Enzyme on the library for all the reasons stated. RTL is the preferred testing library of the React team, which gives it a lot of credence.
In my experience, if there appears to be a need to test implementation details it's a useful exercise to consider if there's a way to test the same thing with RTL that hasn't been uncovered. Alternately, that's where I can see integration tests become valuable.
Reference: Write tests. Not too many. Mostly integration.

No need to use Enzyme at the moment. Closing.


Fix type-checking failures

Codecov Report

Merging #175 (d97be65) into master (e0ad333) will increase coverage by 1.24%.
The diff coverage is 0.00%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@            Coverage Diff             @@
##           master     #175      +/-   ##
==========================================
+ Coverage   63.35%   64.59%   +1.24%
==========================================
  Files          10       10
  Lines        1367     1367
  Branches      280      280
==========================================
+ Hits          866      883      +17
+ Misses        423      403      -20
- Partials       78       81       +3

Files
Coverage Δ

src/tinuous/github.py
53.40% <0.00%> (+0.75%)
:arrow_up:

src/tinuous/travis.py
37.70% <0.00%> (ø)

... and 3 files with indirect coverage changes

@yarikoptic Please merge this one soon so that I can rebase other PRs on top of it.


fix: Display informative message when date has wrong format

Description
Closes #4017

Summary by Sourcery
Improve date handling in date picker components by supporting both datetime objects and strings, with added validation for string formats. Fix issue with date parsing by handling invalid formats gracefully.
Bug Fixes:

Handle invalid date format gracefully by returning null instead of throwing an error when parsing dates in the Control class.

Enhancements:

Allow date-related properties in date picker components to accept both datetime objects and strings, with validation for string formats.
Introduce a utility function to convert datetime objects to strings and validate string formats for datetime values.

@sourcery-ai review


Update Dockerfile

Click breaks workers
Issue: https://github.com/rq/rq/issues/1469

Thanks for the PR. The code just got updated along with the blog post. Ended up going with:
FROM python:3.10-alpine

RUN pip install rq-dashboard

# https://github.com/rq/rq/issues/1469
RUN pip uninstall -y click
RUN pip install click==7.1.2

EXPOSE 9181

CMD ["rq-dashboard"]

https://github.com/mjhea0/flask-redis-queue/blob/main/project/dashboard/Dockerfile


⚠ ClamAV has degraded performance

In 7d719ff, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 71 ms

Resolved: ClamAV performance has improved in fdb3c2f.


Support Preview Style: show Slide only

It would be great if marp can only show slides (not the markdown) when in preview mode.

So we can just do the demo/presentation with marp without having to first convert it to ppt.

Thanks.

Agree so much, need it madly.

We're making a clean sweep of piled up issues. It is a duplicated issue with #13.
We must keep editor interface to support better live-preview, and essentially presentation mode is become the another feature.
However, it remains a low priority to develop because we are taking advantage of pdf. (Can make presentation with portable & no environment dependencies)


feedback_required

after trying to login I got the error message
what does that mean?

see #216

thanks, it is very interesting when I log in to chrome instagram works well.
only your code is different, can you tell me what's the difference?

As I said in the other issue, Instagram can detect spam or automated actions. However, this library is poorly maintained and could have some design flaws (like important headers missing) which can lead Instagram to think it's malicious.

Okay it works well again now after maybe in 24h?


chore: reduce imports to Data.Rat.Cast.CharZero

Removing further unnecessary imports on the path to major tactics.

bors d+

bors merge


About wandb

Hello, I set the parameter mode of wandb to offline, because my machine does not have a network, but it will output "wandb: Network error (TransientException), entering retry loop" when epoch=24.How should I set up to avoid using the network and still use it to record information？
Another question is, why do I sample and analyze when epoch=24?

Hi, thanks for your comment. I was not aware that the wandb offline mode is not working.
Since it only seems to fail during sampling, I assume this is caused by the function that tries to upload a GIF to W&B. For now, you can probably avoid this error by changing the argument in this line and this line to wandb=None (similar to here). The animation will then not be accessible from your W&B console but it should still be saved in the log directory.
Regarding your second question, we decided to not evaluate the model at the end of each epoch because sampling a large number of molecules takes some time that we preferred to spend on training the model. If you want to change this behavior, however, you can modify the eval_epochs, visualize_sample_epoch and visualize_chain_epoch parameters. See here for an example.

Thank you for your answer, it's very helpful for me.


fix: spelling and update deprecated method for log name

Fixes #

Spelling and deprecated log method

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the project license.

LGTM, did you test to deploy ?


Enable HelperPluginManagerFactory

This will allow to configure view helpers using view_helper config key.

@mtymek — I'm so sorry; I missed this PR when I created and merged #34. :-/


Pay to pass not working

Browser: Microsoft Edge
Problem: After clicking "Pay to pass", the website reloads and asking "Pay to pass" again. Coin is not reduced. Encounter this when not being in a pomodoro session.
Example:
Setting

When visit site

After clicking "Pay to pass", the webpage reloads

And then... nothing changed!

Hi, it might be a connection issue with Habitica.

Click on settings>habitica
Make sure the user name and api token are correct
Click save

Let me know if this works for you.
On Fri, 23 Dec 2022, 09:48 Thao Nguyen, @.***> wrote:

Browser: Microsoft Edge
Problem: After clicking "Pay to pass", the website reloads and asking
"Pay to pass" again. Coin is not reduced. Encounter this when not being in
a pomodoro session.
Example:
Setting
[image: image]
https://user-images.githubusercontent.com/71063988/209294812-f1b1bd5b-bfe9-44a9-a889-661fbcedf9f8.png
When visit site
[image: image]
https://user-images.githubusercontent.com/71063988/209294137-0bfa3aae-4881-4b35-bea4-fd31699be003.png
After clicking "Pay to pass", the webpage reloads
[image: image]
https://user-images.githubusercontent.com/71063988/209294271-2664f759-cf80-4e91-87cb-c30fd27b1965.png
And then... nothing changed!
[image: image]
https://user-images.githubusercontent.com/71063988/209294479-d4a1df2d-de71-45df-812e-073f09f7ca68.png
[image: image]
https://user-images.githubusercontent.com/71063988/209294521-d30378e2-a14a-437a-ac16-6a52fc856f7c.png
—
Reply to this email directly, view it on GitHub
https://github.com/ofekmiz/Habitica-Pomodoro-SiteKeeper/issues/113, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AJOEOFRU64FYKRVS4VJ45PDWOVKMHANCNFSM6AAAAAATHPQL7E
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Hi thanks for the reply.
Actually I just got it fixed by restarting the browser (should have done
this before posting an issue lol). My Habitica had already connected before
the error occurred.
On Fri, 23 Dec 2022 at 5:13 PM, OfeX @.***> wrote:

Hi, it might be a connection issue with Habitica.

Click on settings>habitica
Make sure the user name and api token are correct
Click save

Let me know if this works for you.
On Fri, 23 Dec 2022, 09:48 Thao Nguyen, @.***> wrote:

Browser: Microsoft Edge
Problem: After clicking "Pay to pass", the website reloads and asking
"Pay to pass" again. Coin is not reduced. Encounter this when not being
in
a pomodoro session.
Example:
Setting
[image: image]
<
https://user-images.githubusercontent.com/71063988/209294812-f1b1bd5b-bfe9-44a9-a889-661fbcedf9f8.png
When visit site
[image: image]
<
https://user-images.githubusercontent.com/71063988/209294137-0bfa3aae-4881-4b35-bea4-fd31699be003.png
After clicking "Pay to pass", the webpage reloads
[image: image]
<
https://user-images.githubusercontent.com/71063988/209294271-2664f759-cf80-4e91-87cb-c30fd27b1965.png
And then... nothing changed!
[image: image]
<
https://user-images.githubusercontent.com/71063988/209294479-d4a1df2d-de71-45df-812e-073f09f7ca68.png
[image: image]
<
https://user-images.githubusercontent.com/71063988/209294521-d30378e2-a14a-437a-ac16-6a52fc856f7c.png
—
Reply to this email directly, view it on GitHub
https://github.com/ofekmiz/Habitica-Pomodoro-SiteKeeper/issues/113, or
unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AJOEOFRU64FYKRVS4VJ45PDWOVKMHANCNFSM6AAAAAATHPQL7E
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

—
Reply to this email directly, view it on GitHub
https://github.com/ofekmiz/Habitica-Pomodoro-SiteKeeper/issues/113#issuecomment-1363814138,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQ6FTNCNMGQEANCIC26JA2TWOV3LFANCNFSM6AAAAAATHPQL7E
.
You are receiving this because you authored the thread.Message ID:
@.***>


update jdk19 tag and repo for 2022 oct CPU

is the change we want for AQA? @sophia-guo @ShelleyLambert

is the change we want for AQA?

Are you talking about the AQA master branch? If yes, no need to update it.

We always want to ensure that the aqa-tests release branch for a particular release has the same tags in testenv.properties file as is used by the build pipelines
We do not know for certain what the tag will be until they are announced.


Show FK relations from other shemas on ER Diagram

Using DBeaver 6.0.1 on Windows.
When generating an ER diagram from a schema only the tables in that schema are displayed.
When generating an ER diagram for a table DBeaver also pulls in the tables from other schemas where a foreign key constraint exists and even colors them differently.
It would be really awesome if the diagram generated for the schema could also (optionally) pull in the tables from other schemas where foreign key constraints exist.

We can't add this feature by default because resolving external references for whole schema may take too much time.
But we may add this as an extra action or as a config option.

We can't add this feature by default because resolving external references for whole schema may take too much time.
But we may add this as an extra action or as a config option.

TBH I saw schemas which contain 1000 tables. Since ERD generation time doesn't depend on number of schemas but on number of entities instead, I'm sure your argument is not the strongest one.
In fact, since ERD generation is on demand action, the user knows what is going to happen.
BTW, before providing the feature, please consider, instead of single configuration checkbox, to give a user possibility to select additional schemas in addition to current one.
Often it's more useful to see a few selected schemas in a model than whole database at once.
Even more useful is to create diagrams, which are decoupled from schemas, which contain only selected tables. It allows to present specific views to  the system depending on particular needs.


IO redirection not working (OSX)?

I only tried this on OSX but it seems like IO redirection is not working properly. I built nailgun like it says on the wiki (configure/make in tools/nailgun).
I run the server with jruby --ng-server.
Then I tried running irb with jruby --ng -S irb. It displays the prompt but then I cannot get it to do anything more, it's like it's not getting my input. Input is taken from the server's terminal but echoed back on the client, and the prompt is displayed on the client but all other output is on the server.
I also tried ruby --ng -e "puts 'hello'; s = STDIN.getc; puts s", but hello is displayed on the server's terminal instead of the client's. Then getc also does not react to input on the client, and on the server's terminal I had to type several characters before it then echoed the last one back to me. After the script is finished, on the client's terminal the characters I typed in while the script was running are then sent and executed to by the shell (e.g. if I typed ls <enter> then ls was executed).
This seems to not be working pretty obviously for me, am I doing something wrong?

Did you solve this problem? I'm experiencing the same thing and I'm interested in if and how you solved it.


Add SOCKS5 proxy support

I wanted to use hey to do some tor performance testing, so I added SOCKS5 proxy support using the golang.org/x/net/proxy module. Perhaps this is useful to others.

Oh! I just noticed #43 haha. Well, now you have two to choose from.


Add a Scrimba course to list of free courses

Hi, I'm proposing this course for the docs as it'll make React more accessible to people in low-bandwidth areas (point 1 below), and easier to learn (point 2 below).
1. Makes React more accessible to people in low-bandwidth areas
Scrimba screencasts require less than 1% of the bandwidth of traditional videos, so it's accessible to people with slow internet access (typically developing countries). Right now, all the video courses you're linking to has been made with traditional video technology, so adding this one would make your docs more accessible.
2. Beginners often say that this course finally made them understand React
This is in large because of Scrimba's functionality, where you're able to interact with the code inside the videos. No other React course online offers this.
Some examples of how students react on this course:
https://twitter.com/edgarnigel/status/1097438500692078592
https://twitter.com/StephonBee/status/1091033903283036160
https://twitter.com/lesleyrazz/status/1115413847261761536
Another factor is the amazing instructor Bob Ziroll, Director of Education at V School.
Over 50K students have enrolled in the course, and it does not require any email signup.
Thanks,
Per Harald Borgen
Co-founder of Scrimba

Already merged.


Lockup Resiliency and Asyncio Improvements

[X] Include this change in the Release Notes.

The '/list-files' end-point no longer locks up the server
The executing actions no longer locks up the server while executing
Sessions now use a common background threadpool rather than and explicit thread
Remote sessions no longer register as ready before they are actually ready in the frontend

Since a lot of our operations were not built with asyncio in mind, this runs many things explicitly in thread pool executors. In the long term, I think we should use asyncio and only include thread pools in a few places, but this is resilient to non-coroutines taking longer than expected and greedily hogging server resources.
I have tested this and although the list-files operation can take a long time to execute, the server is not locked while it is executing:

Testing this has included the following scenarios:

Starting 2 sessions in the same browser at a time can lock up the server (Non Incognito)
Issue where calling list-files before the runtime is ready locks up the server
Issue where calling a bash command can lock up the server (e.g.: sleep 10)
Issue where a prompt can lock up the server (Sleep for 10 seconds)

@tofarr looks like the macos tests failed at dc9b983
Probably something flaky in here...


Manually include  to fix CI failures

This works around the CI failures observed in #146 through #149, but does not make any attempts to address the unknown root cause.

Thanks for fixing this issue! This looks indeed like an LLVM bug that got fixed in https://github.com/llvm/llvm-project/commit/0cccccf0d2cbd707503263785f9a0407d3e2bd5e


IsInEnum not validating correctly

System Details

FluentValidation version: FluentValidation.AspNetCore 8.4.0
Web Framework version ASP.NET Core 2.2

Issue Description
Hi, I'm trying to validate a command:
public class FeatureExampleAddCommand
{
    public FeatureExampleEnum FeatureExampleType { get; set; }
}

public class FeatureExampleAddCommandCommandValidator : AbstractValidator<FeatureExampleAddCommand>
{
    public FeatureExampleAddCommandCommandValidator()
    {
        RuleFor(x => x.FeatureExampleType)
            .IsInEnum();
    }
}

And then I have this Enum:
public enum FeatureExampleEnum
{
    EnumExample = 1,
}

But when I make a call with this json:
{
    "featureExampleType": 0
}

Or any other number that isn't on the enum, it doesn't return a bad request.
Works if I pass null.
Full example here: https://github.com/Arthur-Neto/template-website

Please provide a small and minimal example to reproduce the problem. Thanks.

https://github.com/Arthur-Neto/fluentvalidation-issue1212

There are several problems with your example which is why it's not working.
First problem is you're not actually registering your validators. In your appication startup routing you should be calling AddFluentValidation after your call to AddMvc:
services.AddMvc()
  .AddFluentValidation(fv => fv.RegisterValidatorsFromAssemblyContaining<ExampleModelValidator>())
  .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

If you don't do this, then you won't get any automatic validation. Please read the documentation.
Once you do this, the validator works as expected. Posting JSON of { "Type": 0 } to the ExampleController returns the following 400 response:
{
    "errors": {
        "Type": [
            "'Type' has a range of values which does not include '0'."
        ]
    },
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "0HLP4FKH9E47N:00000002"
}

As you can see, it correctly generated an error and returned a 400 response.
Your second issue is your test. Invoking a controller action method directly in a unit test will not return a 400 response if validation fails. The 400 response is not generated by the controller action (or by FluentValidation), but by ASP.NET Core's ApiController behaviours. During a regular HTTP request, this is generated after the controller executes. Please read the documentation on the ApiController attribute here (specifically the section on automatic HTTP 400 responses).
For unit tests, the only thing you can do is check controller.ModelState.IsValid is false, and that the modelstate dictionary contains the expected error message. If you want to see the full 400 response in a test, you need to use an integration test instead to simulate a full HTTP request/response. You can read about that here.
To summarise:

There is no issue with FluentValidation here.
You need to register FluentValidation in your application startup routine.
400 responses generated by ASP.NET core's ApiController attribute after the controller is executed during an HTTP request. You can't simulate this in a unit test, only an integration test.

Thanks for the answer, sorry for the inconvenience, just a mistake on my part, thought I had validated with other kinds of rules but I just tested here, should have search for more.


Making the file legal Json

Currently, each line of the file is legal Json, but the file itself is not. This pull request fixes that. The whole file can now be imported as a single Json object.
Closes #1

thanks


Warn users if they try to de-admin themselves

...as we do on web.

Validation
TODO: update RiotAdminAndModerationTests.makeMemberAdminTest()

I don't see any warning when I hit "Reset to normal user" on a room.
And on the web, I don't see any Admin section on myself when I hit my member item.


Every 8th item being expanded in RecyclerView

Issue: When I click a card item in a RecyckerView every 8th item is expanded as well as the item clicked.
Example: There are 24 items in a List. I click item position 1, it expands. Scrolling down the list, also the 8th item is expanded, 16th and 24th.
Expected behaviour: Only the clicked item is expanded
     /**
     * Toggle the expanded state on a card item
     *
     * @param holder The ViewHolder
     * @param position The position of the card that was clicked
     */
    public void toggleExpandedCard(ListViewHolder holder, int position) {
        final String expandIcon = context.getResources().getString(R.string.mc_chevron_down);
        final String collapseIcon = context.getResources().getString(R.string.mc_chevron_up);

        Log.d(TAG, "Expanded position is: " + expandedPosition);
        Log.d(TAG, "Clicked position is " +  position);

        // If nothing is expanded, expand as normal
        if (expandedPosition == RecyclerView.NO_POSITION) {
            holder.mExpandIcon.setText(collapseIcon);
            holder.mDetailedView.expand();
            expandedPosition = position;
            return;
        }

        // If not clicking the currently expanded item
        // Close the other first
        if (expandedPosition != position) {
            ListViewHolder expandedViewHolder
                    = (ListViewHolder) recyclerView.findViewHolderForAdapterPosition(expandedPosition);
            if (expandedViewHolder != null) {
                expandedViewHolder.mDetailedView.collapse();
                expandedViewHolder.mExpandIcon.setText(expandIcon);
            }
            holder.mDetailedView.expand();
            holder.mExpandIcon.setText(collapseIcon);

            expandedPosition = position;

            return;
        }

        holder.mExpandIcon.setText(expandIcon);
        holder.mDetailedView.collapse();
        expandedPosition = RecyclerView.NO_POSITION;

        toggleExpansion(position);
    }

This has nothing to do with ExpandableLayout.
The issue is that RecyclerView is recycling your list item views (hence the name - ha!) and the view's state is maintained unless you reset it. In your example, your ExpandableLayout used for item 1 is being reused for item 8 when you scroll and since it was expanded for item 1, it will retain the expanded state even when the content is replaced with item 8's.
The fix is to reset the state in your adapter's bindViewHolder method using either setExpanded or collapse. Be sure to use the versions where you can set the animate flag to false, otherwise you will briefly see animations while scrolling the recycler view.
If you want to make it really simple, you can simply always call expandableLayout.collapse(false) in the bind method and be done with it. This will cause previously expanded items to always appear collapsed even if the user expands it, scrolls away and then return.
A more complex implementation would need to remember the expanded state for each item and set expandableLayout.setExpanded(state, false) accordingly.

Hi,
Yeah thanks for this. I figured out it was RecyclerView related, rather than this library, while Googling around.
I was going to come back with my solution once I worked it out. I still will, in the interests of helping anyone else finding this!

I ended up going for adding a boolean to my model interface that helps track the state of cards.
/**
     * Expand a card
     *
     * @param holder   Viewholder, used to get the card items
     * @param position The position of the card to expand
     * @param animate  Animate the expand/collapse
     */
    private void expandCard(ListViewHolder holder, int position, boolean animate) {
        String collapseIcon = context.getResources().getString(R.string.mc_chevron_up);
        if (holder.mExpandIcon != null) {
            holder.mExpandIcon.setText(collapseIcon);
        }
        holder.mDetailedView.expand(animate);
        items.get(position).getFileModel().setExpandedState(true);
    }

    /**
     * Collapse a card
     *
     * @param holder   Viewholder, used to get the card items
     * @param position The position of the card to collapse
     * @param animate  Animate the expand/collapse
     */
    private void collapseCard(ListViewHolder holder, int position, boolean animate) {
        String expandIcon = context.getResources().getString(R.string.mc_chevron_down);
        if (holder.mExpandIcon != null) {
            holder.mExpandIcon.setText(expandIcon);
        }
        holder.mDetailedView.collapse(animate);
        items.get(position).getFileModel().setExpandedState(false);
    }

    /**
     * Toggle the expanded state of a card at the given position
     *
     * @param holder   The viewholder, used to get the card items
     * @param position The position that was clicked
     */
    public void toggleExpandedCard(ListViewHolder holder, int position) {
        // If nothing is expanded, expand as normal
        if (expandedPosition == RecyclerView.NO_POSITION) {
            expandCard(holder, position, true);
            expandedPosition = position;
            return;
        }

        // If not clicking the currently expanded item
        // Close the other first
        if (expandedPosition != position) {
            ListViewHolder expandedViewHolder
                    = (ListViewHolder) recyclerView.findViewHolderForAdapterPosition(expandedPosition);
            // Collapse the currently expanded card, if it is not null/is visible
            // Else set it to be closed to the bindviewholder closes it next time it's bound
            if (expandedViewHolder != null) {
                collapseCard(expandedViewHolder, expandedPosition, true);
            } else {
                items.get(expandedPosition).getFileModel().setExpandedState(false);
            }
            expandCard(holder, position, true);
            expandedPosition = position;
            return;
        }

        collapseCard(holder, position, true);
        expandedPosition = RecyclerView.NO_POSITION;
    }

    @Override
    public void onBindViewHolder(final ListViewHolder holder, final int position) {
        // Addon Item at latest position in the list
        final FileModel item = items.get(position).getFileModel();

        // Set the expanded state on
        if (item.getExpandedState()) {
            expandCard(holder, position, false);
        } else {
            if (holder.mDetailedView.isExpanded()) {
                collapseCard(holder, position, false);
            }
        }
...
}

Going to go through and clean up the logic but that's basically it. Just in case anyone finds this via Google and has the same issue as I did.
BTW, this is the best Expandable Layout library for Android. I tried the others but this one did exactly what I wanted without any fluff.

Thanks!


Initializing hardware serial on Mega.

Using Arduino 1.6.1 and an Arduino mega 2560.
In parsing.pde, line 42, I changed:
Adafruit_GPS GPS(&mySerial);
to:
Adafruit_GPS GPS(&Serial3);
After that change, it works for me.

I don't believe this is an issue. See comments in lines 31-39, as they clearly give you instructions on how to do this:
// If using software serial, keep this line enabled
// (you can change the pin numbers to match your wiring):
SoftwareSerial mySerial(3, 2);

// If using hardware serial (e.g. Arduino Mega), comment out the
// above SoftwareSerial line, and enable this line instead
// (you can change the Serial number to match your wiring):

//HardwareSerial mySerial = Serial1;

This is absolutely an issue.  Follow the instructions by commenting out the SoftwareSerial line and uncomment the HardwareSerial line and it does not work.
Simply changing
Adafruit_GPS GPS(&mySerial);
to
Adafruit_GPS GPS(&Serial1);  //or Serial2, Serial3, etc.
And the Mega works fine with this example.  It's quite simple why it doesn't work,  trivial c++ bug from Freshman programming.  You are not passing the address to the Serial but the address to your temporary variable.

I had completely forgotten about this, but I think you're right. You should fork, edit, and make a pull request. The Adafruit people are really quick for minor changes.

I tested with 2 Mega 2560 and i Change to  Adafruit_GPS GPS(&Serial1);
but in Monitor I see alway Fix: 0 and no Time and Date
When I load the Blank Sketch I see on Monitor that the GPS Module works.
When I test it with Uno on Software Serial it works.
What is wrong with the mega or the Sketch.
Is there another Line in the Sketch that was wrong?

I found the solution.
I Change TX and RX on MEGA and then it works.
Now is TX Mega with RX GPS connected and RX Mega with TX GPS. LOL
Is that right?

new HardwareSerial examples will let you change SerialX instantiation easily - try it! :)


0.12 failing to compile on nightly

sry of this hasn't already be reported but I wanted to give a quick heads up. I saw this in the travis logs of one of my crates that depends on<EMAIL_ADDRESS>in a rust nightly build.
   Compiling hyper v0.12.13
thread 'main' panicked at 'librustc/hir/map/hir_id_validator.rs:31:
HirIdValidator: The recorded owner of path segment super (id=36924) is ::server[0]::conn[0]::{{?}}[34] instead of ::server[0]::conn[0]::{{?}}[34]::{{?}}[0]
HirIdValidator: Same HirId ::server[0]::conn[0]::{{?}}[34]::{{?}}[0]/2 assigned for nodes path segment super (id=36924) and path segment spawn_all (id=89958)', librustc/util/bug.rs:47:26
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.31.0-nightly (cae6efc37 2018-10-27) running on x86_64-unknown-linux-gnu
note: compiler flags: -C debuginfo=2 --crate-type lib
note: some of the compiler flags provided by cargo are hidden
error: Could not compile `hyper`.

Thanks for the report. This is known, and is a compiler bug. It's reported and tracked here: https://github.com/rust-lang/rust/issues/55376

Looks like latest nightly has this fixed.


Contribute Solution for LeetCode October Day 27

Day 27:
Contribute a solution for this day's LeetCode problem.
Rules:

Comment on this issue if you're willing to contribute.
Each user can contribute a maximum of 1 solution in Java, C++, or Python.
Each user can contribute a maximum of 2 solutions in other languages like JavaScript, Go, Ruby, etc.
Please ensure that no one has already commented for the language you're planning to contribute in.

Good luck and happy coding! :tada: :rocket:

Kindly assign me this task, I would positively contribute @arya2004

Hi! @arya2004, I would like to contribute in C++, I have more than 200 active days in Leetcode, please assign this issue to me.

Hi @arya2004, I would like to contribute in this issue using Java. Kindly assign this issue to me. Thanks


Initial API idea for a node http server in gren

This is not functional. Looking for feedback on the API.
Main thoughts:

Use TEA!
Start with the basics.
Use the gren/node concept of permissions on init for managed side effects.
Just provide the primitives. Other packages can then build on that.

Oops, some of my OOP muscle memory is showing... stand by

Added a few comments, but ultimately think you're on the right path :)

Updated based on feedback

Just looked over your latest changes and I think it looks good. Might want to add a id or key value to the Request record in order to tell two requests apart, but other than that it's good 👍

Iterating on this API and chipping away at implementation here: https://github.com/blaix/node/pull/1

Finally updated this with a working example now that the HTTP server API is merged in.


Determine Equifax Integration Readiness / Determine Implementation Plan

Tasks

[ ] Validate Equifax Documentation- check calls that they have provided.
[ ] Validate Endpoint Connection
[ ] Submit for access to their environment
[ ] Review Sandbox Environment
[ ] Determine the data that is sent back

Acceptance Criteria

[ ] Validate Successful Call (Postman)
[ ] Determine Implementation Next Steps (Plan)
[ ] Update Architectrue Diagram

Please find below the current integration status.
Considering the below TEST(UAT) environment, please find also below what we are trying and what are the questions so far. The questions are highlighted in bold.

Using the server with public IP <IP_ADDRESS> (linda.dmz) and trying to execute a GET on endpoint https://api.uat.equifax.ca/logs/v1 results in the below error message.
Question: Is there a way to confirm if there is some issue in our end or on Equifax side? Apparently the server being used for tests has the correct public IP in the white list.

The documentation states that the below request should be made in order to request a new token as shown below.

But the Postman Collection is also defined using a “Basic Auth” that will produce a different request, like below.
Question: What is the correct request to retrieve the token?
curl --location --request POST 'https://api.uat.equifax.ca/v2/oauth/token'
--header 'Content-Type: application/x-www-form-urlencoded'
*--header 'Authorization: Basic ' *
--data-urlencode 'grant_type=client_credentials'
--data-urlencode 'scope=https://api.equifax.ca/inquiry/1.0/sts'
We are going to use the Equifax to primarily request financial data for a consumer and it seems that XML is the preferable way (EQUIFAX_UAT_STS_XML_CONSUMER).
It seems that this request has a InputSegments payload with a XML on it.
Question: where can we find documentation about this specific request?
Question: is this the correct endpoint to retrieve consumer financial data (https://api.uat.equifax.ca/inquiry/1.0/sts)?

During a working session with the Equifax support/dev team, we were able to make the successful authentication and also request a credit report from the API.
For the authentication, some documentation available has the incorrect request. We must assume that the correct one is the one present in the Postman collection, as shown below.

We also confirmed during the meeting that the preferred method to be used to retrieve the credit information is the below one, also presented in the JSON collection.

The above method uses an XML payload that we were able to submit for one particular set of data once we provided the Ministry "Customer Code", "CustomerNumber" and "Security code" (not shared here for security purposes).
During the meeting, we also requested specific documentation about how to properly create the XML payload and also how to correctly find the information that we need in the response. They are going to share the documentation with us as soon as possible.


External PP manual mismatch

Issue Description
What did you expect to see happen?
The Manual for the External PP has not been updated to explain how the variables are going to be called.
In the manual it is stated that the variables are going to be called as the methods in the function,
but in reality they are called functionName_methodName
Do you have a suggested fix for the development team?
fix the manual
Please attach the input file(s) that generate this error.  The simpler the input, the faster we can find the issue.
n/a

For Change Control Board: Issue Review
This review should occur before any development is performed as a response to this issue.

[x] 1. Is it tagged with a type: defect or improvement?
[x] 2. Is it tagged with a priority: critical, normal or minor?
[x] 3. If it will impact requirements or requirements tests, is it tagged with requirements?
[x] 4. If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users.
[x] 5. Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.)

For Change Control Board: Issue Closure
This review should occur when the issue is imminently going to be closed.

[x] 1. If the issue is a defect, is the defect fixed?
[x] 2. If the issue is a defect, is the defect tested for in the regression test system?  (If not explain why not.)
[x] 3. If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)?
[x] 4. If the issue is a defect, does it impact the latest stable branch? If yes, is there any issue tagged with stable (create if needed)?
[x] 5. If the issue is being closed without a merge request, has an explanation of why it is being closed been provided?

Even if this is a defect, it effect only the documentation so no email to the users is required (no wrong results but just an error).
Closure list passed...


OLS-1232 - Adding consoleURL to results of get credentials

and updating readme
Before you complete this pull request ...
Look for any open pull requests in the repository with the title "e2e-tests update" and
see if there are recent e2e-tests updates that will be applicable to your change.

/ok-to-test

/lgtm

LGTM
@mmorhun / @taylormadore we require your assistance to trigger the CI. Please review and provide approval as well, if possible.

/ok-to-test


Move UART RS458 mode and flow control from freemodbus port in SDK to user code

I‘m struggling to official modbus_slave example.
Please just Keep UART as UART mode in SDK for design principle reason.
UART is in SDK, so just manipulate UART in SDK and leave other options, like mode & flow control to user code. Because they are options for user but SDK.
Users maybe use UART as native UART or RS232/RS485/RS422 connections. This should be determined by user but SDK.
I know the necessary hardware connections are well documented in freemodbus example. But the RS485 mode and RTS pin are not configured in this example but in SDK! That means we have to buy a RS485 device to run modbus_slave example if no checking hardcoded UART mode in SDK!

Please take attentions for what SDK should or shouldn't do.

Hi keelung-yang,
The issue has been confirmed and corrected in ESP-IDF.
In new revision the port pin and mode configuration will be part of example KConfig.
The changes will be merged soon.

@alisitsyn THX! Then I should close this issuse.


Add CodeQL version to github/codeql-action/init outputs

Hi there,
I'm working on caching some query compilations and it'd be helpful to receive the CodeQL version as output from the github/codeql-action/init action. This could be done similar to the codeql-path output. It appears that this would require minimal changes in the following locations:
https://github.com/github/codeql-action/blob/b611370bb5703a7efb587f9d136a52ea24c5c38c/src/init-action.ts#L557
Add something like core.setOutput("codeql-version", await codeql.getVersion()).version).
And:
https://github.com/github/codeql-action/blob/b611370bb5703a7efb587f9d136a52ea24c5c38c/init/action.yml#L139-L141
Add something like:
   codeql-version:
     description: The version of the CodeQL binary used for analysis

Thank you for submitting this issue with the linked PR to fix it!
As the PR is approved, feel free to merge it after resolving the remaining merge conflict.


Make KeyError messages return key repr() as in CPython

Codecov Report

Merging #1054 into master will not change coverage.
The diff coverage is 50%.

@@           Coverage Diff           @@
##           master    #1054   +/-   ##
=======================================
  Coverage   65.09%   65.09%
=======================================
  Files         100      100
  Lines       17996    17996
  Branches     3998     3999    +1
=======================================
  Hits        11714    11714
  Misses       3540     3540
  Partials     2742     2742

Impacted Files
Coverage Δ

vm/src/obj/objmappingproxy.rs
81.81% <50%> (-3.9%)
:arrow_down:

vm/src/dictdatatype.rs
71.59% <50%> (-0.32%)
:arrow_down:

vm/src/obj/objdict.rs
73.59% <50%> (+0.5%)
:arrow_up:

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 2f75562...25dfe85. Read the comment docs.

Blocked by https://github.com/RustPython/RustPython/pull/1056

@palaviv I addressed your comments, it's ready for review.
It turned out a bit more complicated, as KeyError really returns passed object, not it's string representation.
Not sure about the last commit, but in my opinion it describes what method does better (but diff is big for such a small enhancement).

Nice work. I am just not sure about vm.new_exception_with_msg maybe we can keep vm.new_excpetion and do the conversion inside? What do you think?

Another new_exception_obj method will still be required though. I'll try, thanks for the review.

@palaviv I addressed comments.


Automated cherry pick of #1540: fix: user filter by role

Cherry pick of #1540 on release/2.11.0.
#1540: fix: user filter by role

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.11.0@f8aab9e). Click here to learn what that means.
The diff coverage is 0%.

@@               Coverage Diff                @@
##             release/2.11.0   #1542   +/-   ##
================================================
  Coverage                  ?   7.69%
================================================
  Files                     ?     411
  Lines                     ?   62929
  Branches                  ?       0
================================================
  Hits                      ?    4844
  Misses                    ?   57678
  Partials                  ?     407

Flag
Coverage Δ

#aFlag
7.69% <0%> (?)

Impacted Files
Coverage Δ

pkg/keystone/models/users.go
2.38% <0%> (ø)

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 f8aab9e...90bca6a. Read the comment docs.

/lgtm
/approve


Expand website to cater for blog entries

It'll be quite handy to have a blog section on the site. It should be simple to add.

There is a weird pathing issue currently - the blog template is not being found.

Need to expand the build process to take any posts and then generate the expected files. This also means we can ignore the template override.

Currently being tracked in my clone. A few things are still missing:

[ ] Archive list of entries

Excerpt extraction and other nice features will be added as needed


Billing module

Initiate the kBilling module based on https://github.com/feathersjs-ecosystem/feathers-stripe or https://fastspring.com/.

https://hackernoon.com/top-3-open-source-subscription-billing-systems-in-2018-eb9e3b8d6d0b


lesson_1_3

Hey, great job on your assignment. Can you do me a favor and wait until I can provide you some feedback before you merge your PR. It makes it hard to review and make adjustments if it is merged.
If you want to continue your work, you can branch off of this branch. If you have questions around this, please reach our to me and we can chat through it.
Overall, your assignment looks good. Keep up the good work.


Email notifications on certain events

Is there a possibility of having the monitor send email when certain events occur?
Example scenario would be to send an email when produce-availability-avg < 0.5

@ajnarayan This feature is currently not supported. But the current design of kafka-monitor makes it easy to be extended to support this. For example, you can have your own service that periodically polls interested metric values (e.g. message loss rate, availability) and trigger event if some rules are satisfied. This can be implemented similar to how DefaultMetricsReporterService is implemented. It only requires a new Service class and no existing code needs to be changes.
I think implementation of this feature is easy. The hard part is the design of the interface, i.e. how should we allow user to specify the rules and actions that achieve a proper balance between expressiveness and ease-of-use.
I am not sure we will implement this feature at LinkedIn in the near future given that we don't need this feature. At LinkedIn we have another service which pull metrics and generate email alert. But you are free to implement your own service that does this. We can also merge your patch if it is good for most users.


Samba docker container

Application you'd like to add:
Samba docker container: https://github.com/dperson/samba
Link to Docker image:
https://hub.docker.com/r/dperson/samba/
Why you'd like this application added:
ansible-nas already contains a Samba service configured by bertvv.samba ansible role to run on the host.
I was wondering whether its a better option to encapsulate this service in a docker container instead - not sure its a better solution, but I would like to hear your opinion on this matter

Personally I see file sharing as a core OS responsibility and feel that Samba in a docker is just for people who want to put everything and anything in a container they can. I'm not saying it's a bad idea, I'm just saying how often has Samba broke and let you down? Related, there's a container now for docker-compose. I laugh every time I see it and ask myself "Why?" Then I ask myself, "When is someone going to make a bash container?" (chuckle).

Aren't most OS containers available by default bash containers (like the default Ubuntu container)? This is good to test functionality for different distributions quite fast.
Related to the samba container, I'm with @bcurran3 here, especially as I think Canonical will provide better support/packaging for samba than the container you provided (last update was 2 month ago).

I agree with @bcurran3 on this - it makes sense to containerise applicationos where Docker brings something to the table. In the case of applications like Plex, it's easy install/upgrade/remove/start/stop.
Samba is a core OS service that doesn't gain anything by being dockerised, therefore I have no desire to move a working samba setup out to docker.

I agree with @bcurran3 on this - it makes sense to containerise applicationos where Docker brings something to the table. In the case of applications like Plex, it's easy install/upgrade/remove/start/stop.
Samba is a core OS service that doesn't gain anything by being dockerised, therefore I have no desire to move a working samba setup out to docker.


finish VS mode

VS mode has been half implemented since at least march, possibly as long as january, consider finishing it

this is pretty much done at this point, I'm going to close the issue


[SPARK-42784] should still create subDir when the number of subDir in merge dir is less than conf

What changes were proposed in this pull request?
Fixed a minor issue with diskBlockManager after push-based shuffle is enabled
Why are the changes needed?
this bug will affect the efficiency of push based shuffle
Does this PR introduce any user-facing change?
No
How was this patch tested?
Unit test

@zhouyejoe can you review this PR? i would be very grateful!

@mridulm Hello, can you recruit someone to help review this pr。I would appreciate for your help

Thanks for creating the PR. Will review ASAP @Stove-hust

@Stove-hust I think the changes will help resolve the issue described in the ticket. I am checking more about what could be causing to the race conditions where there are two Executor containers starting at almost the same time on the same node, and they will all enter this code section and try creating subdirs at the same time.

@zhouyejoe I I kept the accident scene, should be able to help you。（In our clustered machine environment，11 HDD，creating 11 * 64 subdirectories would take longer to create）
23/02/21 10:44:09 YarnAllocator: Launching container container_184 on host hostA
23/02/21 10:44:21  YarnAllocator: Launching container container_185 on host hostA
23/02/21 10:44:21  YarnAllocator: Container container_184 on host: hostA was preempted.

@mridulm

@cloud-fan

@mridulm

So to make sure I understand the issue here - we have a container started on a node, and got immediately killed (pre-empted/etc) - such that it was not able to complete creating subDirsPerLocalDir number of subdirectories (ended up create a few) ?
If yes, very interesting corner case - will take a pass through the PR later this week, thanks for the contribution !

yep

So to make sure I understand the issue here @Stove-hust - we have a container started on a node, and got immediately killed (pre-empted/etc) while it was in the process of creating the subdirs (started, but did not complete) ?
If yes, very interesting corner case - will take a pass through the PR later this week, thanks for the contribution !

yep，that's the scenario you described

Sorry for the delay on this PR, it slipping through my TODO list.
The change looks good to me, merging to master.


[Bug]: { Error: Cannot find module 'puppeteer-core/internal/puppeteer-core.js' on Ubuntu Server

Minimal, reproducible example
const puppeteer = require('puppeteer');
const mysql = require('mysql2/promise');

const LOGIN_INTERVAL = 120000; // 2 minutes in milliseconds
const LOGOUT_INTERVAL = 300000; // 5 minute in millisecondspm2

const loginAndRefreshToken = async () => {
  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();

........................

Error string
{ Error: Cannot find module 'puppeteer-core/internal/puppeteer-core.js
Bug behavior

[ ] Flaky
[ ] PDF

Background
No response
Expectation
am expect to run this project with no error by using pm2
am using Ubuntu server
Reality
when i run pm2 logs am get this error app does not running but if i run node app.js it running well
logs error
/root/.pm2/logs/app-out.log last 15 lines:
/root/.pm2/logs/app-error.log last 15 lines:
0|app      |     at Module.load (internal/modules/cjs/loader.js:653:32)
0|app      |     at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
0|app      |     at Function.Module._load (internal/modules/cjs/loader.js:585:3)
0|app      |     at Module.require (internal/modules/cjs/loader.js:692:17) code: 'MODULE_NOT_FOUND' }
0|app      | { Error: Cannot find module 'puppeteer-core/internal/puppeteer-core.js'
0|app      |     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
0|app      |     at Module.Hook._require.Module.require (/usr/local/lib/node_modules/pm2/node_modules/require-in-the-middle/index.js:81:25)
0|app      |     at require (internal/modules/cjs/helpers.js:25:18)
0|app      |     at Object. (/var/www/html/token-service/node_modules/puppeteer/lib/cjs/puppeteer/puppeteer.js:33:14)
0|app      |     at Module._compile (internal/modules/cjs/loader.js:778:30)
0|app      |     at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
0|app      |     at Module.load (internal/modules/cjs/loader.js:653:32)
0|app      |     at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
0|app      |     at Function.Module._load (internal/modules/cjs/loader.js:585:3)
0|app      |     at Module.require (internal/modules/cjs/loader.js:692:17) code: 'MODULE_NOT_FOUND' }
Puppeteer configuration file (if used)
No response
Puppeteer version
21.3.6
Node version
18.18.0
Package manager
npm
Package manager version
pm2 - 5.3.0
Operating system
Linux

how to update a version ?

As you state there is no issue on Puppeteer side as your script runs on it's own, so I will be closing this issue.
The question is more suited for https://stackoverflow.com/
The way PM2 is set up it changes module resolution, some previous issue with PM2 were resolved when users update to the latest version of it.
A quick search suggest you may need to set up cwd in your config for this to work correctly.


Build an AMI for ShardingSphere Proxy

Build an AMI which contains JDK 1.8+, ShardingSphere Proxy 5.2.0 and Zookeeper 3.8 packages.
Aim
AMI refers to Amazon Machine Images, we can build  the AMI which is already installed with ShardingSphere Proxy 5.2.0 and Zookeeper 3.8. So ShardingSphere Proxy and Zookeeper is going to be started once the EC2 using this AMI is started.
Instructions

Create an EC2 instance on AWS.
Setup JDK environment on this instance.
Install ShardingSphere Proxy  5.2.0 on it and setup Systemd config.
Install Zookeeper 3.8 on it, and setup Systemd config.
Creating an AMI from AWS Console and save it.

Result
This work could be finished with a document under doc/ recorded the operating procedure.
Examples about the needed command or scripts
scripts:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
wget https://dlcdn.apache.org/shardingsphere/5.2.0/apache-shardingsphere-5.2.0-shardingsphere-proxy-bin.tar.gz

/etc/systemd/system/multi-user.target.wants/zookeeper.service:
[Unit]
Description=zookeeper.service
After=network.target
ConditionPathExists=/usr/local/zookeeper-3.8.0/conf/zoo.cfg
[Service]
Environment=JAVA_HOME=/usr/local/jdk1.8.0_333
Type=forking
User=root
Group=root
ExecStart=/usr/local/zookeeper-3.8.0/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper-3.8.0/bin/zkServer.sh stop
[Install]
WantedBy=multi-user.target

Provided a public AMI ami-0495cb75b4e6cdd38 at AWS Beijing


Fix messaging based dht

Pull Request Test Coverage Report for Build #12

19 of 46 (41.3%) changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.5%) to 50.196%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

net/protocol/protocol_relay.go
0
4
0.0%

dht/dht.go
16
39
41.03%

Totals

Change from base Build #11:
-0.5%

Covered Lines:
769

Relevant Lines:
1532

💛  - Coveralls


Support different Storage filesystem disk configuration

Add the ability to support different Storage facade disk to save and use assets with local and cloud disks

Hi @ILDaviz,
Instead of adding extra configuration, we can simply handle with the facade as well.
Currently in the project at some point Storage facade is used and at some portion, a normal static asset (which is the major cause that the facade does not work properly) is used not only this.
I already noticed this and some portions i fixed by handling with the Storage facade.

In the storage configuration, the driver key itself defined everything. We just need to fix some static portions for example Vue components (Here are most  of the cases, which I am seeing.).

This is the major problem where cloud not working,
https://github.com/bagisto/bagisto/blob/0ec071674a5fa25f076569ba1528a79da25bf61a/packages/Webkul/Velocity/src/Resources/assets/js/UI/components/popular-category.vue#L5
I am slowly making the changes due to not having time but now after seeing pull requests so I am sharing them with you i hope this will also help you,
https://github.com/bagisto/bagisto/pull/5299

@devansh-webkul  Ok then I close this pull request and fix the Storage Facade where they are not used in the core and remove the use of the disk method. Then I give you a hand for the speech of Velocity and the use of the cloud in vue images. The problem is in velocity theme, correct?

Yeah, the place where the straightway URL used cloud will not work because it's not passed through facade due to which cloud URL are not forming.

Hi @ILDaviz,
Just confirming, are you working on this?
Otherwise i will not make changes on the static portions. To avoid conflictions.

Reference Link: https://github.com/bagisto/bagisto/issues/2009

The problems here are that Laravel is working and that for some reason Bagisto has taken that feature and broke it so that you have to pay them $100 for it to be fixed with their plugin. The ironic thing is that it was working and now it is no longer working! Bagisto has become very opportunistic and more important they are proving to not be honest about what they are doing. I guess to take open-source software then force you to either fix it for them or pay them to have it work properly.

Source codes are fully open and I already shared the cause in this PR.
Product images are used by the intervention package so no matter you add the s3 config or not it will provide the cached url.
If images are not visible then something wrong with your instance either gd-extension is not installed in your system.

INcorrect try again ---- it is not prier for Bagisto to ask their customer to fix their software issues. First and foremost all the cions are being served from the s3 bucket, Logos, thumbnails etc.. the only images not being served are the carousel and the images for the products. Let me say it again icons and other images are being served from the s3. bucket and correctly being served The only ones that do not have the correct URL are pulling from local.. where the images are being pulled from s3. If I change the ode manually on the web page the images are correct. But your software is pulling it from local no matter what .env or filesystems.php says. This is a bagisto software issue nothing else.

Logos, thumbnails, etc are not cached by the intervention package, please check the intervention package to have some clarity,
https://github.com/bagisto/bagisto/blob/f689546d7264fb3e9b9a2590677474be75608e22/packages/Webkul/Product/src/CacheFilters/Medium.php#L26
We have cached product images and we already stated the issue and cause also,
https://github.com/bagisto/bagisto/issues/2009#issuecomment-571433310
Original images are going to S3 but cached ones are not.
"This is a bagisto software issue nothing else." => We already stated this an issue in Bagisto. Referenced PR,
https://github.com/bagisto/bagisto/issues/2009#issuecomment-571433310
If still want early you can provide us the pull request also as this is an opensource. Otherwise, I suggest you to wait for the next version as we are already have this issue in milestone list.

I have no idea how to fix your issues .. what is suppose dot change to not break your software

?