Add type hints to src/microprobe/code folder

This series has a few changes to start integrating type hints into the repo.
Commit 1: Run the yapf command from utils/ensure_style.sh on the /code folder
Commit 2: Add basic type hints to files in the /code folder.
Notes:

I added return types to the abstract classes. I typically like to avoid explicitly naming return types, as I think it encourages people to lie about the possibility of a None return type. These types may need to change as I understand/annotate more of the code base.
I removed unused imports before adding types. This results in some interesting cases like here where we remove Instruction and add it back as a type.
I migrated some **kwargs patterns to regular arg: type = default patterns as **kwargs are very challenging to type hint. Example

This does cause some challenges here where we need to propagate the types/defaults out to the sub-classes so the init method gets somewhat verbose.

Migrated outdated class ClassName(object): and ClassName(six.with_metaclass(abc.ABCMeta, object)): to class ClassName: and class ClassName(abc.ABC):

NOTE I think this might break compatibility with Python2, but I haven't checked. If that's important please let me know.

Value/Variable annotations are extremely confusing to me at the moment, so I've left them un-annotated.

Examples: 1, 2, 3

Replaced depricated @abc.abstractproperty with @property  @abc.abstractmethod Example

Commit 3: The facade pattern does not play nicely with python tooling :(
Thankfully an easy workaround is just defining the class methods as an alias on that class.
Commit 4: get_all_subclasses does not (and AFAIK cannot) give useful type hints. Because we tightly control the call-site I feel comfortable wrapping the call in a function to provide type information.

Ping - if this sort of PR is too large, I can just add type hints to files as I make other edits which should be smaller and more review-able.
If there's anything I can do to make PRs easier to review please let me know. I'm not super familiar with the github flow - I'm more used to mailing lists :)

Sorry for the delay.... hectic days traveling, changing timezones... and I missed the first notification (the ping worked ;) )
I reviewed the changes and all looked great (some comments below). The CI tests passed, so I merged this PR. If some corner case arises in the future, we'll fix it.
Some comments:

PR size is OK. I typically organize the PR by functionality/new feature or by bug fix. In this case, since these changes are more related to readability/refactoring is perfectly OK to organize them by directory or subdirectory.
Any code related to support vintage Python2 can be removed. We do support Python2 anymore.
Changing **kwargs to *args make sense. I used **kwargs extensively for fast prototyping and because of my laziness... now that the code is more stable, it should be safe to move to *args and be able to provide the benefits of type checking.
All the other changes, related to improve the readability, refactoring and enabling new Python tooling  are all welcome. The code-base started in early python 2.2 or 2.4 and it was never "ported" properly to 3.x series... I just did the minimum changes to keep the code working.

Thanks for your contribution!


Use loadPartialConfig to load babel config

In the trivago environment, we are getting the following error with loadOptions.
Error: [BABEL] unknown: Preset /* your preset */ requires a filename to be set when babel is called directly,
[error] babel.transform(code, { filename: 'file.ts', presets: [/* your preset */] });

I have changed the loadOptions with loadPartialConfig https://babeljs.io/docs/en/babel-core#loadpartialconfig We just need the presets and plugins from the user's environment and loadPartialConfig does the job.

Hi @gavinhenderson , Could you please review this change? I am not able to request your review directly.  Thanks in advance 😄

Looks good to me! :)


Not uefi compatible?

The resulting boot usb drive would not work for me on my computer that would only allow boot from uefi. It failed to read the MBR style partitions. Anyone have any luck booting through uefi?

Hi there! Sorry that this does not work with UEFI. I'm only vaguely familiar with UEFI so I would suggest looking for a BIOS option that might allow the old fashioned stuff. For example if you have secure boot enabled this might force UEFI, but if you disable secure boot you might get MBR to work.


♻refactor: simplify and minimum

Sammary

[x]  Fix netlify Deploy Preview
[x] use jsx.element instead of FC
[x] decrease some useless fields and properties
[x] implement unique id by react.useId
[x] Change image preview function more simple
[x] Rename undenstandably

How to verify the codes
I tested the codes in my environment.
I haven't make any tests, but I would like in the future.
Anyway check the my changes at the netlify deploy preview.

Please tell me why you changed

uoloadFormHook.tsx to profileForm.tsx
type FormData to Profile
?

I wanna try DDD(Domain-Driven Design).
This software design focus on the name of business domain.
DDD big benefit is more readable codes for whoever.
This book will help you understand .

I wanna try DDD(Domain-Driven Design). This software design focus on the name of business domain.
I read the overview of DDD.
I think labor management is a business domain of this application,
how about you?

Then, I wonder whether the name, "Profile", is correct here because of below.

In the form, there are "agreement" and "image"(disability certificate image) which we are difficult to call "Profile".
Regardless of the business dmain, this type and form are just related to form's data.
In the future, it is expected to register information for "内勤担当者" in this application.

DDD big benefit is more readable codes for whoever. This book will help you understand .

I'll read the book.


Secure backend API routes with authentication

[ ] Use JWT
[ ] Google sign in returns JWT token, frontend sends that JWT to backend, verify if this JWT token is actually from Google or not using their API: https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=YOUR_TOKEN_HERE

Backend Repository: meet59patel/schooler-server

Can you please assign it to me? I need to learn JWT but I will try to complete it before tomorrow night.

I would like to work on this one.

I want to work on this and I am thinking to use passports can you please share clientID, clientSeceret, and CallbackURL for that?

@manan2501 updates on this?

I am extremely sorry, currently, there are too many things happing right now. So, it just slipped out of my mind. If someone wants to work on this please assign it to them, or else I will continue from here when I come back.
And sorry for the inconvenience it caused to anyone working on this project.


Evaluate macro variables before attempting string interpolation

Example:
https://play.crystal-lang.org/#/r/5ftm
macro no_interpolation(something)
  def does_not_work_{{something.id}}
    "#{{something.id}}"
  end
end

no_interpolation :like_this

puts does_not_work_like_this

Workaround:
macro no_interpolation(something)
  def works_{{something.id}}
    "#" + "{{something.id}}"
  end
end

no_interpolation :like_this

puts works_like_this

Because there's a workaround I realize this isn't too high priority of a fix but I thought I'd bring it up in case someone knows an easy way to fix this.

I am not sure what you want, but the following has the same output without the String#+ call.
https://play.crystal-lang.org/#/r/5fus
macro no_interpolation(something)
  def does_not_work_{{something.id}}
    {{"\##{something.id}"}}
  end
end

no_interpolation :like_this

puts does_not_work_like_this

Shouldn't this work, too?
macro no_interpolation(something)
  def does_not_work_{{something.id}}
    "\#{{something.id}}"
  end
end

no_interpolation :like_this

puts does_not_work_like_this

It doesn't work as I'd expected (returns #{{something.id}}).

Anyway, this is a duplicate of #5287.


Multiline breakpoint sorting small to large

It seems like you are sorting multiline breakpoints from none (mobile) -> large -> small, i.e.:
z-1 flex flex-col gap-4
lg:col-span-5 lg:col-start-3 lg:row-span-2 lg:row-start-2
md:col-span-6 md:col-start-2 md:row-span-2 md:row-start-2

While you are more likely to change your styles mobile first and scale up, meaning mobile -> small -> large it would make sense to sort them this way as well, is it possible to make this an opt-in rule?

Update: I just noticed the official sorting does go from small to large, since improved only mentions "Same as official but also sorts by data-attributes" I didn't try it at first

I like that suggestion.

Update: I just noticed the official sorting does go from small to large, since improved only mentions "Same as official but also sorts by data-attributes" I didn't try it at first

I have noticed that the official order does not treat variants/modifiers differently than the normal classes. So they sometimes got mixed up in the order.
Example (not necessarily correct)

I wanted to always have variants/modifiers at the end, so thats why I added the improved order.

There are a lot of discussions around sorting tailwind classes recently:

https://github.com/tailwindlabs/tailwindcss/issues/12821
https://robinmalfait.com/blog/natural-sorting-of-strings-containing-numbers

I think there should be more nuanced ways to sort tailwind classes that the current options don't provide, so I will definitely look into this in the future.


Per Sequence Detail Bugfix

Describe the bug
The per sequence detail plot in the HTML report should be calibrated such the probability is 5% that the box or boxes corresponding to an individual circuit are red, not that the probability is 5% that any red box appears. This means the transition point from greyscale to rescale should be calculated

where N is the number of circuits not the number of boxes. The fix should be in report.workspaceplots.ColorBoxPlot on line 1821 or so.
Environment (please complete the following information):

pyGSTi version feature-qiskit-mcm (but not specific to this branch)
python version 3.10
OS Ventura 13.6.1

FYI Erik has a branch about this called feature-percircuit-colorboxplot-transition. We just need to finish out that branch to fix this, but targeting that for the next major release.

Hi Stefan--that branch was a roadmap that Erik sketched out for me when I ran into this issue. My branch has this fix as well as others to handle different numbers degrees of freedom per circuit.

Thanks for the additional info! Then this is my reminder to delete that branch once we get this in.
Also, FYI: I'm imagining getting a bunch of your bugfixes in from the qiskit-mcm branch into develop before the 0.9.13 release. Even if we leave your branch alive for continued development, there is a significant amount of fixes on there that are worth incorporating into develop on the next month or two timescale.


delay on notify

my server takes a little bit of time to start up, so I'd like to have a delay before notifying nginx and adding to the proxy.  This sort of ties into #42, as I'd only want a single event if multiple were fired within the delay interval

+1

the other thing I was thinking, is it would be nice to have docker-gen do a simple http check against the container and not notify nginx until it returns a 200.  if it returns a 5xx, then don't add to nginx.  Thoughts?

It seems to me that docker-gen already does two things (simplifying a bit):

Watch Docker containers for events (start, stop)
Generate config file (and call any kind of reload method as needed)

The issue is when step 2 happens too soon after step 1. We need an intermediate step. This could be, for example:

Wait a certain length of time
Check a socket (TCP/UDP port n)
Check a service (HTTP 200 OK)
Custom check

You could argue that docker-gen should not take on this responsibility, and if so then the last one, custom check, might be the best option.
I'd be happy for this feature to be implemented like this:
Custom check = a specified command executable. The command is expected to wait for whatever condition is needed to satisfy that the newly created Docker container is fully running. After some time, it should return exit code 0, and then docker-gen can get on with generating the config file.
A non-zero exit code would cause docker-gen to not load the config.
I guess docker-gen would need to call the custom command with some details about the docker container, IP address for sure, maybe port.
Is this likely to work?

I think #67 is general enough that you could implement a delay, HTTP poll, socket test, config check, etc.

Yes, that would probably work in most cases.
However, I'm not sure what happens if you write the config file first, as suggested in #67. If two containers start, and one takes a second to become "ready" and the other takes 5 seconds, then the config update/reload would, for a short time, activate the config for the slower container before it's ready.

Fixed via #156


Support explicitly specifying which CLI binaries to invoke

The e2e-framework offers packages to help spin up Kind clusters and install Helm charts. These packages wrap the kind and helm CLI tools. (There may be other wrapped CLI tools but I haven't encountered them yet.)
The framework seems to look for these tools with hardcoded binary names (kind, helm) in $PATH. If kind isn't available the framework attempts to install it using go install. If helm isn't available the framework returns an error.
In @crossplane our Makefile handles installation of tools like Kind and Helm, but it doesn't install them in $PATH. We can probably hack around this when running the E2E tests (e.g. add a dir to $PATH and symlink to the tools from that dir) but it would be ideal to be able to pass the path to the binaries as flags.

As a side note, it would also be useful to debug log which binaries are being used.

/reopen

I missed taking care of a few items on the previous PR. Need to update a few more bits and then this can be closed.


Fix for #571

When in Insert mode, UpArrow now results in:

Switch to Command mode
Move up in the history
Switch back to Insert mode

This addressed an ArgumentOutOfRangeException when using the UpArrow to move up in the history while in Insert mode immediately after making a command line edit.
Note, I choose to create a new file with this fix, History.vi.cs, but I'd be happy to add the change to History.cs if you prefer.

You have merge commits in your master branch, so PRs from you will never merge nicely.
To fix, you need to force push to your master, I think this should fix it:
# In a new directory somewhere
git clone https://github.com/lzybkr/PSReadLine
git remote rename origin upstream
git remote add origin https://github.com/srdubya/PSReadLine
git push -f

If you're lucky, this won't clobber your most recent fix, which you could then apply with:
git fetch
git cherry-pick  6e0a663

I'm sure there are other ways to fix this, but this is the simplest for me to understand - basically starting your master branch from scratch.

Sorry, I thought I'd already fixed that.  I've made another attempt.  Hopefully this one is cleaner.


Fix RequestList memory

Fixes #561 the issue where actors with millions of requests that were added to RequestList were crashing due to a memory usage spike. It also reduces the running memory consumption of RequestList.
There's not a test for this specifically, because it's hard to emulate in a unit test that needs to be reasonably fast and not flaky, but I tested it with the failing actor and it reduced the Max memory consumption to cca 25%:
Before:

After:

Oh and a side-note - it would be awesome if PRs didn't contain the generated code changes in docs and types, it makes it really hard to review the PRs.


WIP: Help view

As mentioned in #432 I tried to integrate vscode-R-help here.
The main functionality seems to be working, simply use help(...) in an R Terminal (opened by the extension!), or the commands r.showHelp, r.showDoc in VS Code's command palette.
Here it can be configured, whether to look for help files using a custom function or to look for help files by querying an R instance running help.start(). These should mostly behave the same, but there are different problems/difficulties with each, which need to be figured out.
Remaining issues/questions include:

[x] No clean overwrite of help(), since the tools from the extension are attached before utils (Implemented as proposed here)
[x] Reset scroll position of webview when opening a new link (should work now)
[x] Repair webpack config (there were some problems on my machine, so I disabled it altogether)
[x] Use extra config to specify path to normal R executable (in case radian is used in r.rterm.XXX)
[x] Improve performance when there are many links on a page (since each link is modified individually when loading a page) (Should work ok now, only notable on very long documents)
[x] Preserve hyperlinks in (styled) code sections
[x] Fix redirect-pages when using 'Rserver' as helpProvider
[ ] Improve style of help pages:

[ ] Adapt to rest of the editor (currently most stuff is hardcoded to match my personal setup)
[ ] Add back/forward buttons? (Currently only possible with extra mouse buttons 3 & 4)
[ ] Include other files/images (e.g. the R logo on the main doc page)

[ ] General testing and bug fixing
[ ] Configure the helpview properly (automatically and/or by the user)

[ ] Choose a style file
[ ] Use font size, font family etc. from editor settings (happens automatically in some places)
[ ] Choose position of webview
[x] Choose which helpProvider to use

[ ] Implement hyperlinks that point to a different section of the same document
[ ] Improve usability of r.showHelp: implement fuzzy matching, autocomplete?
[ ] ...

I just added the code to get things to work, feel free to rearrange/reformat/rename to better match the rest of the project.
If you have suggestions, questions, comments, or find bugs, please let me know. All feedback or code contributions are welcome :)

Regarding the implementation the custom help function in R I am not quite sure what the best solution is.
In the normal case there are a number of functions involved when calling e.g. ? print: The first call is directly to
utils::`?`, which then calls help() and returns an object of class help_files_with_topic.
In an interactive session, this object is then printed with print.help_files_with_topic, which actually does the work of starting a help server (tools::startDynamicHelp) and opening the corresponding URL (browseURL).
I think the cleanest approach would be to overwrite print.help_files_with_topic, since this would preserve the behaviour of help in cases where the user actually wants to store the return value to a variable and not print it, while still giving us full control over the actual help server (e.g. to make it independent of the current R session).
One problem with this approach might be that the vsc tools are loaded before the utils package and I don't know if loading the package manually (calling library(utils)?) to reorder the search path is a good idea. Do you have any advice/opinion on this?

Maybe loading the 'utils' namespace and overwriting print.help_files_with_topic() could work? It does not modify the search path...
In the terminal: export R_DEFAULT_PACKAGES='base'
In the R console:
local({
  ns <- loadNamespace("utils")
  search()
  # [1] ".GlobalEnv"   "Autoloads"    "package:base"

  unlockBinding("print.help_files_with_topic", ns)
  assign(
    "print.help_files_with_topic",
    function(x, ...) print.default("Ooops"),
    envir = ns
  )
  lockBinding("print.help_files_with_topic", ns)
})

library(utils)
search()
# [1] ".GlobalEnv"    "package:utils" "Autoloads"     "package:base"

?mean
# [1] "Ooops"

Thanks! That approach seems to work well.
I just realized that a very similar function is already used in init.R, I guess we could use that function then.

I tried finding a solution that does not involve modifying the package namespace of util, but that seems to be quite hard. The following code manages to attach the tools just below the global environment:
.First.sys <- function(){
    base::.First.sys()
    attach(list(print.help_files_with_topic = function(...) print('Ooops')))
    rm('.First.sys', envir=globalenv())
}

And checking the print method for help files seems to look good as well:
> getS3method('print', 'help_files_with_topic')
function (...)
print("Ooops")
<environment: 0x000000001c575778>

But calling ? mean or print(help('mean')) still opens the internal help server...

It looks like this help viewer starts a standalone R session to provide the help files?
If one uses radian instead of R, then the R session won't start properly. r.rterm.* could only be used as the executable path of the interactive terminal. Any service must use R path instead like how vscode-r-lsp starts R to run languageserver.

Yep, R is either called to continuously run a help server in the background, or "on demand" to retrieve the libPaths and parse .Rd files.
Would it make sense to merge the settings in vscode-r, vscode-r-lsp, and vscode-r-debugger for this? Otherwise the user would have to specify their r path in three different config entries if it's not in a standard place...
We could e.g. introduce a setting r.rPath which can be used by all three extensions.

I tried finding a solution that does not involve modifying the package namespace of utils, but that seems to be quite hard. The following code manages to attach the tools just below the global environment:
.First.sys <- function(){
    base::.First.sys()
    attach(list(print.help_files_with_topic = function(...) print('Ooops')))
    rm('.First.sys', envir=globalenv())
}

And checking the print method for help files seems to look good as well:
> getS3method('print', 'help_files_with_topic')
function (...)
print("Ooops")
<environment: 0x000000001c575778>

But calling ? mean or print(help('mean')) still opens the internal help server...

This is because ? hits package:stats on the search path, so any further lookup (e.g, that of 'print.help_files_with_topic') starts there. So the direction becomes package:stats -> namespace:stats -> imports:stats -> base -> global env -> your attached environment.
See here for an old but helpful explanation.

That would definitely make sense, if print was called from within ? or help. The problem still occurrs though when manually assigning an object to the help-file class and calling print:
> getS3method('print', 'help_files_with_topic')
function (...)
print("Ooops")
<environment: 0x000000001c573b68>
> x <- 1
> class(x) <- 'help_files_with_topic'
> print(x)
Error in if (type == "html") tools::startDynamicHelp(NA) else NULL :
  argument is of length zero

I think I've finally found a way to make this work:
.First.sys <- function(){

    base::.First.sys()

    attach(list(
        print.help_files_with_topic = function(...) print('Ooops')
    ))

    .S3method('print', 'help_files_with_topic', print.help_files_with_topic)
}

The last call overwrites utils' special position when calling print on help objects.
If this does not interfere with the rest of init.R, we could use this to attach all the tools below .GlobalEnv, or else just attach this overwrite in its own search entry...

The problem still occurrs though when manually assigning an object to the help-file class and calling print:

Yeah, this is due to some machinery with S3 method lookup. You are calling the generic first, not your particular custom method implementation.

.S3method('print', 'help_files_with_topic', print.help_files_with_topic)

This is a nice trick, but will make vscode-R depend on fresh versions of R. See the official blog post here and the commit here.

This is a nice trick, but will make vscode-R depend on fresh versions of R. See the official blog post here and the commit here.

Ok, thanks for catching that. .S3method seems to be nothing more than a wrapper for registerS3method, so we could just copy the function body to achieve the same thing. I've edited the code above and that seems to work on R 4.0.3 and R 3.5.3.

@Ikuyadeu @renkun-ken @???, when you get a chance, could you please take a look at the code and see if everything works and integrates ok with the rest of the extension?
I think the main functionality of the help panel should work ok now. The remaining entries on the checklist are mostly cosmetic in nature, non-critical problems, or just ideas for improvements, and I'm not sure yet when I'll get around to fixing them.
Regarding the points discussed above: I added an extra option to specify the R path in case r.rterm.xxx points to a radian installation and used the trick proposed here to overwrite the default print.help_files_with_topic.

Thanks for the work! I'll take a closer look and feedback soon.

@ManuelHentschel Could you write some brief instructions so that I know what could be tested at the moment and what are the expected results? I played with this PR and the 'R: Show Help' only works with default input parameters (package ? doc, function name ? index.html) and the page looks normal under dark theme and the hyperlinks seem to only work on the top level. I'm not sure if they are already implemented?

@ManuelHentschel Could you write some brief instructions so that I know what could be tested at the moment and what are the expected results? I played with this PR and the 'R: Show Help' only works with default input parameters (package ? doc, function name ? index.html) and the page looks normal under dark theme and the hyperlinks seem to only work on the top level. I'm not sure if they are already implemented?

Sure. The primary way to use the help panel is intended to be:

Open an R terminal (F1 -> R: Create R terminal)
Enter for example:

> ? mean

or
> help("print")

Expected result:

The commands R: Show help is meant as a secondary way to access the R help
Working example inputs should be:

package: base, function name: print
package: utils, function name: help

The command R: show R docs is not as practical, since it links to very large documents that are easier to work with in a proper browser. It can be used to view the same page that is shown when using help.start() in normal R:

The expected behavior for the hyperlinks is:

Links to different help pages: open the help page in the same webview as the current page
Links to external websites: show a warning/message from vscode and open in an external browser if confirmed by the user
Links to different parts of the same document (e.g. the ones at the top of "An Introduction to R"): these don't work and should do nothing when clicked

Navigating back/forward between help pages is currently only possible by using the extra buttons 3 & 4 on a mouse (the ones typically used by default to navigate back/forward in normal browsers). It should be possible to also implement these commands with different key combinations (used while in the webview), with buttons added to the help page html, or with vscode internal commands (that could also be assigned key bindings).

Looks like I underestimated the difference that different platforms make here. With "r.helpPanel.helpProvider": "Rserver" the help panel now works fine on my WSL setup.

The webpages look nice and the hyperlinks work nicely too.
I could say it is already quite use-able now.

In my instance the R Help is blank. What do I wrong?

VSCode info:
Version: 1.51.0
Commit: fcac248b077b55bae4ba5bab613fd6e9156c2f0c
Date: 2020-11-05T18:16:10.374Z
Electron: 9.3.3
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0
OS: Linux x64 5.3.0-42-generic

In my instance the R Help is blank. What do I wrong?

Did you change any of the settings r.helpPanel.XXX?
In case you are using radian as r.rterm.XXX, please make sure to enter the path to a "vanilla" R executable in r.helpPanel.rpath.

I set it to /usr/bin/R

The panel opens, but it remains blank. No error is printed to the console or to the output.

How are you triggering the panel to open?
If you haven't already, please try r.showHelp with e.g. package: base, function: print, and also from within an R terminal using ?

I tried both, with the same result.

What is the best way to debug the init.R file?

[Info  - 15:03:16.907] Starting TS Server
[Info  - 15:03:16.908] Using tsserver from: /usr/share/code/resources/app/extensions/node_modules/typescript/lib/tsserver.js
[Info  - 15:03:16.910]  Forking...
[Info  - 15:03:16.917]  Starting...
[Info  - 15:03:16.917]  Forking...
[Info  - 15:03:16.922]  Starting...

[Info - 15:03:16.907] Starting TS Server
[Info - 15:03:16.908] Using tsserver from: /usr/share/code/resources/app/extensions/node_modules/typescript/lib/tsserver.js
[Info - 15:03:16.910] Forking...
[Info - 15:03:16.917] Starting...
[Info - 15:03:16.917] Forking...
[Info - 15:03:16.922] Starting...

Is that output from when you try to use the help panel? There sould be something similar to this:
pkg: base - fnc: print
requesting help for: library/base/html/print.html

(and maybe some error messages)

Yes, I checked your recent commits, and was wondering why I can not see those logs. I did the following:

Remove the current R extension.
Git pull + vsce package
Install the R extension from the VSIX file.
Ctrl+Shift+P, select R: Show help, type: base, print

The result:

To see the output to the debug console, you got to debug the extension as follows:

Remove the current R extension
Git pull
Open the root directory of the extension in vscode
Press F5. This should launch a new vscode instance labeled [Extension Development Host].
The "original" vscode instance should now indicate a running debug session (e.g. via the orange status bar). In this instance press Ctrl+Shift+Y to open the debug console.

User could use Help -> Toggle Developer Tools to see the console.log output.

Great, thanks. This helped me identify the bug :) I will fix it soon.

Just to b clear, is this a problem in the code of the R help panel which you are planning to fix, or  an issue with your personal setup?

The problem is with the R help panel. Actually I am not sure how the fix should happen, so I rather put a comment in the problematic part.

Btw, the new help looks awesome :)

Found an issue: package Description files are displayed without line breaks.

Found an issue: package Description files are displayed without line breaks.

Thanks, I added this issue to the to-do list in the top comment.
I guess these files don't get rendered properly since they are plain text, but passed to the webview as if they were html. This can probably be fixed by manually inserting line breaks (and maybe other formatting) for non-html files.

I'll probably not get around to fixing/adding all entries on the to-do list in the next couple of weeks. On my personal computer I am already using the current state of the help panel and am happy with it so far. If you think it's stable and helpful enough (or close to it) we could consider merging the current state.
Anyone interested in solving some of the issues is of course highly welcome :)

Do we need an option to opt-in or opt-out overwrite print.help_files_with_topic?

I'd probably do this similar to the other features provided by the session watcher/init.R. Are these enabled individually or all together?
Regardless, we could still consider making the help panel opt-in until it's been tested by more people

Here is a list of available options of session watcher so that we could disable features. (Plus options(vsc.rstudioapi = TRUE), forgot to update the wiki).
I guess we could add a vsc.help_panel = FALSE | "Two" | "Active" | "Besides" to support opt-in and customizable viewColumn).

I am wondering what would be the best way to consider the .Rprofile file in the workspace where R is launched. For example if one uses renv, which modifies .libPaths, the Help view can not find the packages which are only present in the local renv library.

I am wondering what would be the best way to consider the .Rprofile file in the workspace where R is launched. For example if one uses renv, which modifies .libPaths, the Help view can not find the packages which are only present in the local renv library.

I intentionally added the --vanilla flag to keep the .Rprofile from doing "weird" things, but I guess this would be a sensible usecase. We could add a configuration entry (in vscode) to change the flags used when launching R to solve this, but then we probably need to adjust the parsing of info printed from within R, in case .Rprofile generates output to stdout.

In both vscode-R and langaugeserver, we try to respect user profile as much as possible or there will be significant inconsistencies in some important use cases (e.g. renv).
vscode-R starting a session from terminal will source user profile before loading session watcher.
languageserver will start from workspace folder and also respect user profile to know the correct library to use when providing language services. I suggest that the help panel should respect the user profile too since it is highly related to the user library.

On macOS:
?mean

The help pane look normal. Then click the link to weighted.mean, the page navigates to the following:
Link weighted.mean in package base could not be located
However, you might be looking for one of
/library/stats/html/weighted.mean.html

Click the link above, I got
Only help files, NEWS, DESCRIPTION and files under doc/ and demo/ in a package can be viewed

It looks like the links that will go to other package's page won't work at the moment.

More precisely links that start with a / and links that point to specific parts of a documents (#...) do not work due to the way links are replaced here. This part could be replaced with a proper link resolving library (which might be a bit more difficult to integrate) or by properly resolving/replacing the links ourselves.
This is already on the to-do list, but I don't know when I'll get around to fixing this, since I'm not very familiar with this topic and it would make sense to fix these two together:

[ ] Fix non-standard hyperlinks (there are some links in help files that are not relative to the current file, e.g. base::colSums->complete.cases)
[ ] Implement hyperlinks that point to a different section of the same document

The code now uses javascript's integrated new URL() to parse hyperlinks, so the different kinds of links should work properly now.

Thanks for the fix of cross-package hyperlinks. I'm wondering if it is possible that when the link points to a function in another package, if there's only one link, then it should jump directly to that link?

Thanks for the fix of cross-package hyperlinks. I'm wondering if it is possible that when the link points to a function in another package, if there's only one link, then it should jump directly to that link?

When viewing the R help in a normal browser, the help server sends a redirect response (HTTP 302), but when querying the site from within the extension, the help server returns that "forwarding page" with an Ok response (HTTP 200). The cleanest way to fix this would be to somehow indicate that we also want to receive the redirect response when querying the help site, not sure how this would be done.

Btw, when using "r.helpPanel.helpProvider": "custom", cross-package links seem to work fine.
However, the custom helpProvider seems to have some problems on linux (and probably also macOS?).

@ManuelHentschel  FYI: after your new commits, cross-pkg hyperlinks, DESCRIPTION line breaks, forward/back buttons all work nicely on Linux.

I tried ??help and it prints an hsearch object and the original R html help server is started and a WebView is shown. I guess we have not done anything about hsearch yet.
Also, I navigate though different links around and sometimes clicking the "Index" at the bottom of the help page will result in a text page saying "Server error: invalid response from R".
Another thing is that if I view User guides, package vignettes and other documentation. and click utils::Sweave which links to a PDF file, the help pane directly tries to show its binary content in text. I guess we could call vscode.env.openExternal() in this case as if it was an external link.

I tried ??help and it prints an hsearch object and the original R html help server is started and a WebView is shown. I guess we have not done anything about hsearch yet.

Yup, the hsearch object is not handled by us yet. The method described here might work for us.

Also, I navigate though different links around and sometimes clicking the "Index" at the bottom of the help page will result in a text page saying "Server error: invalid response from R".

I haven't encountered this yet, so if you find a reproducible example, please share :)

Another thing is that if I view User guides, package vignettes and other documentation. and click utils::Sweave which links to a PDF file, the help pane directly tries to show its binary content in text. I guess we could call vscode.env.openExternal() in this case as if it was an external link.

This might be a bit more complicated, since we receive the contents of the pdf file directly from the help server. Hence we do not know the location of these pdf files on disk for sure. We can take a guess using R.home() and .libPaths but these values are usually not queried by the default helpProvider ("r.helpPanel.helpProvider": "Rserver", implemented in rHelpProviderBuiltin.ts).
Since most of the documentation is provided as html, I wouldn't consider this a priority right now

Also, I navigate though different links around and sometimes clicking the "Index" at the bottom of the help page will result in a text page saying "Server error: invalid response from R".

I haven't encountered this yet, so if you find a reproducible example, please share :)

I could reproduce this on both Ubuntu and macOS.

?mean
Click link weighted.mean
Click Index at the bottom of page.
Server error: invalid response from R

I could reproduce this on both Ubuntu and macOS.
1. `?mean`

2. Click link `weighted.mean`

3. Click Index at the bottom of page.

4. `Server error: invalid response from R`

Thanks that example works on windows as well. Does the last push fix the issue for you?

It works nicely now. Thanks for the quick fix!

If there aren't any more (known) bugs to fix, I would consider the remaining items on the to-do list "optional" improvements and propose merging the PR.

LGTM, it is great.
I will publish a new version this weekend.
@ManuelHentschel If you have an interest in this extension, I want to invite you as a collaborator.
Because you already submit the 2 pull requests that have large contributions.
And, normally new functions are unstable and required high knowledge to resolving issues.

LGTM, it is great.
I will publish a new version this weekend.
@ManuelHentschel If you have an interest in this extension, I want to invite you as a collaborator.
Because you already submit the 2 pull requests that have large contributions.
And, normally new functions are unstable and required high knowledge to resolving issues.

Thanks! I'm definitely interested in this extension and would be happy to help where I can :)


Andrewschuck add tracing webjob data copying

Adds tracing to Kusto for number of directories created, files copied, and bytes copied during recursive directory copying in WebJobs. Ultimately, we would like to change the copying process so it doesn't naively copy every single file to the temp directory - it will only copy the modified/added files (essentially the diff in directories.) This data will give us insight into the amount of data being written.
I was slightly unsure where to house the WebJobDataCopiedTracer class, so Kudu.Core/Tracing might not be the appropriate place.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: andrewschuck sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Alluxio didn't cache data when read from parquet table with Spark and Hive

Alluxio Version:
2.4.1
Describe the bug
Alluxio didn't cache data when read from parquet table with Spark and Hive.
To Reproduce

create table test which STORED AS PARQUET and mock some data.
exec select * from test.
alluxio fs ls /test show In-Alluxio 0%.

Expected behavior
After select, alluxio cache all data to memory and show In-Alluxio 100% which same as read data from TEXTFILE.

@suninuni This should work as you expect. One difference is parquet files are not read sequentially, so the data will not be cached in band of the initial read operations but asynchronously on the worker. Here is some related documentation - https://docs.alluxio.io/ee/user/stable/en/operation/Performance-Tuning.html#async-block-caching

feel free to reopen this issue if you still have questions

@apc999 @calvinjia Actually my test data only 14.45KB, but it still can't be cached asynchronously and show In-Alluxio 100% as expect.

And according to the increased metrics Under Filesystem Read, these data is indeed read from UFS.
In another big table which has 903 parquet file, after select, I found a block which In-Alluxio changed to 29% and it didn't increase any more. Are those behavior worked as expected?


Android: implement system.getInfo( "hasSoftwareKeys" )

I just saw @scottrules44's recent PR https://github.com/coronalabs/corona/pull/456 and after a bit of investigating, I found the HasSoftwareKeys function:
https://github.com/coronalabs/corona/blob/57e9d84d9bbb4472f869325e9d437fd570098365/platform/android/sdk/src/com/ansca/corona/CoronaActivity.java#L1246-L1274
This approach seems to have been taken directly from https://stackoverflow.com/questions/14853039/how-to-tell-whether-an-android-device-has-hard-keys/14871974#14871974 (and could be further improved by adopting the caching introduced in https://stackoverflow.com/a/28412856).
My new feature request would be to take that function and expose it to Solar2D's system.getInfo() so that developers could use it to obtain information on whether or not the current Android device has software keys or not, e.g. system.getInfo( "hasSoftwareKeys" ) -- returns true or false

This is added in 3686


ARIA support needed

There is no ARIA support for button in the prebuilt UI.
I embedded the prebuilt UI on my Wordpress website successfully. It works fine, but it turns out it is not very accessible.
I was testing the chat room with my friend who is blind. He uses a screen reader. He could connect, we could communicate, but he could not find the buttons.
The reason is that button tags have neither labels nor "title" attributes. So there is no ariaLabel set, no text reader has no idea what is the name of the button that has the focus. For a blind person all buttons are the same: with no names.
There is an easy way to fix it, but using correctly ARIA attributes. There is no disadvantage, no changes for user interface, everything is just more accessible.
I realize that not many people need accessibility for UI, but since the modifications are not complicated or time consuming, I thought you guys could help. Thanks!

Hey @UnprofessionalMartin,
Thanks for you suggestion 👍, we realized that ARIA support is needed in this SDK
We will surely add this in our future prebuilt releases
We are also planning for PR criteria, so that other developers also can contribute into our SDK

Excellent. I'll wait then. Your project looks very promising. I hope it will mature very soon.


Can't save changes to a .html file

If I try to save changes to a .html file I get an error code stating "the permissions do not allow you to make modifications":

You should move your own projects to an other folder such as under Documents (C:\Users\username\Documents) where you are guaranteed to have write access.
You can do this by opening the folder C:/Program Files (x86)/Brackets/samples/root/Getting_Started on Windows Explorer and cutting / pasting them to C:\Users\username\Documents\. Then you can open the folder by clicking the button that on the screenshot says Getting Started :arrow_right:  Open Folder or from File -> Open Folder

Thanks for your help! Much appreciated.
  From: Pete Nykänen<EMAIL_ADDRESS>
To: adobe/brackets<EMAIL_ADDRESS>Cc: lgfield<EMAIL_ADDRESS>Sent: Friday, 29 January 2016, 0:16
Subject: Re: [brackets] Can't save changes to a .html file (#12167)
You should move your own projects to an other folder such as under Documents (C:\Users\username\Documents) where you are guaranteed to have write access. You can do this by opening the folder C:/Program Files (x86)/Brackets/samples/root/Getting_Started on Windows Explorer and cutting / pasting them to C:\Users\username\Documents. Then you can open the folder by clicking the button that on the screenshot says Getting Started  Open Folder or from File -> Open Folder—
Reply to this email directly or view it on GitHub.

:+1: You are welcome

I looked on the internet and it happened that I found a solution to my problem on your website / my sincere thanks and gratitude for the help.


Array.prototype.includes should be narrow on union of enum types instead of throwing

Suggestion
🔍 Search Terms
includes, enum (https://github.com/microsoft/TypeScript/issues/46085 is relevant but not what this is discussing)
✅ Viability Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion
Array.prototype.includes should be able to narrow down on a union of enum types instead of throwing:
TS2345: Argument of type 'SomeEnum | SomeOtherEnum' is not assignable to parameter of type 'SomeEnum'.   Type 'SomeOtherEnum.C' is not assignable to type 'SomeEnum'.

📃 Motivating Example
export enum SomeEnum {
    A = 'aaa',
    B = 'bbb'
}

export enum SomeOtherEnum {
    C = 'ccc',
    D = 'ddd'
}

  function someFunction(somePossibleValue: SomeEnum | SomeOtherEnum) {
    if (Object.values(SomeEnum).includes(somePossibleValue)) { // <--- Includes signature should be changed so this narrow the type at compile time
      return 'some result'; // <--- Inside the if-body, the type of somePossibleValue should be successfully narrowed down
    }
    if (Object.values(SomeOtherEnum).includes(somePossibleValue)) { // <--- Includes signature should be changed so this narrow the type at compile time
      return 'some other result'; // <--- Inside the if-body, the type of somePossibleValue should be successfully narrowed down
    }

    throw new Error('On neither'); // <--- I understand this cannot be figured out at compile time because .includes cannot execute at compile time
  }

💻 Use Cases
Allowing checks on something that could be possibly one of multiple enums.

Duplicate of https://github.com/microsoft/TypeScript/issues/26255 / https://github.com/microsoft/TypeScript/issues/14520.

Duplicate of https://github.com/microsoft/TypeScript/issues/26255 / https://github.com/microsoft/TypeScript/issues/14520.

:facepalm: I should've searched more before opening an issue. Apparently this has more to do with Array.prototype.includes in general, and not just with how it acts on enums. Feel free to close if you feel this would fork the discussion to pointless directions.


Entity Normalization Preserves Types of Copy & Additional Variables

This fixes a bug where variables with specific types (that are different from what would ordinarily be inferred) don't have their types carried over to a new entity upon normalization.
Say you have an entity with an Ordinal variable that is a numeric dtype under the hood, so the dataframe looks like {'ordered_values': [1,2,3]}. Then you normalize out an entity, flagging that variable to move or copy:
es.normalize_entity(base_entity, new_entity, additional_vars=['ordered_values'])
es.normalize_entity(base_entity, new_entity, copy_vars=['ordered_values'])
Before this fix, the ordered_values variable type in new_entity would be Numeric instead of Ordinal.

Codecov Report

Merging #25 into master will increase coverage by 0.03%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #25      +/-   ##
==========================================
+ Coverage   86.85%   86.88%   +0.03%
==========================================
  Files          73       73
  Lines        6777     6793      +16
==========================================
+ Hits         5886     5902      +16
  Misses        891      891

Impacted Files
Coverage Δ

featuretools/entityset/entityset.py
86.9% <100%> (+0.05%)
:arrow_up:

...aturetools/tests/entityset_tests/test_pandas_es.py
99.72% <100%> (+0.01%)
:arrow_up:

Continue to review full report at Codecov.

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


new feature request

I would like to turn this device from being API server to being MQTT IoT client.
So device can connect (subscribe) to remote MQTT topic to receive commands (start/stop charging) and send regularly messages about the energy usage.
I'm looking for a developer who could help me to do this as I'm not very experienced in C++.
If needed I can fund this development.
Thank you so much!

mqtt support directly on the esp should be possible, but more complex. What about a separate adapter app that uses the evse api to periodically poll for state changes and publishes them? It could also react on received events and call the appropriate operation on the api to change stuff. This app should then be deployed separately from somewhere where it can access the evse (could also be a sidecar on the mqtt broker for example)

Take a look here: https://github.com/emsesp/EMS-ESP
Code for MQTT integration is there. I've got one of these running now for two years against HomeAssistant Mosquitto broker.

Sure, but the c++ variant will be more complex to implement and maintain. What about the adapter module? Could be deployed alongside your broker for example

I have no special interest (anymore) in additional MQTT options in SmartEVSE myself, I was just pointing TS in that direction. The API is fine and for phase information I now use the RS485 data from two Eastron SDM630 devices. Before I used the API but found the RS485 bus the more solid option.

Thank you both for your valuable feedback.
I guess, the adapter module solution will require an additional hardware device (like r.pi ) which would add additional cost to the product which I don't like so much.
The idea of having EVSE as an IoT device with capability to subscribe to remote MQTT cloud service to receive control messages creates a different use-case for this amazing project.
I would also like to see the support for power energy metering by the Smart-EVSE device it self to report current and total power energy used for each charging session.
But II don't know whether the existing hardware device (v.3) has all what is needed for ESP8266 to be able to do an energy metering.
If so, it would be worth to find and pay C++ coder to add this functionalities.

At the moment I personally don't have the need for MQTT.
But you're welcome to open a PR to add it, keep in mind this will also require some refactoring of the API logic as the MQTT client should use the same code - more or less - as the API endpoints.


Fix: translation strings compatible with native code implementation

The main reason why it's not very readable is the way how it's written. Look at this modified test:
it('handles natively translated strings -- with several parameters', () => {
   const translationId = 'hotels.gallery.pagination';
   const translatedString = '%1$@ of %2$@';
   expect(getTranslation(translatedString, translationId)).toBe(
     '__1_photoNumber__ of __2_totalPhotos__',
   );
});

So the question must be asked: where is the photoNumber and totalPhotos comming from? As you can see it's pretty magic so you have to dig deep in order to uderstand it. Better way how to implement it would be to accept the vocabulary as an argument which means larger refactoring. The tests would be very obvious though after this change.

I tried to implement your suggestion and I believe it is clearer now. Could you review again?


Archetype docs

We require 3 different kinds of docs for our archetypes:

Native language docs (docstrings)
This is automatically handled by codegen already.
Doc reference
We need to completely overhaul this for the new type-based APIs, and as much as possible automate it via codegen or it's going to be out-of-sync very fast.
High-level example page (doesn't exist yet!)
Needs to show a thumbnail for all archetypes and link to the reference.

API references are already taken care of by the language-specific codegen backends, but we still need a codegen backend that takes IDL definitions in and turn them into documentation for the website (e.g. all the archetype related pages).
Contents of:
docs/content/reference/data_types

Related: the doc-examples should be auto-included. No need to add manual \cpp ## Example to all our archetypes imho


Add HTTPS in angular-google-analytics.js

Hello,
Excuse my English, I live in Brazil.
I'm developing an extension for Chrome and security policy it only accepts external links in HTTPS.
I had to modify the angular-google-analytics.js file the following lines:
Line 442: scriptsource = ( 'https:' === document.location.protocol 'https: //': 'http: //' ') +' stats.g.doubleclick.net/dc.js';
To: scriptsource = ( 'https:' === document.location.protocol 'https: //': 'https: //' ') +' stats.g.doubleclick.net/dc.js';
Lines 444: scriptsource = ( 'https:' === document.location.protocol 'https: // ssl': 'http: // www' ') +' .google-analytics.com / ga.js';
To: scriptsource = ( 'https:' === document.location.protocol 'https: // ssl': 'https: // www' ') +' .google-analytics.com / ga.js';
Link which explains best: http://stackoverflow.com/questions/12129077/content-security-policy-cannot-load-google-api-in-chrome-extension

Hi, thanks for reporting
can you please tell what document.location.protocol value is in your extension ?

Hi,
I put to display in console.log(document.location.protocol) and my exit was: chrome-extension:

So the fix is that ['https:', 'chrome-extension:'] === document.location.protocol. Seems like a reasonable time to abstract this to a function that returns an appropriate result based on whether it should serve HTTPS or HTTP.
Maybe something like:
var _requiresSsl = function(protocol, secureValue, insecureValue) {
  var result = insecureValue;
  if ('https:' === protocol || 'chrome-extension:' === protocol) {
    result = secureValue;
  }
  return result;
}

The line on 442 can be changed to:
scriptsource = that._requireSsl(document.location.protocol, 'https://', 'http://') + 'stats.g.doubleclick.net/dc.js';

and 444 can be changed to:
scriptsource = that._requireSsl(document.location.protocol, 'https://ssl', 'http://www') + '.google-analytics.com/ga.js';

That will allow this to be updated fairly easy in the future should new extensions be required and as long as the resource only requires two choices, but so far we haven't seen more choices so no reason to over engineer just yet.

Also, I might be able to write this and unit tests for it in the next week and get this shipped as a release.


Missing Decimal FormatString for Measures

It is present for columns but not for measures.
BTW The way the code is written makes this project so extensible. If it fits my client's needs I could add more types like Decimal_OnePlace and Decimal_TwoPlace depending on how many decimal places they wanted to see by default.

Thanks for the feedback. I added more flexibility here for both columns & measures.
See the release notes in version 1.4.3.


Emailing Notes does not Work

I think this has to do with the fact that we are no longer keeping body_html

Confirmed that this is still happening in latest version.

To be clear, the email gets sent, but there is no body.


Preview all modes (s/m/l, light/dark/high contrast) at the same time

@KesemZ
Do we want the ability to enable/disable this feature?
If we always have this feature enabled, #7538 might not be necessary.
However, I do think it would be fair to disable all 6 views at once since that would be a crowded UI.

This feature should always be enabled. we can close #7538 as duplicate

Proposal
The customer wants to be able to view all 9 versions of the card from one container. Since all 9 options will not fit on one display, I propose we display all of the card sizes (small, medium, and large) and have a drop down menu to select the color mode (light, dark, and high contrast).
Here is an example of what it would look like in light mode:

I don't think you can do HC preview. So we only have 6.
For any Berlin conf, after user clicks Preview button, we may have a group preview combobox which includes selections: dark group, light group and dark & light group, and default. In none, .

@licanhua  - the ask was to consolidate these, though I'm not sure if the purpose is actually to show all sizes at once, as in the proposal above (which actually makes sense to me as a user) or just get rid of the clutter in the drop down where you have Berlin-dark-small, Berlin-light-small etc.
@anna-dingler  - can you please run the proposal by the PMs ? If the are good with it then so am I :)

@KesemZ  I ran it by @kat-y this morning. @adambarlow @rahulamlekar @JeanRoca what do you think?

consolidation is hard. @anna-dingler can you post screenshot in design mode (not preview) for your design?

consolidation is hard. @anna-dingler can you post screenshot in design mode (not preview) for your design?

@licanhua I assumed the design mode would also display all three sizes so it would essentially look the same. If this is too difficult, I would add another drop-down menu to select the size, and then preview mode would display all three at once.
@paulcam206 do you have any context here?

@licanhua is right about HC -- currently the only way to test it is to turn it on in Windows. supposedly you'll eventually be able to test it with Dev Tools (see "Testing for High Contrast" in this post), but I don't think it's there yet...
I don't think I have any real additional context here, but I do have questions and opinions :)
I think it makes sense to allow card authors to change the set of sizes they interact with. If possible, we should allow drag/drop editing of any size at once. We should think through what happens of the author drops a TextBlock into the Medium card -- should the generated markup have a $when? I think MVP doesn't need this, but it's interesting to consider how we might implement this in the future. If it's not possible to support multiple sizes for editing, we'll need to provide a way for the author to choose which size they want to interact with.
Same thing goes for theme, though I think that it's ultimately less important than size. I wonder if we can come up with a good way to preview all sizes X all themes at the same time, given the limited real estate. Open to ideas of how we might be able to accomplish that...
Another thing to keep in mind here is that, where possible, we should structure these changes as close to the container code as possible -- it would be nice if e.g. the Teams container used the same functionality to provide a more comprehensive authoring experience (merging light/dark as well as device size emulation).

I'll investigate how difficult it is to edit all views at once. I'm thinking that if you drop an element onto one of the cards we would update the card payload and then render all of the cards again. My only concern is working with multiple card designer surfaces.
If this doesn't seem feasible, we can expose all of the options via combo boxes and only allow the user to view all sizes at once during preview mode.
Another thing to consider is how this feature will behave with the $host parameters. To adjust for this, we could include a size combo box with two-way data binding between the combo boxes and the host data. For instance,

If you select a size from the combo box, the host data json will reflect that change.
If you change the json, we will update the combo box
If you want to view all sizes at once, size will be removed from the host data


Fixed rails_admin issue #759

I added the bootstrap-sass gem to see if that would fix rails_admin issue #759.

I appreciate the effort to patch this, but this is a bug in rails_admin.
We can't require every user to add both rails_admin and bootstrap-sass as a dependency; bootstrap-sass should be a loaded properly by rails_admin.


can_list_to_can_capnp_cpp: write message directly to the output string

Can the code be cleaner if it just returns the std::string? I don't immediately see a reason why it has to be passed by reference.

Can the code be cleaner if it just returns the std::string? I don't immediately see a reason why it has to be passed by reference.

return string will cause a link error
cython use C-linkage:
__PYX_EXTERN_C DL_IMPORT(std::string) can_list_to_can_capnp_cpp

return string will cause a link error
cython use C-linkage:
__PYX_EXTERN_C DL_IMPORT(std::string) can_list_to_can_capnp_cpp


[AIStudio] Add logger.debug for ERNIEBot

Codecov Report
Attention: 6 lines in your changes are missing coverage. Please review.

Comparison is base (5c274f7) 61.21% compared to head (def90c5) 61.13%.

:exclamation: Current head def90c5 differs from pull request most recent head 2e607ef. Consider uploading reports for the commit 2e607ef to get more accurate results

Files
Patch %
Lines

...t-agent/src/erniebot_agent/chat_models/erniebot.py
25.00%
6 Missing :warning:

Additional details and impacted files
@@             Coverage Diff              @@
##           aistudio     #215      +/-   ##
============================================
- Coverage     61.21%   61.13%   -0.09%
============================================
  Files            56       56
  Lines          2787     2794       +7
============================================
+ Hits           1706     1708       +2
- Misses         1081     1086       +5

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Failing check for stargate testnet

https://github.com/cosmos/cosmjs/blob/19e47d3e2f6838475698808f87ee5d61aaa45f80/packages/launchpad/src/lcdapi/auth.ts#L71
The account type is now cosmos-sdk/BaseAccount but there are also vesting accounts with different types. I recommend removing this check to be better compatible with a broader range of networks.

Are you trying to connect to a Cosmos SDK 0.40 network using @cosmjs/launchpad? This is not supported. @cosmjs/launchpad supports 0.37–0.39 at the moment and will drop 0.37 and 0.38 once the Cosmos Hub upgraded to stargate.
In order to interact with a stargate network, the functionality from @cosmjs/stargate should be used, connecting to the chain via Tendermint RPC.

I am trying to use Keplr on a SDK 0.40 network. Signing on stargate is compatible to the old versions as far as I know. So launchpad should still work. But this check prevents the querying for the sequence.

Closing because the Stargate backends do not return an interface but the full account object, which looks different for every account type. See https://github.com/cosmos/cosmjs/issues/702#issuecomment-799599863.


Invoke in dev mode

Can we call it during "dev" sessions? I need to perform copying of a file not only in npm run build, but also in npm run dev sessions and then perform some static transformations, but it looks like the plugin works in build, but not in dev mode.

@Shujee which plugins can not work in dev mode?

Many of them, e.g. vite-plugin-cp and vite-plugin-transform. I finally had to write my own plugin, but now I'm facing the opposite problem. It now runs in dev mode, but not with npm run build.

BTW, the code of my plugin is available here: https://stackoverflow.com/a/76971759/1137199


Add "Postprocess Image" workflow for late pipeline processing

There are a couple of things that can run after postprocess_batch_list, notably the face-restore module.
This workflow cannot edit the size of the batch, but it ensures that it's the last in the pipeline (except if other extensions implement postprocess_image, but we can't do anything about the run order).
closes #175

One potential improvement to the node amount validation would be to check only for nodes that are:

Enabled (not greyed out)
Connected to a workflow graph that actually does run

I also don't know why the tests are failing. Is it my code or it's an update from Webui / ComfyUI?

Tests fail because they are calling a function that is apparently restricted to comfyui, even though there is no comfyui process registered.


null pointer error

child  may be null
https://github.com/google/caja/blob/43ee1c8f4f6d44032173d1c1da2d04b96f81ecf6/src/com/google/caja/parser/AbstractParseTreeNode.java#L330-L343

Can you provide a reproduction case demonstrating a NullPointerException?

I'm sorry for my mistake


[BUG] Filestorage Strange behaviour

5.0.3, Litedb studio 1.0.1
Database imported from vs 4 via (file json),
if i try to get file everytime return null also with
_context.FileStorage.FindAll().ToList() nothing found, but with litedb studio i can see all the 338 files
inside database

I have added 1 new file and only this i can found with
_context.FileStorage.FindById("a5a83b14-07a5-45f7-832c-e7389f5d7a71");
but with litedb  studio i can't see!

found the stupid issue!
when imported from json the _files collection i have rename as files....
so litedb not found the correct collection name...


Apps bar quick fixes

We have identified several quick fixes/improvements to the Apps bar:

Blocks borders
While using a highly contrasted active background colour, the selected Cluster block should not have a border:

Burger icon section bottom border
The burger icon button is separated from the rest of the bar with a bottom border. We should remove it so the whole Apps bar looks like the same piece of UI:

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

Pin icon size
Resize the icon to 14px to compensate for the 2px of surrounding air.

Deployed bar shadow
Add a subtle shadow for the deployed version. Try first an already existing shadow variable, if it does not work in one or both themes we'll design a new one.

Reduced transitions time
All transitions (apps bar expanded/collapsed, category titles transformations, etc.) should be reduced to .25s.

Add a magnifier icon to the search input + Resize reset button
There is already a filter input on every resource page. We can use it to keep consistency...

... or use a new one, where we can add a magnifier glass, very useful since we don't have a label for this input field:

@scures will take care of them.

[x] Blocks borders
[x] Burger icon section bottom border
[x] Pin icon size
[x] Deployed bar shadow
[x] Reduced transitions time
[x] Filter input field

Needs sizing

For the blocks border, I still see the borders as shown in the screenshot @scures

Filter bar does not have the magnifier icon nor the inside text "Filter clusters by..." in both the home page and the cluster management list. Is this expected to be implemented in all filter bars?

@IsaSih the filter text field was designed for the Apps Bar specifically.

Since it is not a shared component, other filters are not affected. It would be nice to have a consistent approach to this kind of fields but tables (and their filtering options) will be redesigned at some point, so for the time being it's fine to keep them as they are.

We'll need to note this when we redesign the table in an upcoming version.
Internal reference: UXUI-199

Tests pass on v2.9-16190ecee0aa3fb4aa570aa0fc932a36d9dcd082-head


Add --winrm-authentication-protocol option

@adamedx @NimishaS
--winrm-authentication-protocol option has [basic, negotiate, kerberos] values.
On windows --winrm-authentication-protocol = 'negotiate' applies 'winrm-s' monkey patch to do encrypted winrm communication.

Looks good and ready to merge -- thank you! :+1:


upgrade to recharts 2.x

Feature Suggestion
Upgrade to recharts version 2.x for the entire project.
There are no migration guides for recharts 1->2 as far as we know, and there may be some work to make sure that the upgrade goes through properly. We would appreciate help from the community with making that happen!
Context
We get reminded occasionally by dependabot that this upgrade should happen (see e.g. https://github.com/backstage/backstage/pull/9638), but we think that it'll take a slightly more concerted effort.

Closing as duplicate of #12609


Post require that works with pd2hook not being run with BLT

With pd2hook if you wanted to extend a function by running some code before or after a function call you could do the following:
--Additional colours to support UI elements for additional peers
orig_TweakData = orig_TweakData or {}
orig_TweakData.init = orig_TweakData.init or TweakData.init

function TweakData.init(self, ...)
	log("[TweakData] BLT log test")
	orig_TweakData.init(self, ...)
	--Logic here
end

The log and the logic do not execute with BLT. I am seeing no errors printed in console logs or crashlog related to this, I am getting a crash due to another script trying to access an array index that doesn't have any data as the one posted above was meant to have run by then.
What is the alternative with BLT? To explain the method shown, the original is stored in a reference variable and it's method replaced with my own logic that passes on any arguments(although there are none in this case) to the original method followed by running my own logic before/after.

Need to apologize, been debugging a pd2hook version issue with someone else. Turns out this technique is only possible with hoxhud enabled, it's a really useful technique too, keeps code nice and clean.


Added MixedKernelSeparateMof

PR content:

Title
Description
Minimal working example

Title
This provides the missing MixedKernelSeparateMof that does efficient  mixing of ind. latents for separate inducing points.
Description
Working on the solution to #819 I found that one way to address the problem was to define the missing feature MixedKernelSeparateMof and to create the corresponding dispatch route. Bug #819 is still not resolved because the path conditional(feat: SeparateIndependentMof, kern: SeparateMixedMok) has a shape conflict, however this PR will add a more efficient route anyways.
Minimal working example
See the commited notebooks/multioutput.ipynb
Code quality requirements
Not a significant code change

@st-- and @markvdw can this be merged?

@Joshuaalbert looks good to me, would be good if you could clarify the one comment I left.
Can you think of a good way of testing the Kuu method you added ?

LGTM. Could you please add a test for your new class MixedKernelSeparateMof to https://github.com/GPflow/GPflow/blob/develop/tests/test_multioutput.py#L452?

I've added a test now.
def test_MixedKernelSeparateMof(session_tf):
    data = DataMixedKernel

    kern_list = [RBF(data.D) for _ in range(data.L)]
    feat_list = [InducingPoints(data.X[:data.M, ...].copy()) for _ in range(data.L)]
    k1 = mk.SeparateMixedMok(kern_list, W=data.W)
    f1 = mf.SeparateIndependentMof(feat_list)
    m1 = SVGP(data.X, data.Y, k1, Gaussian(), feat=f1, q_mu=data.mu_data, q_sqrt=data.sqrt_data)

    kern_list = [RBF(data.D) for _ in range(data.L)]
    feat_list = [InducingPoints(data.X[:data.M, ...].copy()) for _ in range(data.L)]
    k2 = mk.SeparateMixedMok(kern_list, W=data.W)
    f2 = mf.MixedKernelSeparateMof(feat_list)
    m2 = SVGP(data.X, data.Y, k2, Gaussian(), feat=f2, q_mu=data.mu_data, q_sqrt=data.sqrt_data)

    check_equality_predictions(session_tf, [m1, m2])

However, this will fail until #819 is resolved because the proper comparison test is (SeparateIndependentMof, SeparateMixedMok) v.s. (MixedKernelSeparateMof,SeparateMixedMok) and the first path is broken.

@Joshuaalbert Hi would you be willing to port this across to gpflow2 ?


Add -destination generic/platform=iOS to build ios-framework xcodebuild

Description
Add -destination generic/platform=iOS
Related Issues
Fixes https://github.com/flutter/flutter/issues/50138.
Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I signed the [CLA].
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

are there any downsides to always building against a generic ios device?

are there any downsides to always building against a generic ios device?

This command is creating add-to-app plugin frameworks that will be embedded in host apps.  They are already ONLY_ACTIVE_ARCH=NO so it doesn't matter generally which device gets targeted since it will build for armv32 and arm64, but it may matter if the targeted device has an issue, like it's locked.
It's the same reason we tell users to target "Generic iOS Device" when they archive, which under the covers resolves to -destination generic/platform=iOS.


Feature request: Add an option to ignore config keys that gorilla doesn't recognize

I'm trying to set up gorilla-build to build my Tampermonkey script, and I have the build process configured using npm's package.json format. This already has most of the config values I want (name, description, version, author, etc), but it also has other info such as copyright, license, homepage, scripts, and repository.
I don't want to have to duplicate the parts of the config that are in package.json into a separate config file for gorilla, and risk information such as the version number getting out of sync, so I was thinking that if gorilla could accept an option to just ignore what it calls "config key(s)" that it doesn't recognize, then it would work with a package.json file but its default behavior of throwing an error if there are keys it doesn't recognize wouldn't change.
Let me know if this makes sense. Thanks!

Hi! This sounds like a cool idea. I want to confirm my understanding. It sounds like there are two separate asks in here:

Have gorilla read key-values from the package.json. Specifically, the common ones that are also in the npm specification.
Allow gorilla to read arbitrary keys defined by the user

Does that cover it?

Check out v0.0.11, which reads some values from the package.json file. That should address your issue!


Add variable for sprite file for the sprite mixin

Currently we have the sprite's filename wired on our partial.

This already existed, it has a default to "../images/global-sprite", but can be any name.
The mixin requires the basename only, and must exist as png and svg.
// The mixin requires the image as basename only, and must exist as png and svg.
//
// usage example:
// @include sprite(red, $x: center, $y: -589px, $image: "../images/sprite");

Reopening to create a default in _variables.scss


Support full API in Chroma client

The Chroma client only implements a subset of what Chroma has to offer. It would be very handy if the entire API was implemented.
Usage guide: https://docs.trychroma.com/usage-guide
API reference: https://docs.trychroma.com/api-reference
I'm mainly missing these two things:

It's not possible to use the embedding creation that is supported by Chroma. At the moment the embeddings have to be provided by the caller when adding something to the DB.
It's not possible to delete (or search) documents based on a metadata query (see https://docs.trychroma.com/usage-guide#deleting-data-from-a-collection).

This would require changing how metadata is added. With chroma's python library metadata is added as a dictionary like:
collection.add(
	#text and ids etc.. here
	metadata = {"A metadata_field": "some value",
				"another metadata_field": "another value"}
)

A similar way of adding metadata in SK would be great, and would allow for (as you have mentioned) search similar to this:
collection.query(
    #other search parameters
    where={"metadata_field": "is_equal_to_this"},
)

Yeah, I guess IMemoryStore would need to be extended to support metadata queries for both matching and deletion endpoints.

Hi @adiherzog !

I think the ChromaClient class should be a standalone NuGet package (ideally maintained by the Chroma project). Then it could implement the full Chroma API, no matter which subset is needed in semantic kernel.

That's correct. It would be great if there will be standalone NuGet package with Chroma .NET SDK, so we can re-use it. Currently, we implemented only the functionality, which is required for IMemoryStore in order to be used with Semantic Kernel.
Please, let us know if we can close this issue in case your question/proposal is resolved. Thank you!

I'll close the issue, as it does not make sense to use the semantic kernel repository for the full C# client implementation. It needs to be separate. Thanks for helping with the clarification.


Ring sensor warnings

Home Assistant release with the issue:
0.82.0

Last working Home Assistant release (if known):
Operating environment (Hass.io/Docker/Windows/etc.):
Docker

Component/platform:
Ring

Description of problem:
Is it possible to fix the Ring component so it doesn't flood log with warnings?
Nor sure if other have the same issue?
Here is the log from my Ring sensors;
Update of camera.front_door is taking over 10 seconds
08:11 util/async_.py (WARNING)
Update of camera.front_door is taking over 10 seconds
07:39 util/async_.py (WARNING)
Update of camera.front_door is taking over 10 seconds
06:53 util/async_.py (WARNING)
Update of camera.front_door is taking over 10 seconds
06:06 util/async_.py (WARNING)
Update of camera.front_door is taking over 10 seconds
05:20 util/async_.py (WARNING)
Update of camera.front_door is taking over 10 seconds
04:34 util/async_.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
04:00 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
04:00 helpers/entity_platform.py (WARNING)
Updating ring sensor took longer than the scheduled update interval 0:00:30
04:00 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:59 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:59 helpers/entity_platform.py (WARNING)
Updating ring sensor took longer than the scheduled update interval 0:00:30
03:59 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:59 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:59 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:59 helpers/entity_platform.py (WARNING)
Updating ring sensor took longer than the scheduled update interval 0:00:30
03:59 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:58 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:58 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:58 helpers/entity_platform.py (WARNING)
Updating ring sensor took longer than the scheduled update interval 0:00:30
03:58 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:58 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:58 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:58 helpers/entity_platform.py (WARNING)
Updating ring sensor took longer than the scheduled update interval 0:00:30
03:58 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:57 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:57 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:57 helpers/entity_platform.py (WARNING)
Updating ring sensor took longer than the scheduled update interval 0:00:30
03:57 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:57 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:57 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:56 helpers/entity_platform.py (WARNING)
Updating ring sensor took longer than the scheduled update interval 0:00:30
03:56 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:56 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:56 helpers/entity_platform.py (WARNING)
Updating ring sensor took longer than the scheduled update interval 0:00:30
03:56 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:56 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:56 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:56 helpers/entity_platform.py (WARNING)
Updating ring sensor took longer than the scheduled update interval 0:00:30
03:55 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:55 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:55 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:55 helpers/entity_platform.py (WARNING)
Updating ring sensor took longer than the scheduled update interval 0:00:30
03:55 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:55 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:55 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:54 helpers/entity_platform.py (WARNING)
Updating ring sensor took longer than the scheduled update interval 0:00:30
03:54 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:54 helpers/entity_platform.py (WARNING)
Updating ring binary_sensor took longer than the scheduled update interval 0:00:10
03:54 helpers/entity_platform.py (WARNING)
Update of sensor.ring_front_door_volume is taking over 10 seconds

Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

Traceback (if applicable):

Additional information:

Sometimes Ring will block users from accessing the internal API that we are hitting and we have to wait for the limitation to stop.  Please see the discussion in this bug, the errors used to be worse.
https://github.com/home-assistant/home-assistant/issues/14693


Oscillating pitch at Cruise

The C208B oscillates pitch by about a half degree constantly while at cruise with AP ALT on, may be exacerbated by a heavy a/c. I have reason to believe the AP is not connected to the elevator trim tabs and, rather, is connected to the entire elevator, making fine corrections difficult for the AP. Can someone confirm this in the code?

I think this is a problem across MSFS and not just this plane. I get plenty of AP oscillations with other planes as well.

True, the AP is not perfect anywhere, but for some reason the trim level is not being affected by the AP in the C208, at least it's not showing that it is in game. Other a/c I've flown to show the pitch setting, i.e. the trim wheel is active, the trim tabs are at an angle, the trim UI in External View shows correctly. Non of this happens in the C208.

Looks like the AP locks the trim at Neutral and then adjusts pitch using the entire elevator.

I'm just not convinced this is something a mod of the plane can fix. Maybe it can be? I have noticed in the 2-3 flights in this plane so far that the AP is awful and absolutely pitches up and down with it's set initially.

Yes, I also noticed that and the autopilot does seem to be connected to the elevator rather than the elevator trim surface. When you disconnect the AP you can sometimes noticed an abrupt change in the attitude, which shouldn't happen if the AP was linked to the trim surfaces. I don't think it's something that can be solved with just the mod thought, as it seems to be a problem of the simulator, but I'll take a look anyways as soon as I get back home.


Add steps to prune the ledger

Land this after https://github.com/solana-labs/solana/pull/5128 merges.

:scream: but solana-labs/solana#5128 isn't ready yet

Go faster lol
The docs look fine.  I want to build on them, adding more info about how to connect to the TdS cluster, etc


discussion: read-only app container filesystems

This is a discussion topic.
In chatting with @thockin about deploying application containers at scale, one potentially useful pattern that came up is the idea of making the filesystems in which applications execute (i.e. the container chroot) mostly read-only. Specifically, applications in containers can only write to a known part of the filesystem (e.g. a tmpfs mounted at /home/ or some other location codified in the spec or manifest), and all of the files/directories supplied by the images are not writeable.
The obvious/major downside is that applications need to be designed and built to anticipate this restriction. However, it is generally a vastly simplifying assumption with respect to implementation of filesystem rendering and image management, largely due to the removal of the need to fiddle with copy-on-write mechanisms (all of which, at the time of writing on Linux, have various known issues/caveats). Strategies like making an entire set/repository of images available over network-mounted filesystems become very easy.
It seems somewhat plausible that this could be added to the spec in an optional fashion (as a simple parameter in the image manifest), although the semantics are then slightly unclear in terms of e.g. how read-only should be enforced.

Well behaved apps (except pkg managers) only write to /home (/root), /run, /var, and /tmp. Maybe to /media and /mnt but that's only if they've been pointed to there. Less well behaved ones also write to /etc and /opt.
We could make /etc/, /home, /root, /run, /mnt, /media, /var, /tmp, /opt be tmpfs and copy files from aci there on startup. These directories in the aci should be mostly empty. The rest would be read-only. If  containers are meant to be ephemeral, this should work fine.

@eyakubovich if we are mounting the image read-only but then copying certain files into a bunch of additional readwrite mounts on top of that we are effectively just doing (preoptimised) COW anyway, no?

@jonboulle It's copy on setup of stage2 (much like what rkt does now). The difference is that we're not copying /usr and friends which I'm assuming holds the majority of bits.
After thinking some more I can say that it's more than just package managers that write to /usr. A class of programs that we can call system utilities do (e.g. locale-gen). However they should run as part of image creation process and not as part of aci execution.

In order to mount the directories /tmp, /var etc. as tmpfs, the directories should exist (we cannot mount on non-existent directories). What should the executor do when the aci does not contain them? I guess we could just skip the mount when the target directory is missing. An application should not write in /var if /var is missing anyway.
prepare-app creates /proc, /sys, /dev etc. if they don't exist. The mkdir will fail if / is read-only. This can be changed to skip the mkdir step and to ignore the error when mounting on non-existent targets.
Should stage1 be read-only as well? reaper.sh writes to /rkt/status/$app so /rkt/status/ would need to use a tmpfs as well.

On the one hand, if the aci does not contain a directory, we can skip it under the assumption it's not required by the aci. On the other, to make it more user friendly, I wouldn't mind mkdir'ing non-existent dirs to mount over them. Obviously that's problematic to pull off if / is read-only.

You can mount / as tmpfs, then bind-mount each element of /* from the ACI
into that tmpfs.  This lets you mkdir for the stuff you say you need
according to spec.
On Thu, Mar 19, 2015 at 2:16 PM, Eugene Yakubovich<EMAIL_ADDRESS>
wrote:

On the one hand, if the aci does not contain a directory, we can skip it
under the assumption it's not required by the aci. On the other, to make it
more user friendly, I wouldn't mind mkdir'ing non-existent dirs to mount
over them. Obviously that's problematic to pull off if / is read-only.
—
Reply to this email directly or view it on GitHub
https://github.com/appc/spec/issues/245#issuecomment-83762812.


feat: Auto-Documentation Synchronization Bot

Overview
Create an AI assistant to maintain documentation consistency and generate documentation from code.
Current Situation
Documentation gaps often go unnoticed, leading to challenges during onboarding, feature development, and integrations. Outdated information can result in inefficiencies, with developers spending unnecessary time answering questions that could otherwise be handled by AI if up-to-date documentation were available
Proposed Solution
First finish this issue: https://github.com/ai16z/eliza/issues/1110
Next document plugins so that we have a quality reference: https://github.com/ai16z/eliza/issues/1200
Then build a documentation bot that:

Tracks and reports TODO comments in code (automate this flow https://github.com/ai16z/eliza/issues/1223)
Tracks and reports missing plugin docs: (automate this https://github.com/ai16z/eliza/issues/1200)
Tracks commits / issues / PRs and flags docs pages that might need updating
Suggest documentation updates of those pages

Technical Details

Update

First part is being automated: https://github.com/elizaOS/eliza/pull/1343
Second part is in-progress https://github.com/ai16z/eliza/issues/1200

Next we can do better tracking of what files have changed that might affect which part of the docs. We can perhaps do this based on filepaths. The main Eliza docs all could use some updates. Will first update docusaurus config to show when doc pages were last edited.


fix(ui): properly extracts label from field in FieldLabel component

Although the <FieldLabel /> component receives a field prop, it does not use this prop to extract the label from the field. This is currently only an issue when rendering this component directly, such as within admin.components.Label. The label simply won't appear unless explicitly provided, despite it being passed as field.label. This is not an issue when rendering field components themselves, because they properly thread this value through as a top-level prop.
Here's an example of the issue:
import type { TextFieldLabelServerComponent } from 'payload'

import { FieldLabel } from '@payloadcms/ui'
import React from 'react'

export const MyCustomLabelComponent: TextFieldLabelServerComponent = ({ clientField }) => {
  return (
    <FieldLabel
      field={clientField}
      label={clientField.label} // this should not be needed!
    />
  )
}

Here is the end result:
import type { TextFieldLabelServerComponent } from 'payload'

import { FieldLabel } from '@payloadcms/ui'
import React from 'react'

export const MyCustomLabelComponent: TextFieldLabelServerComponent = ({ clientField }) => {
  return <FieldLabel field={clientField} />
}

🚀 This is included in version v3.0.0-beta.105

@denolfe, I think this PR might have broken labels on normal textarea fields. Since upgrading today, none of the labels show on textarea fields. I'm using the following configuration:
    {
      label: 'Description',
      name: 'description',
      type: 'textarea',
    },

Thanks @mykz . Opened a new issue here #8247 .