[Fix #7043] Prevent RDoc error when installing on Ubuntu

This PR prevents RDoc error when installing RuboCop 0.69.0 on Ubuntu.
The following is a reproduction procedure.
% cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04 LTS"

RDoc 5.1.0 or lower
The following error occurs in RDoc 5.1.0 or lower.
% path/to/rubocop
% ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

% gem install rdoc -v5.1.0
Fetching: rdoc-5.1.0.gem (100%)
Successfully installed rdoc-5.1.0
Parsing documentation for rdoc-5.1.0
Installing ri documentation for rdoc-5.1.0
Done installing documentation for rdoc after 7 seconds
1 gem installed

% rdoc lib/rubocop/cop/generator.rb
Parsing sources...
100% [ 1/ 1]  lib/rubocop/cop/generator.rb
RDoc::Parser::Ruby failure around line 15 of
lib/rubocop/cop/generator.rb

Before reporting this, could you check that the file you're documenting
has proper syntax:

  /home/vagrant/.rvm/rubies/ruby-2.3.1/bin/ruby -c
  lib/rubocop/cop/generator.rb

RDoc is not a full Ruby parser and will fail when fed invalid ruby
programs.

The internal error was:

        (NoMethodError) undefined method `name' for {TkSTRING 451, 15:19
        "%Q<department>"}:RDoc::RubyToken::TkSTRING

uh-oh! RDoc had a problem:
undefined method `name' for {TkSTRING 451, 15:19
"%Q<department>"}:RDoc::RubyToken::TkSTRING

run with --debug for full backtrace

RDoc 6.0.0 or higher
Resolve with RDoc 6.0.0 or higher.
% gem install rdoc -v6.0.0
Fetching: rdoc-6.0.0.gem (100%)
Successfully installed rdoc-6.0.0
Parsing documentation for rdoc-6.0.0
Installing ri documentation for rdoc-6.0.0
Done installing documentation for rdoc after 7 seconds
1 gem installed

% rdoc lib/rubocop/cop/generator.rb
Parsing sources...
100% [ 1/ 1]  lib/rubocop/cop/generator.rb

Generating Darkfish format into /home/vagrant/src/rubocop/doc...

  Files:       1

  Classes:     1 ( 0 undocumented)
  Modules:     2 ( 2 undocumented)
  Constants:   3 ( 3 undocumented)
  Attributes:  0 ( 0 undocumented)
  Methods:     6 ( 6 undocumented)

  Total:      12 (11 undocumented)
    8.33% documented

  Elapsed: 0.1s

RDoc 6 is attached as standard with Ruby 2.5.
% rbenv local 2.4.6
% rdoc -v
5.0.0
% rbenv local 2.5.5
% rdoc -v
6.0.1

This PR prevents the issue by using String#strip_indent until RuboCop supports Ruby 2.5 or higher.

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[ ] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[x] Run bundle exec rake default. It executes all tests and RuboCop for itself, and generates the documentation.

Thanks!


fix: up-to-edit feature on message with attachment

Explanation of Change

Fixed Issues

$ https://github.com/Expensify/App/issues/52319
PROPOSAL: https://github.com/Expensify/App/issues/52319#issuecomment-2469581967
Tests

Open any chat
Send a message with attachment
Press Up key
Verify that: Edit composer is displayed

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

// TODO: These must be filled out, or the issue title must include "[No QA]."

Open any chat
Send a message with attachment
Press Up key
Verify that: Edit composer is displayed

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/d6a73fa5-3517-4a4c-8444-4d1d53cb2a8c

Android: mWeb Chrome
https://github.com/user-attachments/assets/5fe5e0cf-dd81-4e53-a049-9642d96cdcdf

iOS: Native
https://github.com/user-attachments/assets/d6f609c3-e8b3-467c-a69c-f24f3ee1c472

iOS: mWeb Safari
https://github.com/user-attachments/assets/5022a814-26d5-426e-926e-d83e92e611a9

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/c2236430-d5e5-4820-9d5d-101a88c07ea0

MacOS: Desktop
https://github.com/user-attachments/assets/247816c0-518a-41eb-8f65-56c6af34a2bd

@daledah Please add Offline tests here, as currently, the up-to-edit feature does not work when offline when message contains an embedded image.

@stitesExpensify, the up-to-edit feature does not work when offline for message contains an embedded image. The same behavior is observed in production as well(attached video below).
I believe this happens because the Edit Comment button is not displayed until the message (with embedded image and text) is received from the server (BE).
https://github.com/user-attachments/assets/23d113a7-be52-4147-8413-77bb65966a32

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/1f663411-8364-43b5-b7ba-6c6f012d717b

Android: mWeb Chrome
https://github.com/user-attachments/assets/32550179-a7bf-4a69-a2b8-f497a6e096a0

iOS: Native
https://github.com/user-attachments/assets/67fba416-d6ad-4ce4-acad-8ee57765d3ed

iOS: mWeb Safari
https://github.com/user-attachments/assets/aa104c12-7006-4b74-8027-34cc907a592f

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/1f7a85c0-22fd-4fd6-8f2d-58d1500d87f4

MacOS: Desktop
https://github.com/user-attachments/assets/6411b465-502b-4ed4-a523-d92d298cb60b

Hm.. I feel like that needs to be fixed here too. If it works for regular messages then it should work for images as well

Hm.. I feel like that needs to be fixed here too. If it works for regular messages then it should work for images as well

Agree with this. @daledah Please look into this issue

Thanks for the help, @hoangzinh.
@stitesExpensify Based on this issue's regression steps, we currently do not allow edits to messages until the attachment is fully uploaded when an attachment and text are being uploaded together. Are we good to change that behavior, or should we proceed with the existing behavior?

I think proceeding with the existing behavior makes sense in this case.


set link actor on by default

It looks like it was intended that actors should have actorLink on by default, but it wasn't actually being set. This corrects that.

This will be corrected in the next updade.


fix(pipeline): buildspec works with dockerfiles in subdirs

Fixes #893
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Screenshot showing that two applications fe which sits at the root, and rindex that's in a subdirectory deploys:

in the future, we can add an e2e test that follows this file hierarchy

Pulled in this change manually and tried it out and it work like a charm, thanks for great solution 👍🏻


Add Macanese Pataca (MOP)

Hi @erikse. I'm working on a project that requires this change. My organization has forked this repo but would like to merge in your changes into ours. However, I can't seem to find your fork. It says unknown repository.
This is my organization's fork:
https://github.com/touristly/currencies

@kriskhaira - I don't the have the repo any longer, I didn't think it would ever get merged - maybe it's easier to add it to your own fork?

@erikse No worries. Thanks for your quick reply.

@kriskhaira - I think we found other currencies missing/inaccurate also, so in the end, just switched to the money gem for it's currency functionality

@erikse Thought I'd let you know that we've now done the same since our last update. Still using the countries gem for country-related information but now using the money gem for currency information.


automation: Enhance pytest header

Mention NetworkManager RPM and Operating System in pytest header.
Signed-off-by: Till Maas<EMAIL_ADDRESS>

This change is

Coverage decreased (-1.5%) to 68.124% when pulling b108bf2423aa74ad40af5c72d8700d5b66a897b3 on tyll:pytest_header into 541ebd67a9bf10decfad00e67270e3166ab4df68 on nmstate:master.

I’m do not understand what this change does exactly and why it is needed in the tests. An example of what this does may help.

Adjusted the commit message.

The OVS failure in travis appears to be unrelated since it works in standard-ci and with NM master. Therefore I merge it.


[graphviz] new port

This adds the graphviz port

What does your PR fix?
Fixes #737 and #14043

Which triplets are supported/not supported?

Yes
If you are still working on the PR, open it as a Draft: https://github.blog/2019-02-14-introducing-draft-pull-requests/

Graphviz is a dependency for Gazebo, which is an important simulation library commonly used with ROS2. This will make building Gazebo and using it much easier when using ROS2 on Windows.


how to specify rdock together with dask?

Hey @MorganCThomas,
I'm using the GUI to setup my molscore scoring function, and like to include rdock with dask, do you have an example for that? I have a screenshot here but no idea what to provide, what to provide here under "Address to Dask scheduler"? Thanks!

One more thing regarding rdock, I guess I need install rDock under acegen environment right?

Hi, there is a tutorial here but I will try to make it clearer.
If input type is str, then an address is expected such as tcp://<IP_ADDRESS>:8000, you will see this after running the command 'dask scheduler` to setup your cluster. However, this is only necessary over more than one compute node. If you are only running it locally on one compute node, you can change the input type to int and simply provide the number of cores/workers to use.
Yes rDock needs to be installed following the (instructions)[https://github.com/CBDD/rDock], it should be independent of your python environment i.e., once installed, available whichever python environment you have. I think this is better than using conda install as I try to restrict additional dependencies in MolScore now.

I have tried to improve documentation with<PHONE_NUMBER>0d701c4d5faa4f40ad1aa5ed0b8b32 and e9808b401b13ddda58f14308e7866bdf3a9f7751.
I will leave this open for now to see if you have any further issues.


Bootstrap 5 don't work on iPad 2 since beta 3

Prerequisites

[X] I have searched for duplicate or closed issues
[X] I have validated any HTML to avoid common problems
[X] I have read the contributing guidelines

Describe the issue
I'm using bootstrap version 5, but on my iPad 2, javascript actions won't work; like collapse, or anything javascript related. Even bootstrap official website isnt working from iPad 2 (Chrome and Safari). Why is this happening? From beta 3 onwards the error persists. Is there any plan to fix this?
Reduced test cases
https://codepen.io/team/bootstrap/pen/qBamdLj
What operating system(s) are you seeing the problem on?
iOS
What browser(s) are you seeing the problem on?
Chrome, Safari
What version of Bootstrap are you using?
v5

Could be you're on Safari 12, which we dropped support for in Beta 3. https://blog.getbootstrap.com/2021/03/23/bootstrap-5-beta-3/


Inheritance and Inherited Members sometimes contain non-Core types

The Inheritance and Inherited Members section for some types in API reference contain members that are not in .Net Core.
For example, this happens for FileStream: its Inheritance contains MarshalByRefObject and its Inherited Members contain several incorrect members, including Close().
I can't discern any pattern where this happens: other Stream types are affected too (e.g. NegotiateStream), but not all (e.g. MemoryStream is fine).

Yes, it's showing the inheritance for the Framework somehow. Maybe something happened in the latest changes from docfx?
/cc @bradygaster, @chenkennt

@mairaw we recently added the inherited members to our default template as we think it's useful information to user. If it's not a desired behavior for .NET Core, we can remove that in .NET Core template.

@chenkennt it's useful information and we do have bugs filed tracking the lack of that information. However, I don't think we ever discussed the design of this and it's showing the wrong information in some cases.

@dend @bradygaster this is still an issue and we should discuss how we handle differences in hierarchy in the future when the content is merged. With .NET Standard 2.0, the difference might be smaller but we still need to know how to handle those.

@dend how are we handling this?

It looks like right now, it manages to be wrong on both .Net Core and .Net Framework:

The definition shows Stream inherits from MarshalByRefObject, which is wrong on .Net Core. The inheritance chain shows Stream inherits directly from Object, which is wrong on .Net Framework.
Also, the Inherited Members section for FileStream incorrectly shows Close() on .Net Core.
And while the .Net Core version of Stream.Close() correctly says it is not supported, clicking the Close() link from the .Net Core version of FileStream takes you to the .Net Framework version of Stream.Close(), which could be confusing (the URL says view=netframework-4.7&viewFallbackFrom=netcore-1.1).

@joelmartinez @dend is this being tracked as part of future improvements to mdoc? Ability to show different inheritance, different signature, etc.?


Is there blobfuse2 support for multiple container access?

Running blobfuse2 version 2.0.4 on RHEL8 instances in Azure.
We want to access 2 (eventually more) containers in the same account. We use blobfuse2 with SAS connection strings to authenticate now (to 1 container) and thigs have worked well for some time now.
However, if we add a 2nd container (different SAS connection string, as they are assigned in the container, not the account), the new connection works - but the old connection does not ("Input/output error").
We REALLY do not want to have to add another server just to access the 2nd container... we have tried mounting as different users - but the behavior is the same: last to mount is the only one that works.
Is there support for this? If so, how can we accomplish this? If not, we'll have to architect a different solution.
Thanks for any support/suggestions.
PS: I know there are often a LOT of variables - so here is a sample config file:
$ cat $CONFIGFILE
foreground: false
read-only: false
allow-other: true
nonempty: false

logging:
  type: base
  level: log_warning
  file-path: /var/log/blobfuse2.log
  max-file-size-mb: 1024
  file-count: 10
  track-time: true

components:
  - libfuse
  - stream
  - attr_cache
  - azstorage

libfuse:
  default-permission: 0666
  attribute-expiration-sec: 120
  entry-expiration-sec: 120
  negative-entry-expiration-sec: 240
  fuse-trace: false

stream:
  block-size-mb: 8
  blocks-per-file: 3
  file-caching: false

attr_cache:
  timeout-sec: 7200
  no-cache-on-list: true
  no-symlinks: true

azstorage:
  type: block
  account-name: mysamplestorage
  container: dropzone
  endpoint: https://mysamplestorage.blob.core.windows.net
  mode: sas
  sas: "sp=racwdl&st=2023-01-01T12:00:00Z&se=2199-01-31T12:00:00Z&spr=https&sv=2022-11-02&sr=c&sig=<some random stuff>"

===
and the mount command is very simple as well:
/bin/blobfuse2 mount "$MOUNTPOINT" --config-file=$CONFIGFILE

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: f4bf4c63-b6fc-de67-e9dd-b956f3782b34
Version Independent ID: b11cd585-7296-9595-6fd0-53c906ed9460
Content: How to use the 'blobfuse2 mount' command to mount a Blob Storage container as a file system in Linux, or to display and manage existing mount points. - Azure Storage
Content Source: articles/storage/blobs/blobfuse2-commands-mount.md
Service: storage
GitHub Login: @jimmart-dev
Microsoft Alias: jammart

@daniel-mcallister
Thanks for your feedback! We will investigate and update as appropriate.


InferenceService Deployment with ModelMesh Example: fail to send requests from Istio Ingress

/kind bug
What steps did you take and what happened:
I follow the InferenceService Deployment with ModelMesh: example-sklearn-isvc from here
Here is what I have already get, and it has been tested successfully by using the port-forward method as the example instruction.
However, I am considering to achieve serverless function by curl from Ingress gateway with HOST Header.
I have tried different curl commands, but none of them work.
echo ${SERVICE_HOSTNAME} modelmesh-serving.modelmesh-serving:8008
Here is what I get by using kubectl get inferenceservice
 example-sklearn-isvc   grpc://modelmesh-serving.modelmesh-serving:8033   True                                                                  2d9h
curl -v -H "Host: ${SERVICE_HOSTNAME}" http://${INGRESS_HOST}:${INGRESS_PORT}/v1/models/example-sklearn-isvc:predict -d @./isvc-input.json
curl -v -H "Host: ${SERVICE_HOSTNAME}" http://${INGRESS_HOST}:${INGRESS_PORT}/v1/models/example-sklearn-isvc/infer -d @./isvc-input.json
They all show the 404 Not found in the following:
`Trying <IP_ADDRESS>:30413...
TCP_NODELAY set
Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 30413 (#0)
POST /v1/models/example-sklearn-isvc/infer HTTP/1.1
Host: modelmesh-serving.modelmesh-serving
User-Agent: curl/7.68.0
Content-Length: 431
Content-Type: application/x-www-form-urlencoded
upload completely sent off: 431 out of 431 bytes
Mark bundle as not supporting multiuse
HTTP/1.1 404 Not Found
date: Thu, 02 Jun 2022 20:53:01 GMT
server: istio-envoy
connection: close
content-length: 0
Closing connection 0`
Environment:

Istio Version: v1.13.4
Knative Version:v1.4.0
KFServing Version:v0.7.0
Kubeflow version: no use
Kfdef:[k8s_istio/istio_dex/gcp_basic_auth/gcp_iap/aws/aws_cognito/ibm]
Minikube version: v1.25.2
Kubernetes version: (use kubectl version): v1.24.1

Could you figure out where the problem is? Thanks

Just a following question: Does KServe v0.8.0 support ModelMesh at this moment? I have seen the example-sklearn-isvc still in KServe v0.7.0 schema.

yes it is supported, @pvaneck I think he needs to enable the rest proxy to make the curl to work right?

I can see the URL is still in GRPC grpc://modelmesh-serving.modelmesh-serving:8033. Any hints on how to set the rest proxy for it?

Hi, any suggestion on Modelmesh with using Istio + KNative as the entry point for calling up the replicas?


feat: add C ndarray API and refactor blas/ext/base/dssumpw

Description

What is the purpose of this pull request?

This pull request:

add C ndarray API and refactor blas/ext/base/dssumpw

Related Issues

Does this pull request have any related issues?

No.
Questions

Any questions for reviewers of this pull request?

No.
Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

No.
Checklist

Please ensure the following tasks are completed before submitting this pull request.

[x] Read, understood, and followed the contributing guidelines.

@stdlib-js/reviewers

CI failure from a downstream test suite.


Add Arch Linux support

I read the three previous issues regarding arch linux and that, in your view, it's a small user base.
That should not be relevant.
Distros should not matter. This is a perfectly good example. I don't get at all why you're not merging these PRs.

@mvrozanti you need to understand that supporting a new distribution means more than merging one pull request and causes a lot more work over time.
Arch Linux has a very small user base when compared to the rest of supported distribution and many of the cloud providers I use for development (Vultr, DigitalOcean, Vscale) don't even provide Arch Linux images.
The fact that Arch updates so fast and unpredictably, doesn't help either.


Expose transaction state on SqlConnection object to avoid server round trip

Is your feature request related to a problem? Please describe.
Today, when the user closes an SSMS query window, SSMS has to query @@trancount to determine if the user has an open transactions. If it returns > 0, SSMS asks the user if they want to commit the transaction before closing the window.
This process can cause SSMS to take a long time to exit, as the connection could fail or timeout and take minutes to do so.
Describe the solution you'd like
IIUC, TDS already provides the transaction state to the SqlConnection each time a command completes, so can you expose this state as a public property on the object?

@shueybubbles,Thanks for reaching out about the request. We will discuss your request and get back to you soon.

@shueybubbles
The most relevant token I found was "OutstandingRequestCount" which is sent from Client to Server as part of Sql Batch/RPC/Transaction manager request and applies only to MARS.
Ref: MS-TDS Documentation: Transaction Descriptor Header
I don't see any response from Server that corresponds to this information for SQL Batch/RPC/transaction manager response.
Could you point me to right token if I'm missing something?

I don't know if it's available, I'm just being hopeful! I may have misunderstood an old email about it.
If it's not available, perhaps you could work with the engine folks to see if a future version of SQL could add it.

I'm waiting for response internally from SQL side, will update when I get any updates.

Hi @shueybubbles
Closing this issue as currently there's no support available from SQL Server.
We'll continue internal conversations and can re-activate this when a possible solution is available.


incorrect pallet path in tutorial

at https://github.com/substrate-developer-hub/substrate-developer-hub.github.io/blob/source/docs/tutorials/creating-a-runtime-module.md, there is the following code shown:
# --snip--

[dependencies.test-pallet]
default-features = false
path = '../pallets/template'

# toward the bottom
[features]
default = ['std']
std = [
    'test-pallet/std',
    # --snip--
]

should this not be as follows instead?
# --snip--

[dependencies.test-pallet]
default-features = false
path = '../pallets/my-template'

# toward the bottom
[features]
default = ['std']
std = [
    'test-pallet/std',
    # --snip--
]

If using the original block of code, it would just use the already included pallet template rather than the pallet that is cloned earlier in the tutorial (at least this is how I understood it).

Hello @TovarishFin Thanks for this issue.
I've looked at the file you linked, but I do not see the snippet you quoted.

Sorry about that. I clicked the edit button in the tutorial and it took me to that file... not sure how the tutorials are built and deployed but you can find the block mentioned above in the actual tutorial link (section: Add Your Pallet to Your Node):
https://substrate.dev/docs/en/tutorials/creating-a-runtime-module/.
I assumed that the markdown file would match the tutorial.

Okay got it. Thanks for reporting. I've fixed this in #523.


Support .NET events in Qml using signals/slots.

I initially was going to fully support .NET events, but decided against it when thinking about it further.
Here is what I am thinking for the first pass.
[Signal("testSignal")]
public class TestQmlImport
{
    public TestQmlImport()
    {
        Qml.AttachToSignal(this, "testSignal", SignalRaised);
        Qml.RaiseSignal(this, "testSignal");
    }

    public void SignalRaised()
    {
        Console.WriteLine("This was raised on start, from .NET object");
        Console.WriteLine("Qml could also raised this signal if needed.");
    }
}

Tracking the attaching of delegates to slots via #18


Can't resolve 'core-js'

大佬，我是使用这个包的时候WEBPACK报错
ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.array.concat' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.array.concat' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.array.filter' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.array.filter' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.array.find' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.array.find' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.array.for-each' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.array.for-each' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.array.from' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.array.from' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.array.index-of' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.array.index-of' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.array.iterator' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.array.iterator' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.array.map' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.array.map' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.array.slice' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.array.slice' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.date.to-string' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.date.to-string' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.object.define-properties' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.object.define-properties' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.object.define-property' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.object.define-property' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.object.get-own-property-descriptor' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.object.get-own-property-descriptor' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.object.get-own-property-descriptors' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.object.get-own-property-descriptors' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.object.get-prototype-of' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.object.get-prototype-of' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.object.keys' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.object.keys' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.object.set-prototype-of' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.object.set-prototype-of' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.object.to-string' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.object.to-string' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.parse-int' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.parse-int' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.regexp.exec' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.regexp.exec' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.regexp.to-string' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.regexp.to-string' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.string.iterator' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.string.iterator' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.string.match' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.string.match' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.string.replace' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.string.replace' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.string.search' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.string.search' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.string.trim' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.string.trim' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.symbol' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.symbol' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.symbol.description' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.symbol.description' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/es.symbol.iterator' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/es.symbol.iterator' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/web.dom-collections.for-each' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/web.dom-collections.for-each' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>ERROR #98124  WEBPACK
Generating development JavaScript bundle failed
Can't resolve 'core-js/modules/web.dom-collections.iterator' in '/Users/chaoli/Desktop/hello_eth/node_modules/_markdown-navbar@1.4.2@markdown-navbar/dist'
If you're trying to use a package make sure that 'core-js/modules/web.dom-collections.iterator' is installed. If you're trying to use a local file make sure that the path is correct.
File: node_modules/_markdown-navbar<EMAIL_ADDRESS>failed Building development bundle - 11.475s
我是用的gatsby，进入index.js后其实core-js是能找到的。。。  google看了下说是core-js3的问题，有点懵，求大神解惑。

https://codesandbox.io/s/happy-beaver-d3bhp?file=/src/pages/index.js
我在codesandbox里面装了这个包测试了 也出现了一样的问题。。。

这个问题应该是通过 github 的自动 pr 解决了。试了下你的 demo 貌似没复现了。


197 authentication policies users need to be authenticated

@christiannagel TODO: In the Azure directory codebreaker3000 the API connectors need to be updated after publishing the backend, by:

setting the Endpoint URLs to https://<<gateway>>/users/api-connectors/validate-before-user-creation and https://<<gateway>>/users/api-connectors/enrich-token
setting the basic-authentication password in the gateway-keyvault with the key AADB2C-ApiConnector-Password
and setting that password in tha API connectors


feature request: Support Home assistant voice assistant

Any chance that we get an example for ESPhome  on the t-camera-s3 that supports the HA voice assistant?
The T-camera-s3 could be used as voice assistant with the onboard I2S microphone

this would be a great feature

I tried getting a sample code for t-cam 1.6.2 and the code was just for voice, it didn't work with the cam
The esphome firmware code doesn't compile because there was a refactor at some point and the dependencies don't all work together, there's missing important tags with the frameworks used


All Features

In this feature branch In order to set up project as two apps I followed these steps:

Set up a new Rails app for API
Set up a new React app for UI as
Inside the React app use the endpoints exposed by the Rails app.

front end
Backend API
Backend PR

@addod19 Are you on the setup branch? because this pull request is on the setup and whin I try it on my local machine it is working fine.

@addod19 Are you on the setup branch? because this pull request is on the setup, and when I try it on my local machine it is working fine.

Yes, I'm on the set up branch

Hay @addod19, I think it is the version of the node on your local computer. Can you check out this link  and maybe try updating your node and let me know? I have only one review left. I would appreciate I if you could help resolve this issue.

Hay @addod19, I think it is the version of the node on your local computer. Can you check out this link and maybe try updating your node and let me know? I have only one review left. I would appreciate I if you could help resolve this issue.

Hi @betses,
Thank you very much for this link, thanks to you I have learnt something new. Yes once I updated my node version to 19.4.0 it worked as expected. Here is a screenshot below. I believe the next code reviewer will Ignore it

@addod19 Thank you very much for checking it out. I was wondering what the issue was. I will resubmit for review now.

Thanks @elisha2kyakpo1 for the review.
Happy Coding 🤝


Redirect download link

Previously our S3 download links were presigned. We are planning to stream them through Airpal instead to put downloads behind the apps's authorization.
Reviewers

@andykram
@gabeloins

:+1:


Bug fixing: Wrong condition for isInfinity

Hi, the condition of the isInfinity property was inverted. I fixed this!

Thanks @tulioccalazans for this pr, i'll relase soon at pub.dev


Added Insiderphd

Sorry, only links to OWASP projects and chapters please

I'm happy to remove that for you, or you can update it if you like?

That's fine, I don't mind, I don't have an OWASP related link though so just leave me link-less


Support for FASM attributes for V2X

This PR adds support for FASM features to the V2X. Every attribute of the top level module which name starts with FASM_ will be converted to a corresponding entry in the metadata section. If no such features are present then the metadata tag is not generated at all.
Todo:

[ ]  Add support for FASM prefix on arrays of modules
[x]  Add support for FASM LUT annotations
[x]  Add support for FASM annotations on <direct> within <interconnect>
[ ]  Add support for FASM mux annotations on <mux> within <interconnect>
[x]  Add support for FASM features on <mode>
[x]  Add support for FASM parameters on primative <pb_type>'s

@mithro @litghost My first question: What do you mean by "Add support for FASM prefix on arrays of modules" ? Could you give an example how this should work ?

@mithro @litghost My first question: What do you mean by "Add support for FASM prefix on arrays of modules" ? Could you give an example how this should work ?

https://github.com/SymbiFlow/symbiflow-arch-defs/blob/master/xc7/primitives/ff/ff.pb_type.xml#L112
In this example, num_pb = 8, and fasm_prefix has 8 entries.  We should probably support tagging each of the instances with a prefix, and then v2x gathers them as needed, and outputs fasm_prefix to accommodate the output.

@litghost Ok, I got it now, thanks.

@litghost I also have an issue with adding muxes to interconnects.
The first problem is how to define that mux in verilog. If it is 2:1 mux then the solution is straightforward - Yosys infers the mux and adds a $mux cell which can then be used by v2x. We can add attributes to the output net of that mux which will define its FASM features. For example:
module fasm_features_ic_mux_2to1(
  input I0,
  input I1,
  output O,
);

wire I0;
wire I1;

wire O_AND;
wire O_XOR;

// Child cells
and_gate gate1 (I0, I1, O_AND);
xor_gate gate2 (I0, I1, O_XOR);

wire S; // This is a dummy signal

// The mux
(* FASM_MUX = "insert features here" *)
wire O = S ? O_AND : O_XOR;

endmodule

But when we have eg 4:1 mux then, according to my experiments, Yosys doesn't detect that is a mux (it should at least infer the $pmux internal cell).  This is hard to infer in v2x.
So instead I propose this: We define a dummy black box verilog module with a known name (eg. v2x_mux) which has parameters and attributes. Then we instantiate that mux in a place where needed. Then the v2x searches for that specific primitives and converts them to interconnect muxes with fasm attributes. For example:
module fasm_features_ic_mux_4to1(
  input I0,
  input I1,
  output O,
);

wire I0;
wire I1;

wire O_AND;
wire O_XOR;

// Child cells
and_gate gate1 (I0, I1, O_AND);
xor_gate gate2 (I0, I1, O_XOR);

// The 4:1 mux
v2x_mux #(.N(4)) any_name
(
.I({I1, I0, O_XOR, O_AND}),
.O(O)
);

endmodule

And the mux blackbox:
(* blackbox *)
module v2x_mux #
(
parameter N = 2
)
(
input [N-1:0] I,
output O
);
endmodule

Whad do you think ?

The tests/common directory might be better as a tests/basic or a tests/simple ?

@litghost I also have an issue with adding muxes to interconnects.
Whad do you think ?

This all sounds good.  I strongly recommend that you break up the different FASM features into small PR's so we can address them in smaller increments.  For example, the FASM MUX change should be seperate from the FASM prefix handling.

@mithro The tests/common does not contain any actual tests but rather some verilog modules + XMLs neede for other tests. Hence the name. Maybe it is better as tests/assets ?

@litghost Makes sense to break these things up. From my understanding adding v2x FASM support for arrays and muxes requires additional effort and can be done in separate PRs. So if it is ok then we can consider tasks for this PR as complete.

@mithro The tests/common does not contain any actual tests but rather some verilog modules + XMLs neede for other tests. Hence the name. Maybe it is better as tests/assets ?

But they have XML models committed?

For given (* CLASS=XXX *) I think we should add FASM support directly (rather than needing FASM_xxx attributes.

I don't believe this is not possible, at least not without additional explanation.

@litghost I also have an issue with adding muxes to interconnects.
The first problem is how to define that mux in verilog. If it is 2:1 mux then the solution is straightforward - Yosys infers the mux and adds a $mux cell which can then be used by v2x. We can add attributes to the output net of that mux which will define its FASM features. For example:
module fasm_features_ic_mux_2to1(
  input I0,
  input I1,
  output O,
);

wire I0;
wire I1;

wire O_AND;
wire O_XOR;

// Child cells
and_gate gate1 (I0, I1, O_AND);
xor_gate gate2 (I0, I1, O_XOR);

wire S; // This is a dummy signal

// The mux
(* FASM_MUX = "insert features here" *)
wire O = S ? O_AND : O_XOR;

endmodule

But when we have eg 4:1 mux then, according to my experiments, Yosys doesn't detect that is a mux (it should at least infer the $pmux internal cell).  This is hard to infer in v2x.

FYI This could be fixed by a combination of some of the following yosys passes;

http://www.clifford.at/yosys/cmd_proc_mux.html
http://www.clifford.at/yosys/cmd_lut2mux.html
http://www.clifford.at/yosys/cmd_muxcover.html
http://www.clifford.at/yosys/cmd_opt_muxtree.html
http://www.clifford.at/yosys/cmd_pmuxtree.html

So instead I propose this: We define a dummy black box verilog module with a known name (eg. v2x_mux) which has parameters and attributes. Then we instantiate that mux in a place where needed. Then the v2x searches for that specific primitives and converts them to interconnect muxes with fasm attributes. For example:
module fasm_features_ic_mux_4to1(
  input I0,
  input I1,
  output O,
);

wire I0;
wire I1;

wire O_AND;
wire O_XOR;

// Child cells
and_gate gate1 (I0, I1, O_AND);
xor_gate gate2 (I0, I1, O_XOR);

// The 4:1 mux
v2x_mux #(.N(4)) any_name
(
.I({I1, I0, O_XOR, O_AND}),
.O(O)
);

endmodule

And the mux blackbox:
(* blackbox *)
module v2x_mux #
(
parameter N = 2
)
(
input [N-1:0] I,
output O
);
endmodule

Whad do you think ?

You are correct we should create black boxes for the muxes. But we should use mux_gen.py to generate a sim.v file with the correct annotations. As these are black boxes, they will then be easy to see.

@mithro Ok. If we are going to use the mux_gen.py then my concerns about how to define muxes are not relevant anymore.

@mithro And regarding the test/common folder: Both verilog and XMLs placed there are used by some other tests related to FASM feature support. I needed a sub module that I could instantiate within modules that I test. The V2X automatically includes XMLs for child module instances so it requires those files. But they are not any test case themselves.

@litghost @mithro I've been thinking more about muxes. The mux_gen.py is a solution to generate a mux blackbox. But in order to add support for <mux>es to the <interconnect> something else is required. I've created an issue https://github.com/SymbiFlow/symbiflow-arch-defs/issues/697

@mkurc all muxes should be generated with mux_gen and then included into the sim.v file. v2x should then never see any $mux or similar cells or be generating anything apart from direct interconnects.

I opened https://github.com/SymbiFlow/symbiflow-arch-defs/issues/701 to track adding support of FASM output to muxgen.

@mithro I agree that we should not infer muxes and generate them explicitly via the mux_gen. But generating only direct connections in V2X is not enough as they do not cover <mux> under the <interconnect>. I created https://github.com/SymbiFlow/symbiflow-arch-defs/issues/697 which describes my approach to the problem

@litghost I added merging of metadata when including pb_types. However this works blindly by just concatenating strings and separating them with space.

@litghost I added merging of metadata when including pb_types. However this works blindly by just concatenating strings and separating them with space.

Just consider it an error to have duplicate metadata tags, rather than a potentially confusing behavior, that is almost certainly wrong.

@mkurc-ant:  Can I ask you to stop writing code and write out a design document for how you are planning to map https://docs.verilogtorouting.org/en/latest/utils/fasm/ to Verilog annotations?   The examples of FASM_FEATURES and FASM_LUT demonstrates that you don't understand what is being done here, and I think we need to take a step back and actually design these annotations.
I strongly recommend that you draw from the existing examples in xc7 and ice40, as those are the actual XML's

@mkurc-ant There is a doc at https://docs.google.com/document/d/1ngck6LGVTXm6HDrVqWeEGdEELrKPWXVaeejkXurgfl4/edit#heading=h.edp8qrijjxwn which it attempting to do exactly what @litghost is looking for.... It is still a work in progress.

@mkurc-ant There is a doc at https://docs.google.com/document/d/1ngck6LGVTXm6HDrVqWeEGdEELrKPWXVaeejkXurgfl4/edit#heading=h.edp8qrijjxwn which it attempting to do exactly what @litghost is looking for.... It is still a work in progress.

I'd like a more focused document on the annotations themselves and edge cases.  I'd like to work through the various format issues independent other concerns.  Once we've iterated on the annotation design, and have confidence in an implementation, we can go back and annotate the Encyclopedia.

@mithro @litghost Ok, I'll prepare such a document.
The test cases I provided test the functionality of v2x. Not whether such a functionality is correct in terms of legal FASM metadata specification.

@mithro @litghost I prepared the document you requested: https://docs.google.com/document/d/1J8lLT4SzlK_56-vBfz0f2DaNLHPn9rABUB0Fu1ljF4M

The CI fails but I can't download the log. The only message I see when trying to do so is:
Test Fusion Url (This url will not work until build finishes): https://fusion.corp.google.com/runanalysis/info/prod%3Afoss-fpga-tools%2Fsymbiflow-arch-defs%2Fpresubmit/prod%3Afoss-fpga-tools%2Fsymbiflow-arch-defs%2Fpresubmit/KOKORO/2907333f-d2cf-4e0f-a352-d7d0c4f2db46/1557754581406/prod%3Afoss-fpga-tools%2Fsymbiflow-arch-defs%2Fpresubmit%20Build%20%23389/Targets
Strange...

I am closing the PR. Once we agree on the FASM in V2X functionality I will create a new one.

Just FYI - I'll land an updated version of this after https://github.com/SymbiFlow/symbiflow-arch-defs/pull/703


Debug variant info

Every push is causing this on jenkins
From github.com:Leanplum/Leanplum-Android-SDK
! [rejected]        refs/pull/192/merge -> pr-192  (non-fast-forward)
Build step 'Execute shell' marked build as failure


change version to 0.7.0 to release

Ⅰ. Describe what this PR did
Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #1290 into develop will increase coverage by 0.1%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             develop    #1290     +/-   ##
============================================
+ Coverage      48.55%   48.65%   +0.1%
  Complexity      1643     1643
============================================
  Files            332      332
  Lines          11517    11517
  Branches        1396     1422     +26
============================================
+ Hits            5592     5604     +12
- Misses          5291     5293      +2
+ Partials         634      620     -14

Impacted Files
Coverage Δ
Complexity Δ

...server/store/file/FileTransactionStoreManager.java
46.34% <0%> (-0.7%)
19% <0%> (ø)

...rotobuf/convertor/RegisterTMResponseConvertor.java
84.84% <0%> (+3.03%)
3% <0%> (ø)
:arrow_down:

...rotobuf/convertor/RegisterRMResponseConvertor.java
84.84% <0%> (+3.03%)
3% <0%> (ø)
:arrow_down:

...otobuf/convertor/GlobalBeginResponseConvertor.java
96.96% <0%> (+3.03%)
3% <0%> (ø)
:arrow_down:

...obuf/convertor/BranchRollbackRequestConvertor.java
96.42% <0%> (+3.57%)
3% <0%> (ø)
:arrow_down:

...otobuf/convertor/BranchCommitRequestConvertor.java
100% <0%> (+3.57%)
3% <0%> (ø)
:arrow_down:

...otobuf/convertor/BranchReportRequestConvertor.java
96.29% <0%> (+3.7%)
3% <0%> (ø)
:arrow_down:

...buf/convertor/GlobalLockQueryRequestConvertor.java
100% <0%> (+3.84%)
3% <0%> (ø)
:arrow_down:

...protobuf/convertor/RegisterRMRequestConvertor.java
95.83% <0%> (+4.16%)
3% <0%> (ø)
:arrow_down:

...protobuf/convertor/RegisterTMRequestConvertor.java
100% <0%> (+4.54%)
3% <0%> (ø)
:arrow_down:

... and 4 more

Continue to review full report at Codecov.

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


Cannot move folder/file from one received share to another

Describe the bug
Cannot move folder/file from one received share to another
Steps to reproduce
Steps to reproduce the behavior:

As user admin make a folder admin-folder with sub folder folder1
Share the folder  admin-folder to user marie with permission all

curl -u admin:admin -X POST https://localhost:9200/ocs/v1.php/apps/files_sharing/api/v1/shares -d path="Admin-Folder" -d "shareType"=0 -d shareWith="marie" -d permissions=31  -kv

As user einstein make a folder einstein-folder
Share the folder einstein-folder  to user marie with permission all

curl -u einstein:relativity -X POST https://localhost:9200/ocs/v1.php/apps/files_sharing/api/v1/shares -d path="Einstein-folder" -d "shareType"=0 -d shareWith="marie" -d permissions=31 -kv

As maire accept both shares
As marie move folder Shares/admin-folder/folder1 to Shares/einstein-folder

curl -k 'https://localhost:9200/remote.php/webdav/Shares/Admin-Folder/folder2' -umarie:radioactivity -X MOVE -H'Destination: https://localhost:9200/remote.php/webdav/Shares/Einstein-folder/folder2' -v --insecure

Expected behavior
Like in OC10, the folder should be moved.
Actual behavior
It gives 400 error and the folder is not moved
curl -k 'https://localhost:9200/remote.php/webdav/Shares/Admin-Folder/folder2' -umarie:radioactivity -X MOVE -H'Destination: https://localhost:9200/remote.php/webdav/Shares/Einstein-folder/folder2' -v --insecure

*   Trying <IP_ADDRESS>:9200...
* TCP_NODELAY set
* Connected to localhost (<IP_ADDRESS>) port 9200 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: O=Acme Corp; CN=OCIS
*  start date: Aug  2 05:10:28 2021 GMT
*  expire date: Aug  2 05:10:28 2022 GMT
*  issuer: O=Acme Corp; CN=OCIS
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
* Server auth using Basic with user 'marie'
> MOVE /remote.php/webdav/Shares/Admin-Folder/folder2 HTTP/1.1
> Host: localhost:9200
> Authorization: Basic bWFyaWU6cmFkaW9hY3Rpdml0eQ==
> User-Agent: curl/7.68.0
> Accept: */*
> Destination: https://localhost:9200/remote.php/webdav/Shares/Einstein-folder/folder2
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* Mark bundle as not supporting multiuse
< HTTP/1.1 400 Bad Request
< Access-Control-Allow-Origin: *
< Content-Length: 0
< Content-Security-Policy: default-src 'none';
< Date: Fri, 27 Aug 2021 05:27:31 GMT
< Vary: Origin
< X-Content-Type-Options: nosniff
< X-Download-Options: noopen
< X-Frame-Options: SAMEORIGIN
< X-Permitted-Cross-Domain-Policies: none
< X-Robots-Tag: none
< X-Xss-Protection: 1; mode=block
<
* Connection #0 to host localhost left intact

Setup
Please describe how you started the server and provide a list of relevant environment variables.

OCIS_VERSION=vX.X.X
BRANCH=vX.X.X
STORAGE_FRONTEND_UPLOAD_DISABLE_TUS=false

Additional context
Add any other context about the problem here.

@SwikritiT Is that scenario part of the expected failures?

I don't see any mention in the expected-failures files. @SwikritiT there should be an API test scenario for this in the core API test suite. Please have a look. If there is no test scenario, then create one.

It looks like this will be fixed by https://github.com/cs3org/reva/pull/2026 - and that removes a lot of scenarios from expected-failures. So I guess there are API test scenarios that do this, they had other reasons in the past for failing.

@phil-davis @micbar https://github.com/owncloud/core/blob/901157f2b3d0ba1f36b1e4d22c8384e255094b11/tests/acceptance/features/apiShareUpdateToShares/updateShare.feature#L194
There's this scenario that fails because of this issue.

When I look for updateshare.feature:194 in PR https://github.com/cs3org/reva/pull/2026/files I see that is is removed from expected-failures by the fix in that PR. That confirms that the PR fixes this issue - good.


Discuss: File format in the .NET Interactive VS Code extension

The primary reason for the experimental file format supported by .NET Interactive Notebooks is that there are a few design decisions to be worked out to enable the Microsoft Python extension for Visual Studio Code and the .NET Interactive Notebooks extension to work well together. Until a design is agreed upon, we want to avoid introducing potential compatibility issues into .ipynb.
Here are some of the challenges:

There is not an agreed-upon convention for polyglot notebooks in the .ipynb file format that also takes into account:

single-process polyglot kernels, and
multiple kernels (whether polyglot or not) within a single notebook.

There isn't currently a clear way to indicate which VS Code extension should handle a given .ipynb file, and Python clearly takes precedence.

I'd like to get people's thoughts on the experimental .dib file format (example below) that the .NET Interactive Visual Studio Code extension supports.
.ipynb is also supported, as well as conversion between the two.
These are the goals we've had in mind that led to the current state of the design:

It should be trivial to author and read in a simple text editor without special tooling and without concern about escaping, e.g. not JSON, XML, etc.

It should be copy-pasteable between different contexts, e.g. a bare script file, a notebook cell, or another .NET Interactive host (e.g. https://github.com/CodeConversations/CodeConversations)

It should be able to contain multiple languages, including languages not yet supported by .NET Interactive.

It should be amenable to a good tooling experience, including completions and other language services even when multiple languages are present.

It should be able to be opened as a notebook (as currently implemented by the .NET Interactive VS Code extension).

It should be executable as an automation script. In the simple case this need not be a polyglot script, but it should be able to take advantage of the full capabilities of .NET Interactive, e.g. magic commands, NuGet support, extensibility, variable sharing.

When in automated mode, it should be able to advertise and consume command line arguments in a readable, simple-to-author manner.

When in interactive mode (e.g. notebook, REPL), the command line inputs should be able to be collected from the user via a prompt or trivially configured inline the code.

Here's a simple example of the format:
#!powershell

Write-Output "Hello from PowerShell!"

#!fsharp

let hello = "Hello from F#"
hello |> Console.WriteLine

#!csharp

#r "nuget:Humanizer,2.8.1"
using Humanizer;

#!share --from fsharp hello

Console.WriteLine(hello.Replace("F#", "C#").Transform(To.TitleCase));

ipynb is the common notebook file format for all languages (Python, R, Julia etc.) on Jupyter.
If dib is the file format supported in VSCode, is it only limited to .Net languages?
If it's intended to be more widely adopted, is this file format extendable and easily convertible so that other language communities can extend their notebook experience in VSCode?

If dib is the file format supported in VSCode, is it only limited to .Net languages?

.dib isn't language-specific and other languages can be added dynamically by adding subkernels.

If it's intended to be more widely adopted, is this file format extendable and easily convertible so that other language communities can extend their notebook experience in VSCode?

The file format can be extended to the degree that .NET Interactive itself can be extended, whether programmatically within the script or via a NuGet extension.

I think they are good goals.
It's fine to contemplate a new file format but it should be 100% optional until it is an established thing - which roughly means online and client tooling for the format is very widespread (including scripting executors for it), stable and trusted, and the format has been emotionally accepted by most potential users especially in team or collaborative settings.  Also TBH Microsoft have a reputation when it comes to file formats, we have to be aware of that and be cautious here.
Note that acceptance of new file formats is a social/network/human/emotional/trust thing - these things are not necessarily under our control though we can make technical decisions that will affect whether effective acceptance is eventually achieved.  And all new file formats start at "acceptance level -1000" sadly....  I speaking from experience with .fsx as a programming/scripting format - it now has near universal execution tooling via dotnet fsi and fairly widespread tooling but it has taken 10 years to get to that point.
I think this means loading, saving, editing and executing .ipynb is still necessary in very many scenarios (potentially by internally converting to this format on load, but that should not be user-visible).

The file format is optional. The benefits are related to polyglot functionality and automation (e.g. running in production), neither of which are directly supported by Jupyter. Not all users will care about these goals, but many do, and they're becoming more common as notebooks become popular in new areas. For these cases, this format might provide some convenience.
The file format arose organically because it's just the .NET Interactive submission format: magic commands delineating blocks of code in potentially different languages. Since .NET Interactive is submission-centric rather than cell-centric, the following (one cell):
#!pwsh
    < PowerShell code >
#!fsharp
    < F# code >

...is equivalent to this (two cells):
#!pwsh
    < PowerShell code >

#!fsharp
    < F# code >

This is why the file format started here. We're simply concatenating all of the cells.

I think this means loading, saving, editing and executing .ipynb is necessary in very many scenarios (potentially by internally converting to this format on load, but that should not be user-visible).

I agree entirely.
Assuming we can sort out the default experience for a given file extension such that we're not in conflict with the VS Code Python extension's Jupyter support, an intuitive workflow might be to allow you to open and work with either format, and when you save, it saves it back to the same file in the same format. You never have to think about the other file format until or unless you want to explicitly convert between them.

I apply this snippet in Jupyter config jupyter_notebook_config.py
https://gist.github.com/jbwhit/881bdeeaae3e4128947c#file-post-save-hook-py
Then Jupyter automatically saves Python notebook into .py file and IFSharp notebook into .fs file whenever I run any new cells behind the scene. It also output the .html file. I usually share my result to nontechnical people in html file as you can open it from email directly. Essentially it just concatenates all code cells into one file.
Isn't this functionality already working in Jupyter? Why do we need another file format? I can only imagine the use case for polyglot notebook. It's hard to decide whether it's .cs, .fs or .ps1

This looks like a good workflow and for Jupyter it's nice and simple. You don't need an alternative file format and it's not my intention to give the impression that we're requiring one.

I can only imagine the use case for polyglot notebook. It's hard to decide whether it's .cs, .fs or .ps1

Yes, the alternative file format helps with polyglot scenarios (which not everyone has). But people might also find benefits when editing with plain text editors or using code review tools. These considerations motivated a similar approach in the VS Code Python extension allowing execution of "cells" within a .py file.
But this isn't a language-specific tool, so we wanted to explore a format that doesn't bias toward one language. Conceptually, .NET Interactive's polyglot support includes HTML and JavaScript and might grow to other languages like SQL, bash (#465), and so on. These aren't just magic commands but are implemented as in-process subkernels. These are user-extensible. Here's a sample (.dib | .ipynb) that includes PowerShell, C#, HTML, and JavaScript.

Assuming we can sort out the default experience for a given file extension such that we're not in conflict with the VS Code Python extension's Jupyter support...

It would be quite nice if VSCode simply prompted in this case.  Any idea what actually happens?
Also I guess VSCode can't probe into the file to check if an extension claims ownership?

@dsyme I just tried it and currently our extension steals the association; there's no prompt and no way to re-associate with the Python extension (short of uninstalling), and since we can really only handle a subset of Jupyter notebooks (i.e., those using the .NET Interactive kernel), we shouldn't take the association outright.  There's an open issue at microsoft/vscode#94408 that tracks this.  As soon as this is fixed then we can safely associate wtih .ipynb files.
As for probing, for text files an extension can say whether it takes the association outright or if it should simply be added to the consider list, but nothing yet for notebooks.

For source control, .dib are so much cleaner to work with then .ipynb when looking at diffs. If .dib file format can be added to the Jupyter project itself and not just in vscode, it will allow you to use existing tooling and open up this file format to more users.
On a sidenote, I tried using the sample covid-19.dib , the #!csharp / #!powershell cells executes because they have subkernels installed. #!markdown does not and complains about missing subkernels and I'm unsure how to add this specific subkernel. Changing it to #markdown allows it to function

I kinda like the dib approach...
Thanks for exploring this...
This enables me to run multiple languages  in one notebook file. The other thing that I like about it is that it doesn't require me to install python/jupyter.
Please keep dib as it's a lean approach (we'll convert files to ipynb if needed..e.g. run in jupyter ecosystem)...

I think it might be better to work on how to be able to call the current line or cell magics from with the already established .ipynb extension. That is already well establish by Jupyter and their community.  I'd rather have the ability to call the different kernels from within one as an option to be tied to only one.

@bwilsonms The question of magic commands is orthogonal to the file format, I believe.
We do have data sharing across kernels on our roadmap, but not direct invocation, which gets a bit thorny from a dependency standpoint. In effect, the Jupyter frontend (or e.g. VS Code or Azure Data Studio) would need to be aware of the different kernels and route submissions accordingly, so it's a bit out of .NET Interactive's scope to be aware of other kernels. There's also a syntax issue. The reason .NET Interactive's magic commands use the #! prefix is that the IPython magic command syntax would be ambiguous in C#, F#, and PowerShell, where % is an operator. This follows the Jupyter guidance for kernel developers on magic commands.
In case I've misunderstood, can you give a more specific example of what you have in mind?

I've come to this as a PowerShell person who wants to author PowerShell notebooks, preferably with VS code.

.NET interactive lets me create an ipynb notebook through Jupyter, using a local web server, a stack of python bits and so on. The learning curve is not too bad, but the end product is kind of ugly.
ipynb files are opened with the Python extension which works up to a point, but adding a new cell (for example) fails if the notebook uses a .NET langauge. And is also kind of ugly.
DIB files have a glaring  omission which inhibits their use - not saving results. (a work round is to save as ipynb)

The current experience is you can Open a notebook and Run some code which generates output; Closing the notebook will prompt to Save changes, but later Re-opening the notebook shows the changes were NOT saved.  That's referenced in #500  and it's the difference between an interesting proof of concept and something which can be used in the real world.
I'm not clear what the objective for DIB files is.
Avoid competing with the Python extension for ownership of ipynb files ? Using the same format with a different extension would do that.
An experimental way of creating polygot files ? You have solved that for ipnyb export by telling Jupyter everything is c# and using the language magic commands for each block of code.
The top of the list of aims you have

"It should be trivial to author and read in a simple text editor without special tooling and without concern about escaping, e.g. not JSON, XML, etc."

And that's not an aim I'd normally take issue with. But this is a format for doing notebooks in VSCode so "edit anywhere" is not the priority it might be for other types.  JSON, XML etc lend themselves to machine parsing, (type .\test.ipynb | ConvertFrom-Json).cells  gives access to the source, outputs, etc.  Given that files will be edited almost exclusively in VSCode - at least in the short term, ease of building a notebook as the output of one process, or reading it as the input to another, should carry more weight than ease of hand editing the files.

@jhoneill If you want the result stored in the output file, I'd recommend using .ipynb. We're not trying to reinvent it, and we're improving direct support for it so that the VS Code Python support and .NET Interactive don't interfere with one another, and so that you also won't need to go through Jupyter just for file writing. Hopefully this addresses the friction you're seeing.

Avoid competing with the Python extension for ownership of ipynb files ? Using the same format with a different extension would do that.

We explicitly want to be interoperable with the larger ecosystem of tools that support .ipynb, for example Jupytext, nbdime, and GitHub's notebook display capabilities. In any case this issue of sharing .ipynb has been fixed and should be available in .NET Interactive shortly.

An experimental way of creating polygot files ? You have solved that for ipnyb export by telling Jupyter everything is c# and using the language magic commands for each block of code.

I think we've only partially solved it, as the magic command approach isn't great for tooling. For example, with this approach, the frontend doesn't know the language of the cell without parsing the code, which impacts things like code coloring and potentially completions (since for example rich language services aren't implemented by IPython and so an external service is often used to provide them).
There are numerous other notebook file formats, many of which have different goals not achievable in a single format. You can see a good overview of use cases in the Jupytext docs: https://jupytext.readthedocs.io/en/latest/formats.html. We might not keep .dib around because its goals overlap with some of these pre-existing formats.

See also: #739.

@jonsequitur  -thanks the response:
If you have a good way for two extensions not to get into conflict over ownership of .ipynb that might solve most issues at a stroke. The current .NET Interactive: Open notebook command reads ipynb but drops the outputs, and save doesn't save new outputs only  .NET Interactive: Save notebook as specific file format does. Fixing that is critical really.
ipynb is established , and using the file format allows sharing between machines with different toolsets but doesn't guarantee the language(s) in the notebook will be supported.  Giving the world a new format only makes sense if there is something which can't be done in or added to an existing format - innovating is a problem because if add something like polyglot support it's easy enough to add the JSON schema, but then everyone else needs to adopt the change, otherwise they the file parses properly but doesn't execute as expected.  Hence you may be stuck with the partial solution you have now.

If you have a good way for two extensions not to get into conflict over ownership of .ipynb that might solve most issues at a stroke. The current .NET Interactive: Open notebook command reads ipynb but drops the outputs, and save doesn't save new outputs only .NET Interactive: Save notebook as specific file format does. Fixing that is critical really.

An improvement to this has been merged and we should have a new version of the extension published today. Looking forward to feedback on it.

Giving the world a new format only makes sense if there is something which can't be done in or added to an existing format - innovating is a problem because if add something like polyglot support it's easy enough to add the JSON schema, but then everyone else needs to adopt the change, otherwise they the file parses properly but doesn't execute as expected.

Agreed. Regarding the file format aspect, one example is that certain organizations explicitly don't want the .ipynb outputs for fear of exposing sensitive data, and there are custom tools used in source control to remove them. That's one audience for an output-free file format. I see polyglot as somewhat unrelated to file formats for .NET Interactive at this stage, since .ipynb specifies a kernel, not a language. As with any Jupyter kennel, if you don't have the kernel installed, the notebook won't work. Now, if people start exploring the idea of multi-kernel notebooks, this introduces different challenges. But .NET Interactive doesn't support that.

@jonsequitur

The benefits are related to polyglot functionality and automation (e.g. running in production)

@jhoneill:

DIB files have a glaring omission which inhibits their use - not saving results. (a work round is to save as ipynb)

As a fellow powersheller who has been seriously loving the simple and effective DIB format, I see HUGE value to storing the output in the file. otherwise, I'm going to have to use Start-Transcript or some other method of saving the output somewhere when used in an automated production environment. I only happened upon this discussion because I was lamenting dib not having saving of results and decided to go do some googling about it.

If you want the result stored in the output file, I'd recommend using .ipynb. We're not trying to reinvent it

Why not? the dib format is awesome. As a powersheller who dabbles in .net/c#, dib is rockingly cool. Inability to save is just KILLER for my hopes.
Dreaming
Mind if I share a dream?
Imagine that instead of having a powershell script in production, you have dib notebook instead. The script is broken down into cells with documentation living right with the actual code.
A finance employee who depends on this script notices that it didn't produce any output and opens the file in VSCode and sees after each code block the last 3 sets of outputs that were generated by that block. This finance user is able to scroll through this notebook and identify exactly which cell didn't produce similar output on its most recent invocation (by comparing with the other ones present). They are then able to quickly determine that the cell could not find the file that is normally accessible and then resolve the issue and then re-run the notebook and see everything work perfectly like it should before they close it.
How cool is that? No IT needed. The business unit MASSIVELY empowered by having historical output + code + documentation all living in a single place.
Implementing Output Preservation Support
In my mind, there are several ways that you could implement such a feature, and I can't find good documentation easily about the dib file format to see if any of this is already present or in a roadmap.
One approach that seems attractive to me is to introduce a cell level option that indicates the number of prior executions to preserve. You could call it --preserveOutputCount or something. I'd also argue that its worth added a notebook level option before any cells occur called like #!notebook where you could also add this preserveOutputCount option if you want to save all cells output in the notebook. Cell level options would override notebook level options, so if you turn on saving cell contents, you can still turn it off at the cell level.
I'm imagining something like this:
#!notebook --preserveOutputCount 1
#!powershell

Write-Output "Hello from PowerShell!"

#!fsharp --preserveOutputCount 0

let hello = "Hello from F#"
hello |> Console.WriteLine

#!csharp

#r "nuget:Humanizer,2.8.1"
using Humanizer;

#!share --from fsharp hello

Console.WriteLine(hello.Replace("F#", "C#").Transform(To.TitleCase));

Which would save only the most recent execution for each cell immediately below it (except for the fsharp cell, which would not save any output at all when ran. You could even let the default be that when RUNNING a notebook in an automated fashion or interactive fashion that it DOES NOT UPDATE the notebook file after execution and that you'd need to add another option to the file level that saves output in the file after execution. Something like: #!notebook --saveOutputOnExecute
Lastly, the HOW to save output. You don't need to save the STATE, the output doesn't need to be resumable. You can just let it be a plain text field like what markdown is, just without any formatter/markdown support. Maybe call it #!output for that cell.
Rolling this all together, after running each cell twice (notice that my c# cell errors the 2nd time that I run it from VSCode), if I saved the file, it would look like this in notepad:
#!notebook --preserveOutputCount 2
#!powershell

Write-Output "Hello from PowerShell!"

#!output

Hello from PowerShell!

#!output

Hello from PowerShell!

#!fsharp --preserveOutputCount 0

let hello = "Hello from F#"
hello |> Console.WriteLine

#!csharp

#r "nuget:Humanizer,2.8.1"
using Humanizer;

#!share --from fsharp hello

Console.WriteLine(hello.Replace("F#", "C#").Transform(To.TitleCase));

#!output

Error: Humanizer version 2.8.1 cannot be added because version 2.8.2 was added previously.

#!output

Hello From C#

Honestly, I think its super cool to have the idea of lightweight notebooks in VSCode that can bring documentation, code, and historical output all together for use in a real world production environment.

Thanks for sharing this dream, @Szeraax!  I think it would actually be fairly simple to prototype with our existing APIs.
There are dreams over here that I think are related: https://github.com/dotnet/interactive/labels/Area-Automation. In particular, #1554 also discusses the possibility of behavioral differences between automated and interactive modes, and #483 hints at dealing with different output types but stops short of attempting to say how it might work.
We're trying to come up with a compelling automation story that I think will often be orthogonal to file formats. As part of this we're asking questions about what different file formats are useful for and what they provide versus what capabilities should be independent of file formats. Should we support additional formats as we go? How will those fit in?
We'll try to make this more concrete in the new year.

Ok, I threw down my thoughts on those two that you linked and [I also commented] on the dream of saving outputs from another person: #839
When I wrote my original comment here, I didn't know about the proposal to compile notebooks.
Lets assume that you:

Get a compiler working for notebooks
implement the capability to return output cells as plaintext to stout independent of storing the output cells within the notebook (which also means that you can view the exact same stout of a run whether it is done interactive in VSCode output window, dotnet interactive, or compiled exe)

Back to the compiled notebooks: obviously those wouldn't be editable for storing output cells. So either its drop the capability to store output cells into the notebook when running compiled notebooks, create a 2nd feature that lets you output to another file regardless of method (VSCode,dotnet,compiled), or pick only one of those two features to implement. I would advise against ONLY creating the feature that saves output into the notebook itself. So either only do that 2nd feature to output to external file, or do both. (hopefully everytime I hit "run all cells" in VSCode, it doesn't have to create a file with all outputs :P)
I would like there to be something richer than just stout for viewing output cells from the compiled exe. My vision is for business units to increase their programming skills. I WANT them to be seeing code. I want them to be able to figure out root causes on their own (with time, of course!).
Rather than my accounting person coming to me and saying, "block 5 failed on this exe, fix it please", I want that accounting person to be able to AT LEAST look at the markdown + code + output and see if they can tell what is wrong before they ever talk to me.
Lets raise our sights and get ALL business units doing the tech work instead of heaping it onto IT :)
Honestly, I'd be fine if the only feature between saving output in dib file vs saving output + code + markdown to external was the external one.
As for implementation, what about just creating the #!output cell type that I talked about and throwing all cells out to file? Viewing these files would generally be done in VSCode, so you don't need to do any rich text syntax highlighting. Just do a copy of the script and its #!output cells to a file and bango, you're done.


Reshape elemental-channel a new OS based schema

Describe the solution you'd like:
We would like to distribute each OS stream with it's own channel regularly update and append new images on the channel (based on rebuilds or based on maintenance updates)
Anything else you would like to add:
This should also help to make obvious the OS each Elemental Linux image is based on.
Environment:

Elemental release version (use cat /etc/os-release):
Rancher version:
Kubernetes version (use kubectl version):
Cloud provider or hardware configuration:

Repo name could be:

registry.suse.com/rancher/elemental-channel/sl-micro:6.0
registry.suse.com/rancher/elemental-channel/sl-micro:6.0-flavor

see rancher/elemental-operator#727


Support Enumerable#each_with_index

It used to work correctly, but does not work in recent gems since 45435b31ae0f9ad42255d9105d264f5fe9722c88.
I suppose this causes SyntaxError on Ruby < 1.9, but do we really still have to support Ruby 1.8?
I'm sorry I couldn't come up with any good solution to support both each_with_index and Ruby 1.8. So, I'd propose dropping Ruby 1.8 support, and bring each_with_index support back.

Thanks for reporting.
I see that the fix I did in 45435b3 is no good, https://bugs.ruby-lang.org/issues/6994 describes the difference in 1.8 behaviour of yield with splat arguments.
Problem can be fixed for all rubies by using block.call instead of yield, but rubocop points to performance penalty: https://github.com/JuanitoFatas/fast-ruby#proccall-and-block-arguments-vs-yieldcode, not sure if it will really be noticeable with some work done in the block.
Or different methods can be used for Ruby < 1.9 and all others. I am really not sure when to drop Ruby 1.8 support, statistics on ruby versions usage would probably help a lot like requested in rubygems/rubygems.org#1439

@toy You're right! block.call can support both 1.8 and each_with_index. I made another PR #10 with that change.
Regarding Ruby 1.8, it was EOFed 4 years ago https://www.ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7/, and so it's strongly discouraged to use.
So you don't have to care about 1.8 at all IMO. There still can be an existing 1.8 environment, but I don't think there's a real user who are eager to update a gem library's version but doesn't want to update their Ruby version.
If I were a maintainer of this gem I would take #9, but if you prefer #10's approach, that would be also fine.

Probably you are right. I'll go with releasing two versions: with #10 as last version with fix for 1.8 and #9 as first version without 1.8

Merged in fc4354c41ef8d6d74aa43d3b689807788b60cdd9