Add option to only show unread count for mentions in muted streams

It would be nice to have an option so muted streams do not show an unread count, instead showing the number of unread mentions in that stream. This is useful if a user isn't interested in a stream's contents, but wants to be in it so that they can be pinged.
This is a feature request from a member of the Rust community that I'm submitting so it is visible and tracked.

@davidtwco thanks for the report!  Just to explain Zulip's current behavior:

We show unread counts for muted streams, but with a partially opaque styling designed to make it easy for one's eyes to filter those streams in the left sidebar if one so desires.
We do not include unread counts for muted streams in totals (e.g. by "All Messages") unless the user was mentioned.
One can use the "Mentions" narrow at the top of the left sidebar (and/or our email and mobile push notifications) to ensure one sees all threads in which one was mentioned in muted streams.
The user could generally stay not subscribed to the stream (rather than muting it), and just have the community expectation be that if one wants to mention a user who is not subscribed, you just subscribe them to the stream (trying to mention the user will warn that they are not subscribed and offer to subscribe them).

I realize that set of options may not satisfy everyone (because the partially opaque styling does create some visual clutter, and it might feel annoying to need to re-unsubscribe after being called in to a stream you normally don't subscribe to in order to participate in occasional conversations where you are mentioned).  I'm open to adding a user setting to adjust the behavior of unread counts for muted streams.
I would love to discuss the details of this with some of the users involved, though, because I'm not convinced this feature idea as written is coherent.  How would we display unread counts for the individual topics once the user clicks on this muted stream.  Should they show the total unread messages for the topic?  In that case, it's both confusing (because the numbers don't add up) and even if the user understand that the user now has to hunt for which topic has the unread mention in it, which seems counterproductive.  Or do we display only unread mentions in the topic-level view as well, in which case it's actually quite difficult for the user to use other muted streams in another very popular use case for muted streams (streams where one wants to skim the threads at the end of a day or week to get a feel for what happened, but doesn't want to pay attention to them live)?
It's possible that we actually want two features here:
(1) Some way to have muted streams/topics that have at least one unread mention stand out (rather than showing a count), e.g. having the stream name appear in bold, the addition of an ! icon, or some other styling change.
(2) A setting to disable display of unread counts for muted streams until one clicks into the stream.

Thanks for the detailed response! This issue was inspired by one of the points in this post as well as other ideas I had seen floated in more ad-hoc discussions. I think both of the features you suggest would be great and resolve this issue.

We now do display an @ symbol next to any streams with unread mentions; this isn't precisely the idea proposed here, but it probably does help solve the core problem here.


Creating module

Great work.
I was missing last bit - how to create a module.
I have used
tar cvzf docker.wbm.gz docker

Thank you.

You can grab the latest build from the releases - if you're feeling trusting/validated the build you could use the remote module install via URL

You are right. Thank you.


Counting “Incomplete video frame detected!” occurrences to detect hardware problem

Required Info

Camera Model
D415

Firmware Version
<IP_ADDRESS>

Operating System & Version
Ubuntu 16.04

Kernel Version (Linux Only)
4.4.0-131-generic

Platform
PC

SDK Version
2.16.0

Language
C++, Python

Segment
Robot

Hi everyone,
We are using 4 Realsense D415 cameras in our robotics arm setup. They are connected to 4 independent USB 3.0 controllers on PCI expansion card. Overall this system is working reliable, but from time to time one of USB connections degrades. This is typically caused by robot’s movement that bends the cable over and over.
While using low quality or degraded cable with realsense-viewer we get “Incomplete video frame detected!” notification much more often than with new and professional cables. This pushes us to idea of monitoring cable degradation process by counting amount of incomplete frames received in time. It seems that rs-fw-logger does provide proper log information every time some incomplete video frame is received, but I am unable to decode and distinguish it from another logs.
Can you provide a way to determine if rs-fw-logger log was related to incomplete frame, and for which camera_id this log was created?
Is there any other way I can access incomplete video frames information while using realsense_ros_camera nodelet for streaming camera data?

Hi @pwalczykk
Using librealsense, you could register to sensor notifications to receive callback when they occur.
To access incomplete frames you'd need to do some modifications to librealsense.
We can assist if this is something you'd like to do.

Thanks @dorodnic, this can not be my top priority, but I would still like to do it. Any help will be appreciated. Solution that satisfy me the most would be adding ROS publisher that broadcast message on every incomplete frame. I made a quick check in librealsense and found "Incomplete video frame detected!" message in v4l_uvc_device::poll() from backend-v4l2.cpp. I wonder if backend-v4l2 is used by realsesne_ros_camera or is there any equivalent? Or maybe you have some other suggestions where should I start?

I can ask ros-realsense maintainer @doronhi to add these notifications to our wrapper, but it can take some time.
Basically, all you need for detecting these events is:
for (auto&& s : dev.query_sensors())
{
    s.set_notifications_callback([&, dev_descriptor](const notification& n)
    {
          if (n.get_category() == RS2_NOTIFICATION_CATEGORY_FRAME_CORRUPTED)
          {
               std::cout << "Detected partial frame!" << std::endl;
          }
    });
}

Where dev is either the one you get from pipeline.start().get_device() or from context().query_devices().
If you want to get these partial frames data, I think it should be sufficient to comment out backend-v4l2.cpp:959-970
This will cause some artifacts, since pixels from older frames will be used to fill in the gaps, so you probably would also want to reset frames to black before copying the partial content. sensor.cpp:490 is probably the right place.
Then just build librealsense from source (cmake . && make && sudo make install) and you should be good to go.

I will try to add ROS notifications on my own this week. In the mean time, I would be really glad if you could estimate order of magnitude of time that it can take you to add this functionality.

Ok, I got it working. Updated realsense_ros_camera node publishes amount of incomplete frames detected every time it detects frame drop. For each camera separately. Thanks for help @dorodnic!
        // Setting up notification callback that counts incomplete image frames received from realsense camera
        // On every incomplete frame, atomic counter is increased and message with new counter value is published
        for (auto&& s : _dev.query_sensors())
        {
            s.set_notifications_callback([this](const rs2::notification& n)
            {
                if (n.get_category() == RS2_NOTIFICATION_CATEGORY_FRAME_CORRUPTED)
                {
                    std_msgs::UInt64 msg;
                    msg.data = ++this->_incomplete_frames_counter;
                    this->_incomplete_frames_publisher.publish(msg);
                }
            });
        }

Awesome :) Always happy to help
@doronhi - please consider doing something similar in one of your future releases.

Perfect! I will let you know if we have some interesting conclusions, though our experiments will probably take few weeks. I can also make a PR when our feature reach some final shape.


x/build/cmd/release: Windows installer fails to open device or file when installer file is located on ram disk

What version of Go are you using (go version)?
go1.13.3.windows-amd64.msi
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\owner\AppData\Local\go-build
set GOENV=C:\Users\owner\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\owner\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\owner\AppData\Local\Temp\go-build703477710=/tmp/go-build -gno-record-gcc-switches

What did you do?

Download https://sourceforge.net/projects/imdisk-toolkit/, install, then create ram disk.
Download windows golang installer and move it to ram disk root.
Double click installer and try to install it by default setting.

What did you expect to see?
Installer installed files successfully.
What did you see instead?
Error dialog shows like attached images which means "cannot open the device or file specified" in japanese. Retry does not have any effect.

If I moved installer to physical disk, installer works fine.
I've never experienced this problems in other installers.

cc @alexbrainman
Thanks for the report.
Out of curiosity: is the inability to run the installer from a ramdisk a showstopper for you (and if yes, can you explain why, and what your use-case is)? Or does the obvious workaround - not running the installer from a ramdisk - work, and this is more of an "exotic" issue report? I'm asking because the answer may help assessing the seriousness of this issue.

I usually use Firefox for browsing, and its download destination is ram disk. This is useful to cleanup unnecessary downloaded files when rebooting os.
I can't solved by googling this error message, so I doubted Firefox download bug and used Google Chrome instead. Google Chrome download destination is default(User Downloads dir), and it worked file. And I finally found the problem is installer location.
I don't think you must fix this bug because there is a workround, but I hope this issue will help someone who will meet this problem.

@tamayika I know very little about how Go installer works. I cannot help you.
Alex


Wave step size not correctly parsed

Some can use a semicolon ; to specify the step size in the wave brackets.
Function test()
	Make/FREE wv
	wv[1; 3] = 1
	print wv
End

Thanks for reporting it.
I had read "Indexing and Subranges" help page (DisplayHelpTopics "Indexing and Subranges") during writing the parser code and knew that the starting and ending index can be omitted (e.g., wv[,; 3], wv[1,; 3], but didn't know a comma can be also omitted.
I will add a syntax rule for this.

Before modifying the code, I studied sub-range rules a little. Here I make a note about it, for future reference (to me).
The following expressions are allowed:
// single-element access
wv[ind]
// subrange access
wv[] // full range
wv[start,end] // range from `start` to `end`
wv[start,end;increment] // range from `start` to `end` by `increment` step
wv[start;increment] // range from `start` to end of wave by `increment` step

Several parameters can be omitted. The rule about omission looks as follows:

In any cases that explicitly use ;, increment cannot be omitted.
In any cases, start can be omitted. If omitted, 0 is the implicit value of start. (but in case of wv[ind] and wv[], the meanings become different)
In any cases, end can be omitted. If omitted, numpnt(wv) - 1 or Inf is the implicit value of end.
* can be used for end but cannot be used for start or increment. Using * is equivalent with omission of end, i.e., indicating end of the wave index. There are two exceptions to this rule, as shown below. In these cases I think * means full range:

wv[*]: equivalent with wv[], not with wv[0]
wv[*;increment]: equivalent with wv[;increment] and wv[0;increment]

Hmm, I feel here the grammar of Igor Pro is not very consistent.

I published a fixed version.


feat support datetimepicker using flatpickr

Voila datetime picker!

That was tough fight, the state of datetimepicker on bootstrap is not great :)
I have settled with flatpickr, rather than the other boostrap datetimepicker because they had a big amount of dependencies and thought it would be best to limit at maximum.
Right now, there is still one issue, @aesmail I will need your help, basically the datetime picker is a string, so I need to convert the string to date.
Where is the right place to update the changeset for this?

Excellent work @areski ! Amazing!
This will mean we have to convert all date/time fields manually which is fine providing the much improved input.
I'd say the best way is to change the values in Kaffy.Callbacks.before_save/3. It is always called before creating/updating the record.

Thanks!
My bad actually everything is fine, Ecto seems to do the cast from string to date properly...
I have spent too much time on this part of code and forgot to put the date fields in the orginal changeset... ooppss

There is still some work to be done for date and time only but will tackle that in an other PR.
Give it a try and see if it works well for you!

It works beautifully with normal datetime fields, but it doesn't work with *_usec fields due to formatting issues.
Also, can't we have different flatpickr initializers for datetime, date, and time fields? Like:
For datetime fields, just like you currently have:
flatpickr(".flatpickr-wrap-datetime", {
       wrap: true,
       enableTime: true,
});

For date fields:
flatpickr(".flatpickr-wrap-date", {
       wrap: true,
       enableTime: false,
});

For time fields:
flatpickr(".flatpickr-wrap-time", {
       wrap: true,
       enableTime: true,
       noCalendar: true,
       time_24h: true,
});

And for *_usec fields, we could do:
flatpickr(".flatpickr-wrap-datetime-usec", {
       wrap: true,
       enableTime: true,
       dateFormat: "Z", // not sure if this is the correct format though.
});

Thanks for the feedback, just working on date & time, this is coming soon.
Sure will check for _usec too
On Tue, Jun 2, 2020 at 5:50 PM Abdullah Esmail<EMAIL_ADDRESS>wrote:

It works beautifully with normal datetime fields, but it doesn't work with
*_usec fields due to formatting issues.
Also, can't we have different flatpickr initializers for datetime, date,
and time fields? Like:
For datetime fields, just like you currently have:
flatpickr(".flatpickr-wrap-datetime", {
wrap: true,
enableTime: true,});
For date fields:
flatpickr(".flatpickr-wrap-date", {
wrap: true,
enableTime: false,});
For time fields:
flatpickr(".flatpickr-wrap-time", {
wrap: true,
enableTime: true,
noCalendar: true,
time_24h: true,});
And for *_usec fields, we could do:
flatpickr(".flatpickr-wrap-datetime-usec", {
wrap: true,
enableTime: true,
dateFormat: "Z", // not sure if this is the correct format though.});
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/aesmail/kaffy/pull/66#issuecomment-637640167, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAANBT7W244QQAKBB2UIIOLRUUNUHANCNFSM4NQZE5QQ
.

--
Kind regards,
/Areski

Arezqui Belaid
Founder at Star2Billing (www.star2billing.com)
& Newfies-Dialer (www.newfies-dialer.org)
Tel: +34650784355
Twitter: http://twitter.com/areskib
LinkedIn: http://www.linkedin.com/in/areski


Updated for use outside using clauses

I made the constructor public and broke the actual work out into Impersonate and Revert functions. This way the class can be used outside a using clause.
The static LogonUser function still works as an all-in-one call.

Sorry, just seeing this.  I missed it somehow.
I'm not sure I follow the use case.  If you don't want a using statement,  couldn't you just call Dispose() ?

My use case is an app that pulls files from two servers for comparison, among other things. The design means it has to switch periodically between impersonating user A on server X, and user B on server Y. It seemed like it'd be faster to keep the logon tokens around, and call Impersonate/Revert as necessary on each.
But I looked over my test code again, and found that my timing is off. Creation of the logon token only takes about 40ms on my machine, and while the first access to a server after impersonation is slow, the rest are quite fast. In fact I get the same results whether I use the new constructor and Impersonate/Revert, or the LogonUser static function. I'm guessing the credentials end up cached by the system.
So my fears about this being slow for my app's setup are a result of some incorrect timing code. If you like, I can close the pull request.

Yeah, that makes sense.  Thanks.


DAWN-393 ⁃ Port table abi test

➤ Andrianto Lie commented:
https://github.com/EOSIO/eos/pull/1664 PR made

➤ Andrianto Lie commented:
This task is now handled by  #1639

I think this is obsolete after discussing with Bart & Andri. Please see https://github.com/EOSIO/eos/pull/1664


Web environment not accessable through network since 1.10.0

Describe the bug
Since version 1.10.0 the web environment is only accessible from the host, not from any other computer on the network (see #1662). I understand this is done because on public networks it is a security problem if the environment is publicly accessible. However we use ddev on a secure company network. We use an internal DNS and additional_fqdns in .ddev/config.yaml to be able to access each developer's environment using project.developername.domain. Using ddev share or manually setting the port each time a ddev environment is started are both not ideal solutions. It would be great if this change can be made optional with a setting in .ddev/config.yaml.
To Reproduce
Steps to reproduce the behavior:

Start a ddev environment
Try to access it from a different computer on the same network

Expected behavior
The environment should be accessible from a different computer on the same network
Version and configuration information (please complete the following information):

Host computer OS and Version: Ubuntu 18.04
Docker version: 19.03.1
ddev version: 1.10.2

@FamousWolf couldn't you just also use docker-compose.letthemin.yaml as suggesten in the 1.10 release notes

Unless I misunderstood that will make it available through the random port which changes every time ddev (re)starts. I'm not that familiar with docker, so chances are I did misunderstand, but I did try it and it didn't work as desired.

@FamousWolf if the stack overflow technique didn't work... Please say what you wanted differently. Also, isn't ddev share a better solution?
What did you used to do? Because managing hostnames on each client on your network is difficult.  And of course it's a massive security flaw to assume that people want their ddev project exposed to everyone on their network. That's why it was tightened up.

Thanks. #1794 Looks like exactly what I need. I'll try it later today.

The solution in #1794 does work. It would be nice if there was just an option you could set in config.yaml, but this will do for now.
ddev share is fine to quickly share your environment with someone once, but unless you have a paid account the changing subdomains will become a pain quickly. It also feels dirty (for lack of a better description) to route a local development environment through an external service online just so someone who's on the same private network as me can access it.
We have an internal DNS that handles *.developername.internaldomain. We then use the additional_fqdns option to add the domain for the project (projectname.developername.internaldomain) to ddev.
I agree assuming people want their ddev project exposed to their network is a security issue. Which is why I wasn't proposing reversing the change, but having an option to expose it to your network.
So you want me to close this issue or should it stay open for the option in config.yaml?

So if you want to make a feature request, please do start a new issue with the feature request, why you want it, how you think it should work, etc. Thanks!


Support multiple vera controllers

Breaking Change:
Upgrading will result in all new entities being added, old entities will have to be manually removed. There sadly is no way around this as the older vera entities provided a unique_id that was not unique. It was in fact a generated (incremental) device number provided by the controller. Leaving this be would result in a collision with a second controller. Supporting multiple controllers is more reliable than vera's linked controllers feature which tends to stop working and has nearly zero documentation.
Description:
Adding support for multiple vera controllers.
Converting to a component with device info. Now we can assign entities to areas.
Fixing bug where vera entities had an 2 digit int for the unique_id.
Related issue (if applicable): None
Pull request with documentation for home-assistant.io (if applicable): home-assistant/home-assistant.io#11424
Example entry for configuration.yaml (if applicable):
vera:
  - base_url: http://<IP_ADDRESS>:3480/

Checklist:

[X] The code change is tested and works locally.
[X] Local tests pass with tox. Your PR cannot be merged unless tests pass
[X] There is no commented out code in this PR.
[X] I have followed the development checklist

If user exposed functionality or configuration variables are added/changed:

[X] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[X] The manifest file has all fields filled out correctly. Update and include derived files by running python3 -m script.hassfest.
[X] New or updated dependencies have been added to requirements_all.txt by running python3 -m script.gen_requirements_all.
[X] Untested files have been added to .coveragerc.

If the code does not interact with devices:

[X] Tests have been added to verify that the new code works.

This PR contains too many different things: A refactor, support for multiple controllers, config entries support, device info support.
Please split the PR into one PR per each of those tasks, and submit them one at a time.

Will do.


Child node is not loading having id with "()"

Child node with having id eg: "F:\Test\subnode(1)" is not loading its child elements giving error at
" this.element[0].querySelector('#' + ("0123456789".indexOf(obj.id[0]) !== -1 ? '\3' + obj.id[0] + ' ' + obj.id.substr(1).replace($.jstree.idregex,'\$&') : obj.id.replace($.jstree.idregex,'\$&')) )"
.

Issue has resolve with using the js version tree 3.3.4 instead of 3.0.0


Fall back to using ADC when setting up GCE PD CSI driver in CL2

So far, it wasn't possible to set up GCE PD CSI driver in CL2 without providing service account credentials to the driver's controller.
This PR adds an option to reuse Application Default Credentials if GOOGLE_APPLICATION_CREDENTIALS env var is not set during CL2 execution.
/assign @jkaniuk

/hold
I want to test it end-to-end before it merges.

/lgtm
/approve

/hold cancel

/lgtm


Update 5.4 kernel/firmware

This PR breaks raspberrypi3-64 builds with:
https://github.com/raspberrypi/linux/issues/3885
it's already fixed in currently latest commit in rpi-5.4.y branch:
https://github.com/raspberrypi/linux/commit/31d364af258ff9754a1a9c7d8ea532da962797bd
will send another PR to bump SRCREV even more.

Thanks @shr-project I tested rpi4 and rpi4-64 and it was working ok,


Handle closures in get_field_ty

Fixes #304

Strange. Travis says the test passed, but GitHub says it is still running. :/

@RalfJung I've seen it elsewhere too. Pretty sure it has to do with the GitHub downtime on Monday.
You should rebase (since you have an extra merge commit anyway) and force push.


Scrolling a document with a few tens of links rapidly exhausts the API limit

From what I can tell from reading the code the plugin doesn't perform any caching of the details returned from the API.
So if you have a page with a few tens of links scattered throughout (say, keeping track of open issues or PRs), and scroll through that document the plugin will make a new GitHub API request every time one of those links scrolls in to the viewport.
This can very rapidly run up against GitHub API rate limits (which relates to https://github.com/nathonius/obsidian-github-link/issues/21), and then the plugin effectively stops working.

Obsidian doesn't freeze, but the "chips" the plugin adds to replace the bare links stop updating.
I had a file with a few tens of links to PRs and issues, and not all of them were converted by the plugin as I scrolled.
E.g., all the links on the first visible part of the document were converted.
So were some that appeared when I scrolled down. Eventually they stopped being converted, just appearing as the bare links, and if I scrolled back up the links that previously had been converted were now showing as bare links.
If I closed the file and reopened it none of the links were converted.
If I then made a request to GitHub from the command line to check rate limits it showed 0 API calls left, with new ones available 20 minutes later.
So this is partly the existing "handle rate limits better" issue that's been opened, but if the API results are supposed to be cached that's not the behaviour I was seeing (otherwise I would expect that previously converted links would continue to display as chips after scrolling back up, or close and reopening the file).

@nikclayton turns out caching of individual issues and pull requests was not functioning. Additionally, I've added some safety guards around the rate limit as well as queuing requests instead of running them all concurrently. These changes are available in v0.5.1.
If you're still having trouble with rate limits, what sort of token are you using? Using a token from the github cli should give you a hearty rate limit of 5000 by default, I'd recommend that. That also means it would be your rate limit and you wouldn't be competing with anyone else using the plugin - if using the token generation flow within the plugin, it uses a shared limit.

Those changes have helped in 0.5.1, thanks.
I did notice that if the token rate limit expires while the plugin is decorating links in a document there doesn't appear to be a way to get it to restart on the links that were missed, except for closing and re-opening Obisidian (closing and reopening the Markdown file in Obsidian didn't do it).
That caused all the links in the file to be reprocessed, so it doesn't seem as though the cache persists across restarts. On the one hand that meant that it did eventually re-decorate all the links in the file, but on the other hand having to restart Obsidian is pretty heavyweight.
I also couldn't find a way to trigger a refresh on a single URL: E.g., with this in the file:
- [ ] https://github.com/nathonius/obsidian-github-link/issues/69

I can't trigger a "Check this single URL and update the UI if the issue state has changed"

Closing this in favor of #85 and #86, which should solve the remaining issues described.

@nikclayton with the release of v0.6.0, this should be even further improved. Cache is now saved to disk, so upon restart Obsidian won't overload the GitHub API with requests. There can still be some initial issues with rate limit, but by using a simple cache for back-to-back requests and using GitHub's etag and last-modified headers for other requests, data will be kept up to date, but won't count against the rate limit.
Let me know what you think!

Just tried it and it's a much better experience. Letting a file of PR links populate with the data, close and re-open Obsidian, and the PR data repopulates much faster.
Thank you.

@all-contributors please add @nikclayton for bug


JavaScript syntax highlighting not used for inline script in HTML files

VSCode Version: 1.7.2
OS Version: Windows 10 Version 1607 (OS Build 14393.0)
Color Theme: Light (Visual Studio)

Steps to Reproduce:

Create an HTML page that contains some inline JavaScript (example below) in a <script> tag.
View the HTML in Visual Studio Code.

The inline JavaScript is shown using colorization that does not match the colorization used for JavaScript files. JavaScript should be rendered in the same colours in the editor consistently.
Example HTML
<!DOCTYPE html>
<html>
<head>
    <title>An HTML Page</title>
</head>
<body>
    <script>
        console.log("This is some inline JavaScript");
    </script>
</body>
</html>

Expected appearance

Actual appearance

This got fixed with the TextMate changes for January (#3008)


Move rollup configs to individual packages

This PR splits the root rollup.config.js file out to individual packages/{name}/rollup.config.js files, and adjusts the root rollup.config.js file to read all packages/{name}/rollup.config.js files to auto-generat the root config.  This is similar in nature to the jest approach this repo is using.
This has two primary benefits:

In preparation for the repo merge, I'll be making the same change in react-router (once we merge the remixing branch) and aligning react-router to use the same exact approach and rollup.utils.js file.  This means that we do not have to merge the root rollup.config.js file from remix into react-router at all.  When we migrate the remix packages/* folders, they will bring along the package-specific rollup.config.js files, and the react-router root rollup.config.js file will just automatically pick up on them 😄
We can now do individual package builds via npx rollup -c directly from within a packages/{name} directory if we don't need to build everything.  This also "just works" with things like LOCAL_BUILD_DIRECTORY and rollup -w - both from the root and from individual packages

To test, I ran fresh builds on both dev and this branch and ensured diff -rq build-dev/ build-branch/ didn't report any differences.

@pcattori I ended up backing out of the index abstraction you added. There were a few subtle differences between them that seemed made a difference in the output without passing several additional arguments, so I figured I'd keep the original in tact for now.
Let me know if you think I missed anything and we can re-visit!

@pcattori I ended up backing out of the index abstraction you added. There were a few subtle differences between them that seemed made a difference in the output without passing several additional arguments, so I figured I'd keep the original in tact for now.
Let me know if you think I missed anything and we can re-visit!

The main value add were the magicExport helpers and those have been obsoleted by the work to move the magic exports out of their source packages. Was nice to see which things had magic exports in a declarative way. index and cli were just some low-hanging fruit, but not the main value for the abstractions IMO.
So yea, this makes sense!

Hey this is passing windows CI tests now?? 🥳   Any idea why?

@brophdawg11 Should be good for another pass here.

Hey this is passing windows CI tests now?? 🥳 Any idea why?

My rule of thumb is to never ask this question and just be thankful (meaning, I have no idea why 😅)

Looking good!  I ran a fresh build on dev and this branch and found a few small magic exports deltas - but unsure if I know which is correct:

This branch has export type { UploadHandler, UploadHandlerPart } from '@remix-run/node' in @remix-run/architect/dist/magicExports/remix.d.ts and dev does not
dev exports ActionArgs and LoaderArgs in @remix-run/server-runtime/dist/magicExports/remix.d.ts but this branch does not

Otherwise the builds looked identical minus two small /* webpackIgnore: true */ comments on some dynamic imports

This branch has export type { UploadHandler, UploadHandlerPart } from '@remix-run/node' in @remix-run/architect/dist/magicExports/remix.d.ts and dev does not
dev exports ActionArgs and LoaderArgs in @remix-run/server-runtime/dist/magicExports/remix.d.ts but this branch does not

This should be like we have on dev

@brophdawg11 Addressed both of those issues. Confirmed that magic exports match what's on dev, and the webpack comment should be included here 👍

We can now do individual package builds via npx rollup -c directly from within a packages/{name} directory if we don't need to build everything. This also "just works" with things like LOCAL_BUILD_DIRECTORY and rollup -w - both from the root and from individual packages

I am trying to build individual packages but it's not working:

remix/packages/remix-vercel (dev ✔) ᐅ npx rollup -c

packages/remix-vercel/index.ts →<EMAIL_ADDRESS>[!] Error: Could not resolve entry module (packages/remix-vercel/index.ts).
Error: Could not resolve entry module (packages/remix-vercel/index.ts).
    at error (/Users/ronnylt/Workspace/opensource/remix/node_modules/rollup/dist/shared/rollup.js:198:30)
    at ModuleLoader.loadEntryModule (/Users/ronnylt/Workspace/opensource/remix/node_modules/rollup/dist/shared/rollup.js:22527:20)
    at async Promise.all (index 0)


Try resolve the temporary dates debt

Trello: https://trello.com/c/colkZywn/43-complete-publishing-api-date-migration
This is an attempt to try wrap up a bunch of the work started in 2017 to migrate Publishing API to change the timestamps that are stored.
Currently Publishing API stores the timestamps for when a document is first published, the time it had a major publishing (public updated at) and when it was last edited. Unfortunately, as publishing applications can override these values, we often have no easily available data on when things occurred in the Publishing API. The hypothesis back in 2017 was that we would split these fields into two: one for publisher provided dates, the other for Publishing API ones. Work began to implement this, until work on Publishing API was paused.
This work left an element of debt where we had lots of timestamp fields on an Edition and it was unclear which ones of these were used. 2 years later it's unclear when or where any work on this could fit into any teams roadmap.
Given this, I've decided to try wrap up this work on timestamps with something of a compromise approach. I chose to give up on the idea of having two sets of date and instead continue with the existing behaviours for first_published_at, public_updated_at and last_edited_at. To store when editions were first published and last edited in Publishing API (regardless of user input) we have fields: publishing_api_first_published_at and publishing_api_last_edited_at and to capture some of the other missing times this introduces :published_at and major_published_at.
This is a draft PR, I don't expect it to be merged directly. It is more used to illustrate to tie up the date work and likely will go through in multiple PR's that cherry pick bits which will allow us to apply this with zero downtime.
A couple of things this also does is fix the way public_updated_at is set, these will use first_published_at rather than current time, as I can't think why they'd need this not to match.
It also changes the draft edition factory to not set public_updated_at and first_published_at since first drafts would not have this (which is what breaks the GDS API adapters pact test)

Now fully implemented by separate PRs


Correct directory name

Signed-off-by: Bartosz Rybacki<EMAIL_ADDRESS>
What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

NONE

/lgtm


[INFRA] Update selenium grid to the 4.2.2 version

Update version of selenium grid
https://www.selenium.dev/downloads/

https://github.com/TomashGombosh/docker-chrome-firefox/pull/28


Adding multiple Validation Failures, only serialises the first

Hello
I am trying to add multiple validation failures in my response, using ProblemDetails, but only the first one is serialised:

the default setting prevents duplicate errors for the same key name.
you can allow duplicates just by setting the following static property somewhere in your startup code:
ProblemDetails.AllowDuplicates = true;

documented here.

Works, thanks


feat(): Custom Authentification implemented Serverside

The server now uses the Authentification (Basic) token sent in the CONNECT
frame, in order to authentify the user for websockets.
This solution is safe and should bring no compromises.

closes #82


New version: Wondershare.MobileTrans version 4.5.17

Created by 🥟 Dumplings in workflow run #6316.

Log
Updated: 4.5.16 → 4.5.17
Submitting WinGet manifests
Creating manifests
Uploading manifests and making commits
Creating a pull request

Microsoft Reviewers: Open in CodeFlow

https://github.com/microsoft/winget-pkgs/issues/142854


subsys: fs: initial ext2 implementation

First PR from the series of PRs that will bring ext2 implementation into Zephyr. The following operations are implemented:

mount
mkfs
statvfs
unmount

In addition, there are also a few new tests added for the implemented functions.

Hi @de-nordic, could you take a look at this PR?

Hi @Laczen! Since you've been assigned as a reviewer here, could you take a look at this PR?

Hi @fkokosinski, my knowledge of ext2 is too limited to do a proper review. I am removing myself as reviewer. But as you are proposing to use this on flash: is this a good match ?

This will not get in till the feature freeze for 3.3.
I am not in favor of this feature because:

It is still "initial": in context of small RTOS this means it has not been sufficiently evaluated yet and will probably grow.
This has quite significant requirements and with lack of evaluation and real life testing again 1).
This does not fix any of current problems we have with existing file systems like lack of flash wear-balancing, limited efficiency, lack of stable storage.

If this would be already proven implementation that has gone through some period of field testing and "initial" could be dropped form the title then 3) does not matter that much.
Right now I am reluctant to take this as this looks more like "this can be done" academic type of feature, and yes I can see it can be done, than something useful at large.
I think this should be taken to TSC for discussion.

Hi Dominik, thank you for your reply.
I understand your concerns and I think I understand where they are coming from. The PR comes with targets for in-memory filesystem and flash filesystem.
The flash target that was chosen in this PR is unfortunate, and indeed not the main target for this filesystem. This was however done only because this allowed us to make this PR as small as possible to make the review process easier.
Also please note that this adds a new feature that is completely optional and does not change any of the existing codebase.
As for the actual purpose - I assume you say that this is only an academic type of feature because of your focus on microcontrollers. Please note however, that Zephyr has multiple targets where having an ext2 filesystem is beneficial (including non-microcontroller ones). In fact we started working on this because of the need for this in the products we are working on where we’re using Zephyr.
Here are some details I can share about the products, I think it’s sufficient to explain the needs:

A smart camera product, used with other OS currently, Zephyr is to be a drop in replacement (so has to work with current hw), the videos are saved to an ext2 formatted storage
A bootloader and a supervisor for a RISC-V platform, being a bootloader is indeed not the main use case for Zephyr, but seeing the number of useful features Zephyr has made it a good match.

That being said, we will close this PR for now and re-open this once the SD drivers are in a state we consider them being ready for mainlining. This will make this PR bigger but should make it clearer about where this is useful.

@tgorochowik, your remarks make it clear what the use would be. What if you would target ramdisk or flashdisk ? These are intermediate layers that would make a step to using sd very small.

Thank you for the suggestion, we'll evaluate these options

@tgorochowik Thanks for understanding.
I have seen the code and one of the comments I have: you should probably used Disk Access API rather than the Flash Map API, because using the former you can address access to MMC/SD, flash or RAM disk or any other type registered with proper driver (https://github.com/zephyrproject-rtos/zephyr/tree/main/drivers/disk)


Bug: Unexpected data in participant node 107fc818-f3c6-11e6-ae2e-0242ac110021

Version: 3.6.4
Some unexpected  data for this request:
https://api.dc01.gamelockerapp.com/shards/eu/matches?page[limit]=50&page[offset]=0&filter[playerNames]=Laexios

Several numeric values return empty strings
firstAfkTime is... strange
jungleKills is null

{
"type": "participant",
"id": "107fc818-f3c6-11e6-ae2e-0242ac110021",
"attributes": {
"actor": "Joule",
"stats": {
"assists": 0,
"crystalMineCaptures": "",
"deaths": 0,
"farm": 0,
"firstAfkTime": {
"s": 1,
"e": 2,
"c": [
1,
3,
0,
0,
3,
6,
9,
1,
1,
0,
1,
0,
7,
4,
2,
2
]
},
"goldMineCaptures": "",
"itemGrants": {},
"itemSells": {},
"itemUses": {},
"items": [],
"jungleKills": null,
"karmaLevel": 1,
"kills": "",
"krakenCaptures": "",
"level": 29,
"minionKills": "",
"nonJungleMinionKills": "",
"skillTier": 11,
"skinKey": "Joule_Skin_Killa_T2",
"turretCaptures": "",
"wentAfk": true,
"winner": false
}
},
"relationships": {
"player": {
"data": {
"type": "player",
"id": "aa906132-d8a3-11e5-8a20-06b48b82cd49"
}
}
}
},

hrm... @turindev Still happening or just this one match? Doesn't seem consistent?

I put workarounds in the code so I don't notice it anymore :). I'll look up this match when I get back to a computer!

On Apr 6, 2017, at 11:19 PM, Brian Corrigan<EMAIL_ADDRESS>wrote:
hrm... @turindev Still happening or just this one match? Doesn't seem consistent?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Hey @turindev is this still an issue? Seems like it might have just been a bad match!

Hmmm I don't see it because I added validation for it :). I'm happy if you are happy, I haven't had any user complaints about missing matches.

Sounds great! 👍


[Request-For-External] TAB37 "Sales Line" - Procedure ThrowWrongAmountError

Describe the request
Hello, we need the following currently Internal procedure to be set as Global. Can you please check this? Thank you!
[Request-For-External] TAB37 "Sales Line" - Procedure from Internal to Global

procedure ThrowWrongAmountError()

Additional context
Use it out of an TAB37-Event
Internal work item: AB#543561

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 22874.


bugfix: allow empty array default

This is a proposed fix for #947.  Not sure if it's the best way to fix the issue..

Hi @chunkerchunker , thanks for making this change! I've made a modification to cover the case where the attribute's argument type is any or any[] in a more generic way. It should be functionally equivalent to your fix, but I feel it's a bit more extensible for the future.
The type compatibility checking part is a bit messy indeed ...

I'll merge it when CI passes and will include it in the upcoming 1.7.0 release.


Cannot view admin with cancancan unless user has can :manage, :all

I've integrated rails_admin (1.4.2) with cancancan (3.0.1) and for the most part it works except I cannot give any more granular permissions than can :manage, :all  which seems to go against the example in the documentation. For example
Will allow superadmins to view the /admin route but not admins. I've verified that this isn't an issued with user.admin?
  def initialize(user)
    can :read, :all                 # allow everyone to read everything

    return unless user && user.admin?

    can :access, :rails_admin       # only allow admin users to access Rails Admin
    can :read, :dashboard           # allow access to dashboard

    if user.superadmin?
      can :manage, :all             # allow superadmins to do anything
    elsif user.admin?
      can :manage, Project
   end
 end

Any thoughts on what I could do here would be appreciated

@Andrew-Max Here is a  monkey patch:
module CanCan
  module Ability
    def can?(action, subject, attribute = nil, *extra_args)
      if action == :dashboard
        subject = :dashboard
      end

      match = extract_subjects(subject).lazy.map do |a_subject|
        relevant_rules_for_match(action, a_subject).detect do |rule|
          rule.matches_conditions?(action, a_subject, attribute, *extra_args) && rule.matches_attributes?(attribute)
        end
      end.reject(&:nil?).first
      match ? match.base_behavior : false
    end
  end
end

class Ability
  include CanCan::Ability

  def initialize(user)
    return unless user
    can :dashboard, :dashboard
    can :access, :rails_admin
    can :index, :all
  end
end

@existXFx  this is also very helpful for generally seeing how to override these permissions.
Thanks for this!

I have the same issue. Now, I'll use the provided solution, but, this issue should be left open and officially addressed than closed from a monkey patch.

The above did not solve my problem.


Module AWS.KMS.Logging.High.0400 seems to serve no purpose

terrascan version: 1.8.0

Description
I noticed that in scans of code that include KMS keys that the module AWS.KMS.Logging.High.0400 triggers. The description for this module reads, "Ensure rotation for customer created CMKs is enabled," but it points to kmsKeyNoDeletionWindow.rego which actually checks for the key deletion window (not rotation).
This looks like a copy/paste error since this same description is in AWS.AKK.DP.HIGH.0012.
Looking at it more closely, AWS.KMS.Logging.High.0400 seems to serve no purpose in AWS since keys cannot set deletion_window_in_days until they are scheduled for deletion. Similarly, deletion_window_in_days cannot be set higher than 30, and AWS sets a default value is none is explicitly set.
That makes me think this entire module can be deleted. Unless perhaps it's trying to check for something I'm not understanding? Either way, the module seems to be broken. I'm happy to assist in fixing it, but right now its purpose is unclear.
I plan to submit a PR that deletes this module, unless someone can tell me it's actually needed.

Submitted PR #918


Possibility of using import syntax on server in production mode.

Exploring the possibility of using 'import' syntax instead of 'require' on server in production mode.
Example Repo: https://github.com/joeyshipley/vite-plugin-ssr-server-import-syntax
In package.json
{
  "engines": {
    "node": "16.x"
  },
  "type": "module",

In server.js
import path from 'path';
import { fileURLToPath } from 'url';
import express from 'express';
import vite from 'vite';
import { createPageRender } from 'vite-plugin-ssr';

Perfect, I'll have a look at it tmrw

Fix released in 0.2.2.


Update prettystr and reduce the number of options when tab-to-completing

This PR re-factors the PrettyStr class into two: PrettyStrForDevices, and PrettyStrForSignals. The first is used when the ophyd object in question has child signals that should be included in the 'print' and the second for when child signals should not be included.
In addition this PR adds a custom __dir__() method to both of these classes to only show the read method and the child signals when doing tab-to-complete. This is meant to aid users by only showing items that they will need to access and hence removing confusion.
Finally it also includes some updates to some docstrings as they had gotten out of date with the significant number of recent PR merges.
@wen-hu and @Jiemin-Li please take a look and provide comments

@Jiemin-Li , @wen-hu  sorry for the new pushes but I decided to extend the number of built-in plans loaded to all of them. I also added mv and mvr, I also wanted to add some non-abbreviated versions so I went with move, rel_move and relative_move as this matches the naming convention for built-in scans.


Dragging OutputAreaWidget produces new OutputAreaWidget mirroring same model

Drag-and-drop any notebook output areas to generate a new stand-alone widget that mirrors that output area.
Thanks for the hand, @sccolbert.

If the origin cell is deleted, one is left with an empty mirror widget. What is the proper way to detect that the model is dead and dispose of the extra widget?

@blink1073 and I were talking about this. A model could, for example, have a signal that it is being disposed. A widget could listen to that signal and dispose itself when the model is being disposed. Then it would be on the owner of a widget, if it is changing the widget's model, to change the model before disposing the old model. @sccolbert, what do you think?

As written, this breaks slider widgets. The slider sees the mousemove event, but it propagates it to the OutputWidgetArea, and a Drag is started. Should jupyter-js-widgets block propagation of events to parents?

We should probably be more selective on which parts of the output area are valid for starting a drag. Since an output area can contain arbitrary output, we should probably not consider rendered output as a viable drag-start target. Maybe restrict the target area to the left side gutter?

@sccolbert That makes sense to me. See new commit, defining a widget class, OutputGutter, and moving the _startDrag logic there.

@danielballan can you post a gif of your most recent commit? If you need a tool to record it, most all of us use this one: http://www.cockos.com/licecap/

This is awesome. Adding a semantic class name to the mirrored output would help styling it differently (for example not display the top-level prompt in the mirrored output).

Sure. This recording demonstrates two things that work and two things that don't.
Good:

Dragging from the left-side "gutter" of an output area generates a "mirrored" copy that watches the same model.
Dragging from anywhere else in the main output area now does nothing, which avoids interfering with IPython widgets or other interactive elements there.

Bad:
3. Deleting a cell leaves any extant mirror widget(s) blank.
4. IPython widgets do not appear in mirror widgets.

Addressing (3), I wrote (unpushed) code in line with @jasongrout's suggestion above. When an OutputAreaModel is disposed, a new Signal will cause the corresponding OutputAreaWidget to be disposed. But I'm not sure what signal to watch to get this process started. Contrary to my expectation, deleting a cell does not seem to dispose that cell's OutputAreaModel.
I don't know where to start with (4). Is the problem obvious to anyone?

I think I solved (3) cleanly. See latest commit and this screencap of it working. I still could use help with (4).

@danielballan, you need to explicitly set the "trusted" attribute of the mirrored widget, the "widget" mimedata is being stripped.

Thanks, @blink1073. That did it.
So, this is now working and ready for review / discussion about whether it is a good idea. :- )

The other point of discussion (and maybe we want to handle this in a separate PR) is the UI/UX to indicate the output drag target area. As it currently sits, the draggability (is that a word) of the output area is somewhat undiscoverable. We may want to indicate it visually somehow, along with perhaps making a command to "mirror" the output of the selected cell in a new pane (maybe also another PR).
cc @ellisonbg for UI/UX input

Also, since it may not be apparent from my typing: THIS.IS.AWESOME!

Haha, thanks @sccolbert. All of the above sound reasonable to me -- including "draggability" as a word.

Great first PR, @danielballan, you nailed all of our design patterns.

Awesome, I added a demo GIF to your top level comment, will merge once Travis agrees.


LexerConfig not found

I get the following error when i try to import.
Fatal error: Class 'Goodby\CSV\Import\Standard\LexerConfig' not found in C:\Inetpub\vhosts\mydomain.com\httpdocs\importexport\code\bulkloader\sources\CsvBulkLoaderSource.php on line 82

Install https://github.com/goodby/csv

@jedateach I think we can close this issue?


[dubbo-2072]: need javadoc and articles for spring annotation use.

What is the purpose of the change
dubbo#2072: need javadoc and articles for spring annotation use.
Brief changelog
dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/annotation/Reference.java
dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/annotation/Service.java
Verifying this change
XXXXX
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a GITHUB_issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a GITHUB issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Format the pull request title like [Dubbo-XXX] Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[ ] Run mvn clean install -DskipTests & mvn clean test-compile failsafe:integration-test to make sure unit-test and integration-test pass.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #2084 into master will decrease coverage by 0.02%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             master   #2084      +/-   ##
===========================================
- Coverage     53.12%   53.1%   -0.03%
+ Complexity     4959    4957       -2
===========================================
  Files           559     559
  Lines         24894   24894
  Branches       4432    4432
===========================================
- Hits          13225   13219       -6
- Misses         9650    9655       +5
- Partials       2019    2020       +1

Impacted Files
Coverage Δ
Complexity Δ

...he/dubbo/remoting/transport/netty/NettyClient.java
72.88% <0%> (-10.17%)
12% <0%> (-1%)

...rpc/protocol/dubbo/telnet/InvokeTelnetHandler.java
54.43% <0%> (-1.27%)
12% <0%> (-1%)

.../dubbo/remoting/transport/netty4/NettyChannel.java
65% <0%> (-1.25%)
22% <0%> (-1%)

...org/apache/dubbo/rpc/filter/ActiveLimitFilter.java
88.88% <0%> (+5.55%)
7% <0%> (+1%)
: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 cd68437...314816d. Read the comment docs.


dockerTools: only try to remove non-overlayfs dirs

Commit 4d200538 made a common condition where the mnt/nix directory would appear in the overlayfs, an rmdir in the postMount hook would then fail during a runAsRoot layer.
Fixes #14710.

I would like to fix my commit first somehow. It shouldn't include /nix/store unconditionally.

@lethalman a previous layer brings in the nix and nix/store directories from your commit. They get mounted as the lower of overlayfs which I think means they can't be modified.

But before doing rmdir they get umounted, right?

During postMount we get a mount table like:
none on / type tmpfs (rw,relatime)
none on /dev type tmpfs (rw,relatime)
none on /dev/shm type tmpfs (rw,relatime)
store on /nix/store type 9p (rw,relatime,dirsync,trans=virtio,version=9p2000.L,cache=loose)
none on /tmp type tmpfs (rw,relatime)
none on /run type tmpfs (rw,relatime,mode=755)
xchg on /tmp/xchg type 9p (rw,relatime,dirsync,trans=virtio,version=9p2000.L,cache=loose)
none on /proc type proc (rw,relatime)
none on /sys type sysfs (rw,relatime)
/dev/vda on /tmp/disk type ext2 (rw,relatime,errors=continue,user_xattr,acl)
overlay on /tmp/disk/mnt type overlay (rw,relatime,lowerdir=image/9942f7701da35c4afcf3ce391c045926de5f3547ac9b07341162a439bf135f0d/layer:image/f58d61a874bedb7cdcb5a409ebb0c53b0656b880695c14e78a69902873358d5f/layer,upperdir=layer,workdir=work)
none on /tmp/disk/mnt/dev type tmpfs (rw,relatime)
none on /tmp/disk/mnt/dev/shm type tmpfs (rw,relatime)
none on /tmp/disk/mnt/sys type sysfs (rw,relatime)
store on /tmp/disk/mnt/nix/store type 9p (rw,relatime,dirsync,trans=virtio,version=9p2000.L,cache=loose)

We unmount the final 4 directories and try to remove each one. We then try to remove mnt/nix which is mounted, but read-only, via the overlay mount.

The point of the overlay is that you should be able to remove directories and files. They will be encoded in the new layer as being removed. Perhaps rmdir doesn't work while rm on files does? I have to try.

@lethalman replacing with rm doesn't fix the problem. Same error: Invalid argument

Is this the same problem? https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1480411

No. Bw I just tried and rmdir works perfectly in the overlay. I will keep debugging.

Just realised this PR is the same as removing the rmdir call completely.


HDDS-2720. Ozone Failure injection Service

What changes were proposed in this pull request?
Adding Fault Injection Service in Ozone:tools/FaultInjectionService directory
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-2720
How was this patch tested?
This is an independent tool which will be used to do fault injection testing for Ozone. Its build/test process is independent of Ozone and should not impact Ozone in any way.
For using this tool, please follow README in tools/FaultInjectionService.

Thanks the update @prashantpogde

Can you please remove tools/fault-injection-service/LICENSE? As I wrote this is unnecessary as the whole project is distributed under the top level LICENSE file.

License header check doesn't work for this dir (as I see). Can you please double check if ASF headers are added to everywhere? Seems to be missing from the Test*.cc files

I am fine to create the build script in the next PR. After 1-2, I will merge this.

@elek Thank you for the review. I have made the suggested changes. Please take a look.

I just found this one on the faq page

Other files may make sense to have no license header. Three examples are: ... Short informational text files; for example README, INSTALL files

It seems that we don't need LICENSE header for that specific README.


web: Fix usage of .replace with variable replacement

String.prototype.replace and String.prototype.replaceAll interpret certain sequences such as $$ within a string provided as the replacement argument. Avoid this interpretation by providing a function.

Merged, thanks @andersk!


PYTHONSAFEPATH is not respected

Applies To

[x] Notebooks (.ipynb files)
[x] Interactive Window and/or Cell Scripts (.py files with #%% markers)

What happened?
In workspace .env file:
PYTHONSAFEPATH=1

A test file (can be either .ipynb cell or a %% block in a .py file):
import sys
print(sys.flags.safe_path)
print(sys.path)

When the cell is run with the Jupyter extension, the output is:
True
['/home/user/Workspaces/main/python', '/home/user/.mamba/lib/python311.zip', '/home/user/.mamba/lib/python3.11', '/home/user/.mamba/lib/python3.11/lib-dynload', '', '/home/user/.mamba/lib/python3.11/site-packages', '/home/user/.mamba/lib/python3.11/site-packages/setuptools/_vendor']

When run with the Python extension as a Python script, the output is:
True
['/home/user/Workspaces/main/python', '/home/user/.mamba/lib/python311.zip', '/home/user/.mamba/lib/python3.11', '/home/user/.mamba/lib/python3.11/lib-dynload', '/home/user/.mamba/lib/python3.11/site-packages', '/home/user/.mamba/lib/python3.11/site-packages/setuptools/_vendor']

Notice the empty string right before the site-packages directory when run with Jupyter. When sys.flags.safe_path is set (in this case through the PYTHONSAFEPATH=1 env var), this empty string should not be present.
VS Code Version
Version: 1.89.1-cde Commit: 982664f21043ab3f264d1705f0887679853d6af9 Date: 2024-10-30T00:53:56.119Z (2 wks ago) Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
Jupyter Extension Version
v2024.4.0
Jupyter logs
Code OSS for Cloud Workstations (1.89.1-cde, 80-sidb.cluster-2pt3hubcdrgtkwmwq6q2s55636.cloudworkstations.dev, desktop)
Jupyter Extension Version: 2024.4.0.
Python Extension Version: 2024.12.3.
Pylance Extension not installed.
Platform: linux (x64).
Workspace folder ~/Workspaces/main, Home = /home/user
18:34:08.995 [info] Process Execution: ~/.mamba/bin/python -m pip list
...[snipped]...
18:46:28.024 [info] Starting interactive window for resource '~/Workspaces/main/a.py' with controller '.jvsc74a57bd00a8a2dede04a01d79e22df88f0be047c97e484973fe05a0227d48a9c31c4bbbe./home/~/.mamba/python./home/~/.mamba/python.-m#ipykernel_launcher (Interactive)'
18:46:28.282 [info] Starting Kernel startUsingPythonInterpreter, .jvsc74a57bd00a8a2dede04a01d79e22df88f0be047c97e484973fe05a0227d48a9c31c4bbbe./home/~/.mamba/python./home/~/.mamba/python.-m#ipykernel_launcher  (Python Path: ~/.mamba/bin/python, Conda, base (Python 3.11.9), 3.11.9) for '/Interactive-1.interactive' (disableUI=false)
18:46:32.838 [info] Process Execution: ~/.mamba/bin/python -c "import ipykernel; print(ipykernel.__version__); print("5dc3a68c-e34e-4080-9c3e-2a532b2ccb4d"); print(ipykernel.__file__)"
18:46:32.872 [info] Process Execution: ~/.mamba/bin/python -m ipykernel_launcher --f=/home/~/.local/share/jupyter/runtime/kernel-v2-68139hamC8RXJPygd.json
    > cwd: ~/Workspaces/main
18:46:33.538 [info] Generated code for 1 = <ipython-input-1-fa9c31eb629c> with 4 lines
18:46:33.603 [info] Cell 1 completed in 0.002s (start:<PHONE_NUMBER>601, end:<PHONE_NUMBER>603)

Coding Language and Runtime Version
Python v3.11.9
Language Extension Version (if applicable)
Python v2024.12.3
Anaconda Version (if applicable)
micromamba 2.0.2
Running Jupyter locally or remotely?
Local

A workaround could be to have this in your User settings.json (other settings scopes do not have this setting).
    "jupyter.runStartupCommands": [
        "import sys",
        "sys.path = [p for p in sys.path if p != '']"
    ]

Please could you enable logging as follows:

Open settings & go into Jupyter->Logging
Change the value to trace
Reload VS Code,
Attempt to repro the issue & then copy the output from the Jupyter output panel (use the command Jupyter: Show Output to get to the logs).

Thank you @DonJayamanne for your interest. Complete trace output from a new session:
Visual Studio Code (1.94.2, undefined, desktop)
Jupyter Extension Version: 2024.9.1.
Python Extension Version: 2024.22.0.
Pylance Extension Version: 2024.12.1.
Platform: darwin (arm64).
Temp Storage folder ~/Library/Application Support/Code/User/globalStorage/ms-toolsai.jupyter/version-2024.9.1
Workspace folder ~/Workspaces/demo, Home = /Users/sidb
17:03:32.904 [debug] Start refreshing Kernel Picker<PHONE_NUMBER>904)
17:03:33.127 [trace] Search for KernelSpecs in Interpreter /usr/bin/python3
17:03:33.128 [trace] Search for KernelSpecs in Interpreter /opt/homebrew/bin/python3.12
17:03:33.128 [trace] Search for KernelSpecs in Interpreter /opt/homebrew/bin/python3
17:03:33.128 [trace] Search for KernelSpecs in Interpreter ~/Workspaces/demo/.venv/bin/python
17:03:33.129 [trace] Search for KernelSpecs in Interpreter /opt/homebrew/anaconda3/bin/python
17:03:33.129 [debug] Get Custom Env Variables, Class name = Cm, completed in 225ms, has a truthy return value, Arg 1: undefined, Arg 2: "RunPythonCode"
17:03:33.129 [debug] Jupyter Paths /kernels:
17:03:33.129 [debug] Kernel Spec Root Paths, /usr/share/jupyter/kernels, /usr/local/share/jupyter/kernels, ~/Library/Jupyter/kernels
17:03:33.327 [debug] KernelProvider switched kernel to id = .jvsc74a57bd010d6d58631b164f0ea2f302513310b4ca098cd9cb50027f0f20dc42988ab871b./Users/~/Workspaces/demo/.venv/python./Users/~/Workspaces/demo/.venv/python.-m#ipykernel_launcher
17:03:33.328 [debug] start the kernel, options.disableUI=true for ~/Workspaces/demo/demo.ipynb
17:03:33.328 [debug] Controller selection change completed
17:03:33.333 [debug] Get Custom Env Variables, Class name = Cm, completed in 0ms, has a truthy return value, Arg 1: "~/Workspaces/demo", Arg 2: "RunPythonCode"
17:03:33.333 [info] Starting Kernel (Python Path: ~/Workspaces/demo/.venv/bin/python, Venv, 3.13.1) for '~/Workspaces/demo/demo.ipynb' (disableUI=true)
17:03:33.334 [trace] Creating raw notebook for resource '~/Workspaces/demo/demo.ipynb'
17:03:33.340 [debug] Get Custom Env Variables, Class name = Cm, completed in 0ms, has a truthy return value, Arg 1: "~/Workspaces/demo/demo.ipynb", Arg 2: "RunPythonCode"
17:03:33.346 [trace] Hiding default KernelSpec /python for interpreter ~/Workspaces/demo/.venv/bin/python (KernelSpec file ~/Workspaces/demo/.venv/share/jupyter/kernels/python3/kernel.json)
17:03:33.346 [trace] Hiding default KernelSpec /opt/homebrew/anaconda3/bin/python for interpreter /opt/homebrew/anaconda3/bin/python (KernelSpec file /opt/homebrew/anaconda3/share/jupyter/kernels/python3/kernel.json)
17:03:33.347 [debug] End refreshing Kernel Picker<PHONE_NUMBER>904)
17:03:33.429 [debug] Launching kernel .jvsc74a57bd010d6d58631b164f0ea2f302513310b4ca098cd9cb50027f0f20dc42988ab871b./Users/~/Workspaces/demo/.venv/python./Users/~/Workspaces/demo/.venv/python.-m#ipykernel_launcher for ~/Workspaces/demo/demo.ipynb in //Users/~/Workspaces/demo with ports 9001, 9000, 9004, 9002, 9003
17:03:33.592 [debug] Got env vars from Python Ext in 252ms for ~/Workspaces/demo/.venv/bin/python, with env var count 45.
17:03:33.592 [trace] Prepend PATH with python bin for ~/Workspaces/demo/.venv/bin/python
17:03:33.592 [debug] Getting activated env variables, Class name = gd, completed in 252ms, has a truthy return value, Arg 1: "~/Workspaces/demo/demo.ipynb", Arg 2: "~/Workspaces/demo/.venv/bin/python", Arg 3: undefined
17:03:33.593 [info] Process Execution: ~/Workspaces/demo/.venv/bin/python -c "import ipykernel; print(ipykernel.__version__); print("5dc3a68c-e34e-4080-9c3e-2a532b2ccb4d"); print(ipykernel.__file__)"
17:03:33.594 [info] Process Execution: ~/Workspaces/demo/.venv/bin/python -m ipykernel_launcher --f=/Users/~/Library/Jupyter/runtime/kernel-v37f5c325dc9c7ac6115f3ec6d7bfb79016e7c3796.json
    > cwd: //Users/~/Workspaces/demo
17:03:33.594 [debug] Kernel process 68906.
17:03:33.605 [debug] Got env vars from Python Ext in 272ms for ~/Workspaces/demo/.venv/bin/python, with env var count 45.
17:03:33.605 [trace] Prepend PATH with python bin for ~/Workspaces/demo/.venv/bin/python
17:03:33.605 [debug] Getting activated env variables, Class name = gd, completed in 272ms, has a truthy return value, Arg 1: "~/Workspaces/demo", Arg 2: "~/Workspaces/demo/.venv/bin/python", Arg 3: undefined
17:03:33.606 [info] Process Execution: ~/Workspaces/demo/.venv/bin/python -m pip list
17:03:33.729 [trace] ipykernel version & path 6.29.5, ~/Workspaces/demo/.venv/lib/python3.13/site-packages/ipykernel/__init__.py for ~/Workspaces/demo/.venv/bin/python
17:03:33.905 [debug] Kernel output 68906: To connect another client to this kernel, use:
--existing kernel-v37f5c325dc9c7ac6115f3ec6d7bfb79016e7c3796.json
17:03:34.027 [debug] Waiting for Raw Session to be ready in postStartRawSession
17:03:34.027 [debug] Waiting for Raw session to be ready, status: connected
17:03:34.027 [trace] Raw session connected
17:03:34.027 [debug] Waited for Raw session to be ready & got status: connected
17:03:34.027 [debug] Successfully waited for Raw Session to be ready in postStartRawSession
17:03:34.027 [debug] Kernel status is 'unknown' before requesting kernel info and after ready
17:03:34.027 [debug] Sending request for kernelInfo
17:03:34.032 [trace] Got response for requestKernelInfo
17:03:34.032 [debug] Successfully completed postStartRawSession after 1 attempt(s) in 5ms
17:03:34.033 [trace] Executing silently Code (idle) = import sys as _VSCODE_sys\nprint(_VSCODE_sys.executable); del _VSCODE_sys
17:03:34.044 [trace] Executing silently Code (completed) = import sys as _VSCODE_sys\nprint(_VSCODE_sys.executable); del _VSCODE_sys with 1 output(s)
17:03:34.044 [trace] Started running kernel initialization for ~/Workspaces/demo/demo.ipynb
17:03:34.044 [trace] Executing silently Code (idle) = try:\nimport ipywidgets as _VSCODE_ipywidgets\nprint("e976ee50-99ed-4aba-9b6b-9dcd5634d07d:IPy
17:03:34.048 [trace] Executing silently Code (completed) = try:\nimport ipywidgets as _VSCODE_ipywidgets\nprint("e976ee50-99ed-4aba-9b6b-9dcd5634d07d:IPy with 0 output(s)
17:03:34.048 [trace] Determined IPyWidgets Version as undefined
17:03:34.049 [trace] Executing silently Code (idle) = def __VSCODE_inject_module():\ndef __VSCODE_call_function(function, callback, data=None):
17:03:34.056 [trace] Executing silently Code (completed) = def __VSCODE_inject_module():\ndef __VSCODE_call_function(function, callback, data=None): with 0 output(s)
17:03:34.056 [debug] Requesting Kernel info
17:03:34.056 [trace] Got Kernel info
17:03:34.056 [trace] End running kernel initialization, now waiting for idle
17:03:34.056 [trace] Waiting for idle on (kernel): db226cc0-3cde-4d72-9f1f-6708fa2089d4 -> idle
17:03:34.056 [trace] Finished waiting for idle on (kernel): db226cc0-3cde-4d72-9f1f-6708fa2089d4 -> idle
17:03:34.056 [trace] End running kernel initialization, session is idle
17:03:34.057 [trace] Registering Kernel Completion Provider from kernel .venv (Python 3.13.1) for language python
17:03:34.057 [info] Kernel successfully started
17:03:34.245 [debug] Interpreter for Pylance for Notebook URI "~/Workspaces/demo/demo.ipynb" is ~/Workspaces/demo/.venv/bin/python
17:03:35.311 [trace] Conda file is /opt/homebrew/anaconda3/bin/conda
17:03:36.508 [trace] IPyWidgetScriptSource.initialize
17:03:36.509 [trace] Registering commtarget jupyter.widget
17:03:36.509 [debug] Start refreshing Interpreter Kernel Picker
17:03:36.510 [debug] Start refreshing Kernel Picker<PHONE_NUMBER>510)
17:03:36.512 [debug] getDataDirsImpl, Class name = Mr (started execution), Arg 1: "~/Workspaces/demo/demo.ipynb", Arg 2: "~/Workspaces/demo/.venv/bin/python"
17:03:36.513 [debug] Get Custom Env Variables, Class name = Cm, completed in 1ms, has a truthy return value, Arg 1: undefined, Arg 2: "RunPythonCode"
17:03:36.513 [debug] Jupyter Paths :
17:03:36.533 [info] Process Execution: ~/Workspaces/demo/.venv/bin/python /Users/~/.vscode/extensions/ms-toolsai.jupyter-2024.9.1-darwin-arm64/pythonFiles/printJupyterDataDir.py
17:03:36.565 [debug] Got an empty Jupyter Data Dir from /Users/~/Workspaces/demo/.venv/bin/python, stderr = undefined
17:03:36.565 [debug] getDataDirsImpl, Class name = Mr, completed in 53ms, has a truthy return value, Arg 1: "~/Workspaces/demo/demo.ipynb", Arg 2: "~/Workspaces/demo/.venv/bin/python", Return Value: <Uri:/Users/~/Library/Jupyter>, <Uri:/Users/~/Workspaces/demo/.venv/share/jupyter>, <Uri:/usr/local/share/jupyter>, <Uri:/usr/share/jupyter>
17:03:36.761 [trace] Python API env change detected, update => '/Users/~/Workspaces/demo/.venv/bin/python'
17:03:36.762 [trace] Python API env change detected, update => '/opt/homebrew/anaconda3/bin/python'
17:03:36.762 [trace] Python API env change detected, update => '/usr/bin/python3'
17:03:36.762 [trace] Python API env change detected, update => '/opt/homebrew/bin/python3'
17:03:36.762 [trace] Python API env change detected, update => '/opt/homebrew/bin/python3.12'
17:03:36.763 [trace] Search for KernelSpecs in Interpreter /opt/homebrew/bin/python3.12
17:03:36.764 [debug] Refreshed Environments
17:03:37.770 [debug] End refreshing Kernel Picker<PHONE_NUMBER>510)
17:03:38.907 [debug] Handle Execution of Cells 0 for ~/Workspaces/demo/demo.ipynb
17:03:38.909 [trace] Execute Notebook ~/Workspaces/demo/demo.ipynb. Step 1
17:03:38.909 [trace] Connect to Kernel ~/Workspaces/demo/demo.ipynb. Step 2
17:03:38.909 [trace] Connected to Kernel ~/Workspaces/demo/demo.ipynb. Step 3
17:03:38.910 [trace] executeCell 0. Step 4
17:03:38.911 [trace] Cell Index:0 sent to kernel
17:03:38.918 [trace] Start cell 0 execution @<PHONE_NUMBER>918 (clear output)
17:03:38.919 [debug] Kernel acknowledged execution of cell 0 @<PHONE_NUMBER>918
17:03:38.921 [trace] Cell 0 completed in 0.003s (start:<PHONE_NUMBER>918, end:<PHONE_NUMBER>921)
17:03:38.921 [trace] Cell 0 executed successfully

When run with the Python extension as a Python script, the output is:

Please could you let me know how exactly you do this, i.e. what is the command or icon you use.
Please can you share a screenshot or screen recording of this.
Finally, is this python file being executed in a terminal?

Sure. Screenshot attached here. The Python extension will run the file in a terminal.

By definition of sys.flags.safe_path, the empty string should not be present in sys.path, so it appears that the Jupyter extension is adding it.

Got it thanks.

Found that this empty entry isn't added by the Jupyter extesnion in VS Code, but by the ipykernel package itself (thats used by Jupyter Lab for starting Python kernels).
Closing this issue as its not caused by Jupyter extension.

Thank you for helping find the root cause.


Update container image

The jekyll/jekyll Docker image (GitHub repository envygeeks/jekyll-docker) is apparently unmaintained. Aside from lacking software environment updates and aarch64 builds, its jekyll wrapper script changes ownership of jekyll-generated in the bind-mounted volume, which seems to cause fatal errors on startup in my environment using Rancher Desktop:
% docker compose up
...
jekyll-starter-legumeinfo-jekyll-1  | chown: .jekyll-cache: Permission denied
jekyll-starter-legumeinfo-jekyll-1 exited with code 1

This PR suggests using a maintained container image like bretfisher/jekyll-serve.
Additionally:

Use more-strict YAML & Liquid parsing options to catch bugs in the starter & theme
Remove jekyll-feed plugin in anticipation of https://github.com/legumeinfo/jekyll-theme-legumeinfo/issues/63

If anything is controversial, I can revert / break into smaller PRs.

Thanks for the PR @nathanweeks. I find it interesting that the bretfisher images don't have versions. It has me thinking that maybe Jekyll shouldn't be provided by the image in the first place, i.e. we want the Jekyll version installed in containers to match what's in the Gemfile and having it preinstalled via a third-party image undermines this. Perhaps we should just use a ruby base image and have Jekyll installed by the Gemfile, either in our own Dockerfile or directly in docker-compose.yml. This would be analogous to our various JS/TS projects that use an NPM base image. For example, GCV's Dockerfile uses the NPM image and installs the version of Angular it needs at build time using the package.json file. What do you think?

Thanks for the PR @nathanweeks. I find it interesting that the bretfisher images don't have versions. It has me thinking that maybe Jekyll shouldn't be provided by the image in the first place, i.e. we want the Jekyll version installed in containers to match what's in the Gemfile and having it preinstalled via a third-party image undermines this. Perhaps we should just use a ruby base image and have Jekyll installed by the Gemfile, either in our own Dockerfile or directly in docker-compose.yml. This would be analogous to our various JS/TS projects that use an NPM base image. For example, GCV's Dockerfile uses the NPM image and installs the version of Angular it needs at build time using the package.json file. What do you think?

There's sort of an implicit jekyll versioning in the CalVer-tagged images (https://hub.docker.com/r/bretfisher/jekyll-serve/tags), as Jekyll releases are few & far between. Regardless, though, I agree that would be fine to define a custom Dockerfile (or dockerfile_inline section in the Compose file) that, e.g., does a bundle install on build.

I agree that would be fine to define a custom Dockerfile (or dockerfile_inline section in the Compose file) that, e.g., does a bundle install on build.

Now that I think about it, a Dockerfile is probably the way to go so we can build/use the container without Docker Compose. Although there should definitely still be a compose.yml file. Do you mind tackling this? I seem to be destined to endlessly squashing bugs as I try and get the 1.0.0 release out the door!

Minimal example ruby:3.2 based Dockerfile that installs dependencies specified in Gemfile(.lock) & compose.yml (renamed per Compose spec recommendations) that implements separate services for building (only) and building/serving the site. The build-only could be used, e.g., for CI/CD workflows outside of GitHub Actions.
FWIW, I removed jekyll from the starter site's Gemfile, as it's already listed as a dependency in jekyll-theme-legumeinfo's gemspec, but it can be retained in the Gemfile if preferred.

Thanks for making those changes @nathanweeks. I think the Dockerfile should have a default entrypoint. What do you think of having jekyll serve as the default since that's the default service in the compose.yml file?
Regarding specifying jekyll as a dependency in the site or theme, I wasn't sure what the best practice is here so I had a look at the Jekyll Themes documentation. This makes me think the theme should specify a range of Jekyll versions it's compatible with (like in the minima theme) and the starter site should specify a specifc Jekyll version it wants installed, e.g. ~4.3. What do you think?

Thanks for making those changes @nathanweeks. I think the Dockerfile should have a default entrypoint. What do you think of having jekyll serve as the default since that's the default service in the compose.yml file?

Adding bundle exec jekyll serve as the ENTRYPOINT would be fine.

Regarding specifying jekyll as a dependency in the site or theme, I wasn't sure what the best practice is here so I had a look at the Jekyll Themes documentation. This makes me think the theme should specify a range of Jekyll versions it's compatible with (like in the minima theme) and the starter site should specify a specifc Jekyll version it wants installed, e.g. ~4.3. What do you think?

Sounds reasonable. I've updated the PR to implement both; please let me know if this wasn't quite what was intended.

That all looks good. One final question: should the Dockerfile also expose the ports 4000 and 35729 so there's also a default port if none is specified?

That all looks good. One final question: should the Dockerfile also expose the ports 4000 and 35729 so there's also a default port if none is specified?

EXPOSE is usually treated as metadata-only by container engines (though I'm aware of at least one PaaS---Cloud Foundry---that uses it if it's specified), but it's fine to add for documentation/information purposes. I'll push a commit to do so.

Actually, I guess only port 4000 would be exposed with the default bundle exec jekyll serve entrypoint (without --livereload). Is that OK?

Alternatively, the value of the jekyll service's command property (--incremental --livereload --profile --trace --host <IP_ADDRESS>) could be moved to the ENTRYPOINT directive, and EXPOSE 35729 added. I have no strong preference either way.


Improve performance of OONI Run website

Several community members mentioned that the OONI Run website (run.ooni.io) lags and that they find the process of typing URLs into the URL slots slow and sluggish.
More specifically, they mentioned that there is a delay between typing and the typed letters being displayed in the URL slots of the OONI Run website.

This might have already been done. @sarathms can you confirm?

Yes we can close this. We have already documented further improvements in other issues.


Support to convert the text-to-image quantized stable diffusion models to onnx

Dear Author , I am able to convert the FP32 stable diffusion model to INT8 quantized model
But I haven't seen any support functions / api's for converting quantized INT8 SD model to onnx .
When can we expect the support for it

Hi, I see some similar discussion under https://github.com/intel/neural-compressor/issues/87, do you still have the issue?

Yes , torch2onnx.py supports other models not the stable diffusion models
I am not able to convert the model

Hi @sravanthOppo27 Please split stable diffusion model and convert them one-by-one.

Closed the issue due to no update for a long time, please re-open the ticket if the issue still there.


Can I disable hints in the .ts file?

Nice works！
Is there any way to disable hints in the .ts file?
I want NzTreeNode, but ....

In the light of template:, but actually it is unneccessary.

Instant response ! I'm wondering how did you do that.


[webapp] Best way to make all routes only accessible after login

thanks for your hard work her! small question: whats the best way to make a webapp, whree all pages are only accessible after successfull login (execpt landing page, login..)?

@querl thank you for the kind words. Have you looked at https://github.com/codefoundries/UniversalRelayBoilerplate/blob/master/units/urb-example-force-login/webapp/components/ForceLogin.js ? Or you have something else in mind?

@thelordoftheboards Thanks for the quick response. Yes, I'm using this system currently in the render() function in a custom version of  https://github.com/codefoundries/UniversalRelayBoilerplate/blob/master/webapp/components/Chrome.jsx to protect all child components. But I'm not sure if there is a better way to handle this in https://github.com/codefoundries/UniversalRelayBoilerplate/blob/master/webapp/renderOnServer.js.
If no user token is found (anonymous user) the user should always be redirected to a login user page.

@querl Maybe it is possible to add a property to the routes indicating if they require log in? Even more so, there could maybe be a function that checks what permissions does the user have for each route, if we are to support user roles.

@thelordoftheboards  Yes thanks, you are right. The react-router onEnter Hook seems a pretty good solution to handle auth and role based access. https://github.com/ReactTraining/react-router/blob/v3/docs/Glossary.md#enterhook

If you would like to PR with a solution that does not break the existing functionality, I would love to merge it.

Security and navigation will be revamped, if there are issues afterward, this can be re-opened.


Handle user multiple role

@mplt-simon this is now ready for review, we could wait for the Laravel 11.19.0 Shift #33 to be merge first to main then rebase this branch before approving.

I've merged the 11.19.0 Shift branch to main so all good for you to rebase 👍

@mplt-simon this is ready for review now. 👍


php-cs-fixer integration?

Does anyone succeded in implementing php-cs-fixer inside these config files? Any help?

add this line
nls.builtins.formatting.phpcsfixer,

to here
https://github.com/abzcoding/lvim/blob/8290587ab3f214547733e3bbb965c3a0e314da2c/lua/user/null_ls/init.lua#L45

Simply awesome!! Thanks a lot

I see a strange behaviour. In some files that are not formatted phpcs is selected on the status line (together with intelephense), but the usual command (<leader>+l f) doesn't make any changes. If I launch directly php-cs-fixer fixfrom terminal it function as expected. Do you know where to see to understand where is the problem?

I see a strange behaviour. In some files that are not formatted phpcs is selected on the status line (together with intelephense), but the usual command (<leader>+l f) doesn't make any changes. If I launch directly php-cs-fixer fixfrom terminal it function as expected. Do you know where to see to understand where is the problem?

the formatting is done through null-ls, to debug the matter add the following line
debug = true,

in here -> https://github.com/abzcoding/lvim/blob/8290587ab3f214547733e3bbb965c3a0e314da2c/lua/user/null_ls/init.lua#L127
then use
:NullLsLog

command to see the debug logs
for more info, check out their repo

I tried and it doesn't write anything in my log. I tried to ask them and minimal installation works flawlessly. I think the problem is with some incompatibility with my installation of lunarvim and/or php-cs-fixer. I tried to install php-cs-fixer globally (via composer global require) and to install via Mason, but without any success or error message

I tried and it doesn't write anything in my log. I tried to ask them and minimal installation works flawlessly. I think the problem is with some incompatibility with my installation of lunarvim and/or php-cs-fixer. I tried to install php-cs-fixer globally (via composer global require) and to install via Mason, but without any success or error message

first off, make sure that you have some language server installed ( intelephense or phpactor or ...)
then try running
:lua vim.lsp.buf.format()

and see if that works ( instead of calling <leader>lf)

Closing due to inactivity. Feel free to reopen it


NIFI-1663: Add ConvertAvroToORC processor

There is a test template here: https://gist.github.com/mattyb149/3644803e8e0642346cf02b89ef62b411

This currently depends on a SNAPSHOT of Apache ORC 1.1.0, which is why the CI builds are failing. I will contact the ORC crew to see when the release will be ready

Any update from ORC crew?

They're evaluating RC3 as of this writing, I will be doing the same but I expect good results and an imminent release :)

The ORC 1.1.0 jars are on Maven Central. :)

@omalley Thanks! I updated the version in the POM to 1.1.0 and force-pushed the branch. Hopefully Travis will find the release JARs and complete successfully :)

Just updated the POM to use Orc 1.1.1 (and changed the hard-coded version to a property)

@mattyb149 Looks good for the most part. I left a few inline comments, just some tweaks that i think can probably help to cleanup the code. Also, I noticed OrcFlowFileWriter.java is a pretty hefty file. I think this is a slight modification to one of the writers in the Orc codebase, correct? does it make sense to instead create a PR for Apache Orc so that they can incorporate the slight change that is needed, instead of having to maintain that huge file that could change over time?


fix(types): export interface for module builder type generation

🔗 Linked issue

#737

❓ Type of change

[ ] 📖 Documentation (updates to the documentation, readme or JSdoc annotations)
[x] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
Resolves #797
This moves the type augmentation to module.ts and exports the ModulePublicRuntimeConfig interface (as well as ModuleOptions) which are used by nuxt/module-builder to generate the correct types.
The original type augmentation is kept to for type inference in the source code (matches previous behaviour).
Without these changes the types will conflict with those of other modules (https://github.com/nuxt-modules/i18n/issues/2915), I have tested these changes locally with the reproduction provided in the referenced issues and it seems to work.
📝 Checklist

[x] I have linked an issue or discussion.
[ ] I have added tests (if possible).
[ ] I have updated the documentation accordingly.

@phoenix-ru
is it possible that this fix gets released as 0.7.3?  because without it, we get unnecessary eslint issues while having nuxt 3.11.2.  I think it will be sometime before we get stable version 8.
thanks


Support detection of multiple environments/workspaces

Currently the package supports use of system variables (e.g. .Renviron) to detect host, token, and workspace ID required for the API's brickster wraps.
This support does not extend past a singular workspace.
Currently users who require context switching within a singular R project are required to be explicit.
Considering support some (or all) of the following:

Use of .databrickscfg as per CLI
Option to specify db_workspace that will detect specified .Renviron variables via suffix
Enhance db_host()/db_token()/db_wsid() such that they take an env argument (can default to option)

This will enable workflows such as:
library(brickster)

# use default in .Renviron
db_cluster_list()

# use db_host_finops/db_token_finops/db_wsid_finops
options(db_env = "finops")
db_cluster_list()

# to use default again
options(db_env = NULL)
db_cluster_list()

# use db_host_finops/db_token_finops/db_wsid_finops
db_cluster_list(host = db_host(env = "finops"), token = db_token(env = "finops"))

options(use_db_cli_config = TRUE)
options(db_env = "prod") # <-- searches `.databrickscfg` not `.Renviron`
db_cluster_list()

PR #22


fix(home): remove white space on tablet

https://openforge.teamwork.com/#/tasks/17495216

QA Passes


ClientRequest init(options, callback) generates invalid URI

If a ClientRequest object is created with an array of ClientRequestOptions then the resulting URI that is created is missing '://' after the schema element.
Easiest way to recreate this is to parse a URL with URLParser and then use the fields from it as ClientRequestOptions and the resulting URL won't match the original.

it's because init of client request is written like that:

    init(options: [ClientRequestOptions], callback: ClientRequestCallback) {

        self.callback = callback

        var theSchema = "http://"
        var hostName = "localhost"
        var path = "/"
        var port: Int16? = nil

        for option in options  {
            switch(option) {
                case .Method(let method):
                    self.method = method
               ...
            }
        }

        // Adding support for Basic HTTP authentication
        let user = self.userName ?? ""
        let pwd = self.password ?? ""
        var authenticationClause = ""
        if (!user.isEmpty && !pwd.isEmpty) {
          authenticationClause = "\(user):\(pwd)@"
        }

        var portClause = ""
        if  let port = port  {
            portClause = ":\(String(port))"
        }

        // IMPORTANT HERE:
        // That is how URL is built from different ClientOptions
        url = "\(theSchema)\(authenticationClause)\(hostName)\(portClause)\(path)"

There is a discussion on main Kitura repo about creating a wrapper class for Client Request to make it easier to use. Until it's done and merged you need to specify scheme as:
.scheme("https://")

@michalkalinowski- is correct. Having said that we should make sure that the scheme in the created URL is correct (i.e. we should add :// to it if it's missing)

Ok so if the scheme should contain the :// then the values stored in a URLParser object should contain it as well.
For now I can live with the workaround of adding ://

Fixed in PR mentioned above.


Server game loop realisation

Results different on server and on client, but the game field and code the same.
Different is runners ticks realisation. It depends on result?
Server code:
let runner = Matter.Runner.create({ isFixed: true });
while (collectedBalls.length < generatedBallsCoords.length) {
Matter.Runner.tick(runner, engine);
}
Client code:
let runner = Matter.Runner.create({ isFixed: true });
Matter.Runner.start(runner, this.engine);
P.S. I need to run physics on server very fast to get result of game, before clients start animating the same simulation as server did...
Also I installed timesteps fix https://github.com/liabru/matter-js/pull/777

I'm also interested on how to achieve this.
I want to simulate the same animation on the server to predict what is going to happen.
The prediction should happen as fast as possible.
How do i do this?

Multiplayer is out of scope but has been discussed multiple times so for those interested you can see past issues on the topic.


Enhancement: KCLVM python package for PyPI

#46 add set_up.py to build KCLVM python package,  and upload it to PyPI.
PyPI project: https://pypi.org/project/kclvm/

1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

[ ] N
[x] Y fix #46

2. What is the scope of this PR (e.g. component or file name):

add:

internal/MANIFEST.in
internal/setup.py
empty '__init__.py' files in dir: kclvm_py

modify:

scripts/build-kclvm/requirements.release.txt
internal/kclvm_py/scripts/requirements.txt

3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[x] Other

Use setuptools and twine to build KCLVM python package, and upload it to PyPI.
steps:

cd internal
modify kclvm version in setup.py
run python setup.py sdist to build package
run twine upload dist/kclvm-0.x.x to upload package to PyPI
input username and password of PyPI

PyPI project: https://pypi.org/project/kclvm/

4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

[x] N
[ ] Y

5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

[ ] Unit test
[ ] Integration test
[x] Manual test (add detailed scripts or steps below)
[ ] Other
steps:

cd internal
modify kclvm version in setup.py
run python setup.py sdist to build package
run twine upload dist/kclvm-0.x.x to upload package to PyPI
input username and password of PyPI

6. Release note

Please refer to Release Notes Language Style Guide to write a quality release note.
None

I have read the CLA Document and I hereby sign the CLA


The GPU device instance has been suspended.

We do not properly recover from this issue like we should.  Causes all further texture loading to fail and the application to crash.  This is a very rare error.

00:55:01.9845 | WARN  | BhModule.Community.Pathing.Utility.AttributeParsingUtil | Failed to load texture.
System.InvalidOperationException: This image format is not supported ---> SharpDX.SharpDXException: HRESULT: [0x887A0005], Module: [SharpDX.DXGI], ApiCode: [DXGI_ERROR_DEVICE_REMOVED/DeviceRemoved], Message: The GPU device instance has been suspended. Use GetDeviceRemovedReason to determine the appropriate action.
at SharpDX.Result.CheckError()
at SharpDX.Direct3D11.Device.CreateTexture2D(Texture2DDescription& descRef, DataBox[] initialDataRef, Texture2D texture2DOut)
at Microsoft.Xna.Framework.Graphics.Texture2D.CreateTexture()
at Microsoft.Xna.Framework.Graphics.Texture2D.PlatformSetData[T](Int32 level, T[] data, Int32 startIndex, Int32 elementCount)
at Microsoft.Xna.Framework.Graphics.Texture2D.SetData[T](T[] data)
at Microsoft.Xna.Framework.Graphics.Texture2D.PlatformFromStream(GraphicsDevice graphicsDevice, Stream stream)
at Microsoft.Xna.Framework.Graphics.Texture2D.FromStream(GraphicsDevice graphicsDevice, Stream stream)
--- End of inner exception stack trace ---
at Microsoft.Xna.Framework.Graphics.Texture2D.FromStream(GraphicsDevice graphicsDevice, Stream stream)
at Blish_HUD.TextureUtil.FromStreamPremultiplied(GraphicsDevice graphics, Stream stream) in D:\a\Blish-HUD\Blish-HUD\Blish HUD_Utils\TextureUtil.cs:line 15
at BhModule.Community.Pathing.Utility.AttributeParsingUtil.d__19.MoveNext() in C:\Users\dade\source\repos\Pathing\Utility\AttributeParsingUtil.cs:line 110

0x887A0005  😬

This error plagues me constantly. Like, BHud crashes every 30-60 minutes.
Note that I am using integrated Intel Iris XE graphics.


Key mangling when using two dates

There is some odd key mangling going on when there are two dates in a row. I have verified that with the 'json' gem, that this does not happen. Here is a short ruby script that demonstrates the issue:
require 'crack'
require 'json'
json_str = '{ "first_date": "2016-01-25", "second_date": "2016-01-25" }'
puts JSON.pretty_generate(Crack::JSON.parse(json_str))
output
{
"first_date": "2016-01-25",
"sec!!timestamp nd_date": "2016-01-25"
}

Fixed by https://github.com/jnunemaker/crack/pull/57


docker: skip tests

skip tests as tests already ran in Travis and also to speed up the build

Codecov Report

Merging #518 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #518   +/-   ##
=========================================
  Coverage     99.41%   99.41%
  Complexity     1234     1234
=========================================
  Files           209      209
  Lines          3934     3934
  Branches        210      210
=========================================
  Hits           3911     3911
  Misses            5        5
  Partials         18       18

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 858ba07...8f4d266. Read the comment docs.


Need ability to parameterize Service Fabric endpoint

Need ability to parameterize the cluster endpoint in VSTS, e.g. -

Service Fabric endpoint

@alextolp what parameters can you possible use in this dialog? This dialog is not in context of a release or build and hence you wan't be able to use release/build variables.

@GitHubSriramB Do you think this is valid enhancement request for service endpoints?

Endpoint URL cannot have parameters.
If the intent is to create a single endpoint that points to different clusters then this scenario is not supported. We need three different endpoints to access the three different clusters (although the credentials to access them is the same).

@sachinma @GitHubSriramB
I have two proposals for this:

Add the ability to use parameters in endpoints
Add the ability to all tasks using endpoints, to override specific parts of the endpoint configuration.

What's the possibility of doing 1? As we would then not have to change all tasks using these endpoints?

Reopening issue until we have a closure on approach to take.
@MikkelHegn - could you pl. clarify the scenario where you want to create endpoint with parameters and when these parameters will be filled in?

@MikkelHegn - Will sync up offline with you to add the scenario requirement to our backlog. Will close this issue for now.