Ethernet + PLIC

This PR brings the first version of Ethernet core + PLIC in zynq-parrot. It also adds S-mode external interrupt line to Black parrot. I will create a separate PR for that in black parrot repo shortly.
Some notes:

Updates are made in black-parrot-example/ instead of inside a new directory.

Two imported modules added: rv_plic from Opentitan and eth_1g_core from Alex.

Currently a simple Ethernet test NBF file(eth_test.nbf) is included in this PR. The test sends and receives two loopback Ethernet packets. Also, the test can only run in VCS due to some scheduling issues in Verilator. Maybe the source code of the Ethernet test can be placed under bp-demo/ in SDK in the future.

This PR brings three different Ethernet connection speeds: 10M, 100M, 1000M. Those speeds can be selected in top.v through the 'phy_speed' variable.

There is a random send/receive test under import/eth_1g_core/test/ for testing the ethernet_controller alone.

I have tested running this PR on Zedboard. It can ping google.com for more than 6 hours and wget web pages without sending or receiving any bad Ethernet packets(i.e. no data corruption in RGMII level has been observed)

The address for Ethernet is 0x1000_0000, and the address for PLIC is 0x2000_0000, for now.

Thanks!

Very cool.  We want to think about how to modularize this. What components will get reused by BlackParrot ASICs and other FPGAs, versus what is specific to this test? What pieces should be added to all future unicore systems versus just for the ethernet demonstration? Etc. Additionally, we want to retain the simpler black-parrot-example, since many of our boards don't have or use the  PHY; we would probably add a new direction black-parrot-ethernet.

Yeah we should add a separate directory for the Ethernet things in the future. For now I just put everything in black-parrot-example because Dan said that would be easier to review the PR.
I am thinking about creating an online document (on my personal account) for discussing my work. I will post the link here after I have written some more comments for it.

Yes please, docs like that are extremely valuable.
@taylor-bsg my thought is plic / wrapper in the BP repo, Ethernet out here. As @Yuan-Mao said, PR against current example is for review purposes only.
We purposely kept the address maps outside of BP space so to not hardcode anything there. However, to run vanilla privileged code, we’ll need to readjust the addresses to the standard riscv ones. I have some ideas on how to maintain mappings and distribute hardware effectively, but we can discuss them offline. The important thing is to merge what works and we can readjust for compliance

would we make a repo bsg_ethernet in bespoke_silicon_group for the code
from forencich, or can we try to upstream it? How specific to BlackParrot
is the ethernet code? Can it interact easily with other devics like the
manycore?
M
On Mon, Feb 7, 2022 at 10:27 PM Dan Petrisko @.***>
wrote:

Yes please, docs like that are extremely valuable.
@taylor-bsg https://github.com/taylor-bsg my thought is plic / wrapper
in the BP repo, Ethernet out here. As @Yuan-Mao
https://github.com/Yuan-Mao said, PR against current example is for
review purposes only.
We purposely kept the address maps outside of BP space so to not hardcode
anything there. However, to run vanilla privileged code, we’ll need to
readjust the addresses to the standard riscv ones. I have some ideas on how
to maintain mappings and distribute hardware effectively, but we can
discuss them offline. The important thing is to merge what works and we can
readjust for compliance
—
Reply to this email directly, view it on GitHub
https://github.com/black-parrot-hdk/zynq-parrot/pull/23#issuecomment-1032255951,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEFG5AG7R3FZVZPAXREV4VTU2CZWJANCNFSM5NZIOPUA
.
You are receiving this because you were mentioned.Message ID:
@.***>

The Ethernet code under eth_1g_core/ is not related to BlackParrot at all. If we want to use it in other places like in manycore we can use either the ethernet_controller.sv under eth_1g_core/common/ or the ethernet_controller_wrapper.sv under eth_1g_core/zedboard if we are running manycore on zedboard.

In general, anything related to zynq-parrot and BlackParrot is put under black-parrot-example/v. For example, the module that is responsible for sending AXIL write to the S-mode BP PLIC bit is put under black-parrot-example/v because it knows where to send and hence is related to BP.
The two imported modules (eth_1g_core and rv_plic) are designed to be independent from BP and zynq-parrot. They should be easy to use in other places.

Can it interact easily with other devics like the
manycore?

Non-trivially. We would need a PLIC->manycore wrapper at the least

I think Yuan-Mao's ethernet core does not require interrupts, it's just
linux that wants that
On Mon, Feb 7, 2022 at 11:42 PM Dan Petrisko @.***>
wrote:

Can it interact easily with other devics like the
manycore?
Non-trivially. We would need a PLIC->manycore wrapper at the least
—
Reply to this email directly, view it on GitHub
https://github.com/black-parrot-hdk/zynq-parrot/pull/23#issuecomment-1032301251,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEFG5ABIDLUFBZFMJUYDX4LU2DCORANCNFSM5NZIOPUA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Here is the link for the review doc: https://docs.google.com/document/d/1QWTAyxxGx-GbKJT_7ltIbwn-tN27k5OIoJ_HMxUh5t0/edit.

Closed this PR as it is now moved to https://github.com/black-parrot-hdk/zynq-parrot/pull/58


Add 'upgraded together' comment for VirtualBox

As discussed in https://github.com/caskroom/homebrew-cask/pull/13276.

Merged as 47626ec326634a11e59497c64bdbc5446caa5f05.


Pass arguments to templates?

Hi folks, love the idea of this project and curious to see if it would be helpful for managing several of my pipelines.
I don't see anything specifically in the docs/examples, but is it possible to do something like this?
Buildkite::Builder.template do |opts|
  label "Deploy", emoji: :shipit
  command "./buildkite/scripts/deploy.rb --job-name #{opts[:job_name]}"
end

Being able to template out the command a step runs would be super useful and make for some very clean pipelines! Otherwise as far as I can tell, I would have to build out the command every time I reference the template?

Hm, what would the call to the step look like if you're passing in options? Were you thinking something like...
Buildkite::Builder.pipeline do
  command(:my_template, arg1: "something", arg2: "something else")
end

Btw, you can re-open the template as well, like so:
Buildkite::Builder.pipeline do
  command(:my_template) do
    command "./buildkitescripts/deploy.rb --job-name job1234"
  end
end

So, in your template, it'd just be:
Buildkite::Builder.template do |opts|
  label "Deploy", emoji: :shipit
end

It might be useful to know that templates don't have to be valid steps. They can be partial data that can be used/reused for different step (even step types).

Hi @ngan, yeah I was thinking of something that would allow templating the command method itself. It's not a big deal, but with the pipelines I typically write, it's running similar scripts with different CLI options so it would be beneficial to template the command string itself. Just a thought!

Ok, after some thought I think I have a good API for this. All templates will now yield a Context variable. It's optional, so if you don't care for the variable, you don't have to declare it in your block. So something like this:
Buildkite::Builder.template do |context|
  label "Deploy", emoji: :shipit
  command "./buildkite/scripts/deploy.rb --job-name #{context[:job_name]}"
end

The context will also give you access to:

context.pipeline (not sure why you'd need this, maybe to check to see if there's an existing step that does something similar already?)
context.step (for the current step that you're in, not sure why you'd need this 🤷 )
context.args (context#[] is aliased to this)
Any future things we want to pass along.

@evandam I just release BKB v1.1.0 that has this feature.

Awesome, I'll give it a shot. Thanks!


home_title

Forked from #25 - merge that first.

This should allow issue #1 to be closed too :)


B.model.set_weights(A.model.get_weights()) leaks memory each iteration

I'm trying to implement double deep-Q learning where I copy the weights from an on-policy model to an off-policy model at intervals. Each time I copy the weights, I end up leaking memory. Over time, I run out of resources and the learning loop crashes - OOM. The amount of memory leaked is proportional to the number of weights used in the model. So if io_shape were much larger, more memory would leak per round.
Using backend: TensorFlow=='0.8.0' with GPU.
pip Keras=='1.0.4'

from keras.models import Sequential
from keras.layers.core import Dense
from keras.optimizers import rmsprop

import resource, gc

class Model(object):
  """Model encapsulation for Keras Sequential object."""
  def __init__(self, io_shape=None):
    if io_shape is None:
      raise TypeError("io_shape must be a tuple (in_size, out_size)")
    self.model = Sequential()
    self.model.add(Dense(512, input_shape=(io_shape[0],), activation='relu'))
    self.model.add(Dense(512, activation='relu'))
    self.model.add(Dense(io_shape[1], activation='linear'))
    self.optimizer = rmsprop(lr=0.001)
    self.model.compile(optimizer=self.optimizer, loss='mse')
  #
  def get_lr(self):
    return K.get_value(self.optimizer.lr)
  #
  def set_lr(self, lr):
    K.set_value(self.optimizer.lr, lr)

A = Model(io_shape=(32,16))
B = Model(io_shape=(32,16))
for i in range(5):
  print('begin step Memory usage: %s (kb)' % resource.getrusage(resource.RUSAGE_SELF).ru_maxrss)
  B.model.set_weights(A.model.get_weights())
  gc.collect()

$ python memory.py
Using TensorFlow backend.
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so.7.5 locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcudnn.so.4.0.7 locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so.7.5 locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so.7.5 locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:924] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties:
name: GeForce GTX TITAN X
major: 5 minor: 2 memoryClockRate (GHz) 1.076
pciBusID 0000:01:00.0
Total memory: 12.00GiB
Free memory: 11.84GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0:   Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:806] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX TITAN X, pci bus id: 0000:01:00.0)
begin step Memory usage: 503232 (kb)
begin step Memory usage: 510896 (kb)
begin step Memory usage: 511948 (kb)
begin step Memory usage: 515116 (kb)
begin step Memory usage: 517492 (kb)

I noticed a similar same issue: when changing the weights of (one or several) layer by hand. For example, by setting all of the weights to 0 with the following:
model = VGG_16('vgg16_weights.h5')
sz = len(model.layers)
for k in range(sz):
    w = model.layers[k].get_weights()
    model.layers[k].set_weights(w*0.0)
model.compile(optimizer=sgd, loss='categorical_crossentropy')

results in new memory allocation (as if new layers had been created) instead of overwriting the already existing memory with the new values.
If there is a large number of weights, this quickly eats up all of the available memory....
Is there a way to use the already allocated memory or free the unused ?
Thanks a lot!

This issue seems to be coming from the implementation of tf.assign() in TensorFlow, where each call creates a new node in the graph, resulting in the memory saturation. (See https://github.com/tensorflow/tensorflow/issues/2311)


Redstone breaking changes

Tracking/Planning changes and fixes targeting the Windows 10 Redstone 1 update this summer.

This will include some breaking changes

Change Bootstrapper

[ ] Throw exception if detect multiple TitleBar styles

Change ModalDialog control

[ ] Rename ModalDialog > ModalHost
[ ] Rename ModalDialog.ModalContent > ModalHost.OverlayContent
[ ] Rename ModalDialog.IsModal > ModalHost.IsOpen
[ ] Change ModalDialog.DisableBackButtonWhenModal default to true
[ ] Rename DisableBackButtonWhenModal > DisableBackNavigationWhenOpen

Change NavigationService

[ ] Make ClearCache() private
[ ] Make SuspendingAsync() private
[ ] Make Resuming() private
[ ] Make SaveNavigationAsync() private
[ ] Make RestoreSavedNavigationAsync() private
[ ] Make AfterRestoreSavedNavigation internal

Change KeyboardService

[ ] Make KeyboardHelper internal
[ ] Rename KeyboardService to KeyboardServiceBase
[ ] Make KeyboardHelper a private, static field
[ ] Create protected KeyDown event

Change SettingsService

[ ] Make SettingHelper internal
[ ] Rename SettingService to SettingServiceBase
[ ] Make SettingHelper a private, static field
[ ] Expose protected Read/Write methods
[ ] Update template to SettingService : SettingServiceBase

The title should be Redstone breaking changes, not "Restone".

Could you link to some information about redstone API changes?

If you create a new branch for this we could start contributing to it :+1:

Thanks man, I am inspired by your enthusiasm.

I like that idea. That way, it'll be ready for you to launch prerelease packages by June/July when Redstone comes out. Then, bleeding-edge Nuget users can trial it, and help sort things out, before it launches in full a few months later.


Rename "association", association_root etc. to "libra_root" across the codebase

Renames "association" and "assoc" and "association_root", "assoc_root" etc. to "libra_root" across the codebase.

:umbrella: The latest upstream changes (presumably 5025f3313e4577d82763de741a9f1412244c4818) made this pull request unmergeable. Please resolve the merge conflicts.

@bors-libra r=sblackshear

:pushpin: Commit fd78b4d has been approved by sblackshear

:hourglass: Testing commit fd78b4d20d2c1f720631d75bcb0b20c6be33c53b with merge be605bbaba706490d09ba9f12deaaae531a2e940...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: sblackshear
Pushing be605bbaba706490d09ba9f12deaaae531a2e940 to master...


Make connection string extractor

There are many parameters in the connection string, and it would be better if we created a dictionary with the parameter name as key and the value as the value.
This might be worth extending and adding to Useful.Extensions.

Going well.  Just writing more unit tests to prove it works before changing code to use it.

Went red, now green.  Next stage is refactor, as it needs it.

The extraction process is kept in the ConnectionOptions class.  I have created rules instead of using a massive switch statement.  The commits will show the differences.


Allow Figma scene to be resized without error

Resizing the window for Figma example to extreme dimensions (eg., zero height, or zero width) can throw an error and freeze the UI, this seems to fix it.

Yeah, thanks!


Should there be a way to read flash messages that were set in the current request?

This could be useful sometimes, to use the same code that renders flash messages, to render some feedback that was generated during handling of the current request (rather than across a redirect, as is typical for flash messages).
At the very least, we should find out if any major frameworks allow this implicitly or explicitly. Frameworks such as:

Phoenix
Laravel
Django
Whatever Express has for flash messages in its ecosystem.

cc @thangngoc89

I take a look at connect-flash and there is an (awkward) way to read flash message in current request:
req.flash("flash_name", .....) // this set flash
res.locals.flash_name = req.flash(); // this assign flash to current request, something connect-flash middleware should have handled in the next request
res.render(......)

Unanswered question: Will flash_message be available in the next request after being rendered here?

This is from the phoenix documentation (https://hexdocs.pm/phoenix/controllers.html#flash-messages)
defmodule HelloWeb.PageController do
  ...
  def index(conn, _params) do
    conn
    |> put_flash(:info, "Welcome to Phoenix, from flash info!")
    |> put_flash(:error, "Let's pretend we have an error.")
    |> render("index.html")
  end
end

So this is not just on redirects but also with the current render

In Scala Play, the flash is applied onto the Result type, so it can only affect the next request. In fact, the framework will warn you if you (erroneously) try to write something like this:
  def index = Action { implicit request =>
    Ok(views.html.index()).flashing("info" -> "Example flash")
  }

Personally I think that an API that is agnostic about how you configure the flash seems cleaner, and makes this confusing no-op Scala code impossible.

an API that is agnostic about how you configure the flash

Can you clarify what you mean by this?

Going off of the examples in this thread, that means that something analogous to the flashing method can exist not only on the response object (like in Scala), but also on the request object as well. In the second case it affects the template rendered in the same request, and in the first case it affects the next request.


Enabled extravolumes for both Keda and Metrics server deployment

Enabled addition of extra volume mounts for both the Keda and the Metrics server deployment. This is needed if there is a need to run Metrics server with a read only root file system, hopefully there are other use cases where this can be useful too.
Ref #113

@HansK-p Any update on this?

@HansK-p Any update on this?

Sorry. I didn't catch that I should make any changes. I'll decrease the version. The failing check is covered by another PR (if I remember correctly).

Sorry. I didn't catch that I should make any changes. I'll decrease the version. The failing check is covered by another PR (if I remember correctly).

@HansK-p can you finish this PR please? Or if you don't mind I can do that for you.

I'm sorry I haven't done a follow-up. I most certainly don't mind if you do it @t3mi

Done in #146 - Thanks anyway @HansK-p !


Stopped Working

The extension stopped working on chromebooks at the School I do IT Support for. Any reason? are there any URL's associated with it that might get caught in CIPA Compliant filters?
Kevin

Not working anymore for me anymore either. In the Chrome Store there is a message that says that this item was disabled in Chrome. Clicking Enable does nothing.

Strange, I'm not sure how schools typically do filtering for chromebooks, but i don't specifically do any filtering for this app, so it's likely it allows URLs that are usually blocked by chrome?

Are you using some kind of proxy service in the background?
Sent from my iPhone

On Feb 28, 2017, at 12:25 AM, Sam Lanning<EMAIL_ADDRESS>wrote:
Strange, I'm not sure how schools typically do filtering for chromebooks, but i don't specifically do any filtering for this app, so it's likely it allows URLs that are usually blocked by chrome?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Well it seems your Extension has been added to the Global ban list for CIPA compliant filtering.
Leaf Browser Alpha is an extension that is know to bypass filtering and monitoring.

No proxies... It just uses chrome's settings directly. Oh well...

Out of curiosity, do you have a link with this information?

No it was told to me in a chat session by my security company.
XXXX
Leaf Browser Alpha is an extension that is know to bypass filtering and
monitoring.
It was recently added to the global extension blacklist.
Kevin Christopher
ahh!! unfortunately it had some good features for some of our more
Challenged kids
"Autistic"
Kevin Christopher
Editor/Post Production Supervisor
404-358-3101
On Tue, Feb 28, 2017 at 1:04 PM, Sam Lanning<EMAIL_ADDRESS>wrote:

Out of curiosity, do you have a link with this information?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/samlanning/leaf-browser/issues/3#issuecomment-283117105,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYyT7017QGV-5nf2Q-AXUS-IyRNbhJkvks5rhGG9gaJpZM4MKeeT
.

Could I ask how filtering is set up on these devices? I may be able to think about a work-around / way to hook in to that? And if that fails check URLs against the list manually myself.
Are these on ChromeOS devices / chromebooks? Or is this just chrome on Windows / OSX / Other?

Are these on ChromeOS devices / chromebooks? Or is this just chrome on Windows / OSX / Other?

ah you've already said these are chromebooks

Feel free to email me direct
Kevin Christopher
Editor/Post Production Supervisor
404-358-3101
On Tue, Feb 28, 2017 at 1:13 PM, Sam Lanning<EMAIL_ADDRESS>wrote:

Are these on ChromeOS devices / chromebooks? Or is this just chrome on
Windows / OSX / Other?
ah you've already said these are chromebooks
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/samlanning/leaf-browser/issues/3#issuecomment-283119236,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYyT70PRY62gKr50t_NuG-Sj0jeAcprrks5rhGO8gaJpZM4MKeeT
.

I don't have an email address for you. Could you send me an email<EMAIL_ADDRESS>

The main reason for it being blocked is that some schools rely on browser-level blocks for school Chromebooks, in order to prevent students from watching Netflix when at home, or outside the censored school networks. This plugin doesn't carry over the (inane) level of blocking some services provide, and so it is blocked.
The upside is that anyone who still wants to use it can just recompile it themselves (with a different extension ID/name) and side load it as an unpacked extension.

You may call it inane, but you are not the one who is on the hook for all
the law suites and requests during cyber bully incidents. I call it not
giving anyone a reason to blame the school therefore removing technology
from teaching. We can always go back to clay and cuneiform.
Kevin Christopher
Editor/Post Production Supervisor
404-358-3101
On Thu, Mar 2, 2017 at 2:13 PM, Tim Vrakas<EMAIL_ADDRESS>wrote:

The main reason for it being blocked is that some schools rely on
browser-level blocks for school Chromebooks, in order to prevent students
from watching Netflix when at home, or outside the censored school
networks. This plugin doesn't carry over the (inane) level of blocking some
services provide, and so it is blocked.
The upside is that anyone who still wants to use it can just recompile it
themselves (with a different extension ID/name) and side load it as an
unpacked extension.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/samlanning/leaf-browser/issues/3#issuecomment-283749698,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYyT7zx8h7qFqXhHE9sqA1Vj5_XCBglIks5rhxTigaJpZM4MKeeT
.

I understand that completely. For this project it's probably best to figure out how to make it follow the rules or just accept it's blocked for now.

@Timvrakas
I downloaded the project and even after a few tweaks to the styles, I wasn't able to get it to look like anything but this.

 Is there a quick fix for this, or do I have to go through all the files?

You need to run grunt to generate the styles from the less.
See: https://github.com/samlanning/leaf-browser/blob/master/README.md#installation

@samlanning
I see. Thanks!


Change in CSS in firsthalf,secondhalf img and added secondhalf:hover

Sir,I had made the changes as required by you(smooth float of content and ironman image) and also attached the changed(style.css) file only,please check and accept the changes.
https://github.com/user-attachments/assets/d5a71231-35f3-4bb8-8b69-4f5a4a6ec048

@aslams2020 Please check Sir,is it correct now?

@AyutheCoder Good Work! Thanks

Thank you Sir

Sir @aslams2020 ,ab mujhe isme aur kuch nhi krna h na, now I can leave this?

Yes, I merged your PR with level and GSSoC labels. You got your points for the work.
You can still find and raise new issues. Good luck!

Ok Sir,thank you

Sir,I can Add a new option in navbar of upcoming events with countdown times or adding a gallery section of ironman animated images ,I had created it as an issue #111,please assign it to me under GSSoc Ext 24 and Hactoberfest label


Native File Dialog crash on macOS with Swing

Version
3.3.0
Platform
macOS x64
JDK
Oracle Java SE 16.0.1+9-24
Module
lwjgl-nfd
Bug description
Using NFD_OpenDialog on Mac from an action listener inside the swing dispatcher thread causes a NSInternalInconsistencyException which crashes the application. On other platforms (Windows/Linux) the code executes as expected.
Is this an error in 1) my code, 2) lwjgl-nfd or 3) nativefiledialog?
See https://github.com/qurben/lwjgl-nfd-testing for a simple example.
Stacktrace or crash log output
`2021-11-17 22:10:59.668 java[484:7119] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
 First throw call stack:
(
    0   CoreFoundation                      0x00007fff4e11207d __exceptionPreprocess + 256
    1   libobjc.A.dylib                     0x00007fff7888ba17 objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff4e12bbdd -[NSException raise] + 9
    3   AppKit                              0x00007fff4b6d15ca -[NSWindow(NSWindow_Theme) _postWindowNeedsToResetDragMarginsUnlessPostingDisabled] + 317
    4   AppKit                              0x00007fff4b6ce9f7 -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 1479
    5   AppKit                              0x00007fff4b78dd95 -[NSPanel _initContent:styleMask:backing:defer:contentView:] + 50
    6   AppKit                              0x00007fff4b6ce42a -[NSWindow initWithContentRect:styleMask:backing:defer:] + 45
    7   AppKit                              0x00007fff4b78dd4a -[NSPanel initWithContentRect:styleMask:backing:defer:] + 64
    8   AppKit                              0x00007fff4bda54f5 -[NSSavePanel initWithContentRect:styleMask:backing:defer:] + 592
    9   AppKit                              0x00007fff4b99fdec +[NSSavePanel _crunchyRawUnbonedPanel] + 550
    10  liblwjgl_nfd.dylib                  0x000000012f5285f2 liblwjgl_nfd.dylib + 5618
    11  ???                                 0x0000000118ed7c7b 0x0 +<PHONE_NUMBER>
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Abort trap: 6

So according to the error something should be done from the main thread, but I am not sure if it is possible to do this from Java code.
https://stackoverflow.com/questions/53916139/terminating-app-due-to-uncaught-exception-when-i-run-my-cpp-file

You'll want to add the -XstartOnFirstThread argument either to the VM Arguments or the command line, depending on were you're running your code from.

Thanks for the response! With XstartOnFirstThread the application doesn't seem to start. (I sadly do not have direct access to a mac where I can do testing on)

I did come across this one, where it is mentioned that:

You can’t use Swing with lwjgl3 on OSX. As far as I know, there isn’t a way around that still.

Is that also what is happening here?

I believe so, and if I remember correctly (I may well not), the backend for both Swing and GLFW/GL cannot be used by both at the same time, causing hangups. Someone else would know better though, I am by no means a Mac expert.

The problem is AWT (heavyweight, implemented on top of OS-specific APIs), not Swing (lightweight, implemented in Java on top of AWT).
The GLFW binary bundled with LWJGL does not contain any "Java-awareness" features, it's almost identical to what you'd get when building the upsteam project. It does not know anything about another windowing toolkit competing for the event loop on the main thread. It cannot interoperate with AWT.
However, there is apparently a way to modify GLFW to make it play nice with AWT, see https://github.com/badlogic/glfw/commit/1c213479bdf3e2a5ae68e4200e9d2fcd6ad31e27 and https://github.com/libgdx/libgdx/pull/6673. As always, impressive heroics by @badlogic. Technically, you could grab that binary and make LWJGL use it with Configuration.GLFW_LIBRARY_NAME (or -Dorg.lwjgl.glfw.libname=), right now. It is possible that LWJGL will adopt such a solution in the future (maybe by shipping two GLFW binaries on macOS), but I'm waiting to hear how it actually works in practice and seeing how hard it'll be to keep in sync with upstream changes.

We've used this approach in Spine for years (with an outdated GLFW
version). It basically just pushes all GLFW ooerations onto the main thread
and waits synchronously for completion. Keeping this up-to-date with
uostream GLFW is a very low maintenance burden.
On Wed, Nov 17, 2021, 21:24 Ioannis Tsakpinis @.***>
wrote:

The problem is AWT (heavyweight, implemented on top of OS-specific APIs),
not Swing (lightweight, implemented in Java on top of AWT).
The GLFW binary bundled with LWJGL does not contain any "Java-awareness"
features, it's almost identical to what you'd get when building the upsteam
project. It does not know anything about another windowing toolkit
competing for the event loop on the main thread. It cannot interoperate
with AWT.
However, there is apparently a way to modify GLFW to make it play nice
with AWT, see @.***
https://github.com/badlogic/glfw/commit/1c213479bdf3e2a5ae68e4200e9d2fcd6ad31e27
and libgdx/libgdx#6673 https://github.com/libgdx/libgdx/pull/6673. As
always, impressive heroics by @badlogic https://github.com/badlogic.
Technically, you could grab that binary and make LWJGL use it with
Configuration.GLFW_LIBRARY_NAME (or -Dorg.lwjgl.glfw.libname=), right
now. It is possible that LWJGL will adopt such a solution in the future
(maybe by shipping two GLFW binaries on macOS), but I'm waiting to hear how
it actually works in practice and seeing how hard it'll be to keep in sync
with upstream changes.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/LWJGL/lwjgl3/issues/697#issuecomment-971959659, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAD5QBHMW3HYX6RTOD546JDUMQFRTANCNFSM5IHPIW5A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Thanks! I'll look into that.
One thing that I not yet completely understand is what the role of glfw is when loading lwjgl-nfd. What I understand is that glfw is used in conjunction with OpenGL, but native file dialog does not interact with OpenGL (from what I've seen). Or am I approaching this the wrong way?

NFD knows nothing about AWT (or GLFW) either. It works with [NSApplication sharedApplication], which the NSApplication created by either AWT or GLFW. However, it's still Cocoa code that needs to run on the main/first thread and a Swing event handler won't run on that.
Why use NFD though? Aren't the existing Java file choosers good enough?

I wanted a native file chooser for my project, with the option to add file filters. NFD and JavaFx seem to be the only ones offering this. Loading JavaFx for just the file chooser is a bit much for my project.
Would TinyFD have the same problems on mac?

JFileChooser (Swing): Supports file filters, Custom ui, slow for large directories.
FileDialog (AWT): Does not support file filters (on Windows at leas). Looks native.
FileChooser (JavaFX): Most complete version, can be plugged into Swing. But JavaFx is quite heavy and multi platform builds are not really an option. (works on mac?)
NFD(LWJGL): Supports file filters. Native file chooser. Can create multi platform jar.
TinyFD (LWJGL): Supports basic file filters. Native file chooser. Can create multi platform jar.

I've used tinfd successfully with my Glfw fork on macOS. Didn't try nfd.
On Thu, Nov 18, 2021, 10:39 Gerben Oolbekkink @.***>
wrote:

I wanted a native file chooser for my project, with the option to add file
filters. NFD and JavaFx seem to be the only ones offering this. Loading
JavaFx for just the file chooser is a bit much for my project.
Would TinyFD have the same problems on mac?

JFileChooser (Swing): Supports file filters, Custom ui, slow for
large directories.
FileDialog (AWT): Does not support file filters (on Windows at
leas). Looks native.
FileChooser (JavaFX): Most complete version, can be plugged into
Swing. But JavaFx is quite heavy and multi platform builds are not really
an option. (works on mac?)
NFD(LWJGL): Supports file filters. Native file chooser. Can create
multi platform jar.
TinyFD (LWJGL): Supports basic file filters. Native file chooser.
Can create multi platform jar.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/LWJGL/lwjgl3/issues/697#issuecomment-972696249, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAD5QBFKRYA323677ZBYLXDUMTCW5ANCNFSM5IHPIW5A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

So tinyfd uses applescript instead of cocoa on mac. It spawns a new process to show the filechooser, this circumvents the main thread problems.

Hasn't anyone tried to get this resolved directly upstream?


Add new rules visualizing CARLISLE results

Changes
Adds rules:

count_peaks - output table with number of peaks per condition, visualize number of peaks and correlation between dedup and no_dedup peaks
cov_correlation - find Pearson correlation in genome-wide coverage for all samples, plot heatmap and PCA
homer_enrich - visualize HOMER enrichment over genic features for each condition
combine_homer - add MACS2 fold change and q-value to HOMER annotation table

PR Checklist

[x] This comment contains a description of changes with justifications, with any relevant issues linked.
[x] Update docs if there are any API changes. - none
[x] Update CHANGELOG.md with a short description of any user-facing changes and reference the PR number. Guidelines: https://keepachangelog.com/en/1.1.0/

Thanks for opening this PR, @epehrsson! Sorry I didn't notice it -- in the future you can tag me with @kelly-sovacool somewhere in the this thread to notify me if you want me to review it.
Were you able to run this successfully on biowulf?

Hi @kelly-sovacool, sorry for not tagging you! Yes, I could run it on the test data and on two projects I'd processed earlier, which recapitulated the results of the rules. =

Thanks for this contribution @epehrsson! I proposed changes here so that your new rules will also use the docker container. Please take a look and merge that if it looks good, then we'll run one more test to make sure I didn't break anything before merging this PR into main.

Thanks, Kelly! The changes look good, and I completed the pull request.


Adds chart option to configure the initialDelay and periodSeconds of probes

Issue:

https://github.com/rancher/rancher/issues/39841
Problem

Users need to be able to override probes as sometimes Rancher takes a very long time to start. If they do that manually to the deployment, helm will override it the following upgrade.
Solution

This PR allows users to set probes via helm directly.
Testing

Engineering Testing
Manual Testing

Ran helm template, helm install, and all the helm unit tests
Automated Testing

Tests added, originally from: https://github.com/rancher/rancher/pull/39319/commits/fd4caac9e835ad862ce3869b8fd66c9e9bfeafbd
QA Testing Considerations

Adjusting the probes and ensuring the actual probe settings that get deployed are refelcted
Regressions Considerations

Should not cause any regressions, as this will operate functionally the same.

/backport 2023-Q1-v2.6x release/v2.6

/backport release/v2.6


Fix typo in domain-analysis

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/microservices/domain-analysis.md
:white_check_mark:Succeeded
View

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

#sign-off


problem with wkhtmltopdf in php

hi i have a problem
when run the command in php script
the code that is being used goes like this:
$pdf = new Pdf($my_var);
$pdf->binary = '/usr/bin/xvfb-run -d /usr/local/bin/wkhtmltopdf';
$pdf->send($json['nombre'].".pdf",true);
and that causes this error when running in the browser
Failed without error message: /usr/bin/xvfb-run -d /usr/local/bin/wkhtmltopdf '/tmp/tmp_wkhtmlto_pdf_1E8xw8.html' '/tmp/tmp_wkhtmlto_pdf_nsd4OW.pdf'
thanks for your help

$pdf->binary = '/usr/bin/xvfb-run -d /usr/local/bin/wkhtmltopdf';

This is not the way you should use Xvfb with this library. Please check the section on Xvfb in the README: https://github.com/mikehaertl/phpwkhtmltopdf#installation-of-wkhtmltopdf
Apart from that I strongly recommend to use a statically compiled version of wkhtmltopdf to avoid Xvfb completely.


Node 6.2.0 - warnings and extra output

Installed Node 6.2.0 on my windows 10 laptop and built my prj. And here's what I get:
WARNING in (webpack)/buildin/module.js
There is another module with an equal name when case is ignored.
This can lead to unexpected behavior when compiling on a filesystem with other case-semantic.
Rename module if multiple modules are expected or use equal casing if one module is expected.

WARNING in ./~/webpack/buildin/module.js
There is another module with an equal name when case is ignored.
This can lead to unexpected behavior when compiling on a filesystem with other case-semantic.
Rename module if multiple modules are expected or use equal casing if one module is expected.
Child html-webpack-plugin for "index.html":
    chunk    {0} index.html 2.46 kB [rendered]
        [0] C:/Users/Alex/Documents/Visual Studio 2015/Projects/NewsNotifier/~/html-webpack-plugin/lib/loader.js!./src/index.html 2.46 kB {0} [built]
           factory:135ms building:16ms = 151ms

Also, when I open up the prj in a browser I get this extra at the bottom of every page:

<% if (webpackConfig.metadata.ENV === 'development') { %> <% } %>

Doesn't happen on Node 5.11.x. Anybody know the cause?

I am seeing the same issue.  Is the <% processing handled by webpack or some loader module?  An issue at the created in the repository of the appropriate module might get better results.

I have this issue as well,
cloned, windows 10, node v6.2.2
the warning:
`
WARNING in (webpack)/buildin/module.js
There is another module with an equal name when case is ignored.
This can lead to unexpected behavior when compiling on a filesystem with other case-semantic.
Rename module if multiple modules are expected or use equal casing if one module is expected.
WARNING in ./~/webpack/buildin/module.js
There is another module with an equal name when case is ignored.
This can lead to unexpected behavior when compiling on a filesystem with other case-semantic.
Rename module if multiple modules are expected or use equal casing if one module is expected.
Child html-webpack-plugin for "index.html":
chunk    {0} index.html 1.43 kB [rendered]
[0] F:/Promie/Code/CategoriesEditor2/~/html-webpack-plugin/lib/loader.js!./src/index.html 1.43 kB {0} [built]
factory:83ms building:18ms = 101ms
webpack: bundle is now VALID.
[default] Checking started in a separate process...`
and all the template in index.html doesn't get compiled
(<% if (webpackConfig.htmlElements.headTags) { %> <%= webpackConfig.htmlElements.headTags %> <% } %>)


Pattern:  Sticky Table of Content specs from web simplification

hahnrob created the following on Sep 16:
Specs will be provided by Lila.  Target delivery date is Sept 23.
Additional Information

discover pattern specs.sketch from Lila

Acceptance Criteria

[ ] Specs received from Web Simplification and reviewed with DDS engineering

Original issue: https://github.ibm.com/webstandards/digital-design/issues/1708

On Oct 03, hahnrob commented:
design review meeting scheduled Oct 8.

On Oct 08, hahnrob commented:
specs reviewed in the Oct 8 meeting.

Spec source files are here


Create cachito.env file with env variables

Code change in this MR adds $REMOTE_SOURCE_DIR/cachito.env file with environent variables received from cachito request.
Closes CLOUDBLD-3529
Signed-off-by: Ladislav Kolacek<EMAIL_ADDRESS>Maintainers will complete the following section

[ ] Commit messages are descriptive enough
[ ] Code coverage from testing does not decrease and new code is covered
[ ] JSON/YAML configuration changes are updated in the relevant schema
[ ] Changes to metadata also update the documentation for the metadata
[ ] Pull request has a link to an osbs-docs PR for user documentation updates
[ ] New feature can be disabled from a configuration file

@MartinBasti @rcerven @chmeliik @ben-alkov
Additional questions:
1.) do we need a new plugin for cachito.env file creation or it can stay within DownloadRemoteSourcePlugin?
Maybe buildargs could be renamed to cachito_env_variables or something similar.
2.) Do we want to add an extra check for the user if he/she added cachito.env file to distgit?
3.) Is a unit test required for file creation?
4.) I believe autotest is also required for this story, right?

OSBS docs change: https://github.com/containerbuildsystem/osbs-docs/pull/170


refactor(rust): make address types consistent, do all comms on same s…

…ocket

Message: now support the following types: Udp, Channel, Worker
Message: has a new field, message_type, to indicate what is in the message
body. The following types are recognized: Ping(0), Pong(1), Payload(2),
KeyAgreementM1..M3(3,4,..)
UdpTransport: now performs all io over the same socket. When creating a
new transport, provide the local address/port to bind to.
UdpTransport: The "Add" command is no longer supported. The transport will
attempt to send the message to whatever address is in the
route, from the socket it is bound to
Node: Redesign the node test to support being run as a separate process.
Node now takes command line arguments as follows:
"-l xxx.xxx.xxx.xxx:pppp" - binds local socket to given address (required)
"-v xxx.xxx.xxx.xxx:pppp" - routes message via this address
"-r xxx.xxx.xxx.xxx:pppp" - remote (destination) IP address
"-w xxx..." - worker address
To wait for incoming message (e.g. responder) you only need "-l". For example,
./node -l <IP_ADDRESS>:4052
To create a route for a message, "-l" and "-r" are required, with "-v" and "-w"
optional. For example,
./node -l <IP_ADDRESS>:4050 -v <IP_ADDRESS>:4051 -r <IP_ADDRESS>:4052 -w 1234
will create a route <IP_ADDRESS>:4050-><IP_ADDRESS>:4051->1234

Awesome! If you agree with the module layout suggestions (un-nesting the pub mod transport etc), then the other one would be ockam_common::commands::ockam_commands, which could use the same un-nesting. Unless we think we will have other scoped commands in the future... but I suppose those shouldn't be in the ockam_common crate then.
Sorry to pile on all of this un-nesting stuff :) Really looks great otherwise, and the updates to the node example are great. I'm going to borrow the Node name in ockamd...

@robinbudd, @mikelodder7 & I spoke about this and will merge as-is. Robin is going to create some new issues and each will mention this PR so they are associated on Github (by adding unquoted #455 as text in the Issue description).


Fix penalty decay

Changed interval from int to float.  This is primarily for easier testing, but it is possible that instructors might want to assign penalties on granularities less than an hour.
Fixed up some of the calculation following the change to a float.

I needed this one to test another PR


How to inject transition global styles only after other global styles are loaded?

Steps to reproduce
I tried to add transitions to body alongside other body styles (e.g CSS reset styles) using createGlobalStyles:
body {
  transition: all 1s ease;
  font-size: 14px;
  color: grey;
}

(The use case for the transition is I will switch the body color and background using styled-theming, and would like it to elegantly transition between light and dark themes.)
Expected Behavior
I would like the transition animation to only apply after the initial global styles have been applied.
Actual Behavior
The transition applies to the other global body styles added alongside it, causing the page to "jump" on page load as things like font size and color resets have transitions applied on them.

Put the style behind a class and add the class to body on mount of your app
On Sat, Oct 13, 2018 at 2:49 AM Stephen Koo<EMAIL_ADDRESS>wrote:

Steps to reproduce
I tried to add transitions to body alongside other body styles (e.g CSS
reset styles) using createGlobalStyles:
body {
transition: all 1s ease;
}
Expected Behavior
I would like the transition animation to only apply after the initial
global styles have been applied.
Actual Behavior
The transition applies to the other global body styles added alongside it,
causing the page to "jump" on page load as things like font size resets
have transitions applied on them.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/styled-components/styled-components/issues/2094, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAiy1j_X2wrzKS4DkYLMmQUurgFC6gz5ks5ukZsigaJpZM4Xagjf
.

Thanks, it still seems to be happening - if you comment out the transition CSS in src/styles/global/other.js there won't be a jump. I added the componentDidMount in src/App.js
react-air copy.zip
An improper solution is likely using a setTimeout to delay adding the class by a second or so but I wonder if there's a better way.

You can add a cDM to the global styles component itself. Then it’s
guaranteed to happen after injection since styled happen during render
On Sat, Oct 13, 2018 at 7:30 PM Stephen Koo<EMAIL_ADDRESS>wrote:

Thanks, it still seems to be happening - if you comment out the transition
CSS in src/styles/global/other.js there won't be a jump. I added the
componentDidMount in src/App.js
react-air copy.zip
https://github.com/styled-components/styled-components/files/2475977/react-air.copy.zip
An improper solution is likely using a setTimeout to delay adding the
class by a second or so but I wonder if there's a better way.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/styled-components/styled-components/issues/2094#issuecomment-429586459,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAiy1h_-LJu0NxuUUHoj71XfRWAt5A93ks5ukoWmgaJpZM4Xagjf
.

Think I'm doing it wrong - would it be something like this?
class GlobalCss extends Component {
  componentDidMount() {
    document.body.classList.add('transition-default');
  }

  render() {
    return createGlobalStyle`
      .transition-default {
        transition: all 1s ease;
      }
     `;
  }
}

Nope just do GlobalStyles.componentDidMount = () => { super(); yourLogic();
}
On Sat, Oct 13, 2018 at 7:50 PM Stephen Koo<EMAIL_ADDRESS>wrote:

Think I'm doing it wrong - would it be something like this?
class GlobalCss extends Component {
componentDidMount() {
document.body.classList.add('transition-default');
}
render() {
return createGlobalStyle     .transition-default {        transition: all 1s ease;      }    ;
}
}
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/styled-components/styled-components/issues/2094#issuecomment-429587179,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAiy1iQvwgtoLF08lkgDzgpL_3vSWszAks5ukoo9gaJpZM4Xagjf
.

Thanks, I've never seen that pattern before. Is there a resource I can find about adding lifecycle methods to styled components?
I'm getting the error:  super is only allowed in object methods and classes with the following code:
const GlobalCss = createGlobalStyle`
  .transition-default {
    transition: all 1s ease;
  }
`;

GlobalCss.componentDidMount = () => {
  super();
  document.body.classList.add('transition-default');
};

Do you have an example of something similar so I can figure out what I need to fix?

...I didn't really get that. Could you show me a rough example of what that would look like please?

Why don't you pass the changed variables via props?
const GlobalStyles = createGlobalStyle`
  transition: all 1s ease;
  font-size: 14px;
  color: grey;
  background: ${props => props.bg};
  color: ${props => props.color};
`

class App extends React.Component {
  state = {
    mounted: false,
  };

  componentDidMount() {
    this.setState({ mounted: true })
  }

  render() {
    const { mounted } = this.state;
    return (
      <GlobalStyles bg={mounted ? '#000' : '#fff'} color={mounted ? '#fff' : '#000'} />
    );
  }
}

Hi @probablyup, thanks for taking the time to build the sandbox. I think there's still a misunderstanding going on - here's the codesandbox to illustrate:
https://codesandbox.io/s/l5rqllpo4m
The CSS reset styles (font-size: 50px and text color blue) shouldn't be animated on page load. But after page load, the transition: all 1s ease should take effect on any CSS changes that were not present at the start.
I'm trying to solve this issue. Apologies for the confusion

Thanks @probablyup! Is it against best practice to use setTimeout like that? It works, but I wonder if it's a hack.

It's definitely a hack, but what you're trying to do is also a hack 😆

Is there a non-hacky way of implementing global transition styles?

That only apply after full application mount? Probably not. You'll need some imperative DOM code somewhere to add a class or other DOM marking to signify the initial render pass is complete.


osm-bright does not render administrative boundaries when data is imported via osm2pgsql)

I have been attempting to render cities' boundaries (referred as 'administrative boundaries' in osm) in tilemill (using the osm-bright stylesheet) using the default style of osm2pgsql and osm-bright.
osm2pgsql's default stylesheet treats the tag admin-level with the data type 'text' (see https://github.com/openstreetmap/osm2pgsql/blob/master/default.style#L35 )
Currently, osm-bright's base.mss treats the admin-level field as a numerical, 'float' flavor. When a user is importing osm data into osm-bright via osm2pgsql, no administrative boundaries will be displayed.
To fix this, simply change admin[admin_level=2] to admin[admin_level='2'] in base.mss
Pull request was removed because there still may be conflicts with imposm.

Seems to me like a duplicate of https://github.com/mapbox/osm-bright/pull/87 (which has been merged already).
@skorasaurus Maybe you could close this?

Pull request was removed because there still may be conflicts with imposm.

And it seems like it was removed rightly ;)
I imported the osm planet with imposm instead of osm2pgsql. The country boundaries were missing. So I reverted what was done in #87 and then the borders show up.


Inaccurate timing using triggerAttackRelease

Firstly, I've spent the last couple of weeks working with Tone and I think that the design of the library is really elegant and well thought out. Thanks for all of your work thus far.
Describe the bug
Triggering notes, using triggerAttackRelease, from the tick callback of a Tone.Sequence on instruments such as MonoSynth, Sampler and others seems to be slightly intermittently delayed, causing very noticeable inaccuracies in timing. I do not see this behavior when I use Tone.Players from within the same callback. The timing is quite good in that case.
To Reproduce
I'm including a simple isolated demonstration that can be run from the examples folder. You can uncomment lines in the callback to compare Sampler and Players accuracy. You can also test them at the same time and hear the discrepancy in their playback of the same sample.
sampler-vs-players.zip
Expected behavior
For all notes triggered in the tick callback to be accurately timed, like a metronome.
What I've tried

Tested with multiple instruments including Metal Synth, MonoSynth and Sampler, both in my actual project and in a very simple example, based on the existing example files.
Experimented with setting the value of latencyHint to all of the available options, with no improvement.
Experimented with different offset values ranging from +0.01 to +0.5. None of which improved the timing.
Removed any graphics rendering
Set humanize to false
Testing on dev and 14.7.39 branches

Additional context
Hardware: 2016 MacBook Pro, 2.9 GHz Quad-Core Intel Core i7
OS: MacOS Big Sur
Same behavior can be heard on modern versions of Chrome, Safari and Firefox.

Maybe the same issue as #918
Make sure you pass the value that Tone.Sequence gives you through to triggerAttackRelease.

@tambien Thank you for the quick reply. This was exactly the problem. Back on track now!


All Documentation Links are broken on the "versions" route

To reproduce, follow this link https://reactjs.org/versions/ and click on any of the links titled "Documentation" under the version numbers. Example broken URL route: https://reactjs.org/version/16.2

These used to work and the URLs listed in the repo (https://github.com/reactjs/reactjs.org/blob/master/content/versions.yml) are still available. Maybe something broke when updating gatsby?

This seems to be the same issue

Closing as dupe of https://github.com/reactjs/reactjs.org/issues/3268 which has more info.

Did you mean some other issue number? Self-referential.

I assume you mean https://github.com/reactjs/reactjs.org/issues/3138

Yeah, thanks.


Stop listening for IsCancel on button detached

What does the pull request do?
Adds missed un-subscription on button detached event.
Checklist

[ ] Added unit tests (if possible)?
[ ] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/Documentation with user documentation

Fixed issues
Fixes https://github.com/AvaloniaUI/Avalonia/issues/7751

You can test this PR using the following package version. 0.10.999-cibuild0020936-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]

Thanks!
One question: I'm assuming it is impossible for the VisualRoot to change without firing DetachedFromVisualTree?

@robloo I can't imagine when it could. It's sync and to change the root you need to detach control first, otherwise "Control already has parent" exception will throw.
Though, anyway, we pass e.Root parameter to the StopListeningForCancel method. Even if root was changed, this parameter will hold a reference to the previous root.


Enhancing README file , adding learn.md file and adding Code of conduct.

Adding things like learn.md file and Code of conduct and a better READ.me file would help fellow programmers a lot to understand about your project and what are the things they need to resolve. This also develops interest in fellow programmers and helps in better understanding.
So please assign me this issue so I can work upon this for its improvement and it would also help me for GSSOC'24.
@shwetarkadam

@lakshay-111 hi i want to work on it can you assigned it to me

What's missing in this file :

Readme file needs to be added
Add Code of Conduct

Hey @open-xyz ,  I'd like to work on this issue under GSSOC. Could you please add the necessary label and tag to the issue and assign it to me?


Make ESDB container implement IDatabaseContainer

What does this PR do?
EvebtStoreDbContainer class implements the GetConnectionString method so it can inherit from IDatabaseContainer.
Why is it important?
When creating an abstraction for tests, I can't currently use IDatabaseContainer and its GetConnectionString because EventStoreDbContainer doesn't implement the interface.

I already figured it out by looking at failing test, and I am not exactly following that decision. The interface doesn't suggest anything like that, so it's unclear from the API surface what is the intention behind that interface.
From the test perspective, and looking at other container implementations, it looks like MonoDB for example, is not a database when we all know it definitely is a database. Or Neo4j, or ESDB in that regard. I personally find it confusing.

The interface doesn't suggest anything like that, so it's unclear from the API surface what is the intention behind that interface.

Indeed, the interface itself does not, but the description does. IIRC, the initial idea was IAdoNetDatabaseContainer or something similar.

From the test perspective, and looking at other container implementations, it looks like MonoDB for example, is not a database when we all know it definitely is a database.

No one is saying that MongoDB or ESDB are not databases, but abstraction becomes significant when commonality exists. You cannot easily swap MongoDB with ESDB as you can with ADO.NET compatible containers (AFAIK). But it is definitely ambiguous. Such as the publicly available methods to retrieve the connection string, endpoint, base address, etc. Typically, I aim to correspond to the client library.

When creating an abstraction for tests, I can't currently use IDatabaseContainer and its GetConnectionString because EventStoreDbContainer doesn't implement the interface.

Could you provide more details about what you are trying to abstract? I would like to get a better understanding of the use cases.

I have a base class that is used across different implementation, which are database-specific. In my case, the abstraction is on a high enough level to just need the GetConnectionString be available across all those containers so I can pass the connection string to downstream implementations without exposing much other details about the container implementation.
I ended up making the base class generic, where the generic parameter is constrained to DockerContainer, and all inheritors use their own container types, and be able to call Container.GetConnectionString(). So, I had to expose container as a protected property, which I didn't want to.

Maybe we can add support together with this issue. Right now, I am considering a connection string provider or something similar, which is capable of resolving the correct connection strings. This would allow developers to override the default connection string and could be used for the abstraction too.

As mentioned, the interface is exclusively for ADO.NET compatible containers. I've generated a follow-up issue that includes a proposal for implementing a connection string provider across all modules. I'll close this PR. Let's carry on the discussion in the referenced issue. Thank you for bringing this to my attention.


$location should handle file protocol

fix URL_MATCH regexp to handle file protocol (make whole domain optional)
fix $location, .$compose() should allow empty domain (on file protocol)

Hi I've been looking a bit at this issue.
But to verify that it's works, once fixed, then /build/docs/docs-scenario.html should also allowed to run without a https or http protocol right?
Right now it writes:that it cannot run under other protocols then http and https.

@Hviid Nope, our documentation requires server, because we do rewrite urls, it's not our goal, to allow running the docs app on file protocol.
Anyway thi issue is not fixed yet - it has not been fixed yet, I only fixed the status code (0 -> 200/404), but I haven't fixed $location yet...


Deployment Architecture

@steotia
Please find two files for installation procedures.
1 . Small scale deployment process
2. Large Scale deployment process.
You can start your content adding here :
sunbird-commons/Hackathon/smallmedium_deploy_process.md
sunbird-commons/Hackathon/largescale_deploy_process.md

@kochhar @nawabahmadreshi @Sunitashelar content from these files, Are they intended to go on Sunbird documentation site http://open-sunbird.org/ ?
cc @parthlawate

@lakhanmandloi
Yes, there is change in these files, I will be updating the files by tomorrow EoD,

these files will move from the Hackathon directory and into the main documentation structure. @nawabahmadreshi and @lakhanmandloi can determine the best location.

@nawabahmadreshi where do we want to show this page? and when this page is expected to show? I mean is it urgent or okay if goes after 2-3 weeks with new designs.

@lakhanmandloi
Yes this is important and highly prioritised section. I will complete it by tomorrow and, I will also let you know where this section needs to be put in. I hope this will answers your question.

@nawabahmadreshi is this done? can the issue be closed?

This is done , closing the issue .


Add app.json

I rule and have completed some work on Case Manager that's ready for review!
I added an app.json file to test automating new Heroku app creation
It relates to the following issue #s:

Bumps #1241

Closing in favor of #1251


Ayatori mentions "Mesa" in GPU name

Here. Mesa is the name of the userspace driver for the GPU.

Thanks :) Fixed


[google_maps_flutter] Take snapshot of map

Description
Added function for taking a snapshot of the map
Related Issues
https://github.com/flutter/plugins/pull/1719
https://github.com/flutter/flutter/issues/33557
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[x] I updated CHANGELOG.md to add a description of the change.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[x] No, this is not a breaking change.

@googlebot I signed it! and we'll verify it.

thanks!

I need to take the snapshot once the map widget has been renderer:
using WidgetsBinding.instance.addPostFrameCallback
_onAfterBuild(BuildContext context) async {
    if (_image == null) {
      final GoogleMapController controller = await _completer.future;
      final bytes = await controller?.takeSnapshot();
      _image = Image.memory(bytes);
    }
  }

I get a crash on iOS (stable version)

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Data cannot be nil'
*** First throw call stack:
(
	0   CoreFoundation                      0x00007fff23c7127e __exceptionPreprocess + 350
	1   libobjc.A.dylib                     0x00007fff513fbb20 objc_exception_throw + 48
	2   CoreFoundation                      0x00007fff23c70ff8 +[NSException raise:format:arguments:] + 88
	3   Foundation                          0x00007fff256e9b51 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 191
	4   Flutter                             0x000000010381ae08 -[FlutterStandardTypedData initWithData:type:] + 335
	5   Flutter                             0x000000010381aca0 +[FlutterStandardTypedData typedDataWithData:type:] + 59
	6   Runner                              0x0000000102bdfd28 -[FLTGoogleMapController onMethodCall:result:] + 4584
	7   Runner                              0x0000000102bdeae1 __75-[FLTGoogleMapController initWithFrame:viewIdentifier:arguments:registrar:]_block_invoke + 161
	8   Flutter                             0x0000000103818b35 __45-[FlutterMethodChannel setMethodCallHandler:]_block_invoke + 104
	9   Flutter                             0x00000001037ac920 _ZNK7flutter21PlatformMessageRouter21HandlePlatformMessageEN3fml6RefPtrINS_15PlatformMessageEEE + 166
	10  Flutter                             0x00000001037b03ce _ZN7flutter15PlatformViewIOS21HandlePlatformMessageEN3fml6RefPtrINS_15PlatformMessageEEE + 38
	11  Flutter                             0x00000001038126e9 _ZNSt3__110__function6__funcIZN7flutter5Shell29OnEngineHandlePlatformMessageEN3fml6RefPtrINS2_15PlatformMessageEEEE4$_32NS_9allocatorIS8_EEFvvEEclEv + 57
	12  Flutter                             0x00000001037bf8f3 _ZN3fml15MessageLoopImpl10FlushTasksENS_9FlushTypeE + 117
	13  Flutter                             0x00000001037c4638 _ZN3fml17MessageLoopDarwin11OnTimerFireEP16__CFRunLoopTimerPS0_ + 26
	14  CoreFoundation                      0x00007fff23bd4b94 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
	15  CoreFoundation                      0x00007fff23bd4882 __CFRunLoopDoTimer + 1026
	16  CoreFoundation                      0x00007fff23bd3eda __CFRunLoopDoTimers + 266
	17  CoreFoundation                      0x00007fff23bcec4e __CFRunLoopRun + 2238
	18  CoreFoundation                      0x00007fff23bce066 CFRunLoopRunSpecific + 438
	19  GraphicsServices                    0x00007fff384c0bb0 GSEventRunModal + 65
	20  UIKitCore                           0x00007fff48092d4d UIApplicationMain + 1621
	21  Runner                              0x00000001026cbc2b main + 75
	22  libdyld.dylib                       0x00007fff5227ec25 start + 1
	23  ???                                 0x0000000000000001 0x0 + 1

@fvisticot Thanks for finding this out. Do you mind open an issue with details about this crash and tag me there?
In your issue, it would be super helpful if you can provide a reduced test case. It will help us to reproduce the issue quickly and get resolved quickly.

Any news about this pull request?

I get a crash on iOS (stable version)

I've filed an issue with reproduction steps: https://github.com/flutter/flutter/issues/81690


Fix nvidia container toolkit docker contamination

Description of changes
Backport https://github.com/NixOS/nixpkgs/pull/331071
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

This is, technically, a breaking change which we normally do not backport. The original state of things is sufficiently sad though maybe we make an exception (would need a note in release notes)... idk hard to know what people depend on and what they don't


cmd/shellenv.sh: make brew shellenv idempotent

[X] Have you followed the guidelines in our Contributing document?
[X] Have you checked to ensure there aren't other open Pull Requests for the same change?
[X] Have you added an explanation of what your changes do and why you'd like us to include them?
[X] Have you written new tests for your changes? Here's an example.

[ ] Have you successfully run brew typecheck with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

Make brew shellenv idempotent. This implementation simply a new environment variable HOMEBREW_SHELLENV_SET to avoid duplicate initialization.
$ /home/linuxbrew/.linuxbrew/bin/brew shellenv
export HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew";
export HOMEBREW_CELLAR="/home/linuxbrew/.linuxbrew/Cellar";
export HOMEBREW_REPOSITORY="/home/linuxbrew/.linuxbrew/Homebrew";
export PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin${PATH+:$PATH}";
export MANPATH="/home/linuxbrew/.linuxbrew/share/man${MANPATH+:$MANPATH}:";
export INFOPATH="/home/linuxbrew/.linuxbrew/share/info:${INFOPATH:-}";
export HOMEBREW_SHELLENV_SET=1;

$ eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

$ /home/linuxbrew/.linuxbrew/bin/brew shellenv
export HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew";
export HOMEBREW_CELLAR="/home/linuxbrew/.linuxbrew/Cellar";
export HOMEBREW_REPOSITORY="/home/linuxbrew/.linuxbrew/Homebrew";

It has several limitations, but I think it doesn't matter. For example, it can not handle file redirection ([ ! -t 1 ] can not work):
$ eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

$ brew shellenv >> my_shell_profile

$ cat my_shell_profile
export HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew";
export HOMEBREW_CELLAR="/home/linuxbrew/.linuxbrew/Cellar";
export HOMEBREW_REPOSITORY="/home/linuxbrew/.linuxbrew/Homebrew";

$ HOMEBREW_SHELLENV_SET='' brew shellenv >> my_shell_profile

$ cat my_shell_profile
export HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew";
export HOMEBREW_CELLAR="/home/linuxbrew/.linuxbrew/Cellar";
export HOMEBREW_REPOSITORY="/home/linuxbrew/.linuxbrew/Homebrew";
export PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin${PATH+:$PATH}";
export MANPATH="/home/linuxbrew/.linuxbrew/share/man${MANPATH+:$MANPATH}:";
export INFOPATH="/home/linuxbrew/.linuxbrew/share/info:${INFOPATH:-}";
export HOMEBREW_SHELLENV_SET=1;

Resolves Homebrew/install#559.

I wonder if it's worth emitting a warning when brew shellenv is called with HOMEBREW_SHELLENV_SET set, since this is likely happening when someone is calling brew shellenv multiple times inadvertently (perhaps because one copied echo 'eval $(brew shellenv)' >> ~/.profile into their shell profile...)

I wonder if it's worth emitting a warning when brew shellenv is called with HOMEBREW_SHELLENV_SET set.

Then it will raise a warning when the user create a subshell or source the shell profile manually. Maybe variable SHLVL can help for the first situation. But for the second one, we cannot figure out whether brew shellenv is called by intentional or:

since this is likely happens when someone is calls brew shellenv multiple times inadvertently (perhaps because one copied echo 'eval $(brew shellenv)' >> ~/.profile into their shell profile...)

Besides, for Linux users with a desktop environment, the file ~/.profile maybe sourced at user desktop session startup. For example, the ~/.profile will be sourced at the beginning of GNOME session. Then if you open a gnome-terminal window to start a bash session, the variable HOMEBREW_SHELLENV_SET will be inherit from the gnome-terminal, which will cause duplicate brew shell initialization. Using bash with the GNOME destop environment (default setting for Ubuntu) will always source the ~/.profile at least twice.

Ok, let's skip the warning then.
I have another question: what are the advantages of this approach over, say, making the output of brew shellenv itself idempotent? i.e. the logic for checking whether brew is in PATH is in the code emitted by brew shellenv, rather than brew shellenv itself checking that brew is in PATH, etc.

i.e. the logic for checking whether brew is in PATH is in the code emitted by brew shellenv, rather than brew shellenv itself checking that brew is in PATH, etc.

Only check whether brew is in PATH is not sufficient. MANPATH and INFOPATH should be checked as well.
Here is my first implementation (https://github.com/Homebrew/brew/commit/d0ff10b3832d756d2e6edba058e4a5c339bda9c0). It checks the occurrences of brew's entries in PATH, MANPATH and INFOPATH. But just add an auxiliary variable is simpler and much more straight forward.

Only check whether brew is in PATH is not sufficient. MANPATH and INFOPATH should be checked as well.

Yes. That's what the "etc" stood for. Thanks for the update; I'll have a look shortly.

I have another question: what are the advantages of this approach over, say, making the output of brew shellenv itself idempotent? i.e. the logic for checking whether brew is in PATH is in the code emitted by brew shellenv, rather than brew shellenv itself checking that brew is in PATH, etc.

The implementation is way simpler. Checking whether something is in the PATH reliably is somewhat non-trivial.

Great work here, thanks again @XuehaiPan!


Restructure folders

This was an attempt to restructure the package to make imports like from "deepslate/worldgen" possible. However after TS 4.7.3, this turned out to be unnecessary. Secondly, I switched away from bundling, as this should be the end user's responsibility.


Task Dictionary Ordering in WorkflowDefinition

What would you like to be added:
The Task Dictionary in WorkflowDefinitionBuilder that is used to represent the Tasks in the "Do" section may have an issue with the ordering of the tasks it contains.
I'm not familiar with Neuroglia.EquatableDictionary, but it looks to be based on Dictionary internally. And in the case of Dictionary, the order of its elements is known to be undefined: docs
One approach could be using an OrderedDictionary
Why is this needed:
To avoid potential issues with unpredictable Task execution order for downstream consumers.

Awesome, thank you!


Add sensor.output_state?

Thinking about the input_boolean https://github.com/balloob/home-assistant/pull/897. This will allow me to replace some custom controls that I use to control automation.
I could replace morecustom components if we have an sensor.output_template which would 'decorate' an existing entity (or list of entities)- and allow you to break out attributes as sensors. I do this to wrap some wemo maker sensors - but could have many other uses.
Would be a good use of templates!
Views?

I like it. I would probably call it sensor.template, have it listen to all state changes and on each state change re-evaluate template and push that as state.


How to configure stimulus using the new rails 7 asset pipeline

Feature request
Hello, how could this be done? In the javascript documentation the configuration needed to use webpack is indicated, but I am interested in using stimulus using importmap and sprockets, as it will be in rails 7 by default, using the asset pipeline.
Could this be added to the documentation?
Thanks!
Motivation

Motivated by those post by DHH:

Modern web apps without JavaScript bundling or transpiling
Rails 7 will have three great answers to JavaScript in 2021+

@brunoprietog I'd be happy to add it to the documentation. Are you able to look into this?

I got this hooked up today. To do this you should:

Make sure you are using this change or define the code in your app/javascript/controller/index.js to load them correctly.
Add pin_all_from "app/components" to config/importmaps.rb
Add Rails.application.config.assets.paths << "app/components" to config/initializers/assets.rb

I was initializing my component with be rails g component hello_world --sidecar --stimulus for what it is worth.

I'm struggling to get this working with Rails 7 using the esbuild approach too. So far I've had to put the view_component stimulus controllers within the app/javascripts hierarchy. esbuild complains if I add import "../components" to the application.js file.

I come up with a solution based on https://github.com/hotwired/stimulus-rails/blob/main/lib/tasks/stimulus_tasks.rake#L29-L46. I use esbuild with jsbundling-rails.
So I added a view_component.rake to my project, with those content:
# frozen_string_literal: true

namespace :view_component do
  namespace :stimulus_manifest do
    task display: :environment do
      puts Stimulus::Manifest.generate_from(Rails.root.join('app/components'))
    end

    task update: :environment do
      manifest =
        Stimulus::Manifest.generate_from(Rails.root.join('app/components'))

      File.open(Rails.root.join('app/components/index.js'), 'w+') do |index|
        index.puts '// This file is auto-generated by ./bin/rails view_component:stimulus_manifest:update'
        index.puts '// Run that command whenever you add a new controller in ViewComponent'
        index.puts
        index.puts %(import { application } from "../javascript/controllers/application")
        index.puts manifest
      end
    end
  end
end

if Rake::Task.task_defined?('stimulus:manifest:update')
  Rake::Task['stimulus:manifest:update'].enhance do
    Rake::Task['view_component:stimulus_manifest:update'].invoke
  end
end

And it will generate file app/components/index.js everytime you run the stimulus:manifest:update. Why I put this file inside app/components/ is because stimulus-rails only generate the manifest content based on relative of /app/javascript/controllers/.

And it works well for me.

Feature request
Hello, how could this be done? In the javascript documentation the configuration needed to use webpack is indicated, but I am interested in using stimulus using importmap and sprockets, as it will be in rails 7 by default, using the asset pipeline.
Could this be added to the documentation?
Thanks!
Motivation
Motivated by those post by DHH:

Modern web apps without JavaScript bundling or transpiling
Rails 7 will have three great answers to JavaScript in 2021+

I have just started a new Rails 7 project, with View Component and Stimulus. I am working with just vanilla Importmap Rails, no jsbundling-rails or esbuild. My file structure is as created by the component generator with the sidecar and stimulus flags as @liaden was using.
Has anyone found a solution that automatically loads sidecar stimulus controllers as they are added without having to register them manually, using only importmap-rails or the vanilla asset pipeline/sprockets?
I have a feeling this sort of abuses what importmap was built to do, so I wouldn't be surprised if the answer was no. But I also feel like there must be a way to accomplish this. Honestly, this could also be more of a question for the Importmap team, but it's all based on trying to sidecar stimulus controllers with ViewComponents, so here I am...
I was hoping this would be the case (automatic registration) with the suggestions above, but that is not the case (for me at least)
I've tried:

Turning app/javascript/controllers/index.js into an erb file and doing a little metaprogramming to cycle through all the controllers in app/components/**/*_controller.js and using the manual registration technique that is already working.

no dice. I think it's cause it doesn't get processed into a js file before importmap looks to pin it. Honestly not sure at this point. This approach might work eventually, but it feels very hacky.

Dynamically (iterate over files using ruby) calling pin_all_for in importmap.rb on each component dir. I was hoping I could do this using the under: 'components' flag to add these controllers to the "controllers/" prefix in the import map.

However, this doesn't work because importmap really just seems to take the prefix off your file path. Ex stimulus install adds pin_all_from "app/javascript/controllers", under: "controllers" but all it really does is remove app/javascript from the path when requiring it. (I honestly don't think that's the whole story, but I'm still slowly working through the importmap code).
Therefore you get this error (cause you're basically trying to change the "directory" that the asset lives in

The asset "controllers/hello_component/hello_component_controller.js" is not present in the asset pipeline.
Importmap skipped missing path: controllers/hello_component/hello_component_controller.js

Adding //=link_tree ../../components .js to app/assets/config/manifest.js. I honestly thought this would work but it doesn't. I'm not familiar enough yet with debugging the asset pipeline to troubleshoot this approach.

Following @liaden 's suggestions, I can get a stimulus controller working in a sidecar folder only by also using @roelandmoors 's suggestion of manually loading and registering the controller. see below for what I'm starting with.
File structure
├── hello_component
│   ├── hello_component_controller.js
│   └── hello_component.html.erb
└── hello_component.rb

config/initializers/assets.rb
Rails.application.config.assets.paths << "app/components"
Rails.application.config.assets.debug = true

config/importmap.rb
pin "application", preload: true
# ... Hotwire stuff ...
pin_all_from "app/javascript/controllers", under: "controllers"
pin_all_from "app/components" <- new line

app/javascript/controllers/index.js
// Import and register all your controllers from the importmap under controllers/*

import { application } from "controllers/application"

// Eager load all controllers defined in the import map under controllers/**/*_controller
import { eagerLoadControllersFrom } from "@hotwired/stimulus-loading"
eagerLoadControllersFrom("controllers", application)

import HelloComponentController from "hello_component/hello_component_controller";
application.register("hello-component", HelloComponentController);

and I actually didn't need step 5 (updating development.rb).
Anyway, I'm excited about ViewComponent, and will use it if I can't get this automatically loading sidecar controllers thing to work. But it would be pretty nice! I'll post back if I figure it out....

I've came up with a very dirty (IMHO) solution a while ago, but waited for someone to suggest a cleaner one :sweat_smile:
My solution doesn't require manual controller registration.
The main idea is to add app to asset paths so that we have our controllers by the components/controller.js path in the asset pipeline. To make it a bit cleaner, we add it as the last path:
# config/application.rb

initializer "app_assets", after: "importmap.assets" do
  Rails.application.config.assets.paths << Rails.root.join('app') # for component sidecar js
end

# Sweep importmap cache for components
config.importmap.cache_sweepers << Rails.root.join('app/components')

Then we can add component JS files to the asset pipeline:
// app/assets/config/manifest.js

//= link_tree ../../components .js

Now importmap can pick them up:
# config/importmap.rb

pin_all_from "app/components", under: "components"

Optionally, lazy load controllers:
// app/javascript/controllers/index.js

import { lazyLoadControllersFrom } from "@hotwired/stimulus-loading"
lazyLoadControllersFrom("components", application)

That's it.
My hobby app has all of this in one commit together with a sample component https://github.com/imustafin/sibrowser/commit/12fb4aecb32775243c2924ef1f2b7c30fdf045c2.
Running this setup for a month, faced no problems yet.
Possible drawback
Unwanted application code from the app dir can get included into the asset pipeline, if you are not careful enough in the manifest
I'm not sure if this can be "the officially recommended way", but if so, I could send a PR with the documentation.

Wow, thank you so much @imustafin !! I was hoping hoping that someone out there had figured this out.
From the perspective of someone just finding ViewComponents, your post is exactly the documentation I was looking for but couldn't find. So I support some documentation!
I'm also curious what people think about an install task something like rails viewcomponent:install --sidecar --importmap (sorta clunky, but you get the idea).
Although I need to read some more code, I'm unfamiliar if any of this exists already. And/or if there's a neat way to wrap this all into the gem or a single file/config.

@imustafin For me this one is not optional to make it works.
// app/javascript/controllers/index.js

import { lazyLoadControllersFrom } from "@hotwired/stimulus-loading"
lazyLoadControllersFrom("components", application)

@spnv yes, you need to load them somehow. You can do lazyLoadControllersFrom or eagerLoadControllersFrom in app/javascript/controllers/index.js, or you can load them some other way.
Maybe the word "optional" was wrong there. It should have been "for example" maybe.

@tripptuttle if I understood you correctly, my solution should work. In the mentioned commit https://github.com/imustafin/sibrowser/commit/12fb4aecb32775243c2924ef1f2b7c30fdf045c2 we have app/components/packages_paginated/component_controller.js which is not directly in /components but in a namespace/sidecar for the packages_paginated component. Or does namespace/sidecar mean something different? Maybe you would need to fiddle a bit with the name in data-cation="" to add the folder name using -- (https://viewcomponent.org/guide/javascript_and_css.html#stimulus)

To be honest, it has been a long time since I've configured all of this :)
I don't remember if I had such errors. I believe I had only the the expected shim error on Firefox. I don't remember if I even checked the console in other browsers. It just worked.

Yeah, it all works, but it just throws an error I think while resolving the request for the controller out of the import map.

I come up with a solution based on https://github.com/hotwired/stimulus-rails/blob/main/lib/tasks/stimulus_tasks.rake#L29-L46. I use esbuild with jsbundling-rails.
So I added a view_component.rake to my project, with those content:
# frozen_string_literal: true

namespace :view_component do
  namespace :stimulus_manifest do
    task display: :environment do
      puts Stimulus::Manifest.generate_from(Rails.root.join('app/components'))
    end

    task update: :environment do
      manifest =
        Stimulus::Manifest.generate_from(Rails.root.join('app/components'))

      File.open(Rails.root.join('app/components/index.js'), 'w+') do |index|
        index.puts '// This file is auto-generated by ./bin/rails view_component:stimulus_manifest:update'
        index.puts '// Run that command whenever you add a new controller in ViewComponent'
        index.puts
        index.puts %(import { application } from "../javascript/controllers/application")
        index.puts manifest
      end
    end
  end
end

if Rake::Task.task_defined?('stimulus:manifest:update')
  Rake::Task['stimulus:manifest:update'].enhance do
    Rake::Task['view_component:stimulus_manifest:update'].invoke
  end
end

And it will generate file app/components/index.js everytime you run the stimulus:manifest:update. Why I put this file inside app/components/ is because stimulus-rails only generate the manifest content based on relative of /app/javascript/controllers/.

And it works well for me.

Thanks for this rake, it works very well with esbuild, i have add some lines to automatic import the view component stimulus manifest inside normal stimulus controller manifest
Add this lines at the end of update task:
File.open(Rails.root.join('app/javascript/controllers/index.js'), 'a') do |index|
  index.puts ''
  index.puts '// Import view component stimulus controllers'
  index.puts %(import "../../components")
end

I wonder if there is any change we can upstream on Stimulus side to make registering non-standard locations for controllers more straightforward. Otherwise, it just seems hacky for now :(
Any ideas? I'd be happy to try to push this forward.

:wave: @progapandist nice to see you here!
I'd be happy to spend some time to pair on this and try to figure out the best way forward. Let me know!

@Spone — small world! 😆
For now we did an ugly workaround with adding app/frontend/components (has to be a nested folder to avoid preloading whole app) to eager_load_paths in application.rb. We are not satisfied with this long-term though. Let's find time to pair next week. I think you still have my number :) If not — contact me at<EMAIL_ADDRESS>

Hey @Spone, I have created a repo with a test application that demonstrates both the "nested folder" workaround, and the failing attempt to register non-standardly-located Stimulus controllers. I have took time to describe everything in the README.
https://github.com/progapandist/importmap-view-component-stimulus/
So far I cannot pinpoint which library is to blame for the incompatibility, but I suspect sprockets-rails or sprockets. Seems like importmap-rails does its job to pin the app/components, but the Asset Pipeline does not generate digest for controller JS files and does not put them into /public.
I would appreciate any further guidance!

I was trying to achieve this and asked for help on StackOverflow: https://stackoverflow.com/questions/73223634/how-to-make-viewcomponent-works-with-importmap-rails/73228193#73228193
I'm using the first option and it's working like a charm.
How do you feel about adding the first option to the documentation?

It gets a bit messy when using namespaced components and sidecar folders. If I use rails g Page::DarkModeSelector to generate Page::DarkModeSelectorComponent I have to use data-controller="page--dark-mode-selector-component--dark-mode-selector-component".
Granted, that's a fairly long name to start with, but is there a way to make these a little (well, a lot TBH :) less verbose? Having the controller name just be page--dark-mode-selector-component would be ideal.

It gets a bit messy when using namespaced components and sidecar folders. If I use rails g Page::DarkModeSelector to generate Page::DarkModeSelectorComponent I have to use data-controller="page--dark-mode-selector-component--dark-mode-selector-component".
Granted, that's a fairly long name to start with, but is there a way to make these a little (well, a lot TBH :) less verbose? Having the controller name just be page--dark-mode-selector-component would be ideal.

@unikitty37 we talk about that in this issue: https://github.com/github/view_component/issues/1393

Building on top of @chunlea 's work, I added a section to the rake task to include any CSS in components folder as well:
# frozen_string_literal: true

namespace :view_component do
  namespace :stimulus_manifest do
    task display: :environment do
      puts Stimulus::Manifest.generate_from(Rails.root.join("app/components"))
    end

    task update: :environment do
      manifest =
        Stimulus::Manifest.generate_from(Rails.root.join("app/components"))

      File.open(Rails.root.join("app/components/index.js"), "w+") do |index|
        index.puts "// This file is auto-generated by ./bin/rails view_component:stimulus_manifest:update"
        index.puts "// Run that command whenever you add a new controller in ViewComponent"
        index.puts
        index.puts %(import { application } from "../javascript/controllers/application")
        index.puts manifest
      end

      # get all css files under app/components
      css_files = Dir.glob(Rails.root.join("app/components/**/*.css"))
      # remove the path
      css_files = css_files.map { |file| file.gsub(Rails.root.join("app/components/").to_s, "./") }
      # remove self reference
      css_files = css_files.reject { |file| file == "./components.css" }
      # wrap each item in a css import
      css_files = css_files.map { |file| "@import '#{file}';" }

      File.open(Rails.root.join("app/components/components.css"), "w+") do |index|
        index.puts "/* This file is auto-generated by ./bin/rails view_component:stimulus_manifest:update */"
        index.puts "/* Run that command whenever you add a new controller in ViewComponent */"
        index.puts
        index.puts css_files
      end
    end
  end
end

if Rake::Task.task_defined?("stimulus:manifest:update")
  Rake::Task["stimulus:manifest:update"].enhance do
    Rake::Task["view_component:stimulus_manifest:update"].invoke
  end
end

@imustafin thank you! I was banging my head against the wall with this, but you're configuration is working for me.
I had something very close to that but it was only working in my local Rails development environment and was breaking in production until I adopted your config.

tldr: RailsByte for easy setup
I have found myself returning to this thread several times, so I have created a RailsByte that includes the code mentioned earlier and adds an import example. The steps were taken from @liaden's post and @seanbjornsson's addition of the import example.
You can find the RailsByte here: https://railsbytes.com/templates/X6ksy1. I opted not to use the auto import example as it might have performance implications.

@maks112v could you please add it to the documentation as well, since this is the first place someone will look when they are having config problems, if you need help adding it I would be glad to help.

@maks112v hows this coming along, can I help you so we can get this issue closed

Ive been able to get it working with PR#192 I've submitted to importmap-rails. I currently have it running as a monkey patch working for propshaft and sprockets.
# lib/monkey_patches/importmap.rb

module MonkeyPatches
  module Importmap
    def module_path_from(filename, mapping)
      [ mapping.path || mapping.under, filename.to_s ].reject(&:empty?).join("/")
    end
  end
end

# config/initializers/monkey_patches.rb

require_relative "../../lib/monkey_patches/importmap"

Importmap::Map.prepend MonkeyPatches::Importmap

# config/initializers/assets.rb

Rails.application.config.assets.paths << "app/components"

# config/importmap.rb

pin_all_from "app/components", under: "controllers", to: ""

Propshaft - just ensure controllers are imported, should be there in default install
// app/javascript/application.js

import "controllers";

Sprockets - link the components directory
// app/assets/config/manifest.js

//= link_tree ../../components .js

Does anyone know how to automatically run stimulus:manifest:update after generating the component? Feels like it is definitely something I will forget to do and cause hours of debugging lol

For others coming across this issue, I wrote a post about what worked for me (a combination of several answers in this issue): https://blog.theamazingrando.com/posts/rails-propshaft-stimulus-viewcomponent.html

@paul just read it, its a great article, I would love to help you add this to the docs

@reeganviljoen Sure, happy to contribute. Which doc should I add it to?

@paul a good place to add it would be
https://viewcomponent.org/guide/javascript_and_css.html
You can run and edit the doc site localy in the repo by following https://viewcomponent.org/CONTRIBUTING.html#documentation
If you need any more help I let me know 😀