[Test-Proxy] eng/common templates

@weshaggard I'm super conflicted about where to put dotnet-devcert.pfx/crt.
I don't want to duplicate this file, but at the same time I also don't want to break the local docker build process into

Something that requires a build.ps1 to go and grab the certificates to place within the docker build context
Or to force folks to invoke the docker build process from the root of the repo, so that the build has context on the pfx.

A build’s context is the set of files located in or below the targeted invocation directory. (wherever you invoke docker build . from)
One cannot go ABOVE the build context to retrieve files 👎

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

@scbedd one possible solution: you could publish another docker image from tools that just contains the dev cert and the desired path, and then use multiple FROM directives to overlay your "test proxy assets" filesystem into the image build. That way you wouldn't need any external directory context, and could manage updates to the dev cert easily.

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

@benbp I am going to head this direction. First thing I'm going to do is force the build of the current dockerfile images from the root of the repo, thereby allowing access to the common assets. After that, I'll add two docker images that abstract the build of those assets. I would do it now, but I need to get this merged quickly.

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow


dbt should never exit with a stacktrace

cc @cmcarthur

throw stacktrace in logfile
report error

wishful thinking. let's make issues for specific stack traces as they pop up. closing

This hasn't been an issue for some time, and we're now logging the backtrace to logs/dbt.log. Closing


Courses are gone Mr. Founder

Dragged a course from the bottom of the term to top and all the courses and terms disappeared uh oh
Tried it with other courses, now moving any course from anywhere on the list to the top makes everything disappear
Refreshing the page brought back everything

Solved, thanks!


Contact form for mobile version portfolio

Contact form created for the mobile version of the portfolio.

🟢 STATUS: APPROVED 🟢
Hello @Zia123456 👋,
Your project is complete! You followed all the requirements, feel free to merge it! 😄
Congratulations! 🎉

Highlights
✔ Linters are passing successfully.
✔ Implemented all the changes requested by the previous reviewer. Well done!
Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Attempting a connection fails: missing field datapackage_version

https://github.com/ryanisaacg/archipelago_rs/blob/89580f293274cdbe34ef3dbb9c3b431b6e986bd7/src/protocol.rs#L190-L203
datapackage_version was removed in Archipelago 0.3.7 and is now preventing any connections.
https://github.com/ArchipelagoMW/Archipelago/commit/2cdd03f78624e07f2a943381500f93e8c3b5cb23#diff-2fdfc3f0c7765b3008f036da659a2b55754707a68a56e27b396fedb902e2cbe9

Thanks for the report! Fixed that up in 73a7fcfe94949cf9fe24a2d276b35f03f8f14e3f


how to use a proxy for using spotdl

how to use a proxy for using spotdl

Please follow our issue templates when reporting bugs or requesting features.
This is a question better suited for the Discord server as it is not a bug or a feature req.


meta: usefulness of a Strings/Bytes utils in forge-std?

Forge's ffi cheatcode accepts an array of strings. This generally works well for passing shell commands, but becomes troublesome when those commands have to include data or arguments represented by solidity variables.
Other than OpenZeppelin's Strings library, which only handles uints, I am not aware of any other common String conversion libraries. Most solutions are home grown.
If FFI grows in popularity, it might be helpful to expose a library that helps with the conversion back and forth between strings consumable by non-evm Web3 libraries and EVM variables. For example, if you want to pass a bytes memory array to FFI, you need to implement your own function like this (copied from the differential testing tutorial):
library Strings2 {

    ///@dev converts bytes array to its ASCII hex string representation
    /// TODO: Definitely more efficient way to do this by processing multiple (16?) bytes at once
    /// but really a helper function for the tests, efficiency not key.
    function toHexString(bytes memory input) public pure returns (string memory) {
        require(input.length < type(uint256).max / 2 - 1);
        bytes16 symbols = "0123456789abcdef";
        bytes memory hex_buffer = new bytes(2 * input.length + 2);
        hex_buffer[0] = "0";
        hex_buffer[1] = "x";

        uint pos = 2;
        uint256 length = input.length;
        for (uint i = 0; i < length; ++i) {
            uint _byte = uint8(input[i]);
            hex_buffer[pos++] = symbols[_byte >> 4];
            hex_buffer[pos++] = symbols[_byte & 0xf];
        }
        return string(hex_buffer);
    }
}

There are likely other examples as well. Opening up here for discussion to see if others think it's worth including a library, and if so what features we would want to support.

@gakonst What would be involved in making ffi more user friendly so it can e.g. handle the ABI encoding/decoding for you? Not sure how feasible that is.
My main hesitation is that this is a good stopgap but hard to get perfect. Main example I can think of is ffi'ing to a script that takes an address input. The only libs I've seen will convert addresses to hex strings by going through uint, so leading zeros on your address get truncated. You can of course account for that in your script, but that's still tedious/bad UX.
So wondering if forge-std is the right place to fix this vs. improving ergonomics of the cheat-code then perhaps having forge-std overloads to improve UX?

I think let's gather some more examples of people struggling with FFI?
Then we could:

Add more ways to call FFI in Foundry EVM (similar to how we allow overloading of vm.expectRevert)
Add wrappers which internally do abi.encode / abi.decode to forge-std

But before we know how people use it we're flying blind

Makes sense. I have seen 1-2 other repos implementing this bytes conversion, but nothing else so far. Will post other examples to this thread as I encounter them.

Is this issue now obsolete due to vm.toString, or is there something else needed to close this?

Obsolete! Closed.


Update README.md

Thanks @gaapt, though I think those are rather technical resources, don't you think?

Indeed.
I've just changed.

Okay, I have squashed the commits and changed the message in ba2f1cbf887916eb98437e66031909ad9e6f8883. Thanks!


Added link to G-Cloud guidance

https://trello.com/c/gYChLact/198-link-to-guidance-on-g-cloud-updates-page

Cool - the link works for me now locally. The spacing looks a little cramped next to the deadline dates below it though. What do you think?

Yup I agree! Do I just need to add a  or similar to make the line
break?
Stefan
On Fri, 5 Apr 2019 at 16:25, Kat<EMAIL_ADDRESS>wrote:

Cool - the link works for me now locally. The spacing looks a little
cramped next to the deadline dates below it though. What do you think?
[image: supplier-updates-guidance-link]
https://user-images.githubusercontent.com/3492540/55638521-4d5fba00-57bf-11e9-92ce-a5397d6e18c6.png
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/alphagov/digitalmarketplace-supplier-frontend/pull/1024#issuecomment-480317728,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AawNK1Oau-TeFBGtK6jXs3VINaLH-lQQks5vd2r3gaJpZM4calm-
.

--
Stefan Nicolaou | Content Designer, Digital Marketplace
Government Digital Service | Cabinet Office
07825 865240
<EMAIL_ADDRESS>The White Chapel Building • 10 Whitechapel High Street • London • E1 8QS

@pocketstefan Yes, stick a <br /> after the closing </p>. That should do it 👍

Great thank you! I've added the line break.
On Mon, 8 Apr 2019 at 15:36, Kat<EMAIL_ADDRESS>wrote:

@pocketstefan https://github.com/pocketstefan Yes, stick a  after
the closing . That should do it 👍
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alphagov/digitalmarketplace-supplier-frontend/pull/1024#issuecomment-480858751,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AawNKyhOxEzbxpCJxoVkMO4jNRO-fer-ks5ve1P6gaJpZM4calm-
.

--
Stefan Nicolaou | Content Designer, Digital Marketplace
Government Digital Service | Cabinet Office
07825 865240
<EMAIL_ADDRESS>The White Chapel Building • 10 Whitechapel High Street • London • E1 8QS

@pocketstefan Great - go ahead and merge it 👍


Filter out / remove assets on the front

When you have registered an asset (dataset or objective for instance) that has bug a in it, it would to be nice to be able to remove it from the front. I know we can not delete it but move it to "trash" somehow would be good.
I fear that after experimentation with Substra, my front page will be filled with datasets and objectives that do not work properly !
I know there is a filter option but it will be nice to automatically filter the 'trash' assets.

Total deletion of a dataset is not possible for reasons of traceability and reproducibility. But it is possible to imagine, for example, an additional step in the validation input of a dataset to avoid keeping too many dataset in error.
Setting up a workgroup to work on this issue and identify a solution.

Filter are now implemented in the python lib and web interface


Add "make docs" with typedoc and storybook

We generate api and storybook under docs/development.
Using typedoc for the generated api files.
How to use
make docs
Testing done
make docs outputs static html, and you can view that in the following folders:

docs/development/storybook
docs/development/api-reference

With the website using the docs branch at (https://github.com/kinvolk/docs/pull/14) inside the website repo you can do make docs run and have it serve the storybook and api-reference with hugo.

http://localhost:1313/docs/headlamp/0.2/development/api-reference/
http://localhost:1313/docs/headlamp/0.2/development/storybook/

Indeed. I have a discussion with the typedoc-plugin-markdown author on how best to proceed generating the front-matter. Will come back to this PR when that discussion is finished.

Indeed. I have a discussion with the typedoc-plugin-markdown author on how best to proceed generating the front-matter. Will come back to this PR when that discussion is finished.

Great! Thanks.
BTW, regarding Storybook, I am still a bit reluctant that it'll slow down the website build, so let's keep it out and just add insttructions in the docs on how to run it.
I guess running it locally also makes sense if you're looking into how to develop things anyway.

There's a fancy new theme for Hugo now thanks to the typedoc-plugin-markdown author which adds front-matter. This branch now uses the first release of the theme. It still has some rough edges with links in the side bar and slugs, which I'll debug.

This now:

does not build storybook with make docs
looks good in the website
uses the new hugo theme for the typedoc markdown, with some small fixes to the output until/if that plugin is improved at some point in the future.

The broken test is because of an unrelated issue, see temp hotfix in PR: https://github.com/kinvolk/headlamp/pull/211

I have added an extra option to the typedoc's config that hides the TOC on pages (since we already have one being generated by default).


[Feature] Feature propagation check CI

Component
other
Describe the feature you would like
Add check for feature propagation to CI, like reth has
https://github.com/paradigmxyz/reth/blob/c6add45c0dea83b0ea5ab2fb53030d1d2348bd89/.github/workflows/lint.yml#L238-L252
Additional context
No response

Hello @emhane , sorry for leaving a comment here without respecting the team rules. As a blockchain developer, I think my tech stack is fit for the team project. So I want to prove my skills by solving some team issues and join the team as a full-time developer. Could you give me a test task?


Linked article doesn't have the answer

The article linked at the end "Guest Access in Office 365 Groups" does not have the answer for how to make Guest objects visible in the global address list (GAL).  I assume the answer is powershell set-azureaduser -showinAddressList $true.  But, this is a big ticket item so we should have the answer documented.

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

ID: c6eb6697-4ace-adb6-c922-df8a9a485283
Version Independent ID: fd4ce34d-d55e-92af-d71a-625210ad3a63
Content: Properties of an Azure Active Directory B2B collaboration user
Content Source: articles/active-directory/b2b/user-properties.md
Service: active-directory
GitHub Login: @msmimart
Microsoft Alias: mimart

@realgregoryk Thank you for your feedback . We will have the suggestion reviewed and the document updated as required.

@msmimart
Michele, The section Can I make guest users visible in the Exchange Global Address List? does not explain how to do it. Also, the url link to the O365 document does not list it either.
Could we have the PS cmdlet set-azureaduser -showinAddressList $true added to the section ?

@realgregoryk Thanks so much for pointing this out. I've submitted a fix for this that will be published today. #please-close


Fixes #43

Fixes #43. Perhaps after the last else if, you could push the text. But as of now, -  and 8  panic when converted

Closing for better solution coming soon


Java: Please either autodetect the needed JDK version from pom.xml or document that setup-java must be called manually

For CodeQL runs on Maven Java projects, the default-generated workflow, which runs autobuild, fails with error: invalid target release: 17 if the project requires JDK 17 (or, apparently, any version besides JDK 8). The same failure occurs if autobuild is replaced with a basic mvn compile manual build step.
Several issues have comments describing a solution (namely, adding a setup-java action) -- but I could not find any mention of it in the CodeQL config docs (1, 2, 3, 4). In fact, these docs strongly suggest that setting up the right version of Java build tools is only required if using self-hosted runners:

From CodeQL code scanning for compiled languages:

Note: If you use self-hosted runners for GitHub Actions, you may need to install additional software to use the autobuild process. Additionally, if your repository requires a specific version of a build tool, you may need to install it manually. GitHub-hosted runners are always run with the software required by autobuild.

Further down:

If you're using self-hosted runners, the required version(s) of Java should be present:
If the runner will be used for analyzing repositories that need a single version of Java, then the appropriate JDK version needs to be installed, and needs to be present in the PATH variable (so that java and javac can be found).
If the runner will be used for analyzing repositories that need multiple versions of Java, then the appropriate JDK versions need to be installed, and can be specified via the toolchains.xml file. This is a configuration file, typically used by Apache Maven, that allows you to specify the location of the tools, the version of the tools, and any additional configuration that is required to use the tools. For more information, see "Guide to Using Toolchains" in the Apache Maven documentation.

Many people have tripped over this: 1, 2, 3, 4, 5.
There was already an intention to autodetect the needed JDK version, which would be the ideal solution. (It could be implemented by looking for any <maven.compiler.target/> element in pom.xml.) But if that's tricky, then please at least document that manually adding setup-java to the workflow is needed for JDK versions other than 8.

GitHub-hosted runners are always run with the software required by autobuild.

That statement is overly optimistic ;-) GitHub-hosted runners have several versions of Java pre-installed, but it definitively does not contain every possible version. According to internal.ubuntu-22.04.json the current github-hosted runner image contains:
        {
          "NodeType": "HeaderNode",
          "Title": "Java",
          "Children": {
            "NodeType": "TableNode",
            "Headers": "Version|Environment Variable",
            "Rows": [
              "8.0.392+8|JAVA_HOME_8_X64",
              "11.0.21+9 (default)|JAVA_HOME_11_X64",
              "17.0.9+9|JAVA_HOME_17_X64",
              "21.0.1+12|JAVA_HOME_21_X64"
            ]
          }
        },

The CodeQL autobuilder looks in the pom.xml file for hints about the required Java version and should pick the best matching version from the ones above and otherwise falls back to JAVA_HOME or the one on the PATH. The actions/setup-java Action sets JAVA_HOME to a user specified Java version, and is indeed the right fix in case CodeQL cannot determine the right version to use or when the right version is not available on the runner.
Could you share the pom.xml file and relevant bits of the logs for investigation? Perhaps the autobuilder's version guessing logic can be improved.

NB. we have intended to detect needed version from pom.xml more ambitiously for a while, but that work is stuck because we found that roughly equal numbers of repositories were fixed thanks to finding useful cues to install a particular version, as were deceived into installing an incompatible Java version by some misleading apparent hint in the pom.xml file. We intend to revisit the matter to try to refine our heuristics, but it's not easy.


[BUG]: CSM docs home page is not updated with latest matrix

Bug Description
CSM docs home page should be updated with latest support
Logs

Screenshots
No response
Additional Environment Information
No response
Steps to Reproduce
Resiliency is supported for PowerMax
Application mobility is only supported for PowerFlex via Apex Navigator for Kubernetes
Expected Behavior
Following should be updated correctly
Resiliency is supported for PowerMax
Application mobility is only supported for PowerFlex via Apex Navigator for Kubernetes
CSM Driver(s)
All drivers
Installation Type
No response
Container Storage Modules Enabled
No response
Container Orchestrator
NA
Operating System
NA

/sync


[Feature] 12 Hour AM/PM Support?

This library is awesome except for one flaw. There doesn't seem to be a way to set 12 hour time. rmc-date-picker supports this but has a lack of themes and the time doesn't seem to roll over continuously like this library. I was wondering if there is already support for this I'm just overlooking?

@ethanx94 you can customize the format of the hour display content.
such as
const formatAMPM = (date) => {
    let hours = date.getHours();
    let ampm = hours >= 12 ? 'pm' : 'am';;
    hours = hours % 12;
    hours = hours ? hours : 12; // the hour '0' should be '12'
    return hours + ampm;
}

// ....

render() {
    return (
        <DatePicker
        dateConfig={{
            'hour': {
                format: value => this.formatAMPM(value),
                caption: '时',
                step: 1,
            },
        }} />
    );
}

@lanjingling0510 Nice example, but the question is if it is possible to have AM/PM as a third element with possibility to scroll in the same way as minutes or hours


check if rpm installed before downloading

If the ['oracle-instantclient']['public-url'] is down for some reason this cookbook will fail every chef run
recommend adding not_if block to the remote_file and yum_package resources, to not even bother checking or trying to download every chef run if the package is already installed
not_if "rpm -qa | grep -qx node['oracle-instantclient']['basic-rpm']"
if this is a wanted addition I can work on a pull request?

wrong cookbook.. closing


Unsubscribe from Issue/PR

+1 to move this up the queue :)

I think it would be nice if this was another swipe action on the main notification list too.

Oooh that could be nice.

Tracking in #352 #351


ML 1.10: P-Value (D)

Welcome to 'ML' Team, good to see you here
This issue will helps readers in acquiring all the knowledge that one needs to know about P-Value.
To get assigned to this issue, add your Batch Numbers mentioned in the spreadsheet of "Machine Learning", the approach one would follow and choice you prefer (Documentation, Audio, Video). You can go with all three or any number of options you're interested to work on.
Domain : Machine Learning
Points to Note :

The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.

"Issue Title" and "PR Title should be the same. Include issue number along with it.

Changes should be made inside the Machine Learning/Machine_Learning/Statistics_for_Machine_Learning Branch.

Follow Contributing Guidelines & Code of Conduct before start Contributing.

This issue is only for 'GWOC' contributors of 'Machine Learning' domain.

To be Mentioned while taking the issue :

Full name
Batch Number
GitHub Profile Link
Which type of Contribution you want to make :

[ ] Documentation

All the best. Enjoy your open source journey ahead. 😎

/assign

/assign

@imcoza Read the above comment properly and ask in the the format.

Name: Hrugved Kolhe
Batch: 3
GitHub Profile
[x]  Documentation

/assign

@hrugved06  Great, you can work on it.

Update?

Update?

I'm on it

okay, How many more days you need?

okay, How many more days you need?

I'll finish it by tommorrow

great

Can I work on this ?
Name: Tanvi Deshmukh
Batch: 5
Documentation

Can I work on this ?
Name: Tanvi Deshmukh
Batch: 5
Documentation

Please find a different issue.. I'm almost done with it :-)


Clean up webpack from unified-pipeline package

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


fix "func NewClient" and "func NewInlineClient" without options.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

31 of 54 (57.41%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.4%) to 97.894%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

clients.go
30
53
56.6%

Totals

Change from base Build<PHONE_NUMBER>:
-0.4%

Covered Lines:
5019

Relevant Lines:
5127

💛  - Coveralls

Hi @chenji1990! Thanks for the PR. I was just refactoring this early this morning as there are a couple of other areas this touches on that were overlooked (eg. maximum outbound quota), I will try to merge it shortly and release as v2.0.4

Closing as duplicated, by many thanks and fixed in v2.0.4 :)


Malloc

There is a potential null pointer access in sdsnewlen if malloc returns NULL and const void *init was set to null as well:
https://github.com/redis/hiredis/blob/be2c4272c434c21149f8603a6f61e5e348539ebe/sds.c#L93
 #define s_malloc malloc
 // ...
 sh = s_malloc(hdrlen+initlen+1);
 if (!init)
     memset(sh, 0, hdrlen+initlen+1);
 if (sh == NULL) return NULL;

Indeed. We should just move the null check above the memset check.
Care to send a PR here and to sds?
fun fact: The null check will probably be optimized out in the current code, due to the compiler deciding that sh can't be null anymore as it was used in a non-nullable location already.


Error when loading the site

It sounds cool, but it doesn't seem to work.

My bad. Just fixed it!


docs: change app.py indentation to fix problem under do_GET function

Was preventing hello-world python example from working properly.
hello-world-python$ up logs
  11:27:25am FATA error: initializing relay: waiting for http://<IP_ADDRESS>:38549 to be in listening state: timed out after 15s
  11:27:25am INFO starting name: task type: server
  11:28:14am INFO found free port 40745 version: $LATEST
  11:28:14am INFO executing "python app.py" version: $LATEST
  11:28:14am INFO proxy (pid=12) started version: $LATEST
  11:28:14am INFO waiting for http://<IP_ADDRESS>:40745 to listen (timeout 15s) version: $LATEST
  11:28:14am ERRO   File "app.py", line 6
    self.send_response(200)
       ^
  11:28:29am INFO starting name: task type: server
  11:28:29am INFO found free port 41113 version: $LATEST
  11:28:29am INFO executing "python app.py" version: $LATEST
  11:28:29am INFO proxy (pid=12) started version: $LATEST
  11:28:29am INFO waiting for http://<IP_ADDRESS>:41113 to listen (timeout 15s) version: $LATEST

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

thankya!


Fix balance reconciliation bug

Investigation into reconciliation test failure -->
Issue with balance reconciliation with transaction 0xeec258cae2cf481a94a8b33cddba7db020f9bb1cb9f9e1817212137312b00d12

account/balance and sum of relevant block/transaction amounts do not match, causing the reconciliation issue.

write-up here
(tests still running (last 10%) but fix deployed/mostly tested)


Butane ignition v3

What this PR does / why we need it:
Add support for ignition v3_3 using Butane instead of CLC.
This implies extend the ignition interface to use butane from coreos
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Checklist:

[ ] squashed commits into logical changes
[ ] includes documentation
[x] adds unit tests
[ ] adds or updates e2e tests

@alexander-demicev could you please take a look the changes to keep the api as is, adding the butane backend???

changed to fcos 1.4 which is equivalent to ignition v3.3 (required 3.3 for slemicro 5.5)

tests locally passed and cluster has been provisioned with the ignition from template adding some custom additionalConfig about root password override.


Group.replaceChild() algorithm is too heavy

It seems to do some unnecessary stuff, like de-parenting objects before calling a function that also de-parents them. Worth investigating and cleaning up the object flow.

In addition to being heavy, the function also set the new child's parent to null. There was no reason to do this, and it could mess up the scene later on.
Fixed and streamlined.


Add guidelines for repository inclusion

As discussed by the Solid Team, the GitHub organization github.com/solid will in the near future only contain repositories that are managed by the Solid team.
This pull request adds those guidelines into the process.

I apologize for not responding sooner. The team meeting is at a time when I can rarely if ever make it.
While I strongly support cleaning up the repo of stuff that only serves to confuse people, I wonder if this takes it too far. I wonder if it would be better to actually have a team approval process, and not put that bar too high. If I understand the proposal, this would also move stuff like mashlib out of there, which has been there since the dawn of ages.
There is value to having stuff in the same organisation, it makes it easier to maintain a group of writes and stuff like that to help review.

If I understand the proposal, this would also move stuff like mashlib out of there, which has been there since the dawn of ages.

More specifically, there would be a separate SolidOS (or similar) organization that groups all of the Mashlib things together, so there is a better overview. (And note that redirects will be put in place.)

As suggested I repost here.

Implementations are not neutral; they make certain decisions regarding implementations.

This imply removing all solid history and relation between implementation and specification.
This is quite a harsh step. Clarification is good, but making it a white page has some signification.
This remove auth, namespace, nss, mashlib, solidcommunity.net, tests ...
In a way this disregard the effort made by community contributors to solid by way of implementations and not only to specification.
Does solid/team do not cover some form of community management ?
Does solid-contrib reflects the community involvement ? Be it university contributions or individuals ... ?

(Thanks @bourgeoa, will repeat and extend my answer here as well for completeness of the discussion.)

This imply removing all solid history and relation between implementation and specification.

I think rather we should set up better relations. It would be good to maintain a list of implementations of the specifications. The current github.com/solid only has a very partial list.
Would it the additional proposal at https://github.com/solid/team/issues/23 maintain that relation?

This remove auth, namespace, nss, mashlib, solidcommunity.net, tests ...

We would keep namespace and solidcommunity.net.
Namespace (if it is the repo I think it is) because it fits "specification documents"; solidcommunity.net because "materials for Solid project websites".
We would give auth libraries, NSS, Mashlib, tests their own spaces, as they are opinionated implementations of the specification. We should still link to all of them (see above).

In a way this disregard the effort made by community contributors to solid by way of implementations and not only to specification.

I don't see how. It's not a value judgment.
Just a recognition that it would be unfair to promote some implementations over others.
Now, we are selectively promoting some implementers but not others.
I think linking can help as well.

Does solid/team do not cover some form of community management ?

Not at the moment, it seems; whether or not code is on github.com/solid seems to be random at the moment.

Does solid-contrib reflects the community involvement ? Be it university contributions or individuals ... ?

It could; however, I don't see a need to centralize.


feat: Added support for X25519KYBER768DRAFT00_AES128GCM_SHA256_Ed25519

Codecov Report

Merging #48 (1195d41) into feat/d20 (58430d3) will increase coverage by 0.07%.
The diff coverage is 93.65%.

@@             Coverage Diff              @@
##           feat/d20      #48      +/-   ##
============================================
+ Coverage     85.47%   85.54%   +0.07%
============================================
  Files           171      171
  Lines         21652    21678      +26
============================================
+ Hits          18507    18545      +38
+ Misses         3145     3133      -12


adjust monitoring and health widgets

Description
Changes proposed in this pull request:

...
...
...

Related issue(s)

/retest

/test pull-busola-integration-cluster-k3d

/retest

/retest


Security Issue: Local Port Scan

Hi,
during a vulnerability assessment, I've seen this script included into a WordPress plugin, that allowed me to check if a TCP port was listening on the localhost or local network of my target by reading the different returned errors:
# An open 22/tcp port:
$ curl -s 'http://target/wp-content/plugins/-redacted-/html2canvasproxy.php?url=http://<IP_ADDRESS>:22'
console.log("error: html2canvas-proxy-php: This request did not return a HTTP response valid");

# A closed 1234/tcp port:
$ curl -s 'http://target/wp-content/plugins/-redacted-/html2canvasproxy.php?url=http://<IP_ADDRESS>:22'
console.log("error: html2canvas-proxy-php: SOCKET: Connection refused(111)");

Moreover, in the specific environment of the plugin, I was able to store a "Cross-Site Scripting" making this script to get a text/html content that includes not sanitized JavaScript syntax. Obviously, in this case, the problem is not related to html2canvas script but to the way is used.
Probably, in my humble opinion, it should not be possible to request ports different then tcp/80 and tcp/443 if not explicitly allowed by configuration, and it should remove javascript syntax before store the output file.
Sorry for any inaccuracies, let me know if you need more details.

@theMiddleBlue I clearly understand, thanks for the suggestions, about sanitizing the HTML and I will also block the ports (allowed by defined('ALLOWED_PORTS', array(80, 443))) - Thanks! :)

@theMiddleBlue security improvements: https://github.com/brcontainer/html2canvas-php-proxy/commit/2f6680493ff5d9fe63f045babe4e8179b8aab9fe
For domains change this line define('H2CP_ALLOWED_DOMAINS', array( '*' ));:

Use * for allow all domains
For use sub-domains use like this *.site.com
For fixed domains use like this array( 'site.com', 'www.site.com' )

For define allowed ports use define('H2CP_ALLOWED_PORTS', array( 80, 443 ));, default ports are 80 and 443


Limit related posts to those in the same language

Testing

Visit http://localhost:8000/about-us/blog/whats-ahead-for-bank-of-america-and-its-customers-zh/

Note the "Further Reading" section is all in Chinese

Visit http://localhost:8000/about-us/blog/strengthening-information-accessibility-for-consumers-limited-english-proficiency-zh/ and note that the "Further Reading" section is gone.

Unfortunately due to how we add spacing in the streamfield-sidefoot, the EmailSignup block is unable to get flush-top at this time. I don't foresee this being too big of an issue, because most things have RelatedPosts

Visit http://localhost:8000/about-us/events/archive-past-events/special-populations-presentation/

Note that "Further Reading" is all in English

Ideally in streamfield-sidefoot.html, we'd have all blocks called as {% include_block block %} and then didn't have the if/else flow control in the for loop, but barring that, you could update that file's macro to:

This is clever! I think I'm going to merge as is though and contemplate a rework of this whole file. streamfield-sidefoot.html ALREADY feels too complicated and this kinda takes it too far beyond even for me.
(probably something as simple as CSS applying to a :first-of-type instead of adding the specific class)


Kernel Optimization for Linear Layer 🚀🚀🚀

Description
This PR optimize all forward and backward kernels for Linear layer for NVIDIA GPU by leveraging the shared memory and register files.
Changes Made

Added new kernels for forward and backward passes in Linear layer
Fixed memory leak across layers
Merged state_backward and param_backward to backward function (see base_layer.cpp)
Added small-size benchmark that compares TAGI with Pytorch

Related Issue(s)
close #71
Notes for Reviewers(s)

7-10x faster on Linear layer having more than 4096 nodes, but 1-3x below that threshold
Please don't merge right away when you're done reviewing it. I want to remove all the temporary imports for the realease
Here is the command to run the small-size benchmark between tagi and pytorch on CUDA device

TAGI
python -m examples.mnist_bench tagi

Pytorch
python -m examples.mnist_bench torch

Memory usage in cuTAGI is only 15-20% higher than PyTorch which is really a good thing. I am surprised because theoretically, TAGI approach stores 2x more memory on each variable -> need further investigation.
learning rate for the pytorch model has not optimized yet, so its accuracy is not great. In the other hand, TAGI seems to be less sensitive to the \sigma_V because it achieves a better performance with a random guess of \sigma_v. Enjoy the speed 🚀

@lhnguyen102 again, this is unreal 🤯🚀. I tested on our machine and this is 2:17 for TAGI vs. 2:26 for Torch. I will let @miquelflorensa Miquel test the ResNet architecture to confirm that his issue is fixed.


Memory leak when substrate run as validator

Is there an existing issue?

[X] I have searched the existing issues

Experiencing problems? Have you tried our Stack Exchange first?

[X] This is not a support question.

Description of bug
the money(resident memory) will increase about  100M per four hours  , and at last will  run out fo menory  and break.
Server specs 1:
Intel(R) Xeon(R) Gold 6151 CPU @ 3.00GHz 4 cores
8GB RAM
Ubuntu 20.04
Server specs 2:
Intel(R) Xeon(R) CPU  X5670  @ 2.93GHz  12 cores
64GB RAM
Ubuntu 20.04
(by the way , why cpu usage is alway hight (betwwen 20%-80%)  even if there is no trascation)
Steps to reproduce
git clone https://github.com/paritytech/substrate.git
git checkout   monthly-2022-08
cargo build --release
./target/release/substrate     build-spec  --chain=dev>  spec-dev.json
./target/release/substrate  build-spec   --chain spec-dev.json --raw > spec-dev-raw.json
./target/release/substrate    -d .chain    --name AlicesNode1  --chain=spec-dev-raw.json  --rpc-cors='all'  --rpc-methods Unsafe   --alice
the money(RES) will increase about  100M per four hours  , and at last will  run out fo menory  and break.

Can you please try latest master?
CC @koute

i tried   monthly-2022-08 on two different server.
i have also tried   the lastest master for servery hours.
i will try lastest master again for more thime

And master didn't showed the same behavior?


adding str to bytes conversion

When running a task generated with the CLI using dbm_to_storage.json as a template, in an environment with Python 3.7, it throws the next error:
>> python starthinker/task/dbm/run.py test_dbm_to_storage.json -u $STARTHINKER_USER -s $STARTHINKER_SERVICE -p $STARTHINKER_PROJECT

Traceback (most recent call last):
  File "/home/herni/anaconda3/lib/python3.7/http/client.py", line 987, in send
    self.sock.sendall(data)
  File "/home/herni/anaconda3/lib/python3.7/ssl.py", line 1031, in sendall
    with memoryview(data) as view, view.cast("B") as byte_view:
TypeError: memoryview: a bytes-like object is required, not 'str'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "starthinker/task/dbm/run.py", line 99, in <module>
    dbm()
  File "/home/herni/Desktop/starthinker-poc/starthinker/starthinker/util/project/__init__.py", line 355, in from_parameters_wrapper
    func()
  File "starthinker/task/dbm/run.py", line 96, in dbm
    if rows: put_rows(project.task['auth'], project.task['out'], rows)
  File "/home/herni/Desktop/starthinker-poc/starthinker/starthinker/util/data/__init__.py", line 269, in put_rows
    object_put(auth, file_out, rows_to_csv(rows))
  File "/home/herni/Desktop/starthinker-poc/starthinker/starthinker/util/storage/__init__.py", line 161, in object_put
    status, response = request.next_chunk()
  File "/home/herni/Desktop/starthinker-poc/starthinker/starthinker_virtualenv/lib/python3.7/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/home/herni/Desktop/starthinker-poc/starthinker/starthinker_virtualenv/lib/python3.7/site-packages/googleapiclient/http.py", line 1046, in next_chunk
    self.resumable_uri, method="PUT", body=data, headers=headers
  File "/home/herni/Desktop/starthinker-poc/starthinker/starthinker_virtualenv/lib/python3.7/site-packages/google_auth_httplib2.py", line 198, in request
    uri, method, body=body, headers=request_headers, **kwargs)
  File "/home/herni/Desktop/starthinker-poc/starthinker/starthinker_virtualenv/lib/python3.7/site-packages/httplib2/__init__.py", line 1994, in request
    cachekey,
  File "/home/herni/Desktop/starthinker-poc/starthinker/starthinker_virtualenv/lib/python3.7/site-packages/httplib2/__init__.py", line 1651, in _request
    conn, request_uri, method, body, headers
  File "/home/herni/Desktop/starthinker-poc/starthinker/starthinker_virtualenv/lib/python3.7/site-packages/httplib2/__init__.py", line 1558, in _conn_request
    conn.request(method, request_uri, body, headers)
  File "/home/herni/anaconda3/lib/python3.7/http/client.py", line 1244, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/home/herni/anaconda3/lib/python3.7/http/client.py", line 1290, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/home/herni/anaconda3/lib/python3.7/http/client.py", line 1239, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/home/herni/anaconda3/lib/python3.7/http/client.py", line 1065, in _send_output
    self.send(chunk)
  File "/home/herni/anaconda3/lib/python3.7/http/client.py", line 991, in send
    self.sock.sendall(d)
  File "/home/herni/anaconda3/lib/python3.7/ssl.py", line 1031, in sendall
    with memoryview(data) as view, view.cast("B") as byte_view:
TypeError: memoryview: a bytes-like object is required, not 'str'

Referring to the next line:
https://github.com/google/starthinker/blob/818b036e80b5d1444ee71ae5aade7d10e868415d/starthinker/util/data/__init__.py#L269
Apparently this happens because rows_to_csv() returns a StringIO, and object_put() needs a BytesIO, at least for this specific use case. This is easily fixed by replacing that line with:
import io
string_rows = rows_to_csv(rows)
byte_rows = io.BytesIO(string_rows.read().encode('utf8'))
object_put(auth, file_out, byte_rows)

Would it be better to change rows_to_csv to use BytesIO instead of StringIO step here?

Would it be better to change rows_to_csv to use BytesIO instead of StringIO step here?

Sure thing! I didn't propose it because I wasn't sure if the StringIO was a design requirement of rows_to_csv or not.
Maybe even better, we could have rows_to_csv to expect a stream argument, which could be StringIO or BytesIO depending the use case. It could even have a default value of StringIO to avoid breaking compatibility with other calls.
This approach would make it more flexible and easier to test.


Migration to FactoryBot 5.0 (#813)

The breaking change in 5.0.0 was "Changed: use_parent_strategy now defaults to true, so by default the build strategy will build, rather than create associations".
Fixed by setting use_parent_strategy back to false.

I concurr.  I thought I had tried this, but nope.  Thanks.


Got 1200-1500 errors when importing

Can't import Dialogic 2
Describe the bug
In Godot v4.2.2 and 4.3, when I try to import Dialogic 2 Alpha 16, 15, 13 into the project, I would get 1200-1500 errors and the addon is not showing up in the project.
To Reproduce
Use the steps described in the installation tutorial to reproduce it.
Expected behavior
You get 1200-1500 errors
Screenshots

]
System (please complete the following information):

OS: [Windows]

Godot Version: [4.2.2, 4.3 stable]

Dialogic Version: [2.0 Alpha 16, 15, 13]

Solutions
Only once it worked in an empty 4.2.2 file,(with only 65 errors about missing texture) but I can not reproduce it.
Workaround
I tried two different versions of Godot and three different versions of Dialogic.
Possible fixes
Unfortunately, I don't know. If you also encounter this, try import it into an empty file (not always work)

Looking at your screenshots, you have not installed Dialogic correctly.
Please follow the instructions in our Docs: https://docs.dialogic.pro/getting-started.html#1-installation--activation

Nice to hear it works now.
It works just fine for users installing Dialogic 2 for Godot 4.3.


Parameter List Writer

Currently, return parameters are handled in this writer, but the syntax for them has changed. Now return parameters are not named and you either return a tuple (in which case, each type has to be specified) or a simple type. Since this is so different from the way input parameters are handled, the suggestion is to create another writer just for return parameters. I'll create a different issue for that.

The issue for return parameters #950


NO-JIRA: add test-e2e-monitoring placeholder test

should unblock https://github.com/openshift/library-go/pull/1823
it works on my local machine:
make test-e2e-monitoring
go test -mod=vendor -race ./test/e2e-monitoring/...
ok  	github.com/openshift/library-go/test/e2e-monitoring	(cached)

OK, ci/prow/e2e-monitoring  run TestResourceVersionApplication.

/assign @dgrisonnet @rexagod

I think we should activate the test-e2e-monitoring rule in https://github.com/openshift/library-go/pull/1823 instead.

/close
pulled into https://github.com/openshift/library-go/pull/1823


Use with binder

I made a repo to show how to use ocaml-jupyter with binder.  It's as simple as "click here" to open up a jupyter notebook.

Thank you very much! This would be useful to have described in the README imo

Thanks @mseri that's what I was thinking.  There are a few things to consider:

We could incorporate this into the ocaml-jupyter repository itself.  But binder requires Dockerfiles to be in the root directory.  But we could have a branch dedicated for the binder Dockerfile.

I noticed that some features do not work (like #thread).  Maybe this is because I'm not using the datascience Docker images as a base?

Thank you!

We could incorporate this into the ocaml-jupyter repository itself. But binder requires Dockerfiles to be in the root directory. But we could have a branch dedicated for the binder Dockerfile.

I think it is better to split the ocaml-jupyter repository and your binder+ocaml-jupyter repository. As @mseri said, please explain about how to use ocaml-jupyter with binder in README.

I noticed that some features do not work (like #thread). Maybe this is because I'm not using the datascience Docker images as a base?

#use "topfind" is required before #thread. topfind is loaded in the ~/.ocamlinit file in many environments, so that I don't write it explicitly in my notebooks. RUN echo '#use "topfind";;' > /home/opam/.ocamlinit solves your problem.

Thanks, topfind was indeed the problem.  I filed a pull request (#159).

Merged #159.


[RUNTIME] Add cudnn conv3d

This PR is to add cudnn conv3d in runtime module. And it also modified the existing conv2d to have them use a unified manner to be implemented. This could be the prerequisite of 3D convolution( #4400 ) implementation.
@masahi

I have added the output checking, but it seems there are some accuracy issue. But I didn't find any incorrecion in implementation. Would you check in you platform if convinient? Thanks!

I also got errors.
For 2D,
Mismatch: 0.00229%
Max absolute difference: 1.74964048e-06
Max relative difference: 0.00205616
 x: array([[[[-8.124456e-01,  1.603181e+00, -4.913126e+00, ...,
           3.991851e-01, -1.673781e-01, -1.984869e+00],
         [ 1.048217e+00, -5.826425e-01,  2.729261e+00, ...,...
 y: array([[[[-8.124456e-01,  1.603181e+00, -4.913125e+00, ...,
           3.991851e-01, -1.673780e-01, -1.984869e+00],
         [ 1.048217e+00, -5.826426e-01,  2.729261e+00, ...,...

For 3D,
Mismatch: 0.00062%
Max absolute difference: 6.57308036e-06
Max relative difference: 0.4497126
 x: array([[[[[-1.243277e+00,  2.456227e+00, -3.557485e+00, ...,
           -2.807276e+00, -8.497746e-01,  1.374343e+00],
          [-2.806745e+00,  1.923186e+00, -6.345257e+00, ...,...
 y: array([[[[[-1.243278e+00,  2.456226e+00, -3.557484e+00, ...,
           -2.807276e+00, -8.497746e-01,  1.374343e+00],
          [-2.806744e+00,  1.923186e+00, -6.345256e+00, ...,...

But from max abs diff, the result looks correct. cuDNN uses different conv algorithm so some difference in numerical accuracy is expected. I think you can just specify atol=1e-5 for both cases.
You need to do rebase and resolve conflict with the latest master. #4353 modifed cuDNN.

I have rebased to the master

@optima2005 can you fix the CI problem? Then I can do the review and merge.

@masahi  fixed.

@optima2005 do we still need separate python functions forward, find_algo, output_shape for 2D and 3D cases? We can pass dimension (2d or 3d) and shapes, padding, strides etc by pointers to each functions.

ok, it doesn't seem obvious how to pass a python list of numbers C++ packed function ...

@optima2005 please have a look at this. It is possible to pass a python list to C++ func by void pointer.
Can you try unify forward, find_algo, output_shape python functions that we have for both 2D and 3D into one? We can remove all the uglyness.

@masahi ,  could you advice how to write below code to use array?
    return _api.extern(
        oshape, [x, w],
        lambda ins, outs: _intrin.call_packed(
            "tvm.contrib.cudnn.conv.forward",
            conv_mode,
            tensor_format,
            algo,
            dims,
            pad,
            stride,
            dilation,
            ins[0],
            ins[1],
            outs[0],
            conv_dtype), name="y")

I got this error
self = <tvm._ffi.function.Function object at 0x3fff6ebb3240>
args = ('int32', 'tvm_call_packed', ['tvm.contrib.cudnn.conv.forward', 1, 0, 0, 2, [1, 1], ...], 4, None, 0)
temp_args = [["tvm.contrib.cudnn.conv.forward", 1, 0, 0, 2, [1, 1], [1, 1], [1, 1], tvm_stack_make_array(X, tvm_stack_make_shape(3...hape(16, 4, 3, 3), 0, 4, 0f, 0), tvm_stack_make_array(y, tvm_stack_make_shape(3, 16, 32, 32), 0, 4, 0f, 0), "float32"]]
values = <tvm._ffi._ctypes.function.TVMValue_Array_6 object at 0x3fff6adf16a8>
tcodes = <tvm._ffi._ctypes.function.c_int_Array_6 object at 0x3fff6adf1378>

    def __call__(self, *args):
        """Call the function with positional arguments

        args : list
           The positional arguments to the function call.
        """
        temp_args = []
        values, tcodes, num_args = _make_tvm_args(args, temp_args)
        ret_val = TVMValue()
        ret_tcode = ctypes.c_int()
        if _LIB.TVMFuncCall(
                self.handle, values, tcodes, ctypes.c_int(num_args),
                ctypes.byref(ret_val), ctypes.byref(ret_tcode)) != 0:
>           raise get_last_ffi_error()
E           tvm._ffi.base.TVMError: Traceback (most recent call last):
E             [bt] (3) /host/root/ligc/tmp/incubator-tvm/build/libtvm.so(TVMFuncCall+0x90) [0x3fff8d50dde0]
E             [bt] (2) /host/root/ligc/tmp/incubator-tvm/build/libtvm.so(+0x3cc1bc) [0x3fff8caac1bc]
E             [bt] (1) /host/root/ligc/tmp/incubator-tvm/build/libtvm.so(tvm::Array<tvm::Expr, void> tvm::runtime::TVMArgValue::AsObjectRef<tvm::Array<tvm::Expr, void> >() const+0x2ec) [0x3fff8caba96c]
E             [bt] (0) /host/root/ligc/tmp/incubator-tvm/build/libtvm.so(dmlc::LogMessageFatal::~LogMessageFatal()+0x60) [0x3fff8ca89960]
E             File "/host/root/ligc/tmp/incubator-tvm/include/tvm/packed_func_ext.h", line 140
E           TVMError: Check failed: ObjectTypeChecker<TObjectRef>: :Check(ptr): Expected type List[Expr] but get Array

python/tvm/_ffi/_ctypes/function.py:207: TVMError

Are you passing python lists? I think you can pass numpy arrays (not list) by void pointer using _get_np_int32_array_handle(). So it should be something like
_get_np_int32_array_handle(dims),
_get_np_int32_array_handle(pad),
_get_np_int32_array_handle(stride),
_get_np_int32_array_handle(dilation)

assuming dims, pad, etc are numpy array. See conv2d_output_shape for example of using _get_np_int32_array_handle.

Python arguments that are passed to C++ functions are converted to values that C++ can understand using this function.

_get_np_int32_array_handle works for conv_output_shape and conv_find_algo, but not for 'conv_forward', the problem is in the code snippet. If I changed it to
    return _api.extern(
        oshape, [x, w],
        lambda ins, outs: _intrin.call_packed(
            "tvm.contrib.cudnn.conv.forward",
            conv_mode,
            tensor_format,
            algo,
            dims,
            _get_np_int32_array_handle(pad),
            _get_np_int32_array_handle(stride),
            _get_np_int32_array_handle(dilation),
            ins[0],
            ins[1],
            outs[0],
            conv_dtype), name="y")

where pad, stride, and dilation are np.array(...,  dtype=np.int32), I got this error,
value = c_void_p(69268061568800)
    def convert_to_node(value):
        """Convert a python value to corresponding node type.

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

        if isinstance(value, string_types):
            return _api_internal._str(value)
        if isinstance(value, (list, tuple)):
            value = [convert_to_node(x) for x in value]
            return _api_internal._Array(*value)
        if isinstance(value, dict):
            vlist = []
            for item in value.items():
                if (not isinstance(item[0], _CLASS_NODE_BASE) and
                        not isinstance(item[0], string_types)):
                    raise ValueError("key of map must already been a container type")
                vlist.append(item[0])
                vlist.append(convert_to_node(item[1]))
            return _api_internal._Map(*vlist)
        if isinstance(value, NodeGeneric):
            return value.asnode()
        if value is None:
            return None

>       raise ValueError("don't know how to convert type %s to node" % type(value))
E       ValueError: don't know how to convert type <class 'ctypes.c_void_p'> to node

python/tvm/_ffi/node_generic.py:95: ValueError

Ok, can you push your change to find_algo and output_shape?

I put my changes are in https://github.com/optima2005/incubator-tvm.git (test branch). You can have a try if convenient. Thanks!

conv_output_shape, conv_find_algo, and conv_forward look good. Once we have them, we don't need conv2d_output_shape, conv3d_output_shape etc that just forward to corresponding generic function are not necessary. Please remove everything in here.
You can use conv_output_shape, conv_find_algo, and conv_forward from tests and topi. Can you update this PR according to this comment?

I'll look into how to fix passing python values to call_packed("tvm.contrib.cudnn.conv.forward"). It should be possible.

I remember some tutorials are using those conv2d APIs.  I am wondering if we should keep them for a while and mark them deprecated.

Right I wrote that tutorial :) cuDNN is used via topi, so you need to update this line. That one and the test cases in test_cudnn.py are the only place that use cudnn, so as long as you update them it is fine.

ok

@optima2005 Can you also quickly try using tvm.api.convert() function in call_packed? We are using to pass a python list of strings to C++, for example. It is used here and on the C++ side here.
I want to know if it is possible to pass arguments in call_packed via convert([pad_h, pad_w]) ... etc.

I may not have time now. I will look it tomorrow.

@optima2005 that's all right. I made a bunch of minor comments regarding code style. Please do not pass dim explicitly and keep std::vector around as much as possible.

@masahi , Thanks for the comments! I will revise them after I have fixed the pass array into C issue.
I changed to use  tvm.api.convert() solution, but still get below error:
self = <tvm._ffi.function.Function object at 0x3fff6d193318>
args = ('int32', 'tvm_call_packed', ['tvm.contrib.cudnn.conv.forward', 1, 0, 0, 2, [1, 1], ...], 4, None, 0)
temp_args = [["tvm.contrib.cudnn.conv.forward", 1, 0, 0, 2, [1, 1], [1, 1], [1, 1], tvm_stack_make_array(X, tvm_stack_make_shape(3...hape(16, 4, 3, 3), 0, 4, 0f, 0), tvm_stack_make_array(y, tvm_stack_make_shape(3, 16, 32, 32), 0, 4, 0f, 0), "float32"]]
values = <tvm._ffi._ctypes.function.TVMValue_Array_6 object at 0x3fff693b8d90>
tcodes = <tvm._ffi._ctypes.function.c_int_Array_6 object at 0x3fff693b8f28>

    def __call__(self, *args):
        """Call the function with positional arguments

        args : list
           The positional arguments to the function call.
        """
        temp_args = []
        values, tcodes, num_args = _make_tvm_args(args, temp_args)
        ret_val = TVMValue()
        ret_tcode = ctypes.c_int()
        if _LIB.TVMFuncCall(
                self.handle, values, tcodes, ctypes.c_int(num_args),
                ctypes.byref(ret_val), ctypes.byref(ret_tcode)) != 0:
>           raise get_last_ffi_error()
E           tvm._ffi.base.TVMError: Traceback (most recent call last):
E             [bt] (3) /host/root/ligc/tmp/incubator-tvm/build/libtvm.so(TVMFuncCall+0x90) [0x3fff8bd8de00]
E             [bt] (2) /host/root/ligc/tmp/incubator-tvm/build/libtvm.so(+0x3cc1dc) [0x3fff8b32c1dc]
E             [bt] (1) /host/root/ligc/tmp/incubator-tvm/build/libtvm.so(tvm::Array<tvm::Expr, void> tvm::runtime::TVMArgValue::AsObjectRef<tvm::Array<tvm::Expr, void> >() const+0x2ec) [0x3fff8b33a98c]
E             [bt] (0) /host/root/ligc/tmp/incubator-tvm/build/libtvm.so(dmlc::LogMessageFatal::~LogMessageFatal()+0x60) [0x3fff8b309980]
E             File "/host/root/ligc/tmp/incubator-tvm/include/tvm/packed_func_ext.h", line 140
E           TVMError: Check failed: ObjectTypeChecker<TObjectRef>: :Check(ptr): Expected type List[Expr] but get Array

python/tvm/_ffi/_ctypes/function.py:207: TVMError

I put the changes here, could you please provide advice?

@tqchen @vinx13 Why can't we pass a python list of ints to intrin.call_packed(...) using tvm.api.convert()? We are passing a python list as Array but TVM expects List[Expr] type?

@optima2005 The problem seems to be that "Array" is not an "Expr". make.Call expects its argument to be "Array<Expr>", but if we pass a python list, which converts to "Array", TVM complains that "Array" is not an "Expr". The error message is confusing, but that actual error occurs here, where TVM tries to type check Array elements type. The element type should be "Expr", but if we pass a list as an additional argument, the type checking fails because it is "Array", not "Expr".
The reason we can pass Tensors is that, before TVM passes python arguments to C++,  TVM replaces Tensors with "a Call expression that returns Tensor" (here). We need something similar for lists, but that doesn't seem to exist now.
So we need to give up on our approach. Can you add python functions conv2d_forward and conv3d_forward? Once the CI passes, I'll check the std::vector issue and then merge.

@masahi , I add back conv2d and 3d. Please take a look if it is expected.
For vector issue, another approach I can think is new array[], I will follow you decision.

BTW. Many thanks for the detail explanation about how those Exp, Array... in tvm works. I haven't full understand them yet. I think I need a little more time to learn tvm internal working mechanism.

Just found some headers are unused, removed them.

@optima2005 can you address my comments on the std::vector issue? I still think these vectors are not necessary, as long as we have a pointer and dimension.

@masahi, ok. i will remove them. I will use a new array[] to handle the various size of array for 2d and 3d.

no that's not what I meant. Why do you need to allocate another array (either vector or new[])? Am I missing something?

@optima2005 Have you read my comment here?

The size of pad, stride and dilation tuple is 2 for 2d, and 3 for 3d. So those vectors can act as kind of 'array with variable initial size'. This is not supported by c++ directly.  This is the only reason I am using them.

My point is, why do you need array with variable initial size in the first place? You can just pass pointers directly

I got it.  Sorry for confused!

@optima2005 thanks for being patient with me:) Let's continue with your original PR.


Add a generator for Rails

This adds a generator that can be easily used in Rails projects:
Example:
    rails generate serializer Movie name year

Will create:
     app/serializers/movie_serializer.rb

with the next content:
class MovieSerializer
  include FastJsonapi::ObjectSerializer
  attributes :name, :year
end

@guilleiguaran Thank you for adding this. Do you mind adding a note to the readme? I will merge it after that

@shishirmk added note to README in https://github.com/Netflix/fast_jsonapi/pull/75/commits/ce5e5aa3f5dd0212797c0b2c8f64627f78e10ab1


Ability to set read-only mode in VNC

A button or checkbox to lock-unlock VNC from mouse/keyboard input.

This was fixed in Selenoid UI.


What is order of communication say and hear between agents?

For example, if agent1 say to ask help, agent2 get that and say some information, before hearing this information, agent1 cannot take action.

When the agent tries to communicate, there is an error:
Traceback (most recent call last):
File "./example/transferL.py", line 407, in
main()
File "./example/transferL.py", line 326, in main
msg = hfo_env.hear()
File "/home/congcong/.local/lib/python3.6/site-packages/hfo/hfo.py", line 171, in hear
return hfo_lib.hear(self.obj).decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 0: invalid continuation byte

@congyoubanmian777 I didn't understood your problem. But answering to your question, "hear" should be called after the command "say".
Although, "hear" and "say" shouldn't throw any exception by themselves, per say. I think the problem is more related with the characters that you are using.
I have been using the hear and say commands. If you use "hear" before "say", it should return an empty string


fix: throw error when flags do not match pattern

Prior behavior was to strip out invalid flag names. The validation function will now throw.
Fixes #829

With the above suggestions, I additionally recommend a new function for the validation:
function isValidFlag(flag: string): boolean {
  return flag.length > 0 && mask.test(flag)
}


Bookmark of current page missing if you reload page

This is  a bug.

Prerequisites

[x] Are you running the latest version?
[x] Are you reporting to the correct repository?
(enso is made of many specialized packages: https://github.com/laravel-enso)
[x] Did you check the documentation?
[x] Did you perform a cursory search?

Description
Bookmark bar is empty if you reload page (via browser reload)
Steps to Reproduce

Login
Reload page (CMD + R)

Expected behavior

Actual behavior

Yeah, it's a "known" bug :)

fixed in v3.


[Feat]: Basic Express Backend and Complete Authentication

What feature?
Feature - Basic Express Backend and Complete Authentication
Description
I went through the already created issues; many require a database and backend to function effectively. So, I propose implementing a Node ExpressJS Backend Server and MongoDB NoSQL database.
Heres what I will implement under this issue: -

Basic Express server which includes following

Server Health check route
User, Session Models
Auth Middlware and Controllers
JWT tokens (Access tokens and Refresh tokens for rotation)
OAuth2 and Multi-Factor Auth [ @712Kunal  ]
Error Handler Middleware
Multer File Input Handling Middleware [ @712Kunal  ]
Cloudinary Service integration [ @712Kunal  ]
Winston Server Side Logging
Zod Input Validation

Basic Frontend Authentication Pages and Components

Sign Up and Login Pages
Axios Interceptors for request response management
Background Access Token rotation
Auth State management
Profile Page [ @712Kunal - #602 ]

For this large Issue, I would request the mentor to please assign both of us, me and @712Kunal (my friend and fellow SWOC contributor) to this issue. We together will work on the issue due to is scale and magnitude.
Add screenshots
UI wise at the moment I dont have many screenshots or figma files of the changes as most of the work I will be doing is in the backend. But overall, We will try our best to stick to the current UI philosophy of the website, which by my observations is very much MUI (Material UI) themed. So we will stick to it in the login, signup and other components aswell.
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hii @ThePhoenix08 ,
You will be assigned to this feature!
Let's start your open-source journey 🚀
This contribution is not just about open source or SWOC. - It's about showcasing your skills, standing out, and making an impact. If you give your 100% and create something exceptional, you could even join our Core Team and lead our organization and community as a Community Leader in your area, college, or university.
Think of this as your own project, not just a task. DevDisplay isn’t my personal project—it’s a vision to fulfill all the tech needs of developers in one place. It’s a platform created by developers, for developers. So don’t hold back—let your creativity flow and bring your best ideas to life!
Thanks!


Update to upstream 0.15.0

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #39 (7ea593a) into main (496b76a) will decrease coverage by 8.82%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##               main      #39      +/-   ##
============================================
- Coverage     58.82%   50.00%   -8.83%
+ Complexity        5        3       -2
============================================
  Files             3        2       -1
  Lines            17       10       -7
  Branches          2        1       -1
============================================
- Hits             10        5       -5
+ Misses            4        3       -1
+ Partials          3        2       -1

Impacted Files
Coverage Δ
Complexity Δ

...metry/javaagent/providers/AwsTracerConfigurer.java
62.50% <100.00%> (ø)
3.00 <2.00> (?)

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 496b76a...7ea593a. Read the comment docs.


FontAwesome plugin link is dead

FontAwesome plugin link points to a 404 page.

cc @Geequlim - Are there any plans to publish it and update it for Godot 3.2? If not, that's fine. Let me know and I'll remove it from the list.

I removed the FontAwesome plugin from the list in 79c39a02906be848540fb3af75d8ab1dc82c3dea, closing.


Fix data connections indentation issue on the spawner page

Closes #1072
@kywalker-rh @vconzola Please check the UX changes when you are available.
Description

Put the radio sections for choosing new or existing data connections into the body of the checkbox.
Before:

After:

How Has This Been Tested?

Go to project workbench spawner page
Check the Use a data connection checkbox at the bottom
Check if there is an indentation in the body section

Test Impact

Only UX changes, and tests are not applicable.
Request review criteria:

[x] The commits have meaningful messages (squashes happen on merge by the bot).
[x] Included any necessary screenshots or gifs if it was a UI change.
[x] Included tags to the UX team if it was a UI/UX change.
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has manually tested the changes and verified that the changes work
[x] The developer has added tests or explained why testing cannot be added (unit tests & storybook for related changes)

/assign @Gkrumbach07
This was your feature, best that you review it 😄

code looks and renders correctly. just utilizing the body param for checkbox now which auto indents content.
/lgtm


Docs.MS Release Updates for Azure.Security.KeyVault.Secrets

Update docs metadata and targeting for release of Azure.Security.KeyVault.Secrets

Docs Build status updates of commit 018bbf0:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

api/overview/azure/security.keyvault.secrets-readme-pre.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Setup Error monitoring

Setup sentry (?) for graphql server and ideally for the crawlers

@rickmak shall we create a sentry project for this?

@rickmak Please help for both frontend and backend

@hochiw created 4 sentry project for dev and staging. Assigned you as team member on sentry.io


Issue with resolution > 1 + Camera.zoom !== 1 input detection

A known side-effect of 3.12 changes can be found when getting game resolution to a value other than 1 and setting the Camera zoom to a value other than 1, input detection will be missed.
To be addressed as priority, along with recoding the transform system to avoid errors like this in the future (re: Containers)

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Thank you for submitting this issue. We have fixed this and the fix has been pushed to the master branch. It will be part of the next release. If you get time to build and test it for yourself we would appreciate that.


WIP: Testing JaCoCo Plugin 0.8.2

Thank you for submitting your Pull Request. Please make sure you have
familiarised yourself with the Contributing Guidelines
before continuing.
Description
Include a summary of the change and which issue
this fixes. Also include relevant motivation and context. List any dependencies
that are required for this change and why they are necessary.
Fixes #446
Type of change
Check all that apply

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

How Has This Been Tested?
In case you did not include tests describe why you and how you have verified the
changes, with instructions so we can reproduce. If you have added comprehensive
tests for your changes, you may ommit this section.
Checklist:

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

@markGilchrist I have thinking about that. I guess I can add that in.

Yeah, I think that makes sense as the rest is there as well. After that can be merged?


UserPoolClientRole has gone missing

Describe the bug
Amplify deployment fails because one of the ressources (UserPoolClientRol) in one of the cloud formation stacks (auth service) has gone missing from IAM (no entity found).
Amplify CLI Version
4.18.0
To Reproduce
...
Expected behavior
I do not understand how the IAM role has been removed from IAM. It should be there.
Screenshots

Desktop (please complete the following information):

OS: Mac
Node Version: v12.13.1

Log output
Additional context
No action from my end. Ressource has gone missing.

@t-lm please use the issue template to provide all the information we require to be able to help you better.

@t-lm please use the issue template to provide all the information we require to be able to help you better.

Closing due to lack of further response.


Sample/Reference implementation of FormAuthenticator

I would like to request a reference implementation of the FormAuthenticator Abstract class.
The main issue being if authentication fails should the SignInAsync() method throw an exception, return null or return an empty Account result or what should it return? Please provide guidance.

This has been added to the project Issue Triage Process


Getting data out of dat: UX proposals

Problem: need to get data out of dat. sometimes you want it deleted, other times you want to just copy it out.
Proposal 1:
dat <files/rows> move <dataset> <out-filename>
copies and removes the data  from dat
dat <files/rows> copy <dataset> <out-filename>
copies the data from dat. data isn't removed
Proposal 2:
dat <files/rows> copy <dataset> <out-filename>
copies the data from dat to a file. if the user wants to remove the data, they have to run dat rm or dat delete

the benefits of proposal 2 are that a user might not recognize that 'move' will actually remove the data in dat and could lead to small confusion.
proposal two adds a fundamental assumption: the only command that removes data from dat is dat rm or dat delete

could be dat copy or dat export or maybe something else..


perf: styles lazy evaluation

Warnings

:warning:
There are no updates provided to CHANGELOG. Ensure there are no publicly visible changes introduced by this PR.

  Generated by :no_entry_sign: dangerJS


Introduce ResourceQuota and reconcile Istio CR only in kyma-system namespace

Description
Changes proposed in this pull request:

Introduce ResourceQuota on count for istios.operator.kyma-project.io
Reconcile only istios in kyma-system namespace

Related issue(s)

https://github.com/kyma-project/istio/issues/172

/test pull-istio-module-build

Maybe we could also check in some feature, that applying second Istio CR in Kyma ns fails?

Of course, omg, how can I forget the most important one 😶🌫

/test pull-istio-integration

/test pull-istio-integration-evaluation

/test pull-istio-integration

/test pull-istio-integration-evaluation


Introduce persisted queries

Note: Currently implemented on top of #20 so will include some extra noise at the moment.
Takes a different approach that what I first proposed in #12.

Deliberately kept the responsibility for performing the parsing and validating of any persisted query to PersistedQueryRetrieval implementations.
Attempts to keep the calling side similar to the existing graphql function.

Due to the decision to put parsing and validating queries as the responsibility of any PersistedQueryRetrieval implementation we have to make a version of parse() and validate() public. However this does mean that implementations are free to decide when, and if, parsing and validation happens.
This means that an implementation is free to be able to only parse and validate a persisted query once when its first requested or at application launch. Therefore removing the parsing and validation time from responses.

Codecov Report

Merging #21 into master will increase coverage by 0.21%.
The diff coverage is 85.16%.

@@            Coverage Diff             @@
##           master      #21      +/-   ##
==========================================
+ Coverage   80.04%   80.25%   +0.21%
==========================================
  Files          74       78       +4
  Lines        8904     9239     +335
==========================================
+ Hits         7127     7415     +288
- Misses       1777     1824      +47

Impacted Files
Coverage Δ

...rces/GraphQL/Instrumentation/Instrumentation.swift
100% <100%> (ø)

Sources/GraphQL/Language/Parser.swift
90.9% <100%> (+0.36%)
:arrow_up:

Sources/GraphQL/GraphQL.swift
100% <100%> (ø)
:arrow_up:

Sources/GraphQL/Validation/Validate.swift
21.71% <100%> (+2.66%)
:arrow_up:

Sources/GraphQL/Execution/Execute.swift
74.79% <75.67%> (+0.2%)
:arrow_up:

.../PersistedQueriesTests/PersistedQueriesTests.swift
78.43% <78.43%> (ø)

...entation/DispatchQueueInstrumentationWrapper.swift
81.81% <81.81%> (ø)

...ts/InstrumentationTests/InstrumentationTests.swift
89.47% <89.47%> (ø)

... 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 b67c14e...aa3d7fb. Read the comment docs.


gluster blockd status should be checked in liveness/readiness probe

Gluster container also has gluster-blockd service running. In some cases, user might want pod to fail readiness probe if gluster blockd is not running. This can be achieved by making a script as readiness checker which has checks in the following way
ret = 0
if glusterd not running
   ret = -1
if gluster-blockd not running AND ENV[blockd is must]==yes
   ret = -1
return ret

@raghavendra-talur Do you think we should do that in the pod spec or implement it as a script in the container?

@jarrpa script in the container. pod spec should only refer to the script.

This has been addressed through #523.


[Feature Request]: Show Pipeline Run pod logs per selected node

Feature description
Each node in the Pipeline Topology is backed by a concept called a Task. Each Task is a container and thus has its own pod.
Today we show the pod id in the header of the tab selection -- we need a tab to show the pod logs.
This might require us to look at the OpenShift Console pod log component. We will need some idea of what features the log should have. Can it pause? We won't be able to "stream it" as we don't have web sockets -- but we could "fake stream it" by just delay adding lines to the log one after each other instead of bulk adding it.
This needs some UX to help understand how we show the details of the pod log.
Describe alternatives you've considered
No response
Anything else?
@kywalker-rh  this needs some UX attention before we can work on it.

Is there a rough ETA for this one?

Is there a rough ETA for this one?

Not currently -- but I can look to get this into next sprint. @kywalker-rh we should talk about any UX left dangling, I'll send you a meeting invite.

Some implementation details:

We will use the PF Extension, Log Viewer - https://www.patternfly.org/v4/extensions/log-viewer

NPM => https://www.npmjs.com/package/@patternfly/react-log-viewer?activeTab=versions

Features we want to support for the first pass

Logs are done by container inside the pod -- we will use a dropdown to show all containers, select the first container
Tail the log file by 500 lines every 3 seconds -- don't cache any information, just show the current selected container
On each fetch we will toss the previous data away and just show the latest information (so the last - up to - 500 lines)
Put a message above the log viewer that specifies it is only showing the last 500 lines, use the download feature to view the entire log
Support a download button to pull all logs at once

Probably download per container -- TBD

Web Sockets are needed to make this a real log viewer - out of scope - https://github.com/opendatahub-io/odh-dashboard/issues/1138

@kywalker-rh I think we are going to need a mock to help out the initial implementation. Best to just do up something quick and not worry too much about wording or small details, we can work that out on the PR & in incubation.

Hi @andrewballantyne and @kywalker-rh, here is the mockup of this requirement.
Regarding the features we want to support for the first pass, I have several thoughts/questions:

I have incorporated a functionality inspired by Openshift in my design, which involves abridging exceptionally long log lines (log lines that exceed 1021 characters in length). This is particularly important in our use case, where the log viewer is embedded in a drawer and refreshes every 3 seconds. By shortening these long log lines, we ensure a more user-friendly experience and prevent the logs from occupying excessive space on the screen.
I wonder whether we could also provide the pause/resume feature for the first pass. Imagine a scenario where the user is viewing specific log lines, the log viewer refreshes after 3 seconds, then the log the user was looking at suddenly disappeared. In such cases, I would assume that the user could only rely on the download function to view the log, the log viewer itself would create little value. Provide pause/resume feature could avoid this problem.
As for the Download function, is there any evidence that downloads all logs are more frequently used than downloads per container? I found Openshift has changed its design from supporting both download methods to only supporting downloading per container. It seems that the decision to support downloading per container may be based on its wider range of use cases and benefits. With regard to this point, I have another variation for the toolbar which displays the two download functions in a different hierarchy.

I think we have enough that we can start working on this. So removing the labels that block it from popping up on todo work for the team.

This is great @yih-wang! Thanks for working on it!
@kaedward Do you have an opinion on whether the button should be called "Resume" or "Refresh"? (See second and third screens of the mock-up)

We can definitely start with container, the only drawback I can think of is, if they really want to download all, they have to manually go through the effort of selecting each and clicking download. I think the use-case of that would be just wanting to leave our UI and view it in a log tool of their own; I would imagine post-execution rather than during.

@andrewballantyne I think it makes sense to keep both download options (download logs of current container&all containers) in the drawer. My question was only about how to provide a better download experience from the ux perspective - whether to include both download options in a dropdown or prioritize the more frequently used one as the main action (which will save users a click each time they want to download). I understand your point about treating all containers as a unit since they work together as a task. Based on that, I would suggest:

Changing the action in the alert from downloading the log of the current container to downloading the logs of all containers. This provides a more intuitive default action for users.
Regarding the download dropdown above the log viewer, we can stick to the previous mockup until we gather enough evidence (maybe through user interviews).

One more thing I missed in my initial mock is the error handling. When the log viewer cannot retrive the log as expected (e.g. due to network issue), we should provide a notification to inform users. Here is an adding screen to address this. What I'm not sure is whether user will encounter a blank page (fetch nothing) or they can still see the content from the last fetch in this case - this distinction determines whether they should see the expandable alert which indicates only partial content is contained.
A last question (hope it is) I have is regarding the scenario where the latest fetch retrieves nothing (no new logs generated in the past 3 seconds). Will the log viewer just show a blank window? I think it will be great if we can implement a condition like 'if there are no new logs, the previous log is not discarded'.

@yih-wang Thanks for the error handling situation... definitely something we should support.

A last question (hope it is) I have is regarding the scenario where the latest fetch retrieves nothing (no new logs generated in the past 3 seconds). Will the log viewer just show a blank window? I think it will be great if we can implement a condition like 'if there are no new logs, the previous log is not discarded'.

It should always support pulling the log information irrelevant of the duration we fetch or how much we fetch. If there are logs there, we should get it. So on re-poll, it'll just not change (which is fine imo).
However, this does prompt an interesting question. What if there was never logs? A container may not (doesn't have to) report anything. It likely will... but I think you can get a situation were there are just no logs for this container at this time. We should try to separate our "loading" state from our "here is the result" state. Do you have some guidance on what we want to show? Maybe we just show the initial state as a spinner & then if it's empty, there is just no logs? Or do we want to say "no logs" in some fashion?

@kywalker-rh Not sure if this is an option, but could we show only the icon, and then have a tooltip? "Pause refreshing log" and "Resume refreshing log" ideally... I guess my answer to your question is "both", but that's probably too long for a static message here :-) If tooltip isn't an option, would "pause refreshing" and "resume refreshing" fit?

However, this does prompt an interesting question. What if there was never logs? A container may not (doesn't have to) report anything. It likely will... but I think you can get a situation were there are just no logs for this container at this time. We should try to separate our "loading" state from our "here is the result" state. Do you have some guidance on what we want to show? Maybe we just show the initial state as a spinner & then if it's empty, there is just no logs? Or do we want to say "no logs" in some fashion?

@andrewballantyne That is a good point. This reminds me that the initial design lacks a system to indicate different status of the log. So I reconsider all the status that the log viewer should have and list them as following:

Loading status: this status will be displayed when the user first enters this tab. The log viewer may take a longer time to initially fetch a bulk of log lines from the server. (Not sure whether this could be differentiate from the Refreshing status though)
Streaming status: the browser fetches the latest log from the server successfully. The user is allowed to pause the next refreshing to take a closer look at the log.
Pause status: the fetch is pausing in this status. The log viewer will only continue fetching after user resume refreshing.
Refreshing status: appear every 3 seconds, or follow a Resume action. Users may not notice this status if the network speed is fast.
End status: there are no more new logs. So the user won't see any actions/status in the toolbar.

Based on these status, here is a demo that shows how a full cycle of the log looks like:

And here is a demo that addresses the use case you mentioned above - when there are no logs at all.

@kaedward I think the way @yih-wang shows it in the demo works great (which looks like it matches your suggestion). If the drawer this is in is too small to fit the text we could then just show the icon, but I like how this is done.
Thanks for adding the demo @yih-wang!

Looks great to me, too - thanks @yih-wang! The text doesn't take up as much room as I thought it might.

I have compiled all the designs for the first pass into a single link to make it more convenient as a reference for implementation. Check this link: Final design for the first pass.
@kywalker-rh @andrewballantyne I'm considering how to track the updates and additional features we may want to add in the future. Due to time limitations, some features haven't been included (e.g. downloading logs from S3 after the run ends, checking the previous version of running pod logs in case of a crash loop, etc.). Should we capture these ideas in this thread or somewhere else to ensure we address them in future iterations?

Nice to see that logs will be accessible in the UI, that will be very helpful. Regarding:

Tail the log file by 500 lines every 3 seconds -- don't cache any information, just show the current selected container
On each fetch we will toss the previous data away and just show the latest information (so the last - up to - 500 lines)

Any possibility to save all log data and allow users to scroll back to beginning of the output?  Thanks

Nice to see that logs will be accessible in the UI, that will be very helpful. Regarding:

Tail the log file by 500 lines every 3 seconds -- don't cache any information, just show the current selected container
On each fetch we will toss the previous data away and just show the latest information (so the last - up to - 500 lines)

Any possibility to save all log data and allow users to scroll back to beginning of the output? Thanks

I think given our current infrastructure @ykoyfman we are leaning into the download feature for the first pass. We cannot do that live (as the pod is running) due to the lack of WebSockets and not really having a clear understanding of where the logs started per tail or if we missed lines.

@kywalker-rh @andrewballantyne I'm considering how to track the updates and additional features we may want to add in the future. Due to time limitations, some features haven't been included (e.g. downloading logs from S3 after the run ends, checking the previous version of running pod logs in case of a crash loop, etc.). Should we capture these ideas in this thread or somewhere else to ensure we address them in future iterations?

@yih-wang I recommend you guys log something on your side and track suggested improvements. Since they are not technical and we don't have requirements for that, until we know more about the need of that, there isn't much for Dev to track.
When we support WebSockets, this and other functionalities will be on Dev to support. If anyone plays around with the logs and notes a desired improvement, they can log something on our end and we will work with UX to see the viability.
At least this is how we have done it up to this point... let me know if you think there is a better way.

@andrewballantyne WebSockets or gRPC? I guess Websockets to to the patternfly library used, right?

It's not possible to directly call a gRPC service from a browser. gRPC uses HTTP/2 features, and no browser provides the level of control required over web requests to support a gRPC client.

https://learn.microsoft.com/en-us/aspnet/core/grpc/browser?view=aspnetcore-7.0

I don't think gRPC is available to us in the browser 🤔 There seems to be middle ground items inside that link -- but I don't think this is really a discussion for anything we have planned today.
Websockets are needed to allow the server to push to the client. We are not looking for the speed or the frequency of gRPC at this time. I'll admit my knowledge of gRPC is the odd article here or there that I have read. I'll look into your link when I get a chance and see if there is an architectural change here for us to embrace.
Also, small nit, Patterfly is a component library and doesn't prescribe anything about data layers. Websockets is the expected choice because K8s & our SDK (that we use to talk to K8s) have that functionality already built in.
Final note, our websocket issue:

https://github.com/opendatahub-io/odh-dashboard/issues/1138

Feel free to pitch alternatives to Websockets, but I don't really want this issue to change course. Neither will get in before we need to support logs (as that time as already come and gone and we need this functionality sooner rather than later).

small nit, Patterfly is a component library

yeah, I confused that. With patternfly library, I did mean your SDK.

We are not looking for the speed or the frequency of gRPC at this time

totally ok, as I mentioned, it was more of an idea. Plus, as you correctly say, it'd be dependent on how to K8S APIs to e.g. logging serve up the data, whether that is even already gRPC serving or not. I think gRPC will be more of a topic for streaming-type data, which logs could be, in future in K8S

/label needs-microcopy


fix(misc): target stdout stream explicitly

Use explicit targeting to sync the terminal background.
Nvim changes standard streams to non-blocking mode, so we should use io.stdout:write to ensure that writes are handled properly (that is, directly addressing the term's standard output).
This should address the last remaining bits from #1111:

That's both good (it fixes something) and confusing (it introduces very similar issue for me) news. I'll just focus on the first interpretation :)

Let me know how it goes :)

Thanks for the PR!

Nvim changes standard streams to non-blocking mode, so we should use io.stdout:write to ensure that writes are handled properly (that is, directly addressing the term's standard output).

Could you, please, share a link to where this information coming from?

This should address the last remaining bits from #1111:

That's both good (it fixes something) and confusing (it introduces very similar issue for me) news. I'll just focus on the first interpretation :)

Let me know how it goes :)

Did you manage to reproduce similar issue as I described there? And this change should fix it, right?

I've just tried reproducing " -> fg -> ` -> ... ->  (background is the same as in Neovim)"  with and without the change in the PR. Both times I was able to reproduce. So I don't this fixes the issue.

Thanks for the PR!

Nvim changes standard streams to non-blocking mode, so we should use io.stdout:write to ensure that writes are handled properly (that is, directly addressing the term's standard output).

Could you, please, share a link to where this information coming from?

This should address the last remaining bits from #1111:

That's both good (it fixes something) and confusing (it introduces very similar issue for me) news. I'll just focus on the first interpretation :)

Let me know how it goes :)

Did you manage to reproduce similar issue as I described there? And this change should fix it, right?

@echasnovski Sorry, didn't see that comment yesterday - oops.

Could you, please, share a link to where this information coming from?

This issue stems from a problem I encountered with build2, which only occurred when Neovim was started in the background. The build2 team investigated and discovered that non-blocking streams were the cause. For background, see https://github.com/build2/build2/issues/417

Did you manage to reproduce similar issue as I described there? And this change should fix it, right?

No — I’m unable to reproduce the sync issue at all, so it’s surprising that you can reproduce it on your machine. Why is that? What’s the difference? Who knows, haha.
That said, there is a subtle difference between io.write and io.stdout:write when output redirection is involved. io.write writes to the current default output stream, which can be redirected. If the default output stream changes, io.write will respect that redirection. io.stdout:write, on the other hand, always writes to stdout, regardless of any redirection. It specifically targets the stdout stream, which always goes to the terminal (or the original standard output).
I think this change is worthwhile if only for that, even though I had hoped it would fix the sync issue on your side, but alas. Let me know if you’d like to reopen this, in any case.

Adding to this, here’s an example to illustrate the difference:
local file = io.open("output.txt", "w")
io.output(file)
file:close()

In this case, file:close will cause mini.misc (io.write) to error out with:
Error executing lua callback: .../wroy/.local/share/nvim/lazy/mini.nvim/lua/mini/misc.lua:329: standard file is closed

But io.stdout:write will still work as expected, since it directly writes to stdout, "bypassing" the redirection and file closure.

Oh, my... You should have started with that. I can reproduce. Will schedule to finish and merge this PR tomorrow.

This now should be part of main branch. Thanks for finding this!


Feat: apply ord document validator in CICD pipeline

At the moment, we only have unittest to protect the result of ord default content generation. However, we need to validate the correctness of ord content by validator.

In some other projects, I added the API Metadata Validator as an NPM dependency. Then you can call the validator programmatically (not as CLI) in your unit-tests. This will give you a better, integrated testing experience.

We also need to solve: https://github.com/cap-js/ord/pull/63#discussion_r1793738012


make buildhelper compatible with previous tsconfig

The move from each codemirror 6 repo having its own separate rollup and tsconfig to a single buildhelper (e.g. with @codemirror/autocomplete) broke dist compatibility due to changes in target, module, etc.
One example is the nullish coalescing operator found in the dist of @codemirror/autocomplete, resulting in the following error:
<EMAIL_ADDRESS>134:93
Module parse failed: Unexpected token (134:93)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
|     if (!addStart && !addEnd)
|         return expr;
>     return new RegExp(`${addStart ? "^" : ""}(?:${source})${addEnd ? "$" : ""}`, expr.flags ?? (expr.ignoreCase ? "i" : ""));
| }

Edit: Oops. On further reading of buildhelper, I realized the tsconfig used in the build step was contained inside of src/build.ts and was not /tsconfig.json. Last commit fixes that.

Looks like the es2020 target was indeed an accident. Is the removal of the declarationMap setting causing any problems for you? The rolled-up declaration doesn't use those anyway, so I believe that just causes the TypeScript compiler to waste time creating maps that are never read.

Is the removal of the declarationMap setting causing any problems for you?

It seemed useful when reading its functionality in tsconfig, but if src files aren't shipped with the dist as with npm, then yeah it'd be to fine to remove declarationMap and save compiler time.

Thanks. I've merged this without the declaration map change and released fixed version of @codemirror/state and @codemirror/autocomplete.