Blazor FR: Graceful Degradation on 5xx errors

When loading a BlazorWASM app, and a server or service returns a 5xx error, Blazor will ignore the error and then fail (quietly, in the console) when trying to load the affected assembly.
I appreciate that BlazorWASM has not reached GA at this time, but I do feel strongly that this is something that needs to be considered.
The solution as I envisage it:
Actually having given this some thought, I don't need Blazor to degrade gracefully. I just need it to tell me what's going on so my app can degrade however gracefully or gracelessly is appropriate.
In my personal project, I have a splash screen with an Ajax Loader GIF. It's just HTML until Blazor loads. When a 5xx occurs, the effect is that the app just stays on that splash screen - there is no feedback. What would work well in that circumstance is some kind of JavaScript hooks or Well-Known Methods that could be called by Blazor to communicate download progress & state. I could then communicate to the user with something 'friendly' like "Oops, it looks like there's a problem loading the app. We'll keep trying..."
Alternatively I might count the retries (communicated in the status) and after 3 failures (or an expired time), I might just redirect the user to a page that says "Everything's borked. Try again later."

@HughPH thanks for contacting us.
You could do this by using Blazor.start. I'm linking you to the server docs for a sample, but it works the same way for blazor wasm. https://docs.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-3.1#configure-the-signalr-client-for-blazor-server-apps

Thanks for your attention to this Javier!
The "guts" of my index.html boils down to two lines:
<div style="position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;transition-timing-function: ease-in-out;transition-property: opacity;transition-duration: 1s;">
    <app></app>
</div>

<script src="_framework/blazor.webassembly.js"></script>

The "splash screen" is another div before this one.
Once my app is loaded, I set its div's opacity to 1 with jsinterop, and it smoothly fades in. I could equally put the "splash screen" over the top and fade it out.
I imagine your proposal is to add autostart="false" to the the blazor.webassembly.js script tag, and add the following after that script tag:
<script>
  Blazor.start(
    {
      myStartThing: function(builder) {
        // do something with builder here?
      }
    }
  );
</script>

Am I on the right track?
The next question I'm going to have is what builder will do for me, and whether I can capture and deal with errors at that point?

https://gist.github.com/SQL-MisterMagoo/5d857941f884eb1a2d80e72b1044e292
Another approach may be to use a Service Worker


Align Firebase performance metrics with core in-app workflows

Coming from this Slack thread: https://expensify.slack.com/archives/C05LX9D6E07/p1730214849510819
Problem
Our performance metrics do not represent exactly what we care about when tracking App's performance across the user base. They either have unclear naming, or code markers that are put in the wrong places, making measurements incorrect and giving us falsy results.
Solution
Let's align the definitions and fix code markers' placement to make sure we collect whole user interactions when people eg. open chats from different scenarios, send message or open up search. Detailed changes in the first comment.

homepage_initial_render does not serve as a meaningful measure of performance with a misleading event name and not appropriate code markers (should be in different components + AuthScreens is not fully laying out). I advocate for removing this event.

Starts when rendering AuthScreens for the first time (in render) <- not taking unmounts into account, possibly false information
Ends in the middle of a useEffect in the same high level component

switch_report can be deprecated in favour of specific open_report* events that take into account different scenarios and have a more correct naming.

chat_render does not effectively measure what it's name describes (component fully laying out). I advocate for removing this event and focus on events that better mark full user interactions.

Starts when rendering ReportScreen for the first time (in render) <- not taking unmounts into account, possibly false information
Ends when we start executing one of the useEffects in the same component, producing false information

sidebar_loaded does not measure anything meaningful in the performance context. I advocate for removing it (at least from tracking) as it's based on the falsy end event (LHN is not interactive when we hide the splash screen). Additionally, the sidebar naming is misleading.

Starts when we start the lifecycle of BaseSidebarScreen <- not sure if correct
Ends when we hide the Splash screen <- definitely a wrong place

search_render is no longer being used. Either docs need to be updated to account for the new search_router_render, or naming can be improved to open_search to be more descriptive.

report_initial_render does not measure anything meaningful, we have open_report* events for this use case. The start marker it put in the wrong place causing false results. I advocate for removing this event.

Starts when we render first LHN items <- wrong event placement
Ends when we finish laying out the report

message_sent is currently not being sent to Firebase. I advocate for adding a Firebase call for it so we can start tracking how long it takes for people to send messages.

open_report is currently not being sent to Firebase. Let's add a Firebase call for it so we can start tracking how long it takes for people to fully navigate to chats from LHN.

SEARCH_FILTER_OPTIONS needs to be updated in docs (Finder is now deprecated

SEARCH_BUILD_TREE, SEARCH_MAKE_TREE and SEARCH_CONVERT_SEARCH_VALUES all need to be documented

Adam from Callstack, I'd like to work on this issue.

@kirillzyusko I noticed we're relying on the chat_render event here but it's not being trigger anywhere. Can this be also removed from our E2E suite? I think we can realign this afterwards based on the newly set "correct" events.

For now I'll intentionally remove deprecated events in the PR, breaking E2E in the process so that we have a clear diff for what I have to fix before we merge anything.

Created a draft PR as it's in progress: https://github.com/Expensify/App/pull/51815

Updated the PR, now I need to work on bringing e2e tests back to life.

e2e tests are fully back now and works pretty stable 😎

@kirillzyusko oh you mean on this branch? 🤞

This is opened for a review now.

cc @mountiny I created this small PR in the meantime that brings the sidebar_loaded event to Firebase/Grafana so we at least know some results for this substantial (for some) period of starting the app.

I'm currently reworking the StartupTimer native module to work with multiple traces based on a map (the same way we do it with JS). This will enable a true TTI measurement.

@adhorodyski anything else for this PR?

I don't think so, let's close this issue - core workflows are covered.
I'm still wrapping my head around the best way of reporting the TTI for all systems. We don't want to hardcode this for Firebase only, I'll propose something else to be more generic and also enable pushing to Grafana at the same time (collecting between threads is problematic).

Thanks, yes I think that sounds like a good path


Recipe updates for the indigo distribution

I tested building bitbake core-image-ros-world successfully on this build configuration:
Build Configuration:
BB_VERSION        = "1.33.4"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "ubuntu-14.04"
TARGET_SYS        = "i586-oe-linux"
MACHINE           = "qemux86"
DISTRO            = "nodistro"
DISTRO_VERSION    = "nodistro.0"
TUNE_FEATURES     = "m32 i586"
TARGET_FPU        = ""
meta              = "HEAD:ccf630e78aad488da7b80f2981037d3d0559cfad"
meta-oe
meta-multimedia
meta-python       = "master:fc03b3d9382dd5b6a8fff5f84e4c86a1acc9a73a"
meta-ros          = "indigo-updates:f645ea526dc4654488803b6096f108f4b3d8d7e8"

The current head of the master of openembedded-core fails due to the boost update to 1.64.

Successfully built core-image-ros-world with
Build Configuration:
BB_VERSION        = "1.34.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "fedora-25"
TARGET_SYS        = "i586-oe-linux"
MACHINE           = "qemux86"
DISTRO            = "nodistro"
DISTRO_VERSION    = "nodistro.0"
TUNE_FEATURES     = "m32 i586"
TARGET_FPU        = ""
meta              = "HEAD:ccf630e78aad488da7b80f2981037d3d0559cfad"
meta-oe
meta-python
meta-multimedia   = "master:fc03b3d9382dd5b6a8fff5f84e4c86a1acc9a73a"
meta-ros          = "bulwahn-indigo-updates:f645ea526dc4654488803b6096f108f4b3d8d7e8"

where OE-Core points to the commit just before the Boost upgrade to 1.64

Looks good to me


the vscode desktop icon  is  ugly

future versions we should use configuration items to customize desktop icons

I like it

More than that, it still uses the Visual Studio 2017 icon template (which is ugly): why is VSCode not updating the icon to keep consistency?

Did you see #71827 ?

@gjsjohnmurray Just had a look at it. Love the new proposed icons :)

Thanks @gjsjohnmurray, and yes this is being tracked in #71827.


PD-English-Definitions.txt: math

Request to add math to 数学 to PD-English-Definitions.txt
数学		mathematics/math

There are entries for 数学, mathematics, mathematical:

But none for math:

Thanks to your PD-English-Definitions.txt, CWS's dictionary lookup capability is supercharged, it can now lookup the Chinese words of the English word as well :)
I can't thank you enough for creating CedPane

Good idea.  People don’t say “math” much round here, but it’s common in the States so let’s add it.  I'm surprised typing "math" doesn't find "mathematics" though .. depends how many letters match I guess

Good idea. People don’t say “math” much round here, but it’s common in the States so let’s add it.

Just chanced upon math while hovering Math.round in stackoverflow.com, surprised that math is not in the dictionaries nor in stemmed list

after adding math to 数学:

I'm surprised typing "math" doesn't find "mathematics" though .. depends how many letters match I guess

Just using stemmer, it can only match long against short (stemmed)


⚠ Fortnite has degraded performance

In a3d1ed9, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1548 ms

Resolved: Fortnite performance has improved in 1eda694.


Remove fpMapper metrics from Prism ingester

The problem is that the counter of mapped fingerprints does not have a
per-user label (which would be a bad idea), but we are Collect()-ing it
once for every user. This makes /metrics fail like this when an ingester
has data for more than one user:
An error has occurred during metrics collection:

collected metric prometheus_local_storage_fingerprint_mappings_total
counter:<value:0 >  was collected before with the same name and label
values

For now I'm just removing this one metric completely from the
collection, as it's relatively unimportant. One could think about
getting the value of each fpMapper's counter (only possible in a hacky
way with our metrics at the moment) and summing up all the counters in
the ingester. Or making one global metric out of it, but I didn't want
to modify the non-Prism Prometheus parts any further for now. Let's do
that when we copy over the remaining non-reusable parts of Prometheus
completely in the end.

@jml @tomwilkie


Update Emoji-cheat-sheet link

Why:
closes #1992
While I did explain in the above issue why, will I still say the reason here for the sake or documentation.
The doc page explaining emojis links to https://emoji-cheat-sheet.com, while the Guide about GFM and emojis is linking to a repository which seems to be updated.
Since people may get to the docs through the guide would those two different URLs only cause confusion as to which one to look at for up-to-date info.
I now changed the link to point to the aforementioned repository as there is no guarantee (unless GitHub would do this) that the Guide would be updated AND that the emoji-cheat-sheet page only shows emojis supported on GitHub and not also extra ones not available here.
What's being changed:
Section "Using Emojis" of content/github/writing-on-github/basic-writing-and-formatting-syntax.md
Diff:
- For a full list of available emoji and codes, check out [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com).
+ For a full list of available emoji and codes, check out [the Emoji-Cheat-Sheet](https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md).

Check off the following:

[x] All of the tests are passing.
[x] I have reviewed my changes in staging. (look for the deploy-to-heroku link in your pull request, then click View deployment)
[x] For content changes, I have reviewed the localization checklist
[x] For content changes, I have reviewed the Content style guide for GitHub Docs.

@Andre601 Thanks so much for opening a PR! I'll get this triaged for review ⚡

Is this still being checked?

It is! Thanks for your patience! Our small team is working our way through reviewing all of the amazing contributions ✨

Yes GitHub Actions, this PR is still active.
Thanks for checking :)

content/github/writing-on-github/basic-writing-and-formatting-syntax.md

I mentioned this before and I mention this again: I and probably anyone else following this PR would appreciate it, if you wouldn't make PR approvals over and over again. While this was just one approval this time was it still not nesessary to do as there were no changes whatsoever that justified it.

content/github/writing-on-github/basic-writing-and-formatting-syntax.md

I mentioned this before and I mention this again: I and probably anyone else following this PR would appreciate it, if you wouldn't make PR approvals over and over again. While this was just one approval this time was it still not nesessary to do as there were no changes whatsoever that justified it.

Thanks for making this change @Andre601 and I'm so sorry it got hit with spammers 💛 I'll update the branch and get this merged once all tests are passing!

That's okay as long as those people are dealt with. I reported one user already and also gave the support-team the hint, that they should also check out the other users I mentioned, so hopefully those people will be gone soon enough.
I honestly wish I would understand even half of all the checks/actions made on this PR 😅

Thanks for making this change @Andre601 and I'm so sorry it got hit with spammers 💛 I'll update the branch and get this merged once all tests are passing!

That's okay as long as those people are dealt with. I reported one user already and also gave the support-team the hint, that they should also check out the other users I mentioned, so hopefully those people will be gone soon enough.
I honestly wish I would understand even half of all the checks/actions made on this PR 😅


Problem  integrating platformatic/composer with platformatic/ai-warp stream api

Currently I'm having problem integrating platformatic/ai-warp behind platformatic/composer.  That is /stream  responses after went through composer, is no longer a stream, all event data is queued and sent to client at once . But AI generated content can take awhile to finish processing or even timeout due to composer default timeout configuration. This make ai-warp unusable with composer. But in my opinion, this is a common use case.
I have debugged into Composer code and seen that Composer use fastify/reply-from but it doesn't support streaming response body https://github.com/fastify/fastify-reply-from?tab=readme-ov-file#todo .

This is actually possible with useHTTP in runtime and proxy in composer. Here is a demo: https://github.com/platformatic/composer-and-ai-warp.
useHTTP config:
https://github.com/platformatic/composer-and-ai-warp/blob/5134f87006b00def8801333a515e559ceb10ea76/platformatic.json#L16
proxy config:
https://github.com/platformatic/composer-and-ai-warp/blob/5134f87006b00def8801333a515e559ceb10ea76/services/composer/platformatic.json#L7

@mcollina superb 👍


[GB] Make Tax Digital - pageextension 10538 "MTD OAuth 2.0 Setup" - Important field hidden on SaaS

Localization: GB
Extension: Making Tax Digital Localization for United Kingdom
Version: 21.3.51409.52252
Environment type: SaaS Production
Object: pageextension 10538 "MTD OAuth 2.0 Setup"
Problem description:
Make Tax Digital (MTD) extension for GB version of BC modifies extends "OAuth 2.0 Setup" card, aka "Service Connection".
The extension, among other things, modifies existing field:
        modify("Enter Authorization Code")
        {
            Visible = not IsSaaS and IsMTD;
        }

The idea is that users generate Authorization Code on HRMC website, return to BC and enter it there, since there is no automatic way to do it. However, with the field being hidden in SaaS environment, the task becomes impossible and prevents users from using MTD.
Moreover, the field might be used by other OAuth 2.0 Setup and should they require Authorization Code, they will fail as well, since both IsSaaS and IsMTD will be false
Solution suggestion:
Remove modification from page field "Enter Authorization Code"

Internally closed as "Won't Fix" by @ventselartur. Syncing state to GitHub.


Resources in worker and job pods

As far as I know, there are no way of setting the container resources for both worker and jobs pods.
This issue is intended to discuss the way of implement this to create a PR with an agreed schema.
Actual status

pod
container
status

worker
init-container
no resources

worker
worker container
no resources

job
init-container
no resources

job
job container
set by job configuration

Desired status: ability to set resources in every container
Proposal

pod
container
status

worker
init-container
set by project definition

worker
worker container
set by flags in the controller

job
init-container
set by project definition

job
job container
set by job configuration

I'd create four flags for the worker configuration:

worker-limits-cpu
worker-limits-memory
worker-requests-cpu
worker-requests-memory

This would set the resources on the main container of the worker.
For the vcs-sidecar init-containers, I'd set the resources in the project configuration:

vcsSidecar.limits.cpu
vcsSidecar.limits.memory
vcsSidecar.requests.cpu
vcsSidecar.requests.memory

What do you think about this?

As the PR is merged, I close the issue


Does this support deleting edges based on the type of edge?

Does this support deleting edges based on the type of edge?

As mentioned in the readme, delete (of any kind) is not yet implemented.


How to return the main window?

What needs to be added to the answer file (autounattend.xml) so that the main window with the "Install" button is shown?
There is also "System Restore" at the bottom left.
Otherwise, the answer file simply skips it, ChatGPT cannot adequately advise.
I also want to skip the window with the edition’s choice, because it is still only “Windows 10 Pro”

Can you please elaborate and provide pictures and context?

Can you please elaborate and provide pictures and context?

https://youtu.be/9ihDPPGVaLY

The file avoids this screen and assumes that you will click install now

The file avoids this screen and assumes that you will click install now

What can be done? I need the “Repair your computer” function, it’s very convenient.
Maybe there are some tips to save this particular function when loading from a flash drive?

Have you tried recovery mode

Have you tried recovery mode

It is necessary that access be from a flash drive, because on a PC everything can break

You can reinstall windows with a normal iso and optimise post installation

You can reinstall windows with a normal iso and optimise post installation

What commands can then be used to pack the OS into an esd file?
And what compression is better to use?

I'm not sure but probably some sort off lossless compression

@KiberAndy I'm not sure how we can go about getting the "Repair Your Computer" button to appear again, I don't know exactly what's skipping that screen. What you can do however is when preparing your Recovery Flash drive, you can use method 3 linked below:
https://github.com/memstechtips/UnattendedWinstall/tree/main?tab=readme-ov-file#method-3-use-ventoy-auto-install-plugin
That way, you can choose if you want to boot from the Stock Windows ISO file or if you want to boot from the Stock ISO file and then have Ventoy apply the autounattend.xml file as a Template.
As for the ESD file and compression, I'm not too knowledgeable about that at the moment.


Openstack Swift integration

Addition of support for persisting Kafka logs to OpenStack Swift.
This includes support for keystone and tempAuth (and for the Softlayer object service)

This addition was tested successfully using Amazon S3 service and Openstack swift.
For some reason, the tests fail when using fakeS3.

@mynameisguy you will need to fix the integration tests.

@mynameisguy This looks good. Would you mind squashing your commits before I merge it?

@pgarbacki Done

Thank you for the contribution @mynameisguy

BTW. @mynameisguy feel free to add yourself to the list of contributors.


Use Pluto.SessionActions to open / close a notebook

Hi!
We don't really have public API, but Pluto.SessionActions is the closest you can get! It gives easy function to open, run and shut down a notebook. These functions will probably not change for a long time. Take a look!
-fons

Awesome :smile: Thank you for thinking with me. I'll look into it soon

@rikhuijzer in my case also I want to use Pluto SessionActions and have the functionality to export cells in static html with PlutoStaticHTML update_run!(session, notebook, cells) for some reason is causing lot of scoping issues.


Unsupported configuration for Nuxt - Vercel Edge

was converting my env usage from the built in nuxt one (using useRuntimeConfig) to the t3-env
ran into a a situation that is not supported
// serve/utils/kysely.ts
import { Kysely } from 'kysely'
import { PlanetScaleDialect } from 'kysely-planetscale'

import type { DB } from '~/lib/db'
import { env } from '~/env'

export const db = new Kysely<DB>({
  dialect: new PlanetScaleDialect({
    url: env.DATABASE_URL,
  }),
})

this is something that does work when using Nuxt's default runtime as such
import { Kysely } from 'kysely'
import { PlanetScaleDialect } from 'kysely-planetscale'

import type { DB } from '~/lib/db'

const config = useRuntimeConfig()
export const db = new Kysely<DB>({
  dialect: new PlanetScaleDialect({
    url: config.DATABASE_URL,
  }),
})

getting an error that crashes the edge function saying DATABASE_URL is required
this only happens when deploying to vercel-edge as opposed to just the vercel preset.
do environment variables load differently when bundled for edge? is there a way to make it use nuxt's own runtimeConfig https://nuxt.com/docs/api/composables/use-runtime-config#environment-variables

do environment variables load differently when bundled for edge?

ah they might be treeshaking them from process.env on edge - similar to Next...
cc @nexxeln can you check plz :)

yeah i can reproduce this

Do we need to do manual destruction here too?


Add unit test for duplicate file names

Write fpp-to-dict output to txt file and compare against reference (similar to other tools). Added unit test case for duplicate file names.

I don't think we need them, I decided to include them to keep things consistent with other tool unit tests, for example fpp-to-cpp https://github.com/nasa/fpp/blob/main/compiler/tools/fpp-to-cpp/test/enum/default.ref.txt.

OK, I agree that makes sense now that we are checking for console output. Thanks!


Catch errors when cluster task list requested by user without access

Fix #64.

Codecov Report

Merging #65 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master      #65   +/-   ##
=======================================
  Coverage   74.53%   74.53%
=======================================
  Files          19       19
  Lines         970      970
  Branches      151      151
=======================================
  Hits          723      723
  Misses        247      247

Impacted Files
Coverage Δ

src/tkn.ts
85.17% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Add arbitrary support

This adds optional support for https://github.com/rust-fuzz/arbitrary/ behind
the arbitrary feature flag (off by default).
This will be used in a future pull request to enable fuzzing using cargo-fuzz

Note that I haven't added this to CI yet.

Note that I had to manually implement rather than use the Arbitrary derive in many places due to lifetimes (see https://github.com/rust-fuzz/arbitrary/issues/104)

This isn't 100% yet because the arbitrary Name implementation on Schema causes an error of IncorrectFormat all the time. That being said, this is a good start and allows everything to compile. I'm working on the custom arbitrary implementations that more closely match the expectations of the underlying data model.


Suggestion: GooglePlus OAuth ID Token handling

GooglePlus needs to have the ID token to be exchanged for the userinfo per
https://developers.google.com/accounts/docs/OpenIDConnect#exchangecode
While I was able to do this in my code with and persist this through my own provided decoder.
It would be great to have a more integrated RAuth way to do this.
Expand the RAuth example to support GooglePlus via OAuth and you can see my data points.
In the decoder, I have to intercept 'id_token' returned by GooglePlus and persist this through a session.get().json() to exchange this for a valid user info.
While this isn't hard once I had figured out how to replace default decoder which doesn't work in GooglePlus, I am merely suggesting that we may provide a better example and blessed workflow via RAuth.

Hello @DavidHwu , i think the get_raw_acess_token is the method to use in this case ( sure you did so ). So it kind of really look like a rauth way to do things, doesn't it ?
Example with OAuth2
raw_access = service.get_raw_access_token(data={"code": verifier, 'redirect_uri': callback_uri,'grant_type':'authorization_code'}, headers=headers)
parsed_access = json.loads(raw_access.content.decode('utf-8'))
access_token = parsed_access['access_token']
token_type = parsed_access['token_type']
refresh_token = parsed_access['refresh_token']


Add message to supplier dashboard when framework is coming

@TheDoubleK Have added a check for DOS in the template and updated the tests.

Looks good :+1:

Yep - do it :+1:


Deprecate detox

resolves #232

Sorry for mixing the fixes of the broken links into this pull request. Since I was editing the readme anyway I thought I would quickly fix this as well. If you change the website on top of the GitHub page too (https://iota.readme.io/ -> https://docs.iota.org/) then all links on the front page should be fine.


minor tweaks for rancherio > rancher

Spotted these, thought i'd offer a branch with them updated, let you guys focus on more important things!

@Rucknar thanks; not sure why but this says it has conflicts

Yea, surprised me that one. It's literally the smallest of changes and branched minutes before the pull request!. Seems to suggest i can't fix the merge either :(

@Rucknar it's because your fork was made a while ago and not pulled up to date, it's ~300 commits behind..
git remote add upstream https://github.com/rancher/ui.git # if not already setup
git fetch upstream
git rebase upstream master
# fix conflicts
git push -f

Thanks @vincent99 Will just re-create to be safe.


Project development

Choose an API to get numeric values based on a parameter https://api.coinpaprika.com/.
Follow these design guidelines, including colors, typography and layout.
When the page loads, the webapp shows the list of coins that can be filtered out by rank.
Along with the coin name, display market cap numeric values that come from the API.
When the user clicks (or taps) on a coin item, the application navigates to the details page.
In the details page, the webapp retrieves data from the API to show detailed data for the coin.
When the user clicks on the "Back" button (<), the user navigates to the home page.
Create unit tests for pure functions in Redux code.
Create integration tests for the application using the React Testing Library.
The project is a single-page application (SPA) built with React and Redux.
The data retrieved from the API is stored in the Redux store, and is filtered using a Filter stateless component.
Every page (the main page and the pages for each item) has a unique route within the SPA.
The project is deployed and accessible online (follow the link provided in the README file).

Hi @OLIPLICHE : if you see my request review in the additional info there is the link to the video. Please tell me if you can see it.
Thanks

Hi @OLIPLICHE : if you see my request review in the additional info there is the link to the video. Please tell me if you can see it. Thanks

Please Can't see it. Kindly make it visible and submit the PR. the next reviewer going to check it.


Runner end event can’t be caught if the grep option matches no tests

Prerequisites

[x] Checked that your issue isn't already filed by cross referencing issues with the common mistake label
[x] Checked next-gen ES issues and syntax problems by using the same environment and/or transpiler configuration without Mocha to ensure it isn't just a feature that actually isn't supported in the environment in question or a bug in your code.
[x] 'Smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, your usage of Mocha, or Mocha itself
[x] Ensured that there is no discrepancy between the locally and globally installed versions of Mocha. You can find them with:
node node_modules/.bin/mocha --version(Local) and mocha --version(Global). We recommend avoiding the use of globally installed Mocha.

Description
When running Mocha programmatically or in a browser, mocha.run() returns the test runner instance and event handlers can be attached to it. However, when the grep option is used and it matches no tests, ]it emits the end event synchronously](https://github.com/mochajs/mocha/blob/master/lib/runner.js#L621-L623) before the runner is ever returned from mocha.run() and before any third-party code could attach a listener.
I know I can work around this by providing a callback to mocha.run(), but it still seems reasonable to expect that you’d always have an opportunity to attach an event listener before the end event fires.
Steps to Reproduce
If I have a test suite at /single-test.js that looks like:
describe('Test suite', function () {
  it('A single passing test', function() {
    // this passes
  });
});

And I run the following:
const Mocha = require('mocha');
const mocha = new Mocha({ui: 'bdd', grep: /unmatchable/});
mocha.addFile('/single-test.js');
mocha
  .run()
  .on('end', () => console.log('End event handled!'));

Expected behavior: I expect “End event handled!” to be logged to the console.
Actual behavior: The test suite runs, but my handler does not.
Reproduces how often: 100%
Versions
Mocha 4.0.1

I wonder if fixing #2753 would automatically fix this too.

Ah! Yes, that definitely would (assuming end is guaranteed to come after start :P )

duplicate of #2753


Introducing calltable serialization to TransactionV1 structures subtree.

This is an extension to the bytesrepr serialization used in the rest of the node and it also uses the  FromBytes and ToBytes traits.
From now on selected types will use a specific serialization approach which will be called "calltable" serialization.
A "calltable-serialized" type is serialized as follow:

For structs:

Given type X with N attributes we assign a unique (in the scope of X) u16 index to each of the structs attribute. The assumption is that the indexes are 0-based
We serialize each of the structs attribute using it's ToBytes implementation, producing binary payloads: binary_vec0, binary_vec1, ..., binary_ve
cN-1. We don't allow any of the binary_veci to be empty.
We construct a bytes vector which is a concatenation of binary_vec0, binary_vec1, ..., binary_vecN-1
We construct a fields vector. The i-th element of fields is a description of the i-th attribute:

For field with index 0 this description will be:
field0 = Field {
index: 0
offset: 0
}
For each next field:
fieldi = Field {
index: i
offset: fieldi - 1.offset + length(binary_veci - 1)
}

We construct an instance of CalltableSerializationEnvelope {fields, bytes}  and serialize it using it's ToBytes implementation.

For enums:

Given an enum E with M variants we assign a u8 unique index for each of the variant. The variant-index should start from 0 and be contiguous.
Given an enum instance e of variant Ej (having variant index j) which has N attributes:

we assign a unique (in the scope of *Ej) u16 index to each of the enum variants attribute. The assumption is that the indexes are 1-based.
We serialize value of j as binary_vec0 and each of e attribute as subsequent binary_vec (binary_vec1, binary_vec2,..., bi
nary_vecN). We don't allow any of the binary_veci to be empty.
We construct a bytes vector which is a concatenation of binary_vec0, binary_vec1, ..., binary_vecN.
We construct a fields vector. The i-th element of fields is a description of the i-th attribute:

For field with index 0 this description will be:
field0 = Field {
index: 0
offset: 0
}
For each next field:
fieldi = Field {
index: i
offset: fieldi - 1.offset + length(binary_veci - 1)
}

We construct an instance of CalltableSerializationEnvelope {fields, bytes}  and serialize it using it's ToBytes implementation.
To recap, each enum variant we serialize analogously to a struct, but we prepend a synthetic u8 field which identifies the variant.

This PR applies calltable serialization to the following types:

InitiatorAddr enum
PricingMode enum
TransactionEntryPoint enum
TransactionInvocationTarget enum
TransactionScheduling enum
TransactionTarget enum
TransactionV1 struct
TransactionV1Body struct
TransactionV1Header struct

All other types (especially legacy ones, including those nested in "calltable-serialized" types) should use "regular" serialization logic.

bors r+


Add and costumize the top header and the navigation bar.

Delete the original content.
Add a google background for the top header.
Add a navigation bar, will implement the links later.

Curious, how can I see the current UI? Could you please attach a screenshot or server link in the description?

Curious, how can I see the current UI? Could you please attach a screenshot or server link in the description?

Also curious about this. And I wonder that could you access Google screenshot system? (I guess I can't paste a link here since it's open source, but you could MOMA this and click the link).

Curious, how can I see the current UI? Could you please attach a screenshot or server link in the description?

Also curious about this. And I wonder that could you access Google screenshot system? (I guess I can't paste a link here since it's open source, but you could MOMA this and click the link).

Yes, I have the access to the screenshot system. I've uploaded the screenshot of my current web page.
The link is [https://screenshot.googleplex.com/sTAdbZWDsLW.png].

Curious, how can I see the current UI? Could you please attach a screenshot or server link in the description?

Also curious about this. And I wonder that could you access Google screenshot system? (I guess I can't paste a link here since it's open source, but you could MOMA this and click the link).

Yes, I could access the screenshot system. And I've uploaded the image of my current web page.
https://screenshot.googleplex.com/sTAdbZWDsLW.png


2.0.4 update

Minitrino Release Notes: 2.0.4
Release Overview

Minitrino Release Notes: 2.0.4

Release Overview
CLI Changes and Additions
Library Changes and Additions
Other

CLI Changes and Additions

Remove requirement to uncomment a volume in the root docker-compose.yml file before mounting an enterprise license file (#57)
The STARBURST_LIC_PATH environment variable is now SEP_LIC_PATH
Set minimum Starburst version to 388-e
jvm.config and config.properties settings propagated through Compose environment variables will no longer cause the Trino container to restart if the configurations have already been propagated to the container
Users can now provision multiple authentication modules at the same time (modules involving http-server.authentication.type)
Update to Compose V2 (#62)
Add DOCKER_HOST environment variable support to work with other Docker .sock files, such as the one used with
Colima (#59)

Library Changes and Additions

Added iceberg catalog module
Added oauth2 security module (#60)
Update HMS image for all modules using an HMS to naushadh/hive-metastore (#61)

Other

N/A

Closing in order to migrate over to GitHub Actions.


mark_safe

The as_XXX methods don't use mark_safe (opposed to the standard django as_XXX methods).
Is this intentional?

I think that is an imparity between Django and Floppyforms that we should not resolve. Django is a little inconsistent with which values are marked as safe and which are not.
For example form.as_p() will give you a "safe" string which will not be escaped in the template where as form['name'].help_text will give you a pure string which will be escaped when used in the template.
Floppyform should keep the more consistent behaviour of always sticking with one of those. The safer bet here is probably to go with autoescaping by default. If you want the string to be displayed as is in the template, then use mark_safe in the definition:
from django.utils.html import mark_safe

name = forms.CharField(help_text=mark_safe('<b>Name</b>')

That is something that we should document.
Thanks for the report!


basehub: ensure default values are set for all values used by templates

The basehub helm chart makes use of values as seen in the templates.
https://github.com/2i2c-org/infrastructure/blob/fcd83405e42847b7b322d7d91b94e84a21c0d2b1/helm-charts/basehub/templates/docs-service-deployment.yaml#L1-L4
Not all values, for example these, are not provided with a default value in the basehub helm charts values.yaml file. This has a few downsides.

We are forced to write something like this ...{{ if .Values.docs_service }}
{{ if .Values.docs_service.enabled }}

... instead of just ...{{ if .Values.docs_service.enabled }}

... because we have to check for the existance of a mapping/dictionary named docs_service
We are making it hard for anyone looking at values.yaml to understand what is configurable.
This would be helpful to have for anyone configuring the helm chart, and if we are to create a schema for the helm chart - then we need to define it for the available options - see #937

Action point

[ ] Go through all basehub's templates and verify that values.yaml has an entry for all referenced configuration.

Agree! Do we want to track this as a part of #879 or is it for the future?

I consider it an standalone task that can be done quickly and unrelated to anything else, besides perhaps #937 which will want to do this as a sub-task if its not already done by then.

Mostly I want to make sure that we don't lose track of it, since #879 is the space for planning and coordinating this chunk of work...but if you think it'll be straightforward to loop back on it in the future then sounds good.


pip list - SSL: UNKNOWN_PROTOCOL

Hello,
to solve #269 I tried to install ansible with "pip3 install ansible" but I get the following error:

Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(SSLError(1, '[SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:877)'),)) - skipping

Also "pip3 list" & "pip list" print the same error.
I am using a http_proxy. This squid receives the request - log entry:

<IP_ADDRESS> - - [01/Mar/2023:14:44:30 +0100] "NONE error:invalid-request HTTP/1.1" 400 342 NONE:HIER_NONE

I have already talked to the Proxy-Admin about this. No further information can be provided.
So basically pip seems to be sending a wrong/malformed HTTP(s) request.
Does anybody run his envoirnment behind a proxy ? Or experienced the same issue?
Any ideas how to solve this ?
Thanks in advance !
Kind regards

not an issue, moved to discussion


Add MLX minimum setup

Add MLX minimum setup (MLX single user with pipeline, Tekton and istio only) for the Acumos team.  Currently #91 is blocking the MLX API from running the pipelines (for both single and multi-user)  #91 is fixed now

Hi Tommy, I created a new IKS cluster and will try out your setup

Hi Tommy, can you clarify how this new doc relates to our existing doc docs/mlx-install-with-kubeflow.md?

Hi Tommy, can you clarify how this new doc relates to our existing doc docs/mlx-install-with-kubeflow.md?

The one Mofi has created includes all Kubeflow components + MLX + datashim. This one in this PR is more for people who want to try MLX with basic pipelines and don't have to worry about auth/storage/namespace etc.

I'm not exposing this to the main README because this setup is more for people who only want to try out the MLX pipeline feature like the Acumos team and minimize their quota.

So for IKS users, they still need to do the block storage setup before running this kustomize build, yes? Anything else pre-requisite?

So for IKS users, they still need to do the block storage setup before running this kustomize build, yes? Anything else pre-requisite?

For this one there's no storage requirement. They technically iks can use the default nfs for the kfp-tekton mysql because kfp is using mysql 5.7. We only have the storage issue with the auth services and the mysql for metadata and katib only.

There's actually not many pre-requisite for this deployment other than the Kubernetes cluster and kustomize version. This is why I want to have this minimum setup to share with teams that only want to use MLX pipelines and have very few Kubernetes knowledge.

Two more questions:

Should this minimal deployment be prepopulated with the catalog?
Should users be able to launch pipelines and find the pipelinerun results?

Two more questions:

Should this minimal deployment be prepopulated with the catalog?
Should users be able to launch pipelines and find the pipelinerun results?

We don't have to, this deployment is more aimed for people who want to run pure pipelines. We can have some optional pointers on how to import assets, but not installing it by default. This is a minimum setup where we won't have katib, kfserving etc to run most of the Kubeflow related pipelines.
Yes, this is why #91 was the blocker. This is single user mode so everyone can run and view pipelines.

You can think of this like a minimum dev setup for teams who want to develop new assets on MLX. If they want to introduce new asset type like acumos marketplace, they can install them after the fact.

Should users be able to launch pipelines and find the pipelinerun results?

Yes, this is why #91 was the blocker. This is single user mode so everyone can run and view pipelines.

After a user launches a pipeline, where can they see the run results, graph, logs, etc? After I launched the Flip-coin example I get a blank white frame

@Tomcli want to clarify if I understand it correctly. For this minimum setup, users need to have a single user kubeflow which is using tekton as pipeline engine. then follow the steps to finish the mlx setup? If this is the case, it would be good to list this as prerequisite and maybe point out the kubeflow single user installation instruction as reference link.

@Tomcli want to clarify if I understand it correctly. For this minimum setup, users need to have a single user kubeflow which is using tekton as pipeline engine. then follow the steps to finish the mlx setup? If this is the case, it would be good to list this as prerequisite and maybe point out the kubeflow single user installation instruction as reference link.

No, this minimum setup only assumes users have Kubernetes running. They don't need to install anything else. This is designed to have MLX running with minimum dependencies so people can run it on dind and minikube for development.
The main goal for this instruction is to let the Acumos team deploy MLX on their local machine because their Acumos marketplace is also deployed locally.

I see. thanks for the explanation. I got the picture now. I didn't look into the manifest you mentioned in the doc earlier.

Should users be able to launch pipelines and find the pipelinerun results?

Yes, this is why #91 was the blocker. This is single user mode so everyone can run and view pipelines.

After a user launches a pipeline, where can they see the run results, graph, logs, etc? After I launched the Flip-coin example I get a blank white frame

It should work with your fixes. If you get a white frame that means the API is returning 500 errors

Should users be able to launch pipelines and find the pipelinerun results?

Yes, this is why #91 was the blocker. This is single user mode so everyone can run and view pipelines.

After a user launches a pipeline, where can they see the run results, graph, logs, etc? After I launched the Flip-coin example I get a blank white frame

It should work with your fixes. If you get a white frame that means the API is returning 500 errors

The API returned with status 200, response:
{
  "run_url": "/runs/details/4dfe4833-637b-42fa-82ba-39efeb84b199"
}

The /pipeline request returned this error:
You need to enable JavaScript to run this app.

After launching the pipeline run, the MLX UI shows a white content frame:

On Firefox, the /pipeline request returned this error:

You need to enable JavaScript to run this app.

On Chrome, the /pipeline request returned this error:

Too many requests, please try again later.

@ckadner can you try it again on chrome? Also, for all the forwarded path there's a 1 minute rate limit over here.
https://github.com/machine-learning-exchange/mlx/blob/main/dashboard/origin-mlx/server/server.ts#L102-L110
If it happens too often, we may want to make it configurable.

After launching the pipeline run, the MLX UI shows a white content frame:

On Firefox, the /pipeline request returned this error:

You need to enable JavaScript to run this app.

On Chrome, the /pipeline request returned this error:

Too many requests, please try again later.

@ckadner can you try it again on chrome? Also, for all the forwarded path there's a 1 minute rate limit over here.
https://github.com/machine-learning-exchange/mlx/blob/main/dashboard/origin-mlx/server/server.ts#L102-L110
If it happens too often, we may want to make it configurable.

On Chrome, after some time, same error as on Firefox:
You need to enable JavaScript to run this app.

I'm pretty sure I do have JavaScript enabled on both Chrome and Firefox

I tried it on a new IKS today and here is what I found:

I like to use LoadBalancer to access the istio ingressgateway, so I created a gateway - kubeflow-gateway to handle the ingress. the virtualservice for mlx-ui and mlx-app are already there and they attach to kubeflow-gateway, I can get into the mlx-ui properly
after I imported the boostrapper catalog, I can see all of the cards for pipelines, datasets, notebooks and etc.
I can't launch the pipeline and seems it can't find the /pipeline. I got 404. I guess the reason is there is no virtualservice for the underlying ml-pipeline-ui service. The only virtualservice I saw are mlx-ui and mlx-app.

I tried it on a new IKS today and here is what I found:

I like to use LoadBalancer to access the istio ingressgateway, so I created a gateway - kubeflow-gateway to handle the ingress. the virtualservice for mlx-ui and mlx-app are already there and they attach to kubeflow-gateway, I can get into the mlx-ui properly
after I imported the boostrapper catalog, I can see all of the cards for pipelines, datasets, notebooks and etc.
I can't launch the pipeline and seems it can't find the /pipeline. I got 404. I guess the reason is there is no virtualservice for the underlying ml-pipeline-ui service. The only virtualservice I saw are mlx-ui and mlx-app.

update: I added ml-pipeline-ui virtualservice manually and I can launch a pipeline and see the pipeline run DAG properly.

Did you try with the new commands I put in? Sometimes the first kubctl apply, you may see some resources have errors saying the CRD is not ready.

@Tomcli

Did you try with the new commands I put in? Sometimes the first kubctl apply, you may see some resources have errors saying the CRD is not ready.

yes, I used your new while loop command to do the installation

@Tomcli

Did you try with the new commands I put in? Sometimes the first kubctl apply, you may see some resources have errors saying the CRD is not ready.

yes, I used your new while loop command to do the installation

@yhwang when you run that command again, does it fix the issue?

@Tomcli
I still can't see the ml-pipeline-ui virtual service after I ran the command three times. And I check the output of kustomize build example. there is no ml-pipeline-ui vs.

@yhwang are you using the mlx-single-user branch? The overlay on that branch is different from master.

your command: git clone https://github.com/machine-learning-exchange/manifests -b mlx-single-user

I fetched the newest code from https://github.com/machine-learning-exchange/manifests and followed the instructions to finish the deployment again. it works for me now!


[backport] [FLINK-5278] Improve task and checkpoint related logging

Backport of #2959 for release-1.1.
Improve logging of Task and checkpoint logic.
cc @uce

Changes look good to me. Merging...

Merged by @uce.


Criando Model com elementos de JSON

Boa tarde Felipe,
Estou realizando alguns testes com sua lib, onde preciso usar o model "DemoItem" de um modo diferente.  Criando ele de um JSON com outros elementos além do "DemoItem" você tem algum exemplo básico disso?
Obrigado!

(sorry, replying in English since that's the default language used on Github)
You can have as much information as you want in your adapter items. It doesn't have to be a DemoItem either, the only requirement is that it implements the interface AsymmetricItem. You can use Gson, Jackson or any other JSON library, that has nothing to do with this library and it shouldn't interfere.
Please let me know if you need more info.


pull request for e2e test at 11/23/2016 11:56:03

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

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


Refactor, add plugable cache framework

As @ngaut mentioned add a plugable cache framework for PD.

Hi, @blacktear23 , please run make dev to pass all code checks.

/ok-to-test


add: shrix1

Description

Added shrix1.json file

Related Issues

Changes Proposed

Added shrix1.json file
Added shrix1.json string in profileJosn array

Checklist

[x] I have read and followed the Contribution Guidelines.
[x] All new and existing tests passed.
[x] I have updated the documentation to reflect the changes I've made.
[x] My code follows the code style of this project.
[x] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

@shrix1 Thank you so much for your contribution! Your efforts are greatly appreciated and will go a long way in improving our project. Please feel free to share it with others and help us grow even further!


setState calls on unmounted component

here and here
Both calls can cause an error if component is unmounted.

Fixed in https://github.com/thejameskyle/react-loadable/commit/95a472cadfa60c237e3c5cdf6a5542691552f1e7


I have a problem when running setup_host.sh to build PYNQ image

When running setup_host.sh to build PYNQ image, I faced this problem.
util/memfd.c:40:12: error: static declaration of ‘memfd_create’ follows non-static declaration
static int memfd_create(const char *name, unsigned int flags)
^~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/bits/mman-linux.h:115:0,
from /usr/include/x86_64-linux-gnu/bits/mman.h:45,
from /usr/include/x86_64-linux-gnu/sys/mman.h:41,
from /home/toan/pynq/sdbuild/scripts/tools/qemu-2.8.0/include/sysemu/os-posix.h:29,
from /home/toan/pynq/sdbuild/scripts/tools/qemu-2.8.0/include/qemu/osdep.h:104,
from util/memfd.c:28:
/usr/include/x86_64-linux-gnu/bits/mman-shared.h:46:5: note: previous declaration of ‘memfd_create’ was here
int memfd_create (const char *__name, unsigned int __flags) __THROW;
^~~~~~~~~~~~
/home/toan/pynq/sdbuild/scripts/tools/qemu-2.8.0/rules.mak:60: recipe for target 'util/memfd.o' failed
make: *** [util/memfd.o] Error 1

OS: Ubuntu 18.04.2 LTS

Hi,
After a quick google search of your issue, turns out it is a common problem found when using qemu on ubuntu 18.04.
As this is not strictly related to PYNQ, the quick solution I would suggest is to run the build process on Ubuntu 16.04 instead. You can build a VM using Vagrant and the Vagrantfile provided (https://github.com/Xilinx/PYNQ/blob/master/Vagrantfile).
Best,
Giuseppe Natale
From: toannv123<EMAIL_ADDRESS>Sent: Thursday 20 June 2019 13:21
To: Xilinx/PYNQ<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: Re: [Xilinx/PYNQ] I have a problem when running setup_host.sh to build PYNQ image (#870)
EXTERNAL EMAIL
OS: Ubuntu 18.04.2 LTS
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/Xilinx/PYNQ/issues/870?email_source=notifications&email_token=AC5ORW7JMRW2E4YCAH54CLTP3NYZVA5CNFSM4HZSNQT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYFH36Y#issuecomment-504004091, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AC5ORW3ZAXM3W62SKRFBP7LP3NYZVANCNFSM4HZSNQTQ.

Thank you for your quick reply. I fixed it by using patch file.
https://patchwork.ozlabs.org/patch/842091/


ipv6 client connection fails Error: connect EINVAL

I got the server listening with ipv6 and a percent % with the interface name following For local prefix fe80, but when I go to use Client to connect with wss://[fe80::a00:29?f:fdc2:e0?c]/path
There is no connection with _Error: connect EINVAL_
If I include the Ethernet device name wss://[fe80::a00:380f:fe2f:67fd%enp0s3]/path
Error: You must specify a full WebSocket URL, including hostname. Relative URLs are not supported.
    at WebSocketClient.connect

while a browser is good with just [i::p:v:6] no devicename and curl wants and likes it with the device name?
Seems like somewhere in the Client connect it's improperly understanding proper acceptable ipv6 addresses?!
Note you can also send a %25 to represent the % sign character and again the same with curl it will understand the url encoded percent sign. I've tried these with it including trying to backslash the percent sign, so not too many more options left I can think of? Maybe I need something other then ipv6 local addresses prefixed with fe80? alas that would be pretty hacking. Another hack might involve DNS.

WebSocketClient line 132
        this.url = url.parse(requestUrl);
Wrong result...
Url {protocol: "wss:", slashes: true, auth: null, host: "", port: null…}
auth: null
hash: null
host: ""
hostname: ""
href: "wss:///[fe80::a00:27ff:fe2f:69ff%enp0s3]/srvlnk"
path: "/[fe80::a00:27ff:fe2f:69ff%enp0s3]/srvlnk"
pathname: "/[fe80::a00:27ff:fe2f:69ff%enp0s3]/srvlnk"
port: null
protocol: "wss:"
query: null
search: null
slashes: true

Bug confirmed. Please make this package usable in a modern IOT world, thank you?!

Hi, just to be clear:

fe80::2e0:4cff:fe68:23ff is a valid IPv6.
[fe80::2e0:4cff:fe68:23ff] is a valid IPv6 reference (which means it can be used within a HTTP/WS URI).
fe80::2e0:4cff:fe68:23ff%en7 is not a valid IPv6 at all. The % symbol is NOT a valid char within a IPv6.
So [fe80::2e0:4cff:fe68:23ff%en7] is not a valid IPv6 reference.

So url.parse() is behaving correctly. As you can see, the behavior of url.parse() is still the same in Node 7.
To summarize:

The IPv6 grammar⁄syntax clearly states that %` is not a valid symbol within a IPv6.
If you attempt to use an IPv6 with % in Node it will fail (as long as any module calls url.parse() with it), so this is not an issue of Node-WebSocket.
WebSocket-Node should not do a specific hack to allow this wrong IPv6.

Here is the patch that works for me nothing else would.
See https://github.com/theturtle32/WebSocket-Node/pull/279

Here is the patch/PR that works for me nothing else would. See #279

My point is that such a workaround should not be done within Node-WebSocket. You should not pass any IPv6 with a % symbol and expect that a library binds a local socket on it. Because it's an invalid IPv6.

Not sure where the problem really is as you've pointed out thank you for your time.

The problem is that it's not a valid IPv6. Nothing else.

Well it only works that way with your Server it won't bind to it because it's a local range and needs the device name appended with a percent to understand where to route it or something I think? Maybe the specs wrong then?

Then there is a definitive issue with IPv6 and local ranges. The IPv6 BNF grammar does not allow (AFAIK) the % symbol into it. May you point please to any spec/RFC indicating that?

BTW, in your #279: Instead of that, you may directly pass a URL object to the connect() method.

Here is something I mention in the PR something about that but that it seems more fool proof and easier, but it's a good point I should explore that.
https://superuser.com/questions/99746/why-is-there-a-percent-sign-in-the-ipv6-address
it points to the so called least difficult they could find here...
https://msdn.microsoft.com/en-us/library/aa917150.aspx

In RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
   A host identified by an IPv6 literal address is represented inside
   the square brackets without a preceding version flag.  The ABNF
   provided here is a translation of the text definition of an IPv6
   literal address provided in [RFC3513].  This syntax does not support
   IPv6 scoped addressing zone identifiers.

So, to be clear, you should NOT include a IPv6 scope ID into a URL.
I understand your issue, but it's not something that should be fixed within Node-WebSocket.

Said that, it's true that calling bind() with a link-local IPv6 with scope Id does work.


Provide overloads for an Win32 handle as owning window (augustoproiete/ookii-dialogs-wpf#18)

Thank you @mu88!


minor fixes for NFT metadata

@rubelux are the char limits imposed by the grant form, or are you saying that they need to be imposed by this description generation snippet?


Internet Explorer lags when opening threads

Internet Explorer takes a long time to open all threads. I believe this has to do with unexpected content being clicked on when opening threads through PonyDebate. The selector will likely need updates

I can't verify this behaviour in detail as I'm a Linux-User and Wine has an enormous effect on speed.  How extreme is the difference under normal circumstances? Is this reproducable with small threads (two replies max per post)
I think if IE is significantly slower than other browsers there can be two options: Either MS once again ignored all standards and interpretates the code differently or the IE has a problem with buffering. If I understood the working of expanding threads right, replies only get loaded once their thread is opened, so there is a big load of new data when up to 50 posts are opened simultaneously. My small laptop also lags a bit if I execute the script on the big discussions where Soda, A1X and Scape all have threads with over 100 replies each.
I don't know how to fix the problem if IE is just being stupid with interpretation (except writing IE-only subcodes -.-) but if the problem lies in buffering creating a 'cap' will reduce the lag by a fair bit:
//-----Conditional opening, sample snippet
a = $('.idc-collapselink_closed')
function openThreads(replies) {
  a.each( function(i,e) {
    b = parseInt(this.innerHTML);
      if (b < replies && b > 0) {
        this.click(); } }); }

To execute it there could be an input-field added next to the open-button with a pre-defined 'normal' value that gets transmitted to this function.

On a different note: I posted my code for link-previews on codebin (http://codebin.org/view/120a3f53); once I understand how github works exactly I will repost it here. Only major problem in the moment is that some links inexplicably reset the window-height but for the most part it catches all 'normal' links the pony-folk posts.

The lagging is not really due to the number of replies but due to something in IE. I took an extra look at it and even opening normal threads causes a freeze for a second which makes it very noticeable when all threads are being opened. I looked into a bit more and have came up empty so far. I don't think changing how we are opening replies will fix things unfortunately.
I'll have to check out that script and see if I can get it loaded into PonyDebate.


Move JS include tag below the fold in application layout

...and a few other random things on the general clean-up theme. :grin:

:+1:

Thanks @amygori :D


Don't use element.remove. (<= IE9)

element.remove is used in this line, however it is not supported in a relatively new vesion of IE, IE 9. It would be great if you could just use another method to remove elements.

Thanks @d10, i'll fix it.


Update Sample Code that are currently using fluent SDK to T2 SDK- ACI

Azure-Samples/aci-dotnet-create-container-groups
Azure-Samples/aci-dotnet-create-container-groups-using-private-registry
Azure-Samples/aci-dotnet-manage-container-instances-1
Azure-Samples/aci-dotnet-manage-container-instances-2

dup with #1866


Unknown props should be passed as attributes to the container, or don't use a container at all

Right now, SanityBlockContent handles the className attribute, but not, for example handle style attribute (very common attribute, surprised me className was accepted but not style). It's confusing that in cases of single nodes, <SanityBlockContent> does not render a container <div> element, but when multiple nodes it does, and when it does render a container, unknown attributes to <SanityBlockContent> are not passed along to the container to render them as attributes.
Please do one of the following:

Just render to a fragment and leave container-handling to the user. This is a breaking change, obviously, altering element nesting significantly.
Render a container if and with unknown attributes are passed along to <SanityBlockContent>. Breaking change in the sense that attributes that were specified but were ignored will no longer be ignored.

There should be an option to render an array of fragments.

I think render an array of fragments is the solution. you can wrap BlockContent in a container if you need to, but if you don't, then an array of fragments is the ideal solution. Specially for us using CSS in JS I now need to target the container instead of the children I'm expecting.

Just ran into this and hopping in here to say this as well!

Closing this, as the new @portabletext/react library is the successor to this module.
Please see https://github.com/portabletext/react-portabletext


Generate disconnect event when node is deleted.

Right now only the DeleteNode response is generated even if the node had connections. Would expect it to generate a disconnect event for every connection it had.

Indeed! This was an oversight on my end. I just pushed a new PR that fixes it. I verified the new behavior is correct, but could you give it a go on your end to verify everything now works as intended?


CLI Logging Levels

Closing issue https://github.com/Web3-API/monorepo/issues/99

Closing this for now


Feature/Flexbox

Feature
Right now we have the standard Col, Row components and there is some flexibility in those. However it can get cumbersome when using flex-box to use classnames for div elements such as centering a element's children: <div className="d-flex flex-column align-items-center"> ...
This is more centered around a question before creating the feature but would it be worth it to create a Flexbox component or are the existing rules in the Col, Row classes good enough for the use cases.
Classnames do make this a lot smaller but to minimize the classnames used in the case there are custom css classes people are using they won't have a large declaration.
Code
Example:
<Flexbox row tag={Card} align="center" justify="center">
...
</Flexbox>

Found other issues that had enchancements for v4 but was unclear how the flexbox issue was fixed with this. PR #175

bootstrap v4's layout wasn't always flexbox, originally it was the same as v3. #175 added the ability to set a column to true or 'auto' to enable the new flex feature where the column would take up the remaining space.
flex as well as other utilities support was discussed in #81 but was ultimately turned down. Maybe it's time to create a component.
I think something like #1331 would need to be completed to allow multi tags to be passed so that the developer can still control the tag Card (in this case) ends up outputting.
Also, there was some discussion in #1276, not too if it really applies as I like the component you suggest more so than the HOC, but it has some prop names in the example which might be useful to implement.

I was trying to go based off what you had in the example in #1276. https://codesandbox.io/s/kkj6wxlryo
Its hard not to go overboard on all the prop attributes for the flex components. Where it gets complicated is when you have all these extra attributes such as justify-content-md-around so you also have a size attribute tied to each classname so you would almost have to either keep a component at 1 attirbute or pass an array like content={["center-md","xl-around"]}.
Maybe its better in this case to just provide the simple flex classes in bootstrap and have a Flexbox component that just accepts a div and the d-flex class.

I think the solution in your original post is good. To support breakpoints, I would suggest a syntax more like Col's (to keep it consistent), justify={{md: 'center', xl: 'around'}} (ends up being the same length as the array if you don't space about the : and ,).
If we just support the flex wrapping element classes, I think that's ok. It would be nice to also have support to the flex children (maybe in a separate component), such as order, align-self, grow/shrink, fill, etc.
For the wrapper, I think these props make sense:

justify: justify-content
alignItems: align-items (maybe a better prop name (items sounds misleading)
content: align-content
wrap: wrap
direction: direction (maybe row/column props?)
inline: inline-flex
also, something maybe so the d-flex can be conditionally applied to breakpoints, as indicated in the top of the bootstrap flex docs

I'm looking for this one!

Hey guys! This feature would be really nice.

I don't see why another layer of abstraction should be added over default flex utilities
https://getbootstrap.com/docs/4.5/utilities/flex/

@iamandrewluca Sorry, I haven't tried that yet. Thanks for your reply.  I'm going to try it out. :)


Update zh-CN.lang

add number

Nice :)

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Graphs Not Displaying

I have followed the install instructions from the magic mirror site. Config is as follows.
      module: 'MMM-Powerwall',
        position: 'top_left',
        config: {
           powerwallIP: '<IP_ADDRESS>',
           teslaAPIUsername<EMAIL_ADDRESS>           teslaAPIPassword: "XXXXXX",
           home: 'XX.48687,XXX.46614',
           graphs: "HouseConsumption"

The manual token file creation works! Thanks
There is no graph display on "House is consuming and amount" which is correct and nothing else.
What have I missed ? Thanks in advance!

If the current usage and total for the day are both showing properly, it's collecting all the right information, so that's good.
If there's no graph, you might not have chart.js installed.  Did you do npm install after cloning the module repo?

Yes I made a NOOB error. It turns out that NEM install will run on the modules directory but doesn’t update the dependencies. I have now run it in the mmm-powerwall and all is good. Thank you very much.

Happy to help!


"no such fil or directory" errors during go lint checking

A lot of "no such file or directory" errors are printed to console during linter check analysis (I've printed log messages before and after lint check, so I think the problem in linter checker).
For example, during goreportcard checking itself repository (https://github.com/gojp/goreportcard) a few hundreds of messages like these is prited:
open repos/src/github.com/gojp/goreportcard/repos/src/github.com/gojp/goreportcard/vendor/golang.org/x/sys/unix/syscall_linux.go: no such file or directory
open repos/src/github.com/gojp/goreportcard/repos/src/github.com/gojp/goreportcard/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go: no such file or directory
open repos/src/github.com/gojp/goreportcard/repos/src/github.com/gojp/goreportcard/vendor/golang.org/x/sys/unix/syscall_unix.go: no such file or directory

It seems that go linter checker fails, because I have much more linter warnings when I check my sources with metalinter directly than Go Report Card results prints

@savinov I'm not seeing these errors, are you running GRC locally?

Yes, I am running latest github version of GRC locally.
Ubuntu Linux 12.04.5, Go version is 1.6.3, gometalinter is latest from the github (but, as I said before, gometalinter works without errors).

@savinov Are you solve this problem ?

No, I just have found this problem and opened the issue.


chore(release): v1.7.0 🎉

:robot: I have created a release beep boop
1.7.0 (2024-09-12)
Features

duration: expose get duration procedure (87b9d7b)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/ehmpathy/uni-time/releases/tag/v1.7.0 :sunflower:


RKB-202 RHEL-07-020270 Enables installing yum-cron

This PR requires that the Optional yum repo is configured.  If not, the STIG run will likely fail.

The item requiring yum cron is RHEL-07-020260.


Initial cleanup with static analysis tools:  whitespace, idiom, deleting unused items

Many changes here using static analysis tools to find style and linting errors (kibit, eastwood, cljfmt) to conform to community standards.
It might be easiest to review each commit in turn, since the first one changes almost every line (whitespace corrections according to bbatsov's community style guide).

This is great @tschady , thanks a lot!
I've rebased the PR against the dev branch, but I see a conflict that I'm not 100% sure how to resolve; could you please have a look at it?
Also, I wonder how we can prevent linting issues in the future; I believe that Travis builds should fail, if linting is broken; do you know how we can update our .travis.yml accordingly?
TY!

@maoo I cannot easily resolve the conflict as I don't have write perms, but the only diff is version number bumps in dev branch.  Updating those will resolve.  Want to give it a try?  I'll work off dev for the future.

Also, I wonder how we can prevent linting issues in the future; I believe that Travis builds should fail, if linting is broken; do you know how we can update our .travis.yml accordingly?

Added #43

LGTM, merging.


Create user API

POST /users
parameter: JSON user object
returns: nothing
registers new user
status code indicates success, 201 created


Add signing pipeline yaml to v5 branch

Fixes #6032

Hi @BruceHaley, shouldn't we wait until #6026 is done before we merge this one?

It's done.


Update overview.md

修正错别字

 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.

非常感谢贡献pr 。如果方便可以将使用ilogtail场景在这里记录下https://github.com/alibaba/ilogtail/issues/693


FindConnext much slower since 5.3.0 upgrade

Finding Connext was taking a few seconds and is now taking ~30sec since we upgraded to Connext 5.3.0.
The main reason seems to be the execution time of rtiddsgen_server invoked from CMake.
See https://github.com/ros2/rmw_connext/pull/253#issuecomment-333705170 for more details

I have filled a ticket with RTI since the problem seems to be that when being invoked from CMake the script waits until the forked daemon times out (which defaults to 20s). So the forking logic must have changed in Connext 5.3 which is responsible for the regression.

To be exact the behavior did not change between 5.2 and 5.3. The only thing is that, in 5.2, when called without any argument it was failing early and not forking the daemon. In 5.3 it forks the daemon regardless of the presence of arguments. Since #253 I would expect the same behavior (waiting for the daemon to time out) for 5.2 and 5.3


seed_data.zip is missing signal_single.json

I'm running a dev build and the Traffic Lights tutorial crashes because it's missing data/system/synthetic_maps/signal_single.json. That's after running ./data/grab_seed_data.sh which removes the file and overwrites it from a ZIP file that doesn't include the synthetic maps it seems.

Woops. Uploading a new package, but in the meantime, you could run 'git checkout .' after grab_seed_data.sh to restore the file, since that one's under version control.
I'll think about better ways to keep this up to date.

Yep that fixed it! 👍

The new .zip is uploaded, so closing this


Provide configuration options via decorators

Mazure decorators, and context manager for that matter, are pretty basic at this point. This PR aims to provide the user the option to

Request to mock specific services. For eg, the following usage will only mock Azure storage account services.@mazure('storage_accounts')
def test_method():
   ...

Allow live requests for requests corresponding to services or features currently not supported by Mazure.@mazure('storage_accounts', allow=True)
def test_method():
    ''''
    Storage accounts are currently supported by Mazure.
    Azure API calls are mocked accordingly.
    '''
    list_storage_accounts()

   '''
   Cosmos DB service is currently not supported by Mazure.
   With `allow=True`, Mazure will pass through the request to the Azure API.
   '''
    list_cosmos_db_accounts()

NOTE: At present, this functionality depends on a small patch to the responses library. Needs further investigation.

Upstream pull request available at https://github.com/getsentry/responses/issues/388


add testsuite to invoke the makedata suite from the RTA

Scope & Purpose
RTA has a set of javascript tests that check the integrity of certain structures.
Checklist

[x] this is a testsuite.
[x] Backports

[ ] Backport for 3.9: (Please link PR)
[ ] Backport for 3.8: (Please link PR)
[ ] Backport for 3.7: (Please link PR)

ARM compile job failed because of CI issues. This PR doesn't contain c++ changes.


Add insertion_sort.go

Here's the insertion sort algorithm in go. Let me know if you have any feedback.
Also, cool project. Did you start this to learn and have reference for data structures and algorithms?

Good work alecswift, yes i started this to learn and have reference for data structures and algorithms


Any file open dialog crashes on Arch Linux

VSCode Version: 1.49.1
OS Version: Linux x64 5.8.10-arch1-1
Commit: 58bb7b2331731bf72587010e943852e13e6fd3cf
Date: 2020-09-23T22:26:38.399Z
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0

KDE Plasma is my desktop environment.
Steps to Reproduce:

Start VS Code
Try to open a folder, file, or workspace.
VS Code crashes without any error.

Does this issue occur when all extensions are disabled?: Yes

Did you install vscode via snap ?

Did you install vscode via snap ?

No, I did not. I used pacman.

Update to latest stable 1.49.2 and launch with code --crash-reporter-directory /tmp/vscode-crash, once the crash happens by opening any dialog, attach the generated crash dumps from that directory. Thanks!

Update to latest stable 1.49.2 and launch with code --crash-reporter-directory /tmp/vscode-crash, once the crash happens by opening any dialog, attach the generated crash dumps from that directory. Thanks!

vscode-crash.tar.gz

Thanks for the dump, currently there are missing symbols for
libgio-2.0.so.0  ???  (WARNING: No symbols, libgio-2.0.so.0, A7EBE401A46DA7B4E61D629A75BDD33A0)
 libglib-2.0.so.0  ???  (WARNING: No symbols, libglib-2.0.so.0, 39FBCD6566D23502051F5CEF4A9171CF0)
libgobject-2.0.so.0  ???  (WARNING: No symbols, libgobject-2.0.so.0, FDE33F09D68AFE6DEC83B393C87B153E0)

we are using https://symbols.mozilla.org/ as the symbol server. Do you know where I can get debug versions of these archlinux packages ?

Thanks for the dump, currently there are missing symbols for the following in the server we depend on https://symbols.mozilla.org/
libgio-2.0.so.0  ???  (WARNING: No symbols, libgio-2.0.so.0, A7EBE401A46DA7B4E61D629A75BDD33A0)
 libglib-2.0.so.0  ???  (WARNING: No symbols, libglib-2.0.so.0, 39FBCD6566D23502051F5CEF4A9171CF0)
libgobject-2.0.so.0  ???  (WARNING: No symbols, libgobject-2.0.so.0, FDE33F09D68AFE6DEC83B393C87B153E0)

Do you know where I can get debug versions of these archlinux packages ?

I'm not 100% sure, but my bet is on the eschwartz repository, according to https://wiki.archlinux.org/index.php/Debug_-_Getting_Traces#GTK3/GLib2

yup that repo contained the debug versions, I will try to symbolicate them tomorrow. Side tracked on another issue today.

yup that repo contained the debug versions, I will try to symbolicate them tomorrow. Side tracked on another issue today.

Hello! Any update on this?

I think I might have this issue. In my case running Manjaro with VSCode from Snap.

I think I also have this issue ...
No snap package, .deb downloaded from vscode web site. I've tried with code and code-insight. All extensions disabled.

Version: 1.50.1
Commit: d2e414d9e4239a252d1ab117bd7067f125afd80a
Date: 2020-10-13T14:44:48.716Z
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0
OS: Linux x64 5.4.0-52-generic

When I try code --verbose I get this output
[13386:1030/185139.499272:INFO:CONSOLE(1707)] "%cTRACE color: #888 KeybindingService#dispatch Ctrl+O workbench.action.files.openFile", source: file:///usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js (1707)
[13386:1030/185139.499331:INFO:CONSOLE(1707)] "%cTRACE color: #888 CommandService#executeCommand workbench.action.files.openFile", source: file:///usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js (1707)
[13386:1030/185139.499915:INFO:CONSOLE(1707)] "%cTRACE color: #888 telemetry/workbenchActionExecuted [object Object]", source: file:///usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js (1707)
[13386:1030/185139.607316:FATAL:memory_linux.cc(37)] Out of memory.
/dev/fd/3: No such file or directory
Server response:
/dev/fd/3: No such file or directory
Server response:

I'm on Ubuntu 20.04.1, ext4, plenty of disk, plenty of ram
code --crash-reporter-directory /tmp/vscode-crash --disable-extensions gives this output : vscode-crash.tar.gz
I basically cannot work anymore on my project :'(
Any help appreciated

This issue also happens for me on Manjaro when trying to close an opened and unsaved file or delete a file in the file explorer.

Can everyone check if the latest insiders fixes the issue https://code.visualstudio.com/insiders, thanks!

Can everyone check if the latest insiders fixes the issue https://code.visualstudio.com/insiders, thanks!

Fixed it for me

Fixed it for me

Oh shoot, exact same behavior for me with code-insiders_1.51.0-1604433932_amd64.deb

This is fixed for me in 1.51.0 (non-insiders).

I've tried 1.51.0, still the same :(


OGC OWS Context GeoJSON Encoding Standard 14-055r2 ambiguities

In the latest OGC OWS Context GeoJSON Encoding Standard 14-055r2 we came across a few ambiguities that we couldn't solve for ourselves:
I am summarising those subsequently here, with the kind request to indicate the intended standard behaviour. If that is of any help, I would be glad to support the improvement of the examples in the OGC Schemas repository as well, as they are mostly still based on the former OWS-10 testbed results.
7.1.1 Class OWC:Context: specReference
specReference: <xz>.properties.links.profiles requires the Specification Reference (requirements class) identifying that this is an OWC Context document and its version. Table 1 defines the data type as an Array of links profiles (as defined in Table 10 - data type "links") where one element SHALL have the href value “http://www.opengis.net/spec/owc-geojson/1.0/req/core”
But the multiplicity defines: One (mandatory) and the GeoJSON example <IP_ADDRESS> shows another different picture, which is only an array of String.
"links" : {
 "profiles" : [
  "http://www.opengis.net/spec/owc-geojson/1.0/req/core"
 ],
},

We implemented links.profiles as an array of links as objects of data type links from 7.1.10, table 10 with href, type, lang, title and length. And one mandatory link object element is required that has the specified core profile url.
Is that the desired behaviour?
7.1.2 Class OWC:Resource: resourceMetadata
Secondly, we found a quirk with the <>.properties.links.via description. In 7.1.1 Class OWC:Context "contextMetadata" is an Array of links as defined in Table 10 (Zero or more), and the example shows a JSON array. all good so far. However in OWC:Resource it is "resourceMetadata" which is also a <>.properties.links.via path but explicitly called "Link object" (whereas links.data, links.previews and links.alternatives are Arrays of Link objects). But then in the column multiplicity it states "Zero or more" as with all the other link object arrays? But the example explicitly shows a single link object under the path <>.properties.links.via:
"via" : {
  "href" : "http://www.acme.com/products/algal20090123090856.xml",
  "type" : "application/xml",
  "length" : "435",
  "title" : "XML metadata file for the entry 2009-01-23 09:08:56"
}

This is confusing. What is the intended behaviour? We chose an array of link objects to mimic the other link object arrays general behaviour. Is that appropriate?
7.1.7 DataType OWC:Creator
There seems to be an exceptionally different behaviour for "<IP_ADDRESS> creator". In OWC:Context there is only mentioned the path: <xz>.properties.creator
with a presumably wrong and irrelevant example:
"creator" : "ACME CSW Server”,

Because the abstract 7.1.7 DataType OWC:Creator is later typed into specific:

owc:CreatorApplication - <xz>.properties.generator
(as defined in Table 8)

owc:CreatorDisplay - <xz>.properties.display
(as defined in Table 9)

But the actual issue that I mean is that in 7.1.7 DataType OWC:Creator specifies at first a generic extension (without a JSON path, because it is abstract) - then extension for <xz>.properties.display.* in Table 9 - Definitions of owc:CreatorDisplay elements is explicitly described BUT COMPLETELY ABSENT for <xz>.properties.generator.* in Table 8 - Definitions of owc:Creator/OWC:CreatorApplication elements.
That seems either accidental or the reason is not obvious. We chose the freedom to allow for an extension in OWC:CreatorApplication the same way the extension is declared for ALL other data types. Is that ok or did you choose the description intentionally?
DataType OWC:StyleSet

the naming of the parameter 'default' for the style set to indicate if it is the default style for a layer/resource/offering is problematic, as it is a reserved word in many programming languages, but also in particular in JavaScript where we would anticipate the main use case for Owc GeoJJSON encoding. Thus, a JSON attribute/variable named 'default' could be cause code incompatibilities in JavaScript applications.

https://www.w3schools.com/js/js_reserved.asp

Unfortunately the working group is not too active currently, similar issues were reported before: https://github.com/opengeospatial/owscontext/issues/3


Parser fixes to get cmp(parse(s), parse(stringify(parse(s)))) === 0

(0) Enable comparison tests
(1) Drop inconsistent custom compareTo()
(2) Fix up parse+stringify of 'inherit', serializer, type suffixes

Note: we need to land https://github.com/foam-framework/foam2/pull/368 and merge it into foam2#beta-1 before this PR will go green.

@arobins and we're green :raised_hands:


enable headless for alpine builds

A simple test application to test if the binary is headless:
import java.awt.*;

public class HeadlessBasics
{
    public static void main(String[] args)
    {
        // Check whether the application is
        // running in headless mode.
        GraphicsEnvironment ge =
        GraphicsEnvironment.getLocalGraphicsEnvironment();
        System.out.println("Headless mode: " + ge.isHeadless());
    }
}

Seems to have worked:
/working-dir # ./jdk-16.0.2\+7/bin/java HeadlessBasics
Headless mode: true

PMC approved - failed tests are for unrelated reasons (we have another PR in the wings for that).

Hmmm - can we not do this in our pipelines and leave the build scripts capable of building both as an option - this change will likely make it a bit more difficult for people to build a non-headless version from our scripts going forwards if they wish to do so.

@sxa I'd prefer to make a change like that in our pipeline. This sits in our platform-specific configurations directory which is not the default path for other people using our scripts.

@sxa I'd prefer to make a change like that in our pipeline. It creates a disconnect between the two repos and creates issues like the arm64 macOS bugs that I've just had to fix. This sits in our platform-specific configurations directory which is not the default path for other people using our scripts.

I presume your first sentence should have had a 'not' in it?
That disconnect was introduced when we split out piplines from the build repo (which I wasn't a fan of if I'm honest) and we have several other configure arguments for the different variants and platforms in places like https://github.com/adoptium/ci-jenkins-pipelines/blob/master/pipelines/jobs/configurations/jdk11u_pipeline_config.groovy now. I'd be reluctant to add more things into what really ought to be configuration files specific to our ansible machine environment as opposed to configurable options affecting the JVM which it should be possible to override. It's not ideal having it two repositories but it's where we are and I don't want to put things in a different place just because of that, and certainly not just because a mistake was made with changing one such option.
(As an aside, when I build my own JDKs with our scripts I tend to use make-adopt-build-farm.sh in preference to makejdk-any-platform.sh because it's MUCH more usable for an end-user. I'd be quite surprised if many people actively chose to just use makejdk-any-platform on its own unless they didn't know about the other ones because the additional value it provides is quite low for other users IMHO so I don't think we should remove the ability to switch this on and off in those files without really good reason)

A simple test application to test if the binary is headless:
import java.awt.*;

public class HeadlessBasics
{
    public static void main(String[] args)
    {
        // Check whether the application is
        // running in headless mode.
        GraphicsEnvironment ge =
        GraphicsEnvironment.getLocalGraphicsEnvironment();
        System.out.println("Headless mode: " + ge.isHeadless());
    }
}

Can we add that as an actual Smoke Test?

@sxa I'd prefer to make a change like that in our pipeline. It creates a disconnect between the two repos and creates issues like the arm64 macOS bugs that I've just had to fix. This sits in our platform-specific configurations directory which is not the default path for other people using our scripts.

I presume your first sentence should have had a 'not' in it?
That disconnect was introduced when we split out piplines from the build repo (which I wasn't a fan of if I'm honest) and we have several other configure arguments for the different variants and platforms in places like https://github.com/adoptium/ci-jenkins-pipelines/blob/master/pipelines/jobs/configurations/jdk11u_pipeline_config.groovy now. I'd be reluctant to add more things into what really ought to be configuration files specific to our ansible machine environment as opposed to configurable options affecting the JVM which it should be possible to override. It's not ideal having it two repositories but it's where we are and I don't want to put things in a different place just because of that, and certainly not just because a mistake was made with changing one such option.
(As an aside, when I build my own JDKs with our scripts I tend to use make-adopt-build-farm.sh in preference to makejdk-any-platform.sh because it's MUCH more usable for an end-user. I'd be quite surprised if many people actively chose to just use makejdk-any-platform on its own unless they didn't know about the other ones because the additional value it provides is quite low for other users IMHO so I don't think we should remove the ability to switch this on and off in those files without really good reason)

So I think this boils down to:  Do we think headless is a sensible option for all users of our build scripts or only for our actual temurin builds?
I personally think it's OK to be headless for all users. I've yet to see any Alpine users using a Headful (is that the right term?) build...
Side note - I wonder if we should take temurin off the name of this repo and just have it as build scripts sometime in the future to make it clearer that anyone can use them.

So I think this boils down to: Do we think headless is a sensible option for all users of our build scripts or only for our actual temurin builds?

My view - absolutely only for temurin. There is no reason to actively disable this for anyone else, or even people using our scripts to build their own Temurin-equivalent binary. We have already had opinions expressed from at least two partiies that certain APIs not related to GUIs - image handling as I recall - may well not be available in such a build, so let's not make this something that we don't have an easy override mechanism for if others are using our build scripts and want a complete build, and we should ensure that we can switch back if required in the least intrusive way, which is in the Temurin build pipelines. This would be consistent with how we enable other JDK options such as dtrace enablement.

Side note - I wonder if we should take temurin off the name of this repo and just have it as build scripts sometime in the future to make it clearer that anyone can use them.

Maybe - but they're maintained primarily for and by temurin, so I'm ok with it. But we absolutely must not forget when making changes that others may be using them (such as OpenJ9!) and take that into consideration when making changes - we have to have some responsibility to the user community and these scripts were intended to be used by others who want them. Dragonwell have already expressed an interest in having Alpine builds and we shouldn't force Temurin decisions such as this upon them.

related to https://github.com/adoptium/temurin-build/issues/2688

closing in favour of https://github.com/adoptium/ci-jenkins-pipelines/pull/190


board_index  issue

System information (version)

Operating System / Platform => bailool/mc-calib-prod:opencv4100 (and opencv420)

Vision system
using sample dataset and accompanying calib_param_Seq02_Overlapping_multicamera.yml
Describe the issue / bug
repeated crashes running the calib_param_Seq02_Overlapping_multicamera sample.
i tried using windows wsl docker , then moved to a linux machine but had the same issue.
0000001 | 2024-11-17, 19:57:55.819609 [info] - Nb of cameras : 2   Nb of Boards : 1   Refined Corners : true   Distortion mode : 0
0000002 | 2024-11-17, 19:57:55.819859 [info] - Extraction camera 001
0000003 | 2024-11-17, 19:57:55.832931 [info] - Number of threads for board detection :: 96
0000034 | 2024-11-17, 19:57:58.305439 [info] - Extraction camera 002
0000035 | 2024-11-17, 19:57:58.318093 [info] - Number of threads for board detection :: 96
0000066 | 2024-11-17, 19:57:59.797331 [info] - Board extraction done!
0000067 | 2024-11-17, 19:57:59.797378 [info] - Intrinsic calibration initiated
0000068 | 2024-11-17, 19:57:59.797390 [info] - Initializing camera calibration using images
0000069 | 2024-11-17, 19:57:59.797408 [info] - NB of board available in this camera :: 0
0000070 | 2024-11-17, 19:57:59.797417 [info] - NB of frames where this camera saw a board :: 0
terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(4.10.0) /home/opencv-4.10.0/modules/calib3d/src/calibration.cpp:3859: error: (-215:Assertion failed) nimages > 0 in function 'calibrateCameraRO'

(core dumped)

i found that if i change the board_index from the set [12] to [1,2,3,4,5,6,7,8,9,10,11,12,13] the calibration passed.
here are the changes i made to the yaml
 length_marker: 0.03  # parameters on the marker (can be kept as it is)
 number_board: 1 # number of boards used for calibration (for overlapping camera 1 is enough ...)
-boards_index: [12] #leave it empty [] if the board index are ranging from zero to number_board
+boards_index: [1,2,3,4,5,6,7,8,9,10,11,12,13]
# example of usage boards_index: [5,10] <-- only two board with index 5/10
 square_size: 9.15  # size of each square of the board in cm/mm/whatever you want

 ############# Boards Parameters for different board size (leave empty if all boards have the same size) #################
@@ -21,7 +19,7 @@ square_size_per_board: []
 distortion_model: 0 #0:Brown (perspective) // 1: Kannala (fisheye)
 distortion_per_camera : [] #specify the model per camera,
 #leave "distortion_per_camera" empty [] if they all follow the same model (make sure that the vector is as long as cameras nb)
-number_camera: 6  # number of cameras in the rig to calibrate
+number_camera: 2  # number of cameras in the rig to calibrate
 refine_corner: 1  # activate or deactivate the corner refinement
 min_perc_pts: 0.5  # min percentage of points visible to assume a good detection
+save_detection: 1
+save_reprojection: 1

for brevity
only ran it one 2 of the cameras, and after keeping on only 30 image from the two cameras., but it replicates for me on full dataset.
in the successful run detected_keypoints_data.yml i see this
board_idxs: [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
       12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 ]

the failed attempts crashed before the detection
the problem i hope is simple user error.
i am planning to print and use the demo boards, mybe all six in a cube, what indexes should i use?
and lastly, thank you for the project!

here a link to the adapted sample i used with only 30 frames for each camera.