Re-usable Select Field Widget

Hey all, been working through this post (https://github.com/algolia/instantsearch.js/issues/868) for a while now but not getting any where. Has anybody implemented a custom widget that creates a select field? My question is pretty much identical to this.
I've read through both instantsearch docs and the helper docs but just not getting it. Can anyone guide me on creating this? The search form needs 6 select fields, each has 'all' a the top, must retain values so the user can then change options.
Any help would be great!

Hello,
It has been a recurring demand recently. Our menu widget does not let users easily use a select to switch in between the different menu values, while this is an obvious UI choice.
I'll have a go at building a custom widget that does what you're asking, and then we'll use it as a basis to discuss a potential API to include it into the core.
I'll keep you informed.

Great, thanks @pixelastic. That would be excellent!

So I gave it a try and came up with the following:

This is a custom widget that does pretty much the same behavior than the menu widget, but with a different markup. I actually copy-pasted a lot of code from the original menu widget but changed the HTML and did with vanilla JS without React. It has less features than an official widgets (like no BEM CSS classes on the elements), but should be a good enough place to start.
You would call it like this:
search.addWidget(
  instantsearch.widgets.customSelectorWidget({
    container: '#custom-selector-widget',
    attributeName: 'species',
    limit: 10,
    title: 'All'
  })
);

It uses the same container, attributeName and limit options than the menuwidget, but I also added the title one. This will be the name of the first value of the dropdown, used to reset it.
And here is the complete, annotated, code of the widget.  If this is an issue for you, I can post an ES5-compatible version.
// Extending the instantsearch.widgets namespace, like regular widgets
instantsearch.widgets.customSelectorWidget = function customSelectorWidget({
  container,
  attributeName,
  limit = 10,
  title = 'All'
}) {
  // container should be a CSS selector, so we convert it into a DOM element
  container = document.querySelector(container);
  // We'll internally keep track of the <select> element
  let selectElement = null;
  // We'll also need to keep track of the current selected value
  let currentlySelectedValue = null;

  return {
    // Method called at startup, to configure the Algolia settings
    getConfiguration() {
      // This is a copy-paste of the menu widget
      // We use a hierarchicalFacet and not a classical facet because we want to
      // keep the list of all possible values displayed at all times. With
      // a classical facet we would only have the list of possible values for
      // the current filters (which would not make any sense here)
      return {
        hierarchicalFacets: [{
          name: attributeName,
          attributes: [attributeName]
        }]
      };
    },

    // Called on the first instantsearch search
    init({helper}) {
      // We add an (empty) <select> to the specified container
      container.innerHTML = `<select></select>`;
      selectElement = container.querySelector('select');

      // We listen to the change event on that <select>
      selectElement.addEventListener('change', () => {
        // Finding the newly selected value
        let selectedIndex = selectElement.selectedIndex;
        let selectedValue = selectElement.options[selectedIndex].value;

        // If we select the first, default value, it's like we "unchecked" the
        // currently selected value
        if (selectedValue === '__EMPTY__') {
          selectedValue = currentlySelectedValue;
        }
        // We toggle on/off on the selected value
        helper.toggleRefinement(attributeName, selectedValue);
        // And we actually start the search (to force a re-render of results)
        helper.search();

        // We keep track of what the currently selected value is
        currentlySelectedValue = selectedValue;
      });
    },

    // Called whenever we receive new results from Algolia
    render({results}) {
      // We get the list of possible values for this search and sort them in the
      // same order everytime (most popular first)
      let sortBy = ['count:desc', 'name:asc'];
      let facetValues = results.getFacetValues(attributeName, {sortBy}).data;
      // We only keep the X first elements, as defined on instanciation
      facetValues = facetValues.slice(0, limit);

      // Then we add that to the <select>
      let innerOptions = [`<option value="__EMPTY__">${title}</option>`];
      facetValues.forEach((facetValue) => {
        // We mark the current one as selected
        let selected = facetValue.isRefined ? 'selected="selected"' : '';
        innerOptions.push(`<option value="${facetValue.name}" ${selected}>${facetValue.name}</option>`);
      });

      // Update the rendering
      selectElement.innerHTML = innerOptions.join('\n');
    }
  }
};

I must say that it helped a lot that I had a good understanding of the instantsearch internals. This is definitely not a trivial widget to implement out of the box and should find its way into the core. I'll post an API proposal about that shortly.
Is this what you were looking for?

Thanks a lot for the super quick response and code. 👍  I've been working through it but getting a few issues so assuming at this stage it's the ES6 version. Would it be possible to post the ES5 compatible version please?

No problem, here is an ES5 compatible version:
// Extending the instantsearch.widgets namespace, like regular widgets
instantsearch.widgets.customSelectorWidget = function customSelectorWidget(options) {
  var container = options.container;
  var attributeName = options.attributeName;
  var limit = options.limit || 10;
  var title = options.title || 'All';

  // container should be a CSS selector, so we convert it into a DOM element
  container = document.querySelector(container);
  // We'll internally keep track of the <select> element
  var selectElement = null;
  // We'll also need to keep track of the current selected value
  var currentlySelectedValue = null;

  return {
    // Method called at startup, to configure the Algolia settings
    getConfiguration: function getConfiguration() {
      // This is a copy-paste of the menu widget
      // We use a hierarchicalFacet and not a classical facet because we want to
      // keep the list of all possible values displayed at all times. With
      // a classical facet we would only have the list of possible values for
      // the current filters (which would not make any sense here)
      return {
        hierarchicalFacets: [{
          name: attributeName,
          attributes: [attributeName]
        }]
      };
    },

    // Called on the first instantsearch search
    init: function init(options) {
      var helper = options.helper;
      // We add an (empty) <select> to the specified container
      container.innerHTML = '<select></select>';
      selectElement = container.querySelector('select');

      // We listen to the change event on that <select>
      selectElement.addEventListener('change', function() {
        // Finding the newly selected value
        var selectedIndex = selectElement.selectedIndex;
        var selectedValue = selectElement.options[selectedIndex].value;

        // If we select the first, default value, it's like we "unchecked" the
        // currently selected value
        if (selectedValue === '__EMPTY__') {
          selectedValue = currentlySelectedValue;
        }
        // We toggle on/off on the selected value
        helper.toggleRefinement(attributeName, selectedValue);
        // And we actually start the search (to force a re-render of results)
        helper.search();

        // We keep track of what the currently selected value is
        currentlySelectedValue = selectedValue;
      });
    },

    // Called whenever we receive new results from Algolia
    render: function render(options) {
      var results = options.results;
      // We get the list of possible values for this search and sort them in the
      // same order everytime (most popular first)
      var sortBy = ['count:desc', 'name:asc'];
      var facetValues = results.getFacetValues(attributeName, {sortBy}).data;
      // We only keep the X first elements, as defined on instanciation
      facetValues = facetValues.slice(0, limit);

      // Then we add that to the <select>
      var innerOptions = ['<option value="__EMPTY__">' + title + '</option>'];
      facetValues.forEach(function(facetValue) {
        // We mark the current one as selected
        var selected = facetValue.isRefined ? 'selected="selected"' : '';
        innerOptions.push('<option value="' + facetValue.name + '" ' + selected + '>' + facetValue.name + '</option>');
      });

      // Update the rendering
      selectElement.innerHTML = innerOptions.join('\n');
    }
  }
};

I think I removed every ES6-only features.

Massive thanks @pixelastic - just managed to get it all set-up and almost sorted.
Just a quick question though, I've got an ion rangeslider. On page loads, the slider works great, so do the select fields - however, if I move the rangeslider after using of the select fields, I get "facetValues is null" and the search breaks.
Apologies for the constant questions. Looking through the code and after reading the docs, it kinda makes sense so learning loads too, plus, I'm sure it'll help many others so thanks again.

No problem for the question, we'd like to have instantsearch.js as easy to use as possible, so any way to improve it great :)
Would you have a test page or a repo where I could reproduce your issue?

@pixelastic , just sent you a quick email with a dev link on it. I created a repo but thought I'd send you the actual page in action.
Thanks again!

Thanks for the email and test repo. I think I managed to reproduce and fix the possible issue.
What you have to keep in mind is that the possible values that are displayed in the various select depends on other filters. For example if you apply a specific price range, there might not be anymore new or used cars in that range, so the new or used values in the select dropdown will not show.
With a set of very narrow filters that actually do not match any results, you can end up with empty lists on the select. It was actually that edge case that my quickly-coded example wasn't catching. It was trying to do stuff on an empty list and failing.
I "fixed" the code like this:
    // Called whenever we receive new results from Algolia
    render: function render(options) {
      var results = options.results;
      // We get the list of possible values for this search and sort them in the
      // same order everytime (most popular first)
      var sortBy = ['count:desc', 'name:asc'];
      var innerOptions = ['<option value="__EMPTY__">' + title + '</option>'];
      var facetValues = results.getFacetValues(attributeName, {sortBy: sortBy}).data;

      if (facetValues && facetValues.length) {
        facetValues = facetValues.slice(0, limit);
        // Then we add that to the <select>
        facetValues.forEach(function(facetValue) {
          // We mark the current one as selected
          var selected = facetValue.isRefined ? 'selected="selected"' : '';
          innerOptions.push('<option value="' + facetValue.name + '" ' + selected + '>' + facetValue.name + '</option>');
        });
      }

      // Update the rendering
      selectElement.innerHTML = innerOptions.join('\n');
    }

This should fix your issue, but there might be other edge-cases lurking around :). I'd really like to move this code into a real widget in the future, so let's continue to iterate on it to see if it still breaks.

Ah, completely makes sense. After looking at it further I understand more about it so thanks for that.
I suppose one way around it would be to possible update the ion range slider on change of a select (or checkbox, input etc)? I've had a look into updating these and someone raised an issue a couple of weeks back here - https://github.com/IonDen/ion.rangeSlider/issues/351
Do you think this would be possible?

@pixelastic Could you publish this as a new widget here: https://github.com/instantsearch that would be awesome

@JonnyTurnerUK The rangeSlider should update automatically whenever new results are returned from Algolia (and a new query is triggered everytime a select is changed), to it should already work. Is your issue linked to this one https://github.com/instantsearch/instantsearch-ion.rangeSlider/issues/6?
@vvo: Yes, that's the plan. I wanted to resolve all the potential problems raised in this thread first, as a kind of beta-test, and then I'll package it into its own widget for everyone to enjoy :)

I think we can close this issue and move the discussion to other issues if needed. There's no more support needed here.

@pixelastic Apologies, think I posted the wrong link earlier. They've updated the ion range slider and all works perfect. BIG thanks to everyone for all the help on this. Much appreciated!

@pixelastic Is it possible to make the available options sync with other filters?
So if I apply a filter (for example price) and a  doesn't match the shown products it isn't displayed in the ?

@Maaark Can you open a new issue with your problem? That would help us avoid confusion.

@vvo Ok, just opened a new issue. I thought it would be better to place it here so it would be all in 1 place. Before I found this widget I've searched all over the documentation to find something like this, the documentation could be much better. The default widgets are really cool and easy to use, but when you need something slightly different it gets really hard fast.

the documentation could be much better

Completely agree with you, we are working on this.

but when you need something slightly different it gets really hard fast.

Yes this is also a priority for us.


Blog posts (w videos) on ocean.py for data scientists

Motivation
ocean.py's in far better shape than 6 mos ago. We can help to spread the word via approachable blog posts, that bring potential users to the READMEs
General approach
For this github issue: have "intro to ocean.py" blog posts. One for each of original 6 READMEs
For a follow-up issue: have advanced blog posts
TODOs for this issue
T = Trent, V = Veronica

[x] [T] Generate splash images with DALL-E, create draft 6+6 articles
[x] Intro 1 - Getting Started with ocean.py, part 1 - intro & install

[x] [T] Write draft link
[x] [V] Do videos: (a) intro (b) install
[x] [T] Finalize (link videos etc), publish. Link
[x] [T] Tweet from @trentmc0. Link
[x] Tweet from @oceanprotocol

[x] Intro 2 - local setup

[x] [T] Write draft link
[x] [V] Do video. (SKIP because Win/Mac issues)
[x] [T] Finalize, publish. Link=_
[x] [T] Tweet from @trentmc0
[x] [V for Nick] Tweet from @oceanprotocol

[x] Intro 3 - remote setup

[x] [T] Write draft link
[x] [V] Do video. Link=_
[x] [T] Finalize (link video etc), publish. Link=_
[x] [T] Tweet from @trentmc0
[x] [?] Tweet from @oceanprotocol

[x] Intro 4 - walkthrough

[x] [T] Write draft link
[x] [V] Do video. Link=_
[x] [T] Finalize (link video etc), publish. Link=_
[x] [T] Tweet from @trentmc0
[x] [?] Tweet from @oceanprotocol

Note: folded https://github.com/oceanprotocol/predict-eth/issues/82 into here

I moved the "advanced topics" content into a new github issue. https://github.com/oceanprotocol/ocean.py/issues/1417
Which means we're done this issue. Thanks @graceful-coder for all your help on this!
The new github issue is lower priority for now. Bigger fish to fry.


[CBR-314] Kernel Keystore

Description
This PR introduces an opaque Keystore abstraction and a set of APIs meant to be able to store and retrieve EncryptedSecretKey from disk "out-of-acid-state", in the sense that those delicate sensitive information shouldn't be stored inside acid-state, to not incur in the risk of accidentally leaking them in the transaction logs.
The presented API models the one for Data.Map and should be quite general thanks to the use of the Kernel.WalletId type which incapsulate the notion of different ids, being them coming from HD wallets or elsewhere.
The concrete implementation is quite inefficient and relies on the already-present UserSecret, as reinventing the wheel here would be detrimental as it makes sense to piggyback on what we have already instead of rewriting it from scratch.
This Keystore is now hooked into the PassiveWallet and this means we can also get rid of the artificial creation of a HdWallet inside the worker thread, but rather start using this abstraction (cc @matt-noonan).
Tests are provided.
Let me know what you think!
Linked issue
https://iohk.myjetbrains.com/youtrack/issue/CBR-314
Type of change

[~] 🐞 Bug fix (non-breaking change which fixes an issue)
[X] 🛠 New feature (non-breaking change which adds functionality)
[~] ⚠ Breaking change (fix or feature that would cause existing functionality to change)
[~] 🏭 Refactoring that does not change existing functionality but does improve things like code readability, structure etc
[~] 🔨 New or improved tests for existing code
[~] ⛑ git-flow chore (backport, hotfix, etc)

Developer checklist

[X] I have read the style guide document, and my code follows the code style of this project.
[X] If my code deals with exceptions, it follows the guidelines.
[X] I have updated any documentation accordingly, if needed. Documentation changes can be reflected in opening a PR on cardanodocs.com, amending the inline Haddock comments, any relevant README file or one of the document listed in the docs directory.

Testing checklist

[X] I have added tests to cover my changes.
[X] All new and existing tests passed.

QA Steps

Screenshots (if available)

Interesting @adinapoli-iohk  ... I am facing quite a lot of issues recently with integration tests; let me have a look.

@rvl @jmitchell This PR have been waiting for Buildkite to spawn a worker for the past ~3 hours at this stage. As this seems to be a common problem and I am very keen on merging this PR, _and I have built the PR myself on a Darwin machine, I hereby grant the right to you Devops to bring shame to me and my dynasty if merging this PR would result in a broken develop branch 😁


Packing bundles for production

Coverage increased (+0.15%) to 69.27% when pulling 24ab079f55f886b03a0769bd78868af20e75946f on feature/507-packing into a14c38368ccc13d783f301b1ba8f17977f8f570c on next.

Coverage increased (+0.15%) to 69.27% when pulling b381cbe900849e2e95f6e3d84c22091c105c3cb6 on feature/507-packing into a14c38368ccc13d783f301b1ba8f17977f8f570c on next.

Coverage increased (+4.12%) to 73.24% when pulling 320d1243f12fc6ccb1ea46313b9686d7559cf7fd on feature/507-packing into a14c38368ccc13d783f301b1ba8f17977f8f570c on next.

Coverage increased (+4.26%) to 73.37% when pulling 9c951a128cfcdcffec2a25dd725ba0f0ac02d237 on feature/507-packing into a14c38368ccc13d783f301b1ba8f17977f8f570c on next.

Coverage increased (+4.32%) to 73.44% when pulling 58cdf76ec861c571393fb2678e8edb6e71103a50 on feature/507-packing into a14c38368ccc13d783f301b1ba8f17977f8f570c on next.

Coverage increased (+4.32%) to 73.44% when pulling ba5e83fd2090f51a64e0c2ba9bc626d42c091519 on feature/507-packing into a14c38368ccc13d783f301b1ba8f17977f8f570c on next.


feat: Adds sqs_managed_sse_enabled

Description
SQS now has managed SSE. This allows the module to enable that
Motivation and Context
managed SSE is nice because you don't have to worry about KMS policies
Breaking Changes
should be none
How Has This Been Tested?

[x] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[x] I have tested and validated these changes using one or more of the provided examples/* projects

[x] I have executed pre-commit run -a on my pull request

This PR should be reopened

This PR is included in version 3.4.0 :tada:


Using an Advanced Filtering for CloudEvents v1.0 schema

In the case of using a CloudEventSchemaV1_0 for custom topic or event domain, there is no way to filter on the source property. It looks like, the advanced filtering internal logic is always taking a value of the topic such as a custom topic or a domain topic resourceId.
If this is no issue, the document should be described usage of the advanced filtering (e.g. source property) when the CloudEvents v 1.0 schema is used in the custom topic.
Thanks
Roman

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

ID: ddd55e19-eb11-3b0f-c6e1-3710f712fd58
Version Independent ID: f413f074-6a81-73fa-0674-f8bc98aeac1d
Content: Use Azure Event Grid with events in CloudEvents schema
Content Source: articles/event-grid/cloudevents-schema.md
Service: event-grid
GitHub Login: @banisadr
Microsoft Alias: babanisa

@romankiss Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

The Advanced Filtering section has been updated recently.
https://docs.microsoft.com/en-us/azure/event-grid/event-filtering#advanced-filtering

The Advanced Filtering section has been updated recently.
https://docs.microsoft.com/en-us/azure/event-grid/event-filtering#advanced-filtering

#please-close

#please-close


onStreamReceived called before session.onResume

Hi Team,
I am facing issue of stream received when session is in pause state.
It should be called when session is resumed.
Please look into it.
Thanks
Ashish

Any update on this?

@ashishnagarro Apologies for the delay on this. Are you seeing this happen with the BasicVideoChat?  Can you describe what you mean by session is in pause state?

@msach22 : When i have called session.onPause and if someone publish from other device, then i am getting callback in onStreamReceived. But it should not happen until i don't resume session

Hi @ashishnagarro
Maybe the name is misleading, but session.onPause is not "pausing" the opentok session. The name is linked to activity lifecycle method.
When you call session.onPause what it's done is to stop streaming video and stop video capturing, but session events like connection ones, or stream received events are still working since the app is actually connected to the session. (it is still transmiting and receiving audio).
If you want to "disconnect" from the session while the app is on the background you can implement that in the app.


adding cgi.escape -> html.escape

adds
from six.moves import html_escape
which is:
python2  - cgi.escape
python3 - html.escape
reference: Issue #159

cgi.escape and html.escape have different defaults for the quote parameter, so this isn’t a straight move.

This is indeed not a straight move.
The need for this is now greater with 3.8 released: cgi.escape was deprecated in 3.7 and has been removed in 3.8.

since this PR is not correct due to defaults, I will close it.


Reasonable to have a table summarizing P4_16 annotations introduced in P4Runtime spec?

I think this might be a complete list of P4_16 annotations introduced in the P4Runtime spec:

@controller_header
@id
@p4runtime_translation

(I grep'd the .mdk source file for @a through @z looking for unique names, so very like this is complete)
The PSA and P4_16 specs have tables / sections that give complete lists of annotations that they introduce, and I think something similar might be nice to have in the P4Runtime API spec.  I can create a PR for this if you like.  If you have any suggestions on where in the document you think it belongs, I am very open to suggestions there.

It could be nice to have such a table. Maybe you'd like to include @brief, @documentation and @pkginfo: even though they are not P4Runtime-specific, they do impact P4Info generation. See @chrispsommers PR: https://github.com/p4lang/p4runtime/pull/103
Maybe you could add it in an appendix?

@antoninbas @jafingerhut Good ideas, I plan on moving the PR to a branch instead of a fork and incorporating Antinin's feedback.

Sure I can create a PR that adds such a list/table in an appendix.


Check for xrandr extension before usage

There might be a situation where xrandr is enabled in the build, but it is not provided/supported by the x11 server.
One such case is X11 forwarding over SSH.
On such setups XRRGetScreenInfo crashes the whole application.
This PR fixes the issue by checking if xrandr is available before attempting to use it.

Merged as 34de31a0 (just superficial changes), thanks.


Ent - OccurrenceID

Description of the PR
Ent backend

IngestOccurenceID (with bulk) implementations
IngestOccurence, removed
changes consistently all of the tests involved

Refers to https://github.com/guacsec/guac/issues/1198

PR Checklist

[x] All commits have a Developer Certificate of Origin (DCO) -- they are generated using -s flag to git commit.
[x] All new changes are covered by tests
[ ] If GraphQL schema is changed, make generate has been run
[ ] If collectsub protobuf has been changed, make proto has been run
[x] All CI checks are passing (tests and formatting)
[ ] All dependent PRs have already been merged

@mrizzi

@desmax74 will just have to rebase

We can now make these updates on main as needed. :)


chore: add prettier

resolves #860
I think its best to review this pr by going through each commit individually:
46c7dd2: adds the prettier configuration files, removes conflicting rules in the eslintrc, and switch the parser to @typescript-eslint/parser.
ff73061: since the parser came with its own no-unused-vars rule, I needed to update all eslint-disables of the rule with this one, which is @typescript-eslint/no-unused-vars (I also disabled the no-unused-vars in the first commit)
a665c2d: this fixes some eslint issues that came with the new parser that weren't treated before. basically it's just adding a few more eslint-disables to the @typescript-eslint/no-unused-vars rule and switch some let variables with const.
ea30ab1: I took the liberty of adding the skipUndeclared option to the react/prop-types rule, which makes it skip checking components that don't declare the static propTypes property, so I removed all disables of this rule since its not needed anymore.
139c675: this is the actual prettier changes, this commit consist only of running npm run fix and a one line fix on the material-icons package (because it moved the comment with a eslint disable comment)

Codecov Report

Merging #863 into master will decrease coverage by 0.53%.
The diff coverage is 87.36%.

@@            Coverage Diff             @@
##           master     #863      +/-   ##
==========================================
- Coverage    94.5%   93.96%   -0.54%
==========================================
  Files          85       85
  Lines        3496     3432      -64
  Branches      532      527       -5
==========================================
- Hits         3304     3225      -79
- Misses         66       81      +15
  Partials      126      126

Impacted Files
Coverage Δ

packages/chips/ChipCheckmark.tsx
80% <ø> (ø)
:arrow_up:

packages/menu/MenuList.tsx
100% <ø> (ø)
:arrow_up:

packages/switch/ThumbUnderlay.tsx
95.23% <ø> (ø)
:arrow_up:

packages/layout-grid/Row.tsx
81.81% <ø> (ø)
:arrow_up:

packages/layout-grid/Cell.tsx
94.11% <ø> (ø)
:arrow_up:

packages/layout-grid/Grid.tsx
92.3% <ø> (ø)
:arrow_up:

packages/top-app-bar/FixedAdjust.tsx
100% <ø> (ø)
:arrow_up:

packages/tab-indicator/index.tsx
91.04% <ø> (ø)
:arrow_up:

packages/drawer/AppContent.tsx
44.44% <0%> (-22.23%)
:arrow_down:

packages/drawer/Subtitle.tsx
44.44% <0%> (-22.23%)
:arrow_down:

... and 65 more

Continue to review full report at Codecov.

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

@lucasecdb is it possible to make them 5 different PRs? Then we can merge it into 1 feature branch?

is it ok to lower the printWidth to 80 (the default value)? I think 120 it making the lines too  long

@lucasecdb thanks for pushing those changes. Can you also add a precommit to run npm run lint?

The precommit is slow...can we change this?

sure, I'll move that to pre-push

confirmed validate-message still works. I'll merge once tests pass


chore(deps): Update tailwind to 2.1 to natively support JIT

Hi there!
TailwindCSS team added the JIT mode to the core!
Some issues could probably resolve itself if we stop using the additional jit true/false config and let the process be more fluid #299, #298, #302 .
Since the JIT mode needs "a basic" purge config for now (an array referring files to watch instead of a object containing a content property), I also updated the documentation to make it clear that we need to override the default nuxtjs-tailwind purge config from this:
export default ({ _dev, rootDir, srcDir }) => ({
  purge: {
    content: [
      `${srcDir}/components/**/*.{vue,js}`,
      `${srcDir}/layouts/**/*.vue`,
      `${srcDir}/pages/**/*.vue`,
      `${srcDir}/plugins/**/*.{js,ts}`,
      `${rootDir}/nuxt.config.{js,ts}`
    ],
    // https://tailwindcss.com/docs/optimizing-for-production#purge-css-options
    options: {}
  }

to this:
export default {
  mode: 'jit',
  purge: [
    `~/components/**/*.{vue,js}`,
    `~/layouts/**/*.vue`,
    `~/pages/**/*.vue`,
    `~/plugins/**/*.{js,ts}`,
    `~~/nuxt.config.{js,ts}`
  ]
}

I would like to add some test for this, but I'm not so comfortable with Jest to analyze the javascript compilated file to expect the top-[12px] class to be present in it.

@Atinux
Why this isn't merged yet? I'm not sure if some extra-work should be done from my side, I don't see any review to validate or what so ever but both git and NodeJS/TS are my friend.

Updated and merged, thank you very much ❤

Hi,
Maybe we should removed the dependency "@tailwindcss/jit":"^0.1.18" since it's no longer needed and has not been removed from the package.json.


[Question]: Typing advice for superRefine() methods on an obj, when the method provided is separated from the schema definition

Hello, new to TS and zod. Is it common practice to keep all logic coupled within the definition?
I am used to extracting out anything lengthy as may be the case for when using .superRefine(), but in that case I'm not sure what the advised approach is for handling typing to keep TS happy?
These are the two approaches I'm aware of, but perhaps there's a better way?
Anonymous function has implicit typing from inference?:
const dogSchema = z.object({
  name: z.string(),
  neutered: z.boolean(),
}).superRefine(
  (zobj, ctx) => { ... }
)

type Dog = z.infer<typeof dogSchema>

Redundantly define the type anyway? (or at least for the values of interest in zobj):
// Required to duplicate type definition...?
type zDog = {
    name: string;
    neutered: boolean;
}
const refineDog = (zobj: zDog, ctx: z.RefinementCtx) => { ... }

const dogSchema = z.object({
  name: z.string(),
  neutered: z.boolean(),
}).superRefine(
  refineDog
)

type Dog = z.infer<typeof dogSchema>

Infer the type, but splits the schema into two stages:
const _dogSchema = z.object({
  name: z.string(),
  neutered: z.boolean(),
})

// Better approach for large schemas?
type zDogRefine = (
   zobj: z.infer<typeof _dogSchema>,
   ctx: z.RefinementCtx
) => void
const refineDog: zDogRefine = (zobj, ctx) => { ... }

// Re-declaration of schema because type needed to be inferred to satisfy method provided to superRefine()
const dogSchema = _dogSchema.superRefine(refineDog)

type Dog = z.infer<typeof dogSchema>

Great question. You laid out the options well. There's no simpler option you're forgetting. Zod should probably export a z.SuperRefinement<T> alias so you don't need to type out  (zobj: z.infer<typeof _dogSchema>, ctx: z.RefinementCtx) => void - that's a little annoying.
As for option 2 vs option 3, it depends on how portable you need the logic to be. If your refinement only requires certain fields ("values of interest") then redundantly refining the type signature maximizes portability. But then you need to update the type signature of refineDog manually if the schema changes. Tradeoffs... 🤷♂ The main point is that you're not missing any options so do what feels best I suppose.

Zod should probably export a z.SuperRefinement<T> alias so you don't need to type out  (zobj: z.infer<typeof _dogSchema>, ctx: z.RefinementCtx) => void - that's a little annoying.

That'd be nice to have :)

I am commenting to add a note to others, that an additional gotcha regardless of approach is refinement on a schema converts it to a ZodEffect (as in, no longer a ZodObject), which means trying something like schema.shape as per the docs aren't valid anymore.
@colinhacks pointed this out in an past issue: https://github.com/colinhacks/zod/issues/454#issuecomment-848370721

refinements and transforms have been consolidated as "effects" and live in the ZodEffects class.
Zod is designed to validate a type, then pass that value through a chain of refinements/transforms (in that order).
Splitting out your refinement functions is the best way to do this currently.

Thus if you want access to any of these for ZodObject / schema when exporting or composing with other schemas, you would may want to make the unrefined variant available.


MAINT: Backports

Just want to make sure all is green on these before pushing.

can you take care of the release? thanks a lot !

Done

thx


[feature]

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."


HydroDyn summary file nodal data is incorrect when Member is flipped

Bug description
The nodal values of the Morison data (R,t, tMG, etc.) listed in the summary file are incorrect when the Member is flipped (HydroDyn flips the members that do not satisfy z_node1<z_node2).
In the summary file output, the code loops on the Nodes, and the Nodes were created before HydroDyn flips the member nodes. If a member is flipped, the loop on the element data of a member will not be in the same order as the nodes.
      do j= 1, numMembers
         do i = 2, members(j)%NElements
            c = c + 1
            pos = nodes(c)%Position
            members(j)%R(i)   ! <<<<< Incorrect if member j is flipped.

One fix could be to N-i+2 instead of i when the member is flipped.
I think it would be even cleaner to loop on the members, and then use member%NodeIndx instead of looping on the nodes.
To Reproduce
Use the HD file enclosed. The summary file displays a radius "R" which decreases with height.
Expected behavior
The radius "R" should increase with height.
OpenFAST Version
dev branch as of 2/4/2022
HD_Flip.txt

@ebranlard could you confirm that this is fixed?

This is indeed fixed by the pull request above.


Assignment-2

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
Added code
What did you learn from the changes you have made?
how to detect error in patient data
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
no
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
yes, by going back to the notes and through internet
How were these changes tested?
in VS code
A reference to a related issue in your repository (if applicable)
Checklist

[x] I can confirm that my changes are working as intended

Assignment marked.


Takes long to retrieve information

It takes around 3-4 seconds to receive the data.
Is there anyway to speed this up?

Well, if you're properly storing your refresh token and only refreshing your access token when it expires, that could help a little bit. Ultimately though I'd like to lazy load all of the profile properties so that the data is only fetched & parsed when requested. Although I'm not totally sure how that works in PHP.

I’m updating it to use jquery to fetch info, instead of pre-processing it when the page is loaded. Great project though 👍

I’m updating it to use jquery to fetch info, instead of pre-processing it when the page is loaded. Great project though 👍

You can store in $_SESSION the Auth variable. Something like:
        session_start();
        if (!isset($_SESSION['auth'])) {
          $auth = Auth::login('epic_email@domain.com','password');
          $_SESSION['auth'] = $auth;
        } else {
          $auth = $_SESSION['auth'];
        }

Elapsed time is reduced from 4.5 to 1.5.

Thanks, also is there any api requests limit. I don’t really want my account banned. I tried a new epic games account but didn’t have permission to view the stats.

I do the same to avoid using mine, why you don't have permissions to view stats? You must login once, to accessing data.

I have logged in and verified the account, although I might try logging into fortnite itself.

@Niall7459 Use cache service like Redis or Memcache, also account need to be only for api because if you start playing old session will be killed and no more stats.

@atgrau  the session code isn't working

It works for me... Using only PHP with CURL.
PD: nº4 is the first call, and nº2 second call (few seconds later), check elapsed time.

Worked for me as well.

@Niall7459 how did you fix the unauthorized problem with the new account ?

@atgrau

time with session same as time with out session, do you have any explanation ?

I would recommend to use a framework like laravel and use inbuild cache system. Example TTFB(Cached with Redis)

@Tustin i am using laravel, but i am new to laravel i don't know how to use it, already downloaded redis with composer yesterday but when i stored "auth" in cache it gave error that profile not recognized .

@Krokit  Thanks man it worked

@Krokit if i used forever to store the auth it would be a problem ?
or what is the best time to keep it in cache?

@NeVeR2TrY Depends on what you store in the cache. For example, i cache Auth for 475 min. because the session is 480 min, yes i can you refresh but for dev i prefer to re-cache it. For the leaderboard, i set 15 min. cache. For the store is caching time depends on the left time to midnight.
        if (Cache::has('fortnite_api_get_auth_request')){
            $auth = Cache::get('fortnite_api_get_auth_request');
        } else {
            $auth = Auth::login('email@examople.com','password');
            Cache::put('fortnite_api_get_auth_request', $auth, 475);
        }

@Tustin I recommend Auth to be renamed to Fortnite because other cms and scripts usually are using Auth for login and it's possible to have bugs with 2 packages with the same class.

@Krokit how you got leaderboards working 👍 ?

@NeVeR2TrY Check PR #36 :)


Support OSGI compatible version calculation

Update VersionHelper to support OSGI compatible version numbers, namely:
1.0.0.BUILD-SNAPSHOT
1.0.0.M1
1.0.0.RC1
1.0.0.RELEASE
Version calculations for calculateReleaseVersion and
calculateNextVersion now recognizes this format as well as the
traditional Maven *-SNAPSHOT form.

This pull request is very old and I'm not sure if it still relevant.
I'm closing it for now.


AR cannot be deleted by Sunstone

Description
Delete button for ARs is not available in Sunstone.
To Reproduce
Try to delete an AR from Sunstone.
Details

Affected Component: Sunstone
Version: 5.8.1

Progress Status

[ ] Branch created
[ ] Code committed to development branch
[ ] Testing - QA
[ ] Documentation
[ ] Release notes - resolved issues, compatibility, known issues
[ ] Code committed to upstream release/hotfix branches
[ ] Documentation committed to upstream release/hotfix branches

Duplicated #2912


Tag a new release

I really want to use the latest stuff (PHP 7 support) from master.
0.9.4 is the latest release and is from april 2, 2015.

We're a little in limbo at the minute, the master branch is what will be 1.0, which are I aren't going to be tagging just yet. I'd suggest just using the master branch as is for now. Tagging another 0.9.x release would be little different.

@davedevelopment another 0.9.x release would be very helpful, actually. :)
We've been running with "mockery/mockery": "dev-master#971dcdfdc2239b3d516672139f4368c19f6c2060 as 0.9.5" for 3 or 4 months, since that's the commit that added support for scalar typehints and return types, and we're on PHP 7. Would be nice to be able to just specify ^0.9.5.

@davedevelopment another 0.9.x release would be very helpful, actually. :)

That won't be possible because of the breaking changes.

The next has to bump the minor/major vesion.

0.10.0 would be fine too.

But it was promised that there would never be a 0.10.0 release. The next would be 1.0.0.

I was not aware of that, but consider that there hasn't been a new release in nearly a year. As a long-time user and advocate of Mockery, I think I would prefer a 0.10.0 release for PHP 7 compatibility over an indeterminate 1.0.0 release date, wouldn't you?
SemVer does allow for BC breaks in major version zero. Besides, Mockery is a dev dependency, not a Production. The BC break (which, again, is allowed by SemVer), is unlikely to unexpectedly break any Production systems because it's not a library that one is expected to use in Production anyway.

If someone wants to create a branch off 0.9.4 and back port the relevant commits, I'm happy to tag a release, I don't currently have the time.

@davedevelopment I'm happy to do this, but I can't create branches on this repo. Do you want to create that initial branch off of 0.9.4, and I'll send a PR to it with the relevant cherry-picked commits? Maybe call it php7-compat or something...?

👍  Please tag 0.9.5 if possible.

Any progress on this? A 0.10.0 version would be nice. As @michaelmoussa explains, it could contain BC breaks.

@michaelmoussa sorry for not replying, missed this. I've just created a 0.9 branch which you can send a PR to

@davedevelopment done. See #596

How long will it take to tag a new release with php7 support?

@prisis soon I think, @michaelmoussa has done the hard work in #596, just need to get the build passing and I'll merge and tag.

@davedevelopment I'm traveling and without a computer so if you wouldn't mind replacing that [] with array that'd be great.
The build is complaining about a -0.6% coverage change as well by the way, but all I've done is cherry-picked commits that had already been merged into master months ago.

Done - https://github.com/padraic/mockery/releases/tag/0.9.5
Thanks go to @michaelmoussa


Add MT support to Optimize API client

Descoping this from 8.5.0.
Not clear on MT support in the Optimize API yet.


Update DAPA collections endpoint to return temporal coverage

After Custom metadata search, this can be achieved at the same time with additional query to Elasticsearch.
Sample query:
GET read_unity_granule_uds_local_test_dev/_search
{
  "query": {"match_all": {}},
  "aggs": {
    "by_collections": {
      "composite": {
        "size": 10,
        "sources": [
          {
            "collections": {
              "terms": {
                "field": "collection"
              }
            }
          }
        ]
      },
      "aggs": {
        "min_time": {
          "min": {"field": "properties.start_datetime"}
        },
        "max_time": {
          "max": {"field": "properties.end_datetime"}
        }
      }
    }
  }
}

Results:
{
    "by_collections" : {
      "after_key" : {
        "collections" : "URN:NASA:UNITY:UDS_LOCAL_TEST:DEV:UDS_COLLECTION___2312041030"
      },
      "buckets" : [
        {
          "key" : {
            "collections" : "URN:NASA:UNITY:UDS_LOCAL_TEST:DEV:UDS_COLLECTION___2311301630"
          },
          "doc_count" : 1,
          "max_time" : {
            "value" : 1.454270399991E12,
            "value_as_string" : "2016-01-31T19:59:59.991Z"
          },
          "min_time" : {
            "value" : 1.454263200009E12,
            "value_as_string" : "2016-01-31T18:00:00.009Z"
          }
        },
        {
          "key" : {
            "collections" : "URN:NASA:UNITY:UDS_LOCAL_TEST:DEV:UDS_COLLECTION___2312041030"
          },
          "doc_count" : 6,
          "max_time" : {
            "value" : 1.454270399991E12,
            "value_as_string" : "2016-01-31 19:59:59"
          },
          "min_time" : {
            "value" : 1.454263200009E12,
            "value_as_string" : "2016-01-31 18:00:00"
          }
        }
      ]
    }
  }

I didn't realize it's closed, but I would mention it anyway.
I was also researching to include bbox for each collection based on the granules where each granule has a bbox
          "bbox" : {
            "type" : "envelope",
            "coordinates" : [
              [
                -180.0,
                90.0
              ],
              [
                180.0,
                -90.0
              ]
            ]
          }

There is an official example how to get the aggregated bbox for all granules in the query.
But it is only available for X-Pack which means we have to pay extra to get that license.


Trouble getting Crystal to build

I am having trouble building crystal when I try building Crystal the build never finishes.  I have been trying to debug what could be hanging the build, but I have not been able to figure it out.
This is on a MacOS machine with the compiler used to build Crystal being from Homebrew.
What is crazy is I also have zsh on this machine and I can build Crystal normally with zsh.  Because I can build with zsh, I have exported the PATH and PKG_CONFIG_PATH in bash, and I still cannot get Crystal to build.
Has anyone experienced crystal hanging before? And do you know a good way to debug this?
sample output:
(cafe:crystal)$ make clean
Using /usr/local/opt/llvm@6/bin/llvm-config [version=6.0.1]
rm -rf .build
rm -rf ./docs
rm -rf src/llvm/ext/llvm_ext.o
rm -rf src/ext/sigfault.o src/ext/libcrystal.a
(cafe:crystal)$ make
Using /usr/local/opt/llvm@6/bin/llvm-config [version=6.0.1]
c++ -c  -o src/llvm/ext/llvm_ext.o src/llvm/ext/llvm_ext.cc<EMAIL_ADDRESS>-stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -std=c++11 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -DNDEBUG   -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
cc -fPIC    -c -o src/ext/sigfault.o src/ext/sigfault.c
ar -rcs src/ext/libcrystal.a src/ext/sigfault.o
CRYSTAL_CONFIG_PATH="/Users/jack/source_code/open_source/crystal/src" CRYSTAL_CONFIG_BUILD_COMMIT="4f1e8a540" ./bin/crystal build -D preview_overflow -D compiler_rt  -o .build/crystal src/compiler/crystal.cr -D without_openssl -D without_zlib

Maybe at least run make crystal stats=1 so we know in which phase it's stuck?

I am running it but it looks like it is either getting stuck before stats produces output.

Maybe go to Activity Monitor, find the process, click the cog and select "sample process" to see where it's stuck

Here is a sample from the Activity Monitor
https://gist.github.com/wontruefree/c7608e5b29c036e01cf751cf21158383.js

Did you try clearing the ~/.cache/crystal/ directory? just in case...

It looks like that did not fix it.  But I will remember that for future debugging.
So there is no really good way to debug the build besides the stats or progress flag?

You could trace system calls. I guess thats dtruss on MacOS.
This might tell you where it hangs.

Getting dtruss to work correctly on this mac is a hard.  From reading using dtruss on anything under /usr/bin has a lot of caveats.  I was not able to figure anything out there are a lot of errors.  But I will work on it more.

What is crazy is I also have zsh on this machine and I can build Crystal normally with zsh

Then it's probably a configuration issue in your machine?

@asterite I agree it is a configuration issue but I was seeing if there was a good way to debug it.  It is using the same path so I dont know what else it could be.
I was mostly seeing if there are any tools to debug building the compiler.
I am going to close this for now.  Thank you for all the help.


python3-deprecated added to rosdep dependencies

Please add the following dependency to the rosdep database.
Package name:
Deprecated
Package Upstream Source:
https://github.com/tantale/deprecated
Purpose of using this:
This dependency is Python @deprecated decorator to deprecate old python classes, functions, or methods
Links to Distribution Packages

Debian: https://packages.debian.org/bullseye/python3-deprecated
Ubuntu: https://packages.ubuntu.com/jammy/python3-deprecated

There are several changes that need to be made.
This entry does not follow our conventions for pip keys, which should be of the form python3-deprecated-pip rather than deprecated-pip regardless of which major python versions are supported by the package.
Furthermore, you've linked to the debian and ubuntu repository listings for this package which means that pip keys should not be used and instead keys for the system packages should be added instead. For example:
python3-deprecated:
  debian:
    '*': [python3-deprecated]
    buster: null
  ubuntu:
    '*': [python3-deprecated]
    bionic: null

Changes made as requested.


How about targetting different netcore versions?

This is great for .Net Framework, but how can I set a project template up to target .Net Core 2.2 (or later)? Or is my assumption that the template then won't show if the 2.2 workload is not installed false?

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

ID: 8aa305bd-12c4-689f-1398-bae83bde4ba4
Version Independent ID: 67a2e7ec-f55e-80b9-dec0-054891f3861b
Content: Target the .NET Framework - Visual Studio
Content Source: docs/ide/visual-studio-multi-targeting-overview.md
Product: visual-studio-windows
Technology: vs-ide-general
GitHub Login: @gewarren
Microsoft Alias: gewarren

I believe that the template would still show as available even if .NET Core 2.2 wasn't on the machine. @prnadago to confirm.

Still be good to add to the docs what to put in there for targetting .net core versions (appreciate point will become moot with 5, but that's over a year away)

Edit to trigger priority labeling.

@RowlandShaw You are asking how to set the target framework in a project template, correct? I created a .NET Core 2.2 project and then exported it as a template. The project file in the template contains the following - TargetFramework specifies the .NET Core version:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>
</Project>

For a .NET Core 3.0 project, the TargetFramework value would be netcoreapp3.0.


Feature/add quote display

Added show method in Welcome.php controller
Added actor.php view to show each actor
Added new image link in Welcome.php

wow super


Update an image in sequential-model-guide.md

In the diagram of "two merged LSTM encoders" example, inputs of merged layer should be two (None,32) rather than (None,16).

We can't host assets on imgur, especially not over HTTP since it would compromise security (Keras.io is served over SSL).


Take commas (and other uncommonly used characters) out of the perma URLs

Whilst keeping it backwards compatible.
AB#102

Closing and merging into https://github.com/keithamoss/demsausage/issues/1853


"ValueError: not enough values to unpack (expected 5, got 4)" after processing time

Hi,
I tried using this very promising tool to optimise the syncing of a couple of media devices. It started running and spent quite a bit of time processing with the processor pegged at 100%, then received the following error:
$ sudo ./rsync-prelude -v -e "ssh -c aes128-ctr" -f "'-vaHx'" user@ip:/x/ /volume1/x/
---- find moved/renamed files: ----
run: rsync '-vaHx' -e 'ssh -c aes128-ctr' --list-only user@ip:/x/
user@ip's password:
Traceback (most recent call last):
  File "./rsync-prelude", line 343, in <module>
    main()
  File "./rsync-prelude", line 58, in main
    moves = compute_moves(args)
  File "./rsync-prelude", line 286, in compute_moves
    src_files, dst_files = rsync_list(args, args.SRC), rsync_list(args, DST)
  File "./rsync-prelude", line 122, in rsync_list
    for permissions, size, date, time, path in parsed:
ValueError: not enough values to unpack (expected 5, got 4)

If I omit the filter values, it works and I get expected output, but it doesn't do anything as it won't process sub-directories (everything comes up as 'skip'). Is there anything different that I could try to get it to work?

Thank you for the clarification, indeed that was the issue. I tested on a small test folder and it worked nicely.
Unfortunately, on the real media storage where I ran this, it ran for about 16h using huge amounts of memory (3GiB+), then it eventually failed with an OOM error... But of course that's a different issue.


Polymorphic relations do not work with fragment caching

A simple polymorphic relationship like:
class Api::V1::TagResource < BaseResource      belongs_to taggable, polymorphic: true  end
and a  call like /api/v1/tags/1?include=taggable
will fail on any of the .joins(:ar_hash) i.e.
https://github.com/cerebris/jsonapi-resources/blob/master/lib/jsonapi/resource.rb#L1143
with the message:
Can not eagerly load the polymorphic association :taggable
Any ideas on how to avoid this. It seems like trying to not cache the polymorphic relations for now might be the best approach. However, this code appears to get hit regardless of if a resource is marked as cached or not. Which means that for simpler relations caching can not be enabled if any requests involve a poly. Any help would be appreciated. Thank you.

@DauneCompton I'll look into this, thank you for the bug report

@DuaneCompton Okay, I think my PR should fix this. Sorry about the delay.

Fantastic! I'll give it a run tomorrow. Thank you again.

@lgebhardt Everything here look okay to you?


feature request: Customizing text show for "CANCEL" option in list shown by keyInSelect

Currently, the keyInSelect function displays a list of options for the user to choose from and an optional additional option labeled "CANCEL". While I know that you can enable and disable showing the "CANCEL" option, I'd like to see an option to customize the text displayed for that additional option to something other than "CANCEL". Currently, the way I'm using the readline-sync keyInSelect function is that I'm displaying a list of options that the user can toggle on and off. Every time the user selects a menu option the state of that option is toggled and the menu is re-displayed, allowing the user to toggle other options. Once the user is done toggling the options they want to choose, then they press "0" to select the "CANCEL" option, which commits their selected options and continues the program. It works very well for my use case, except for the fact that the word "CANCEL" is very confusing to users. For my program, I'd like to be able to change the word "CANCEL" to something like "DONE", or "CONFIRM". The actual functionality would be exactly the same as it is now, I just want to be able to override the default text of "CANCEL" to something else. Is it possible for you to add this feature?
@anseki

Hi michael-fei, thank you for your suggestion.
I agree it, and I will update readlineSync soon.

Done

Thanks. I really appreciate your fast response time to adding this feature!


Duplicate rerendering when using ReactWithInit

I think that the Environment.CreateComponent does a side effect of adding a component to _components list, and is overlooked when using ReactWithInit.
https://github.com/reactjs/React.NET/blob/7ed661e4fb4def2d35e3510d1be643ac0aa7006c/src/React.AspNet/HtmlHelperExtensions.cs#L127
At least we should be able to remove the rendered component from list of _components once it's successfully added to the markup.
I realized this was going on because I couldn't use get ReactWithInit to work without throwing me the ReactDOM is undefined error in console. Realized that it's working because it sort of fallbacks to default behavior and just adds the component to the render/hydrate list at the bottom of the page, after all react dependencies are loaded.
I'm using v4.1.0 on the project but I think this is applicable to v5.0 as well.

You're right, calling ReactWithInit shouldn't add to the list of _components. Thanks for the report.


Cleanup datatable

Closes ee-3427

What changed?
To summarize, DataTable should not have any state itself, but instead force the parent to maintain the state. so that i choose to not change DataTable itself as it's used allover the system so TableVIew is the clone DataTable which display [header/body/emptyRow] ...etc

Tests are covered in both DataTable and DataTableFilters :ok_hand:


The user interface should be better aligned with the funding events

At the moment it happens quite often, that funding does not happen related to what the UI displays which is very confusing.
Note that in the scenario below the funding happened before the full hour. I am quite baffled how that happened because I thought it would always be triggered slightly after:

(fun fact: both positions that are Funding are actually already collaboratively closed, but that bug is already fixed with https://github.com/itchysats/itchysats/pull/1330)
I know we have rollover 2.0 planned, but until we actually have that I'd suggest we think about patching this nonetheless, unless we plan to tackle rollover 2.0 in the current milestone.
I'd suggest to invest the time and change the current rollover implementation to be at fixed points in time rather than relative to the oralce event ID. This should make it easier to align all of this and I don't think it should be too hard if we stick to full UTC hours for now.

Aaaah, this actually only happens when the position already cosed, and it happens every time we trigger rollover! Because in the end rollover fails so it is retried every time. 😅
This should be gone with https://github.com/itchysats/itchysats/pull/1330


tls: Manager.Get(): delay store lookup

Fixes #7831

What does this PR do?
Delays store lookup, thus avoiding store lookup on each configuration reload.
Motivation
On slower hardware generating certificates can cause noticeable delays when configuration changes.
More

[ ] Added/updated tests
[ ] Added/updated documentation

@rkojedzinszky I pushed an alternative version to your PR. WDYT?

@rkojedzinszky I pushed an alternative version to your PR. WDYT?

Sorry, I did not have time to review changes, and I am also not familiar with this layer. If it avoids regenerating certificates each time on configuration change, then it is great!

@rkojedzinszky I pushed an alternative version to your PR. WDYT?

Sorry, I did not have time to review changes, and I am also not familiar with this layer. If it avoids regenerating certificates each time on configuration change, then it is great!

Well ok, but then could you please try that last version of the PR out, and let us know if it actually fixes your CPU usage issue?

Is this PR still relevant? Shall I close it and let us find a correct solution for the issue?

@rkojedzinszky I pushed an alternative version to your PR. WDYT?

Sorry, I did not have time to review changes, and I am also not familiar with this layer. If it avoids regenerating certificates each time on configuration change, then it is great!

Well ok, but then could you please try that last version of the PR out, and let us know if it actually fixes your CPU usage issue?

Do I still need to confirm the changes, or has it been done by others?

@rkojedzinszky I pushed an alternative version to your PR. WDYT?

Sorry, I did not have time to review changes, and I am also not familiar with this layer. If it avoids regenerating certificates each time on configuration change, then it is great!

Well ok, but then could you please try that last version of the PR out, and let us know if it actually fixes your CPU usage issue?

Do I still need to confirm the changes, or has it been done by others?

Yes please, it would be great if you could tell us if the PR in its actual state solves the problem for you.

@rkojedzinszky I pushed an alternative version to your PR. WDYT?

Sorry, I did not have time to review changes, and I am also not familiar with this layer. If it avoids regenerating certificates each time on configuration change, then it is great!

Well ok, but then could you please try that last version of the PR out, and let us know if it actually fixes your CPU usage issue?

Do I still need to confirm the changes, or has it been done by others?

Yes please, it would be great if you could tell us if the PR in its actual state solves the problem for you.

After a quick check, it seems that cpu usage is at the same level as with v2.3, so I think the optimization works.


add Grafana Analytics dashboard

Towards: https://github.com/giantswarm/roadmap/issues/383
This PR adds Grafana Analytics dashboard, which shows installation Grafana dashboards usage.

Based this dashboard on upstream one: https://github.com/MacroPower/macropower-analytics-panel/blob/master/example/server/dashboards/Grafana Analytics.json

Data looks wrong cause they use this recording rule
      - record: :grafana_analytics_sessions_total:increase60s
        expr: increase(grafana_analytics_sessions_total[60s]) / (132 / 99)

Going with this as first version. But happy to elaborate more on this dashboard later.


Enhance Heading of Home page

Issues Identification
Closes: #1094
Description
Summary
Makes more visually appealing and enhance user experience
Details
Types of Changes
Please check the boxes that apply

[ ] Bugfix (non-breaking change that fixes an issue)
[X] New feature (non-breaking change that adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update (Documentation content changed)
[ ] Other (please describe):

Checklist
Please check the boxes that apply

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[X] My changes do not break the current system and pass all existing test cases
[ ] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes

Screenshots
https://github.com/user-attachments/assets/e5cb319f-c0fb-4e6c-8d30-452fba55b762
Additional Information
Please provide any other information that is relevant to this pull request.

@shivhere007 thank you for the contribution to ML Fusion Lab.
your contribution gives a value to us.
now please do work on other projects.


Blog App - Add Views

Description
In this project I added the Views associated with the Models and Controllers I already created for my Blog App.
Project requirements

Implemented the design from the sneak peek wireframes. I did not add style as it is not compulsory at the moment.
Analyzed the wireframes deeply and identified all the necessary elements and how a user would navigate from one page to another.
Used methods that I have created in the Blog App - processing data in models.

Description
In this project I added the Views associated with the Models and Controllers I already created for my Blog App.
Project requirements

Implemented the design from the sneak peek wireframes. I did not add style as it is not compulsory at the moment.
Analyzed the wireframes deeply and identified all the necessary elements and how a user would navigate from one page to another.
Used methods that I have created in the Blog App - processing data in models.


show backup/restore only for mssql

confirmed with Udeesha, these 2 actions should only be shown for mssql. noticed while working on Kusto dashboard.

Coverage decreased (-0.06%) to 37.819% when pulling 32846493bc74b7d7cf6145a82be9b53845aed4a8 on alanren/backup-restore-mssql-only into 0a3d109073aec9898d884192f861a27e3ec982fb on main.


Allow setting the weather from random parameter

Add a command that generates a DCSWeather directly from:

Input MIZ file
Arbitrary values (in DCS format) given on Discord command line

The same values should also be set in the config file.
The config file should have precedence over command parameters, so server owners have the final say.


Allow more headers in the CorsListener

1. Why is this change necessary?
As discussed with @OliverSkroblin, headers sw-inheritance and fail-on-error should also be whitelisted for cross-origin requests.
2. What does this change do, exactly?
Allows sw-inheritance and fail-on-error headers in the CorsListener.
3. Describe each step to reproduce the issue or behaviour.
4. Please link to the relevant issues (if any).
5. Checklist

[ ] I have written tests and verified that they fail without my change
[x] I have squashed any insignificant commits
[ ] I have written or adjusted the documentation according to my changes
[x] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/issues/NEXT-9034
Please use this issue to track the state of your pull request.

thanks for your contribution @hanneswernery 👍🎉💙


Is this a typo on the "Tutorial: Use a Linux VM system-assigned managed identity to access Azure Key Vault" page

Is this a typo:
Serving as a bootstrap, Key Vault makes it possible for your client application to then use a secret to access resources not secured by Azure Active Directory (AD).
I think it should read:
Serving as a bootstrap, Key Vault makes it possible for your client application to then use a secret to access resources secured by Azure Active Directory (AD).
Because I think MI grants access to resources secured by AAD
Thanks,
Bow

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

ID: d8bd348f-e4b6-72e0-2cb2-ab6a2c7c9794
Version Independent ID: d19e7fc0-2e51-6e66-a5b5-44df21e5d579
Content: Tutorial: Use a managed identity to access Azure Key Vault - Linux - Azure AD
Content Source: articles/active-directory/managed-identities-azure-resources/tutorial-linux-vm-access-nonaad.md
Service: active-directory
Sub-service: msi
GitHub Login: @barclayn
Microsoft Alias: barclayn

@bowcode-cloud Thank you for your feedback . We will review this and engage with the content team to see how best we can update this.

@bowcode-cloud Thank you for your feedback. This is not  a typo. We may need to clarify but the point we are trying to make is that we can authenticate to Key Vault using a managed identity and get a secret we can then use to access a different resource. In our example scenario, the resource we access using the information stored in Key Vault does not support Azure Active Directory authentication because if it did, we could access it directly using the managed identity without the need to use Key Vault at all.

#please-close


Component workflow composer

Fix a little issue in the composer.json

Not sure why there seems to be 30 commits in the PR. Feel free to just copy paste the fix in your code base.

Nope, I disagree, theses are soft deps. Because there are interface and nothing force you to use
these componant. IE: you can have a working workflow component withtout theses deps.

To avoid this big diff, you may have to rebase / reset your local branch to my lastest commit.


Merge with internal Sailthru Client changes; add support for curl options in all Job functions

Style and PHPdoc changes to be consistent with internal Sailthru Client modifications
Add support for $options array in all Job functions, to allow overriding the 10 second timeout if necessary (thanks to PR #55)

+1


SegmentControl in CupertinoSliverNavigationBar with largeTitle

It would be pretty nice if you can integrate a Segment Control in the new CupertinoSliverNavigationBar with large Title, like in this example:

If there's already a solution to this then i'm sorry, but i couldn't find one.
Thanks

Oh, there's a bug for it already actually #10469


Need to update Okta connector doc

Description:
Need to update https://apim.docs.wso2.com/en/4.3.0/administer/key-managers/configure-okta-connector/ with new Okta images and steps

Doc pr
https://github.com/wso2/docs-apim/pull/7766
https://github.com/wso2/docs-apim/pull/7767


Add a custom User-Agent for usage measurement

The default User-Agent for Net::HTTP is Ruby, so usage
metrics for this gem blend in with all other Ruby code that
is interacting with the Linode API and not setting a custom
value for the User-Agent header.
Setting a custom User-Agent that includes the gem name and
version will make it easier to get accurate usage metrics as
we move forward.

I dig it. Good idea as well w/ the prefix feature.


Support custom participants

Hello!
This PR is related to discussion #142.
Found that the best practice for using this lib with MongoDB is to store each tournament in its own document to minimize the number of database queries and guarantee atomicity on tournament updates.  I ran into two issues following this approach:

In order to get additional information about the contestant, like an avatar pic link or a nickname or a nationality or etc., I would have to query for the player info using the id stored in the participants field, but the Participant type only allowed id, tournament_id, and name, and because id field only allowed for number type, I would be forced to store MongoDB ObjectId in the "name" field.

Rather than having to fetch from a string id, I wanted an option to use embedded documents to represent a list of participants.

In order to solve this,  I implemented an option to pass in a list of javascript objects as seeding (previously just string, number, and null allowed).
How to Use
This is what a tournament document could look like:
import { Group, Match, MatchGame, Participant, Round, Stage } from 'brackets-model';
import { SharedObjects } from 'some-lib';

interface CustomSingleParticipant extends Participant {
    contestantId: string;
    nationality: string;
    profileImage: string;
    titles: string[];
    type: 'Single';
}

interface CustomTeamParticipant extends Participant {
    contestantId: string;
    members: UserDoc[] | TeamDoc[];
    type: 'Team';
}

interface TournamentDoc extends mongoose.Document {
    id: string;
    stage: Stage[] | [];
    group: Group[] | [];
    round: Round[] | [];
    match: Match[] | [];
    match_game: MatchGame[] | [];
    participant: CustomSingleParticipant[] | CustomTeamParticipant[] | [];
    extraEventInfo: SharedObjects['ExtraInfo'] | [];
    schemaVersion: number;
}

And this is how you would fetch participant info like nationality or profile image instead of, well, querying against a user collection:
const contstantWithInfo = tournament.participants[match[0].opponent1.id]

What's Next
Currently, the CustomParticipant, CustomSeeding, and CustomInputStage types just extend the types from brackets-model lib. I think it would be cleaner to directly apply these changes in the brackets-model library, so they can all just drop the "Custom" qualifier and be called Participant, Seeding, or InputStage. I would be happy to make those changes in the brackets-model lib if I get the go-ahead.

 Thank you for waiting this long... :sweat_smile:

Available in v1.5.0


Fix pt-br translation typo

Fixes # .
Fixing a Portuguese Brazil translations typo
Changes proposed in this PR:

DMP production and stage servers have been been updated with this fix


Plans to integrate with Neovim?

Hello! I'm curious if there are any plans to integrate this grammar with Neovim via nvim-treesitter. If not, I'm happy to help out with this 😄 Thanks!

Hello @connorlay! Thanks for reaching out about this! While I don't have any plans surrounding neovim at the moment, I'd be delighted if you undertook the work to integrate tree-sitter-gleam into nvim-treesitter! I'm happy to answer questions that arise about the grammar either here in or in another issue as appropriate :smile:

I started work on this today, you can follow my progress in this draft PR: https://github.com/nvim-treesitter/nvim-treesitter/pull/2462 😄

@connorlay Any updates for this issue? I've installed gleam support by running TSInstall gleam but it's not working

@wesleimp You may need to add a filetype detection line, here is what I am using:
au BufRead,BufNewFile *.gleam set filetype=gleam

Now that https://github.com/nvim-treesitter/nvim-treesitter/pull/2462 is merged, I think we can close this issue 😄


Rethink lighting tool menu

The layout isn't intuitive and the light directions and types of light need reworking.  It needs to be simple to use like the sphere and it cannot be free floating in the overlay because we have to drag canvas around.  I think I should work on exposing polar angle (phi), azimuth (theta), and the 'radius' (distance).  These would allow us to take full control of the light direction etc.

Although this needs to be done, we really need user testing first and also we need to continue adding in experimental features so that people can see what is possible first.

Menu has been updated to be more logical.  On QA for testing.


Pass gas_limit when calling out to the Querier in cosmwasm_vm

#456 shows a case where the naive gas handling creates an attack surface. The solution is to limit the gas of the querier to take into account the "used but not yet charged to the sdk gas meter" gas used by the current contract in wasmer.
I have a wasmd testcase showing this problem: https://github.com/CosmWasm/wasmd/pull/233 and attempted to fix this in go-cosmwasm, but the Querier had no access to fidn out how much gas was used/left. The simplest solution would be to provide this info in the interface.
Change fn raw_query(&self, request: &[u8]) -> QuerierResult
to fn raw_query(&self, request: &[u8], internal_gas_used: u64) -> QuerierResult

@webmaster128 if you can take this great, otherwise I will take a stab


HDDS-6522. Fix TestOzoneManagerHAWithData#testTwoOMNodesDown

What changes were proposed in this pull request?
Fix integration test TestOzoneManagerHAWithData#testTwoOMNodesDown().
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-6522
How was this patch tested?
100x testTwoOMNodesDown (before): https://github.com/kaijchen/ozone/actions/runs/2215651435
100x testTwoOMNodesDown (after): https://github.com/kaijchen/ozone/actions/runs/2215651878
Regular CI: https://github.com/kaijchen/ozone/actions/runs/2215934619

Cc @adoroszlai for review.

@kaijchen Have you seen this test fail?  Can you please link to a test run?

https://github.com/apache/ozone/runs/6146076364?check_suite_focus=true
But seems the log have been deleted.

@kaijchen Have you seen this test fail? Can you please link to a test run?

Here is another on the master: https://github.com/apache/ozone/runs/6155782040?check_suite_focus=true#step:5:3353

Thanks @adoroszlai for the review.


Integrate LongDecimal into fbcode

Summary: Also need to add to_string implementation for koski.
Differential Revision: D36631697

Merged as part of a35b9830f69a92c633d365b58538a4381b0f472d


Linking error

Confirm by changing [ ] to [x] below:

[x] I've gone though Developer Guide and API reference
[x] I've searched for previous similar issues and didn't find any solution

Platform/OS/Hardware/Device
What are you running the sdk on? MacOS Mojave
Describe the question
I am adding this SDK as an external project and using monitoring and logs. It was working fine in the past, but not sure why I get a linking error now. I am using v1.8.17. I checked previous issues, however, did not get a resolution.
Logs/output
Undefined symbols for architecture x86_64:
  "_curl_easy_cleanup", referenced from:
      Aws::Http::CurlHandleContainer::~CurlHandleContainer() in libaws-cpp-sdk-core.a(CurlHandleContainer.cpp.o)

     Aws::Http::CurlHandleContainer::DestroyCurlHandle(void*) in libaws-cpp-sdk-core.a(CurlHandleContainer.cpp.o)
  "_curl_easy_getinfo", referenced from:
      Aws::Http::CurlHttpClient::MakeRequest(std::__1::shared_ptr<Aws::Http::HttpRequest> const&, Aws::Utils::RateLimits::RateLimiterInterface*, Aws::Utils::RateLimits::RateLimiterInterface*) const in libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)
  "_curl_easy_init", referenced from:
      Aws::Http::CurlHandleContainer::CheckAndGrowPool() in libaws-cpp-sdk-core.a(CurlHandleContainer.cpp.o)
  "_curl_easy_perform", referenced from:
      Aws::Http::CurlHttpClient::MakeRequest(std::__1::shared_ptr<Aws::Http::HttpRequest> const&, Aws::Utils::RateLimits::RateLimiterInterface*, Aws::Utils::RateLimits::RateLimiterInterface*) const in libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)
  "_curl_easy_reset", referenced from:
      Aws::Http::CurlHandleContainer::ReleaseCurlHandle(void*) in libaws-cpp-sdk-core.a(CurlHandleContainer.cpp.o)
  "_curl_easy_setopt", referenced from:
      SetOptCodeForHttpMethod(void*, std::__1::shared_ptr<Aws::Http::HttpRequest> const&) in libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)
      Aws::Http::CurlHttpClient::MakeRequest(std::__1::shared_ptr<Aws::Http::HttpRequest> const&, Aws::Utils::RateLimits::RateLimiterInterface*, Aws::Utils::RateLimits::RateLimiterInterface*) const in libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)
      Aws::Http::CurlHandleContainer::SetDefaultOptionsOnHandle(void*) in libaws-cpp-sdk-core.a(CurlHandleContainer.cpp.o)
  "_curl_easy_strerror", referenced from:
      Aws::Http::CurlHttpClient::MakeRequest(std::__1::shared_ptr<Aws::Http::HttpRequest> const&, Aws::Utils::RateLimits::RateLimiterInterface*, Aws::Utils::RateLimits::RateLimiterInterface*) const in libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)
  "_curl_global_cleanup", referenced from:
      Aws::Http::CurlHttpClient::CleanupGlobalState() in libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)
  "_curl_global_init", referenced from:
      Aws::Http::CurlHttpClient::InitGlobalState() in libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)
  "_curl_slist_append", referenced from:
      Aws::Http::CurlHttpClient::MakeRequest(std::__1::shared_ptr<Aws::Http::HttpRequest> const&, Aws::Utils::RateLimits::RateLimiterInterface*, Aws::Utils::RateLimits::RateLimiterInterface*) const in libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)
  "_curl_slist_free_all", referenced from:
      Aws::Http::CurlHttpClient::MakeRequest(std::__1::shared_ptr<Aws::Http::HttpRequest> const&, Aws::Utils::RateLimits::RateLimiterInterface*, Aws::Utils::RateLimits::RateLimiterInterface*) const in libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)
  "_curl_version_info", referenced from:
      Aws::Http::CurlHttpClient::InitGlobalState() in libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

This is my external project file:
cmake_minimum_required(VERSION 3.10.2)
project(libawscpp-download NONE)
include(ExternalProject)

ExternalProject_Add(libawscpp-download
    GIT_REPOSITORY    https://github.com/aws/aws-sdk-cpp.git
    GIT_TAG           1.8.17
    PREFIX            ${CMAKE_CURRENT_BINARY_DIR}/build
    LIST_SEPARATOR 	  "|"
    CMAKE_ARGS		-DCUSTOM_MEMORY_MANAGEMENT=OFF
                    -DENABLE_TESTING=OFF
                    -DAUTORUN_UNIT_TESTS=OFF
                    -DBUILD_DEPS=ON
                    -DBUILD_SHARED_LIBS=OFF
                    -DBUILD_ONLY=monitoring|logs
                    -DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX}
    BUILD_ALWAYS      0
    TEST_COMMAND      ""
)

@disa6302 ,
Hmmm... can't really reproduce the issue... Though it is hard to say if it is all being correctly linked seeing the CMakeLists separate like that...
couple things, first, make sure you've cleaned previous builds from DCMAKE_INSTALL_PREFIX location and try building the SDK manually and then doing the linking, just to make sure it's not the external project part that is failing.
Second, can you tell me more about the project? Specifically I'd like to know what the structure is like so I can try and reproduce this.

@KaibaLopez ,
I removed the libraries from DCMAKE_INSTALL_PREFIX location and performed a clean build. This is my folder structure:
main-repo
-> CMakeLists.txt
-> CMake
->Dependencies
-> libcppsdk-CMakeLists.txt
To know more about the project, you can check this folder in the repo.
I can try building the SDK manually, but wondering how I can link it with the SDK built separately. This is a recent issue and I have not been seeing this in the past and nothing changed. So a little puzzled.
Can you suggest a way for me to find how the libraries are linked?

Hi @disa6302 ,
so the my first thought would be that the libraries are not being found because they are not being properly built/installed, that's why I would suggest you build it manually first, in theory :
find_package(AWSSDK REQUIRED COMPONENTS monitoring logs)
target_link_libraries(lib ${AWSSDK_LINK_LIBRARIES}

should be enough to link the SDK to your project if it has been built and installed.

I stumbled across this issue and I believe it's related to https://github.com/aws/aws-sdk-cpp/issues/2717 (not being able to link Curl against aws-sdk-cpp). This simple change (https://github.com/aws/aws-sdk-cpp/pull/2718/commits/12b09058b251e1e528a98c2dd43d250f8165bebf) got it working for me, but it's just a quick fix and not integrated properly with all possible platforms/configurations. YMMV.


View/Procedure DDL unavailable - DB2 iSeries

Hello,
I am recently trying this application 3.7.8 and it seems great so far but I'm running into an issue with DB2 on the iSeries 7.1.
When I try to extract the DDL for a view I get: "view definition not available."
When attempting to extract DDL for a procedure I get: "source code not available."
Neither message generates anything written to the debug.log. Table DDL works fine. Is DDL for other objects not support for this version of DB2? Or is there another driver or add-on I need to source?
Thank you!!

Duplicate of #632


Support for standalone config parameters in addition to connection_string for MSSQL

Completed by https://github.com/spiceai/spiceai/pull/2773


MarkerClusterer returning 404 image by incorrectly handling icon filePath

Hello, I am requiring an image from Webpack and inserting into MarkerClusterer like so:
const clusterMarkerSrc = require('!file?name=[name].[ext]!../../../assets/images/marker-cluster--magenta.png'); // eslint-disable-line import/no-webpack-loader-syntax

<MarkerClusterer
        averageCenter
        enableRetinaIcons
        gridSize={60}
        maxZoom={12}
        imagePath={clusterMarkerSrc}
      >
        { renderMarkersOnMap(props) }
      </MarkerClusterer>

If I place <img src={clusterMarkerSrc} /> in the view it renders properly with the file path. When I place it in the map however via the MarkerCluster imagePath option console reports the following 404: http://localhost:3000/marker-cluster--magenta.png1.png 404 (Not Found). If I place an external link to an icon it renders properly, but this icon is local.
Please advise. Thank you very much!

imagePath should be the path to a folder where the MarkerClusterer can find images ([1-5].png).
See how it adds 1.png: localhost:3000/marker-cluster--magenta.png1.png

Please refer to Getting Help section in the README (or #469).


[PE-D] 2 people with different matric number doesn't work

2 people with different matric number doesn't work

Labels: type.FeatureFlaw severity.Low
original: ThePrevailingOne/ped#2

Duplicate #153

Include this in the glossary


Ability to have normal jupyterlab server start without passing a options page for resources

@Adam-D-Lewis my thoughts were to add an ansible variable e.g. jupterhub_qhub_options_form: True/False and this would comment jinja conditionally include the custom form logic.


Compile native extensions with '-O2 -g' flags

Resolves #2022.
In my case parsing of a big HTML file decreased from 1.1 seconds to 210 ms.
@flavorjones Regarding the final challenge, I haven't cleaned up process_recipe and configure_options, but I can try if you add some guidance or vision of the result.
And thanks for the detailed issue description. It was pretty straightforward to make this change.

:white_check_mark: Build nokogiri 1.0.712 completed (commit https://github.com/sparklemotion/nokogiri/commit/6f7a4458b0 by @ilyazub)

Thank you for submitting this! Looks good, will likely merge this weekend and ship in the next v1.11.0 release candidate.

Fascinating! When compiled with -O2 the precompiled native gem crashes on musl-based systems (like Alpine).
https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri-pr/jobs/cruby-native-gem-test/builds/30.1#L5f77a36d:151
I'll try to take a look over the weekend.

Threw it into a debugger and here's a partial stack walkback:
#0  0x000000000003a9a0 in ?? ()
#1  0x00007f08ac7b7d19 in vsnprintf (__ap=0x7ffc529b51b0,
    __fmt=0x7f08ac8b3f70 "Opening and ending tag mismatch: %s line %d and %s\n", __n=150, __s=0x556dfb894e00 "\350\253l\260\b\177")
    at /usr/include/x86_64-linux-gnu/bits/stdio2.h:80
#2  __xmlRaiseError (schannel=0x7f08ac7a4530 <Nokogiri_error_array_pusher>, schannel@entry=0x0, channel=channel@entry=0x0,
    data=0x556dfb8756e0, data@entry=0x0, ctx=ctx@entry=0x556dfb88fd20, nod=nod@entry=0x0, domain=domain@entry=1, code=76,
    level=XML_ERR_FATAL, file=0x0, line=0, str1=0x556dfb89407f "track", str2=0x556dfb894077 "test", str3=0x0, int1=2, col=0,
    msg=0x7f08ac8b3f70 "Opening and ending tag mismatch: %s line %d and %s\n") at error.c:501
#3  0x00007f08ac7bc915 in xmlFatalErrMsgStrIntStr (ctxt=0x556dfb88fd20, error=<optimized out>, msg=<optimized out>,
    str1=<optimized out>, val=<optimized out>, str2=<optimized out>) at parser.c:720
#4  0x00007f08ac7ca57b in xmlParseEndTag2 (ctxt=ctxt@entry=0x556dfb88fd20, prefix=0x0, URI=0x0, nsNr=0, tlen=0, line=<optimized out>)
    at parser.c:9679
#5  0x00007f08ac7caa07 in xmlParseElementEnd (ctxt=ctxt@entry=0x556dfb88fd20) at parser.c:10074
#6  0x00007f08ac7cef33 in xmlParseContent (ctxt=0x556dfb88fd20) at parser.c:9860
#7  0x00007f08ac7cf6c0 in xmlParseElement (ctxt=0x556dfb88fd20) at parser.c:9912
#8  xmlParseElement (ctxt=0x556dfb88fd20) at parser.c:9909
#9  0x00007f08ac7d2ec2 in xmlParseDocument (ctxt=ctxt@entry=0x556dfb88fd20) at parser.c:10748

So it looks like this is segfaulting on a vsnprintf call, and I'm wondering if it's got the same root cause as another bug we had to work around to get native compilation working on musl: see @larskanis's work at a3d9438.

This seems to be related to:

This seems to be related to:

-O2 in gcc turns on -D_FORTIFY_SOURCE=2
and musl libc doesn't support _FORTIFY_SOURCE yet

So I've pushed an additional commit that turns this macro off, and musl seems to now work. Let's watch what CI says ...

:white_check_mark: Build nokogiri 1.0.713 completed (commit https://github.com/sparklemotion/nokogiri/commit/7faad5c213 by @flavorjones)

This seems to be related to:

-O2 in gcc turns on -D_FORTIFY_SOURCE=2
and musl libc doesn't support _FORTIFY_SOURCE yet

libiconv in master compiles successfully with -O2 -g flags.
Where is it defined that -O2 in gcc turns on -D_FORTIFY_SOURCE=2? It seems that -D_FORTIFY_SOURCE is available with -O1 or higher but -O2 itself doesn't turn it on.
I've modified example code from blog post on _FORTIFY_SOURCE to print console message when that macro is defined.
#include <stdio.h>
#include <string.h>

int main(int argc, char** argv) {
#ifdef _FORTIFY_SOURCE
    printf("_FORTIFY_SOURCE defined\n");
#endif

	char buf[5];
	strcpy(buf, argv[1]);
	puts(buf);
}

The output shows that -O2 doesn't turn on _FORTIFY_SOURCE (from my very limited understanding of C).
$ ./fmt nokogiri_with_o
nokogiri_with_o
Segmentation fault (core dumped)

$ gcc ./fmt.c -o fmt -O2

$ ./fmt nokogiri_with_o
nokogiri_with_o
Segmentation fault (core dumped)

$ gcc ./fmt.c -o fmt -O2 -D_FORTIFY_SOURCE=1

$ ./fmt nokogiri_with_o
_FORTIFY_SOURCE defined
*** buffer overflow detected ***: terminated
Aborted (core dumped)

$ gcc ./fmt.c -o fmt -O2 -D_FORTIFY_SOURCE=2

$ ./fmt nokogiri_with_o
_FORTIFY_SOURCE defined
*** buffer overflow detected ***: terminated

Checked with gcc 10.2.1
$ gcc -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/10/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.2.1 20200723 (Red Hat 10.2.1-1) (GCC)

From man gcc on my ubuntu-based system:
       -O2 Optimize even more.  GCC performs nearly all supported optimizations that do not involve a
           space-speed tradeoff.  As compared to -O, this option increases both compilation time and the
           performance of the generated code.

           -O2 turns on all optimization flags specified by -O.  It also turns on the following
           optimization flags:

           -falign-functions  -falign-jumps -falign-labels  -falign-loops -fcaller-saves -fcode-hoisting
           -fcrossjumping -fcse-follow-jumps  -fcse-skip-blocks -fdelete-null-pointer-checks
           -fdevirtualize  -fdevirtualize-speculatively -fexpensive-optimizations -fgcse  -fgcse-lm
           -fhoist-adjacent-loads -finline-small-functions -findirect-inlining -fipa-bit-cp  -fipa-cp
           -fipa-icf -fipa-ra  -fipa-sra  -fipa-vrp -fisolate-erroneous-paths-dereference -flra-remat
           -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeephole2
           -freorder-blocks-algorithm=stc -freorder-blocks-and-partition  -freorder-functions
           -frerun-cse-after-loop -fschedule-insns  -fschedule-insns2 -fsched-interblock  -fsched-spec
           -fstore-merging -fstrict-aliasing -fthread-jumps -ftree-builtin-call-dce -ftree-pre
           -ftree-switch-conversion  -ftree-tail-merge -ftree-vrp

           Please note the warning under -fgcse about invoking -O2 on programs that use computed gotos.

           NOTE: In Ubuntu 8.10 and later versions, -D_FORTIFY_SOURCE=2 is set by default, and is
           activated when -O is set to 2 or higher.  This enables additional compile-time and run-time
           checks for several libc functions.  To disable, specify either -U_FORTIFY_SOURCE or
           -D_FORTIFY_SOURCE=0.

Oh, I see. -O2 turns on -D_FORTIFY_SOURCE=2 on Alpine and Ubuntu versions of gcc. At least in flavorjones/nokogiri-test:alpine and larskanis/rake-compiler-dock-mri-x86_64-linux:1.0.0 docker images.
Output from larskanis/rake-compiler-dock-mri-x86_64-linux:1.0.0 docker image.
# gcc ./fmt.c -o fmt

# ./fmt nokogiri_with_o
nokogiri_with_o
*** stack smashing detected ***: ./fmt terminated
Aborted (core dumped)

# gcc ./fmt.c -o fmt -O2

# ./fmt nokogiri_with_o
_FORTIFY_SOURCE defined
*** buffer overflow detected ***: ./fmt terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f1a353677e5]
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7f1a3540915c]
/lib/x86_64-linux-gnu/libc.so.6(+0x117160)[0x7f1a35407160]
/lib/x86_64-linux-gnu/libc.so.6(+0x1164b2)[0x7f1a354064b2]
./fmt[0x400533]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f1a35310830]
./fmt[0x400589]
======= Memory map: ========
00400000-00401000 r-xp 00000000 fd:01 1207836                            /tmp/build/fmt
00600000-00601000 r--p 00000000 fd:01 1207836                            /tmp/build/fmt
00601000-00602000 rw-p 00001000 fd:01 1207836                            /tmp/build/fmt
00d1d000-00d3e000 rw-p 00000000 00:00 0                                  [heap]
7f1a350da000-7f1a350f0000 r-xp 00000000 fd:01 133625                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7f1a350f0000-7f1a352ef000 ---p 00016000 fd:01 133625                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7f1a352ef000-7f1a352f0000 rw-p 00015000 fd:01 133625                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7f1a352f0000-7f1a354b0000 r-xp 00000000 fd:01 133604                     /lib/x86_64-linux-gnu/libc-2.23.so
7f1a354b0000-7f1a356b0000 ---p 001c0000 fd:01 133604                     /lib/x86_64-linux-gnu/libc-2.23.so
7f1a356b0000-7f1a356b4000 r--p 001c0000 fd:01 133604                     /lib/x86_64-linux-gnu/libc-2.23.so
7f1a356b4000-7f1a356b6000 rw-p 001c4000 fd:01 133604                     /lib/x86_64-linux-gnu/libc-2.23.so
7f1a356b6000-7f1a356ba000 rw-p 00000000 00:00 0
7f1a356ba000-7f1a356e0000 r-xp 00000000 fd:01 133584                     /lib/x86_64-linux-gnu/ld-2.23.so
7f1a358d7000-7f1a358da000 rw-p 00000000 00:00 0
7f1a358de000-7f1a358df000 rw-p 00000000 00:00 0
7f1a358df000-7f1a358e0000 r--p 00025000 fd:01 133584                     /lib/x86_64-linux-gnu/ld-2.23.so
7f1a358e0000-7f1a358e1000 rw-p 00026000 fd:01 133584                     /lib/x86_64-linux-gnu/ld-2.23.so
7f1a358e1000-7f1a358e2000 rw-p 00000000 00:00 0
7ffdb56b9000-7ffdb56da000 rw-p 00000000 00:00 0                          [stack]
7ffdb5784000-7ffdb5788000 r--p 00000000 00:00 0                          [vvar]
7ffdb5788000-7ffdb578a000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
Aborted (core dumped)

Output from flavorjones/nokogiri-test:alpine docker image.
# gcc ./fmt.c -o fmt

# ./fmt nokogiri_with_o
nokogiri_with_o
Segmentation fault (core dumped)

# gcc ./fmt.c -o fmt -O2

# ./fmt nokogiri_with_o
_FORTIFY_SOURCE defined
Illegal instruction (core dumped)

Is it okay to turn off _FORTIFY_SOURCE for the compilation of all native extensions in terms of security? Only libxml2 crashes with -D_FORTIFY_SOURCE=2. libiconv is compiled with -O2 -g in master.

@ilyazub I'm not sure what you're asking when you say "all native extensions." In the particular case of libxml2 and #2022 I think it's safe:

because we've been shipping precompiled libxml2 for Windows for a decade -- with _FORTIFY_SOURCE set to 0 -- and have not had any security reports
because there are other safety mitigations in place -- we run the Nokogiri test suite through Valgrind; libxml2 runs tests through ASan; and libxml2 regularly tests with fuzzed input.

If you have reason to think this is unsafe, please let me know.

Oh, if your question was about using _FORTIFY_SOURCE=0 for all the libraries, you're correct that this PR is adding the CFLAGS in the wrong place; but it's difficult to add them in the right place because of the way process_recipe is designed. I plan to fix this before merging.

Yes, I mean CFLAGS can be added to configure_options of libxml2_recipe instead of all recipes.
ext/nokogiri/extconf.rb
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

────┐
EOM │
────┘
582
      "--with-c14n",
      "--with-debug",
      "--with-threads",
      *(darwin? ? ["RANLIB=/usr/bin/ranlib", "AR=/usr/bin/ar"] : "")
      *(darwin? ? ["RANLIB=/usr/bin/ranlib", "AR=/usr/bin/ar"] : ""),
      "CFLAGS=-O2 -g"
    ]
  end

@flavorjones Thanks for convincing me that it's safe. I'm asking about the safety of this change because I have almost no experience in C.

:white_check_mark: Build nokogiri 1.0.714 completed (commit https://github.com/sparklemotion/nokogiri/commit/0dd73c4e8c by @flavorjones)

@ilyazub I heavily refactored extconf.rb, to address the process_recipe problems, and made this change at the library level in 0b49210. I've credited you in the CHANGELOG! Thank you!

@flavorjones Thank you!


add new term MONDO:0100124 NAA10-related syndrome

closes #1512

[ ] fix conflict, then I can merge

the build passed


Add RawArgsObject in myCallData.compile, with reorder of the properties

Motivation and Resolution
Improvement :

CallData.compile accepts as input the RawArgArray and RawArgsObject types, but myCallData.compile accepts only RawArgArray.
As this method has access to the contract ABI, it should be possible to send it objects whose properties are not ordered (as in any regular JS/TS objects).

utils/calldata is modified to solve these 2 subjects.
Usage related changes

Users will be able to prepare their constructor calls with myCallData.compile, using RawArgsObject.
It works for both Cairo 0 and 1.
Objects (including Uint256) are reordered in conformity with abi.
If user added properties that are not in ABI, they are ignored.
If user forgot one property, the call to provider/node will not be done ; a clear and explicit message will be sent as error (Starknet error messages are not really explicit).
If user add a property array_len before  an array (seen several times in Discord), the propery is ignored, and the call succeeds anyway.

Development related changes

Test for Cairo 0 are in contract.test.ts
Test for Cairo 1 are in cairo1.test.ts

Hypothesis:
For Cairo 1, hypothesis have been taken for complex tuple.
It's expected to have this format :
((core::integer::u8, core::integer::u16), core::integer::u256)

or
(core::integer::u256, test_constructor4::test_constructor4::TestConstructor4::Order2, core::array::Array::<core::integer::u128>, core::integer::u64)

Code has been created in accordance.
Checklist:

[x] Performed a self-review of the code
[x] Rebased to the last commit of the target branch (or merged it into my branch)
[x] Documented the changes in code (API docs will be generated automatically)
[x] Updated the tests
[x] All tests are passing

Except Error  request of Petar, all is implemented.

All is now implemented.