OAIHarvest: fix oai harvesting for name space qualified xml

OpenAIRE exposes the XML files with full name spaces. This breaks invenios harvesting routines which rely on regexp matching of the returned answers.
Two issues arise:

oai_harvest_getter.py checks, if any records are returned by searching for a <ListRecords> line. This fails, if this line reads <oai:ListRecords> instead. The fix uses the noRecordsMatch error return in OAI in case no records match the harvesting criteria. (cf. http://www.openarchives.org/OAI/openarchivesprotocol.html#ErrorConditions)
oai_harvest_utils.py uses a function to dedupe returned records by means of their OAI-ID. This also lives on regexping. In the OpenAIRE usecase this results in completely invalid XML, as only the first len(<ListRecords>) chars of the header get written at all (header_index_end = data.find("<ListRecords>") + len("<ListRecords>"). Secondly, all subsequent regexps fail, as they never match due to the namespace qualifier. The latter can in principle be arbitrary. The fix introduces lxml.etree parsing of the document to extract the OAI-IDs by means of XPath statements. Additionally, only thos records get written to the result file that were not already done. Searching for records is also implemented by XPath, building of the final element uses lxml factories.

Combined they should address and fix #2300 also for harvesting from OpenAIRE.
@jalavik and @kaplun for review. Backported code 1.1 maint is available as well.

Thanks, merged as part of 565931f9a4117499c039692c96189f50a8e02b5d.


Real robot code

Hi!
Great work on the project. Would you be able to share the code for the real world robot experiments?

Hi, the detection, reasoning, mapping, etc. parts of the project are open-sourced. For TurtleBot control, you can check out this repo for reference.

Thank you for the quick reply!
Currently the semantic mapping code in this repository is connected to Habitat, but I am interested in connecting it to ROS. I would be super grateful if you could provide some code for this (or perhaps email to me if it does not fit the scope of this repository).


Add config for commit message convention

Hello Eirik! 🙂
This is the new config for commit message. I also increased the coverage. I hope it's ok.
However, I saw some problems with some config types like default branch. If the composer.json provides an empty value (string or array), the method returns false and not the default value (empty string). If it provides a not empty array, the method returns this one. There are other methods with this kind of problem. I don't know if it's intentional, so I didn't touch that, but I can fix it in another PR if you want.
👋

This is totally awesome!
And great point about default values. This is why this package needs tests 🤓
I will take a look at this later, but it looks amazing

I guess it's kind of weird that we allow some boolean fields to be array, and then return the evaluated boolean from that instead of the default, but I guess if someone was that bad at configuring things, they would deserve it.
This PR looks amazing, thank you so much!


References?

The JOSS paper markup file has no references. I see a reference placed in a bib file for CoolProp and several heat transfer correlation references under the Heat Transfer Methods documentation. The major references should be called out on the JOSS paper markup file.

With the heat transfer references, they are referenced in the documentation here The list of references here will keep growing as I add more, so there are no 'major references' as such, the user can select whichever is most relevant for their problem. Should I still include them?

I would reference the main modules like CoolProp and the papers the examples are based on.
Sent from my iPhone

On Jun 21, 2018, at 7:18 PM, Momar Hughes<EMAIL_ADDRESS>wrote:
With the heat transfer references, they are referenced in the documentation here The list of references here will keep growing as I add more, so there are no 'major references' as such, the user can select whichever is most relevant for their problem. Should I still include them?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


CSS selectors ignore root node

In Modest, the modest_finder_by_selectors_list includes the specified node when searching for HTML.
In Lexbor, the first node (root node) gets ignored.
I use the following function:
lxb_selectors_find(selectors, node, selectors_list, <lxb_selectors_cb_f>css_finder_callback, <void*>self)
For example:

    Hi

If I pass the span node as a second argument to lxb_selectors_find the .red CSS query will return no results.
To reproduce, please change a few lines in the example:
https://github.com/lexbor/lexbor/blob/353b772429b9ec3ffb3194dedc4ddaecd7f31109/examples/lexbor/selectors/easy_way.c#L47-L46
    static const lxb_char_t html[] = "

";

    /* CSS Data. */

    static const lxb_char_t slctrs[] = "#test";

The example uses lxb_html_document_body_element to get the body element and the CSS query will fail.

@rushter
The logic is exactly this: where to look, inside what? Also querySelectorAll works in browsers.
For example, you will find the necessary nodes using one selector and want to find others for these nodes using the next selector.
Chrome example:

a

a

@rushter
The logic is exactly this: where to look, inside what? Also querySelectorAll works in browsers.
For example, you will find the necessary nodes using one selector and want to find others for these nodes using the next selector.
Chrome example:

a

a

What's is the best option to start from the same node? I think it's possible that a given node will have no parent, so starting from a parent node of a given node may not work for all the cases.
I need this to support chaining (which works as expected in Modest and I need to replicate it).
html = """

"""
tree = selectolax.lexbor.LexborHTMLParser(html)
tree.css('div').css("span").css(".red").matches

@rushter
[...]

I need this to support chaining (which works as expected in Modest and I need to replicate it).
html = """

"""
tree = selectolax.lexbor.LexborHTMLParser(html)
tree.css('div').css("span").css(".red").matches == 2

In the above chain, you have a logical error.
tree.css('div').css("span")

Here you are looking for a div with a span inside. Ok, this is correct, logical.
.css("span").css(".red")

But in this case, you already want to check the current (found) element against the selector.
One method performs different logic.
In the CSS it would look like this:
div span.red

and:
div span .red

You want your example to work in both cases. This is not right. And Modest does not work correctly in this place.
In other words, the user will not know what result he will get using the current approach with your example:
tree.css('div').css("span").css(".red")

The only valid behavior in your example is this like a selector:
div span .red

@rushter
[...]

I need this to support chaining (which works as expected in Modest and I need to replicate it).
html = """

"""
tree = selectolax.lexbor.LexborHTMLParser(html)
tree.css('div').css("span").css(".red").matches == 2

In the above chain, you have a logical error.
tree.css('div').css("span")

Here you are looking for a div with a span inside. Ok, this is correct, logical.
.css("span").css(".red")

But in this case, you already want to check the current (found) element against the selector.
One method performs different logic.
In the CSS it would look like this:
div span.red

and:
div span .red

You want your example to work in both cases. This is not right. And Modest does not work correctly in this place.
In other words, the user will not know what result he will get using the current approach with your example:
tree.css('div').css("span").css(".red")

The only valid behavior in your example is this like a selector:
div span .red

I know that this may look like a logical error, but it's designed this way.
Every next css call gets evaluated against all previous matches including the provided node.
The chaining feature supports extra methods and mimics some of the xpath features, this is why my example uses multiple css calls instead of one.
For example, it supports select('script').text_contains('var counter = ').css("#counter")

I think that's the only thing left, all other tests pass for now and both backends return the same data in simple cases.
I can't use .parent here, because that includes other parts of data as well.

@rushter
You cannot use .parent here, you are right.
But the current approach is also wrong. It can give false results and mislead users.
I can add lxb_selectors_find_close() function, but I would recommend reconsidering your approach.

@rushter
You cannot use .parent here, you are right.
But the current approach is also wrong. It can give false results and mislead users.
I can add lxb_selectors_find_close() function, but I would recommend reconsidering your approach.

I don't think there are better options, this is not the default selector which most users use.
I will disable the chained CSS part for lexbor for now. I don't use chained CSS calls myself, but I use extra features such as text_contains.

@lexborisov Do you have any idea on why this happens?
  hash.c
    lexbor/source\lexbor\core\hash.c(38): error C2491: 'lexbor_hash_insert_raw': definition of dllimport data not allowed
    lexbor/source\lexbor\core\hash.c(41): error C2491: 'lexbor_hash_insert_lower': definition of dllimport data not allowed
    lexbor/source\lexbor\core\hash.c(44): error C2491: 'lexbor_hash_insert_upper': definition of dllimport data not allowed
    lexbor/source\lexbor\core\hash.c(63): error C2491: 'lexbor_hash_search_raw': definition of dllimport data not allowed
    lexbor/source\lexbor\core\hash.c(66): error C2491: 'lexbor_hash_search_lower': definition of dllimport data not allowed
    lexbor/source\lexbor\core\hash.c(69): error C2491: 'lexbor_hash_search_upper': definition of dllimport data not allowed
    lexbor/source\lexbor\core\hash.c(115): warning C4273: 'lexbor_hash_create': inconsistent dll linkage

Full log: https://github.com/rushter/selectolax/runs/3393661157?check_suite_focus=true
I tried to build Windows version on selectolax and got this error.

because LEXBOR_SHARED should be correctly defined. It's not currently the case

because LEXBOR_SHARED should be correctly defined. It's not currently the case

Thank you for your answer, but I'm building statically. I got the idea of what I need to search for.

core/def.h. If you build a static lexbor lib, then pass LEXBOR_STATIC to the preprocessor
... but on Windows, DLL are good (remark of a windows gcc dev)

core/def.h. If you build a static lexbor lib, then pass LEXBOR_STATIC to the preprocessor
... but on Windows, DLL are good (remark of a windows gcc dev)

I don't think I can use a shared library for my Python wrapper.
The users would need to install it first. Right now, they don't need to do anything. For modern versions of Windows, they just get a precompiled version of the library from Python Package Index.

Fixed the problem by setting _WIN64 and _WIN32 defines.
Are there any other important flags that I'm missing?

        args = [
            "-pedantic", "-fPIC",
            "-Wno-unused-variable",
            "-Wno-unused-function",
            "-std=c99",
            "-O2",
            "-DLEXBOR_STATIC",
        ]
        win_args = [
            '-D_WIN64' if ARCH == '64bit' else '-D_WIN32',
        ]

_WIN32 is always defined with a C Windows compiler, and _WIN64 is always defined for a 64 bits compiler. So pass -D_WIN32 unconditionnally on Windows. But if you use gcc, you should not be adding those flags (gcc already defines them correctly
-fPIC is for non Windows compilers, but it's for shared libs, not static libs


the directory or its parent directory are not owned

keep getting this message im stuck please help
The directory '/Users/JohnyTiger/Library/Caches/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.

Seems like your User profile doesn't have the permission to overwrite the folders, try running it as administrator or try https://repl.it/
Did u run the Code via terminal or via an Application like VisualStudioCode or PyCharm?


Integrating with FOSUser and HWIOAuth

Hi,
I have an app configured with FOSUser and HWIOAuth, now i'm creating an SPA and want to use jwt tokens. Do you have some guides about integrating all things together? Or maybe some articles?
Also what is better way of integrating oauth for SPA? For form with login/password you can send request to backend api and get jwt token back. But whsat to do with oauth services like google/github/etc? I can redirect user to oauth page, then redirect to third party oauth server, then back to oauth "callback" page, but how and when to obtain jwt token then?
BTW, thanks for a great bundle.

Hello @antonmedv,
Outside of the fact you're using FOSUser and HWIOAuth bundles, this is an interesting question.
We don't have any docs about integrating this bundle for SSO, OAuth or any third-party authentication. I plan to work on providing examples in our sandbox asap.
In the meantime, could you provide more info about your exact workflow? Is your SPA a standalone application (maybe front-end only?) which hits your oauth server, itself redirecting from your SPA to the targeted third party application (e.g. github), then redirecting back to your SPA once authentication succeeded/failed? I will try to give you some hints.

@chalasr yes, SPA is a standalone app front-end only. Now you login with github, user needs to go to special route, that route will redirect him to github and back to callback route, there HWIOAuth exchange access_tokens and load user data.
I think it will be cool to integrate LexikJWTAuthenticationBundle here, and get API token in callback route of HWIOAuth.

Sorry for the delay!
Based on what a colleague did at work (no FOSUser, no HWIOAuth, only a custom guard authenticator which makes use of league/oauth2-github, and this bundle) I would recommend the following workflow:

Once your user has been redirected from e.g. github to your server-side callback url, forge a JWT in the callback controller action (or any event subscriber you can hook into for accessing the logged-in user and set the success/failure response for your SPA)  using the lexik_jwt_authentication.jwt_manager service:
$token = $this->jwtManager->create($authenticatedUser);
and return this token in the response (usually JSON formatted)
Configure our lexik_jwt_authentication.jwt_token_authenticator guard authenticator on the firewall(s) which is behind your protected resources (see the README for setting it up), and make your SPA passes the token to each request targeting a protected resource.

Is that doable with your current setup? In case you have a doubt in one of the given steps or you need some code, just ask me. On my side I'll use this to provide some docs on the subject

Ok, thanks. But working example with HWIOauth will be more awesome)


inconsistent  formatting of command line options

URL for relevant page?
https://docs.influxdata.com/influxdb/v1.7/tools/influx_inspect/
little bit of a nit, but the command line flags on this page don't have standard formatting. It might be across many pages though.

🤦♂ nvm. i see those ones in brackets are optional


AKAudioFile get frequencies and amplitude

Hello,
I have this code currently to get the frequencies and amplitude of an audio file :
let url = mypathtothefilehere...
let file = try! AKAudioFile(readingFrom: url)
var data = file.floatChannelData[0]
But i get too much data, its too precise. (30million of points for 20mins of audio 44Khz sample rate stereo)
Is there a way to choose how many points to get when i do floatChannelData ? Because if i keep like this, files that are pretty long( say 20mins) bump the memory to around 250mo)
I've seen there is a getWaveFormData() which has an argument numberOfPoints but no such thing for AKAudioFile.
Could anyone help me?
Thanks in advance.

That's not the frequencies and amplitudes of a file, that's the raw waveform data.  If you're looking for frequencies and amplitudes you'd want to run the file through AKFrequencyTracker.  Unfortunately currently that only work iwith real time playback, not offline processing.  Theoretically you could use AudioKit's algorithms to loop through the floatChanneldata.  But, the issue tracker is for bugs and such and this is more of a discussion, could you move it to https://groups.google.com/forum/#!forum/audiokit  Thanks.


Unable to Install External Test Apps in Test Mode

Describe the bug
When testing a Stripe App using the External Test feature, I'm no longer able to test the app in test mode. When toggling Stripe to test mode, an "App is installed in live mode" message is displayed. This is a recent issue, as I was always able to use external test apps in test mode before.
To Reproduce
Steps to reproduce the behavior:
Install any app using the external test feature. Try toggling Stripe to test mode. It won't let you use the app in test mode.
Expected behavior
It should be possible to use external test apps in test mode.
Screenshots

This is a big problem for my app which offers utility in both test and live mode. If this was a design decision, I'd appreciate reconsidering.

Thanks for the feedback @hunterclarke! This was an intentional change to better support the platform. Please feel free to reach out to<EMAIL_ADDRESS>to see what we can do for your app

We're in the process of transitioning our Stripe Extension into a Stripe App, and I've encountered a question regarding this matter. Is it the case that the installation of apps via install links is exclusively functional in Live Mode? Does this imply that end customers will need to experiment with the app using genuine transactions?


Changes Array JSONArray type to ArrayLike

For the QuerySpec JSONArray, we're okay to accept any type of array and not force users to coerce types to a rigid Array type
See: https://github.com/Azure/azure-sdk-for-js/issues/10354

Can you add a change log entry too?


Add Aurelia to list of frameworks supported in README.md

:-) thanks for adding Aurelia to the list, in the template list it was already added... (removed)

You're right. Not sure how I missed that. Cheers.


Update for Vietnamese text Braille Translation in Equation

Dear @NSoiffer,
I am attached here the MS Word document, describing some Vietnamese Braille translation rules for text and defining rhymes:
Vietnamese Uncontracted Braille Update in MathCAT.docx
At the moment, MathCAT translates well rules for numbers, single letter by letter etc, but haven't supported to translate Vietnamese rhymes with two and three vowels with 5 different Vietnamese accents. Please let me know for any uncleared points in the document.
Many thanks for your support.

I'm getting close (I think) to having the rules working. Once I get them working (hopefully by end of day tomorrow), I'll "publish" a new MathCAT and then update MathForC which will generate new DLLs.

I have a new build here: https://github.com/NSoiffer/MathCATForC/releases/tag/v0.6.6. Let me know if you find any problems.


ScatterplotLayer radius changes when panning

When using a ScatterplotLayer inside a ReactMapGL wrapped DeckGL component, the circle radius is affected by panning towards the top or bottom of the map (but the center point of the circle remains correct).
I have checked that DeckGL is receiving the same viewport object as ReactMapGL when interacting with the map. I couldn't see anything in the documentation that would explain this behaviour, any ideas?
deck.gl - v4.1.5
react-map-gl - v3.1.1
<ReactMapGL
        onViewportChange={updateViewport}
        {...viewport}
      >
        <DeckGL
          {...viewport}
          layers={[
            new ScatterplotLayer({
              id: 'circle-layer-test',
              data: [[0, 0]],
              getPosition: e => e,
              getRadius: () => 900000,
              getColor: () => [0,0,255,255],
            }),
          ]}
        />
      </ReactMapGL>

Radius is smallest when centered:

Radius grows when panning towards top or bottom of map:

@Scoreaux Fascinating! It looks like you have created a live demonstration of Tissot's indicatrix for the web mercator projection. The tl;dr is that the indicatrix shows how various cartographic projections distorts distances across the globe.
What is happening is that deck.gl interprets the size you provide in meters by rendering it according to the local "web mercator distance scale" which depends on your viewport center's distance from the equator. The effect is normally not noticeable when zoomed in, but when visualizing the entire world like this, it is.
In this case you likely just want to specify your radius in pixel units rather than in meters. The ScatterplotLayer has minRadiusPixels and maxRadiusPixels props to help with this.

Hi @ibgreen, thanks for the prompt response! That was a fascinating read, I should've expected it to be something like that causing this.
What I'm trying to do is display ~200 circles on a map with varying sizes based on the data they're displaying. I looked at using min/MaxRadiusPixels for this, however, because I can't specify the values for these keys as a function (like I can with getRadius, getColor etc.), it means I either have to choose between having the circles all the same size by setting min and maxPixelRadius to the same values, or allow the circle sizes to vary based on map position. Is that correct?
Can you see any other way of accomplishing this?

@Scoreaux if you have multiple points that you want to be individually specified in pixels at the world zoom level, it might be necessary to do a custom ScatterplotLayer and change one line in the vertex shader.
You'd copy the vertex shader file and wire it up like this:
import CUSTOM_VERTEX_SHADER from './..';

class PixelScatterplotLayer extends ScatterplotLayer {
   getShaders() {
      return Object.assign({}, super.getShaders, {vs: CUSTOM_VERTEX_SHADER})
   }
}


Release Google.Cloud.Tools.SbomGenerator version 0.4.0

Changes since 0.3.0:

Allows SBOMs to be generated from nupkg files without requiring a specific package namespace in the nuspec file

(As ever, release one commit at a time - I thought I'd bundle the change and the release in one PR though.)

Created release for Google.Cloud.Tools.SbomGenerator-0.4.0

I'll take a look at this.

We re-released this in #12681


[WIP] Implement PIDForest using PyCall

Feel free to comment the code in the changed files and not just the changes themselves, as this pull request does not contain all of them needed for pidforest.

I won't comment on the content of the pidforest model, just keep the fit script up to date with the API, e.g. https://github.com/aicenter/GenerativeAD.jl/blob/73617dede83b55da32583cfa1a5fa6eac8d9bc80/scripts/experiments_tabular/knn.jl#L103 needs an additional argument, the edit_params function

Ready for review.
Note that this does not include the setup of the virtualenv and installation of pidforest, as it should be added in some setup script.
Also the environment should be relative to the current repository and not fixed as it is now to my home.


[Feature][Jdbc-Connector] Add date and timestamp supported for JdbcSource partition

Purpose of this pull request

Add date and timestamp supported for JdbcSource partition
Check list

[x] Code changed are covered with tests, or it does not need tests for reason:
[x] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[x] If necessary, please update the documentation to describe the new feature. https://github.com/apache/incubator-seatunnel/tree/dev/docs
[x] If you are contributing the connector code, please check that the following files are updated:

Update change log that in connector document. For more details you can refer to connector-v2
Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist

[x] Update the release-note.

more test for other jdbc datasource

Hi, please resolve conflict, this is a very important feature. cc @EricJoy2048 @hailin0


feat: lock token schema

Changes

Introducing a New Schema: lock_token

A new schema, lock_token, has been added to support the new transaction type: LockToken.
The LockToken transaction follows a structure similar to AllowSpend, making AllowSpend the foundation for creating this schema.

The schema design has been verified against the proposal outlined in the Notion document to ensure consistency and alignment with the proposed specifications.

Looks good, but it will make conflicts with allow spends feature branch. Maybe it would be better to make it on allow spends branch, or move development of allow spends and this to develop branch if we plan to release that anyway together.

Yeah, @marcinwadon I'll create the PR again and point to allow-spends branch, that's the reason I've asked in Slack, I think it will exists some things that this feature will inherit from allow spends branch

This PR will be closed since we will point to allow spends branch
https://github.com/Constellation-Labs/tessellation/pull/979


feat: add reply new issue workflow

This seems pointless. The same could be conveyed in the initial issue template (which @johnsoncodehk said before that he doesn't want to have).

We don't have an issue template. And this message is not helpful.

github templates can be used

In response to a question, actually
Questions are answered automatically, first-time contributors are welcome, and questions are regularly closed at......


Keywords (like default) fix

Fixes the problem with Default name of attributes on models and keyword on Dart.

Try the latest version of package and let know if everything works without your fix. If the error still pops up, then you will need to make a few changes.

Hi, my PR has a broader fix: I've mapped all Dart keywords and append
"Value" to them.
For example:
class Tesis {
String abstract; // This would cause error on the current 0.4.0
String title;
....
}
Also, please, check my PR for a fix on the retrofit template: when you set
a postfix, the "part" gets a wrong file name and this is why I was having
crashes.
Maybe we don't need my PR, but I would prefer if possible that those 2
fixes were added there.
I can only do it now in the evening, so, if you prefer to wait for me to do
those changes on 0.4.0, I can do that. :-)
Cheers,
Pablo
On Fri, 16 Dec 2022 at 11:20, Roman Laptev @.***> wrote:

Try the latest version of package and let know if everything works without
your fix. If the error still pops up, then you will need to make a few
changes.
—
Reply to this email directly, view it on GitHub
https://github.com/Carapacik/swagger_parser/pull/7#issuecomment-1354586296,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABFFM2XJ4LQI57YRQUTDKK3WNRGADANCNFSM6AAAAAAS6JTFYU
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Pablo Santiago Sánchez
ZCE ZEND006757
p<EMAIL_ADDRESS>/ @.***
+353838691070
"Pluralitas non est ponenda sine necessitate"

You need to test these changes and you can merge.


mapproxy: 1.12.0 -> 1.13.0

Motivation for this change
Switched to using python3, because pyproj fails to build with python2.
https://mapproxy.org/blog/new-mapproxy-1.13.0-release/
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Had great success using it as proposed. Didn't build at all before.
cc @rakesh4g

LGTM, thank you!


Ambiq add simobuck init

This allows the Ambiq apollo4 to enter the lowest power by switching from LDO to simobuck upon initialization.
Signed-off-by: Richard Wheatley<EMAIL_ADDRESS>

Thank you for the PR! Can you please squash the commits?
The requirement is for all the commits to be "right" before merging them. i.e we should not have a PR that introduces something and them immediately changes it to something else. Thank you for understanding.

Of course! Thanks for your comment and help!


Support configurable names for provisioned resources (e.g., cluster)

Related: #624
What problem are you facing?
When a cluster is provisioned through crossplane, it generates a random name like, gke-0eb7ce43-xxxx-xxxx-xxxx-xxxxxxxxxxxx for the cluster. This makes it difficult to distinguish between clusters.
How could Crossplane help solve your problem?
Adding labels help but being able to control the name of the cluster being provisioned would be great. We can have something like custom-prefix-xxxx-xxxx(some uuid with it) or even allow providing static names for the cluster and throw an error if the cluster with the same name already exists.
I saw some docs referring to external-name here and PR related to it. It seems to implement external-name in annotations. I tried setting this in my kubernetescluster resource but it doesn't seem to work.

External name annotation isn't used by k8s cluster resources yet. Hopefully, all resources will use it in the 0.6 release.

External name annotation works in 0.6 release. :smile:
Closing this issue.

Thank you for following up and confirming @vadasambar! 🤓


yandex-music: 5.13.2 -> 5.14.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for yandex-music is: Yandex Music - Personal recommendations, selections for any occasion and new music
meta.homepage for yandex-music is: https://music.yandex.ru/
meta.changelog for yandex-music is: https://github.com/cucumber-sp/yandex-music-linux/releases/tag/v5.13.2
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 5.14.0 with grep in /nix/store/nsdmn4id9jd2al9s3h6b3fi8a2wh6jcw-yandex-music-5.14.0
found 5.14.0 in filename of file in /nix/store/nsdmn4id9jd2al9s3h6b3fi8a2wh6jcw-yandex-music-5.14.0

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

yandex-music

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/nsdmn4id9jd2al9s3h6b3fi8a2wh6jcw-yandex-music-5.14.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A yandex-music https://github.com/r-ryantm/nixpkgs/archive/1e1478f958b89fa49144007985fb3417b8862bcf.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/1e1478f958b89fa49144007985fb3417b8862bcf#yandex-music

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/nsdmn4id9jd2al9s3h6b3fi8a2wh6jcw-yandex-music-5.14.0
ls -la /nix/store/nsdmn4id9jd2al9s3h6b3fi8a2wh6jcw-yandex-music-5.14.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

yandex-music

Maintainer pings
cc @ein-shved for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@NixOS/nixpkgs-merge-bot merge


Exit CFO initialisation if RayCluster CRD is not available

Issue link

Jira: https://issues.redhat.com/browse/RHOAIENG-5331
What changes have been made

Refactored to exit early if the RayCluster CRD is not present in the cluster.

Note: This could be considered a temporary change until the RC Controller is moved to KubeRay.
Verification steps

Deploy the CFO without KubeRay and Ray CRDs:

podman build -t quay.io/<quayusername>/codeflare-operator:<tagname> .
podman push quay.io/<quayusername>/codeflare-operator:<tagname>
make deploy IMG=quay.io/<quayusername>/codeflare-operator:<tagname>

The CFO pod will fail to initialise and will restart the pod until the required CRDs are available in the cluster. Deploying KubeRay installs the required CRDs and the CFO pod should start.

Checks

[ ] I've made sure the tests are passing.
Testing Strategy

[ ] Unit tests
[ ] Manual tests
[ ] Testing is not required for this change

i must have missed something again:
you are injecting "oc" (or kubectl) binary into the same CFO operator image, and start an initContainer with exactly the same image, for one purpose to check if these 3 CRD has been installed into the cluster?
But, why not:

find a dedicated initcontainer images as initContainer (e.g the one dimakis pointed out?) all you need is just the "oc" binary
do not touch existing Dockerfile.
and no need use var in kustomize but hardcode image with digists in the deployment of the CFO

Hi @zdtsw, completely agreed, that makes more sense to me. Will fix now, thanks for the advice and insights!


Route Model Binding is broken

Having created a fresh Laravel project with a simple model (Post, for this purpose) and corresponding controllers, resources, tables, endpoints etc, as per the documentation, trying to update a record throws the following exception:
Id member is not a string. at .../Projects/jsonapi/vendor/cloudcreativity/json-api/src/Object/IdentifiableTrait.php:74

My PATCH to /api/v1/posts/2 looks like this:
{
  "data": {
	"id": 2,
    "type": "posts",
    "attributes": {
      "body": "patch"
    },
    "relationships": {

    }
  }
}

Having drilled down a bit, it seems as though although we are now "substituting bindings so that the $record variable passed to controller actions is the actual record (object), rather than the id" (as per the docs), in fact it still behaves as though an ID is being passed in and not an object (dumping the $id variable passed in to IdentifiableTrait shows as much.)
Am I missing something obvious? Or is this actually broken?

My temporary fix for the time being happens in RequestInterpreter:
    /**
     * @inheritDoc
     */
    public function getResourceId()
    {
        $record  = $this->request->route(ResourceRegistrar::PARAM_RESOURCE_ID);

        return (string) $record->id;
    }

...As Request::route('record') seems to be returning an array, and not just an ID.

Hi! All the tests would be failing if this wasn't working, so I think it's something specific about your implementation. It's tested here:
https://github.com/cloudcreativity/laravel-json-api/blob/master/tests/Http/Controllers/SitesController.php#L62
I'm not sure why you're having to change the request interpreter, as that is used before the binding is substituted.
Is this an Eloquent controller? If so, are you not extending the EloquentController? I think to track this down I'm going to see what you're doing in the controller.

Actually, the original thing you posted:
Id member is not a string. at .../Projects/jsonapi/vendor/cloudcreativity/json-api/src/Object/IdentifiableTrait.php:74

id is a reference to the id in the data payload you posted:
{
  "data": {
	"id": 2,
    "type": "posts",
    "attributes": {
      "body": "patch"
    },
    "relationships": {

    }
  }
}

Should be:
{
  "data": {
	"id": "2",
    "type": "posts",
    "attributes": {
      "body": "patch"
    },
    "relationships": {

    }
  }
}

Thanks very much, @lindyhopchris. I wasn't using the EloquentController, I extended the regular one and implemented it like outlined in the docs, which was the mistake. Extending the EloquentController has fixed everything.

np - hopefully i'm going to have more time to spend on working towards 1.0 later this month, and as part of working towards that I'll be filling out the documentation to hopefully avoid some of these issues!


dartanalyzer doesn't show message from @Deprecated

It would be much more helpful if dartanalyzer printed the message from the @Deprecated annotation.
For example, running dartanalyzer on the following program:
@Deprecated('Use bar() instead')
void foo() {}

void main() {
  foo();
}

prints only:

Analyzing deprecated.dart...
dart --v  hint • 'foo' is deprecated and shouldn't be used at deprecated.dart:7:3 • deprecated_member_use_from_same_package
1 hint found.

without showing "Use bar() instead", and people must find the definition of the deprecated symbol themselves to find the recommended fix.
I am using Dart SDK Version: 2.5.1 on Linux x64.

https://dart-review.googlesource.com/c/sdk/+/119780

Thanks, @bwilkerson. Does this include messages showing up in tooltips and other places in the IDE or only the command-line tool?


feat(json-schema-check): add new action

Description

Create a new action, where the goal is to check the compliance of configuration files against their Schema template.
Leveraging the check-jsonschema CLI tool.
It can then be used in autoware.universe and autoware.core.
Related links

Implements https://github.com/autowarefoundation/autoware-github-actions/issues/232
Tests performed

I haven't tested the deployment as a dedicated Github action in a separate repository, but I tested the specific commands in CI:
Checked that it passed on correct configuration files at https://github.com/ambroise-arm/autoware.universe/actions/runs/5354465514
Checked that it failed on wrong configuration files at https://github.com/ambroise-arm/autoware.universe/actions/runs/5322522827
Notes for reviewers

I will have a follow up PR to autoware.universe to make use of this.
Interface changes

Effects on system behavior

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.
[ ] The PR has been properly tested.
[ ] The PR has been reviewed by the code owners.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.
[ ] The PR is ready for merge.

After all checkboxes are checked, anyone who has write access can merge the PR.

@ambroise-arm Thank you for the pull request.
Could you explain the difference between the pre-commit hook you added in https://github.com/autowarefoundation/autoware.universe/pull/4002? I don't understand it well.

@kenji-miyake We want to have per package:

1 schema/{pkg_name}.schema.json that acts the template for the configuration files
1 (or more) config/*.param.yaml configuration that need to match the template

This patch is to allow to check that the param.yaml files match their package template.
Separately, each schema.json file refers to a meta-schema that it adheres to (https://github.com/autowarefoundation/autoware.universe/blob/e70df1239c67d8ae86a7a8bf8d6c83bc20e7ece7/perception/lidar_apollo_segmentation_tvm_nodes/schema/lidar_apollo_segmentation_tvm_nodes.schema.json#L2). That's what the pre-commit is checking.
I couldn't make the check of this patch fit within the already-existing pre-commit hook (or already-existing github actions). But the opposite is possible, we could drop the pre-commit check and have it as part of this action.


Feature - support section arguments

Hi ;)
These changes will let you configure section parameters like <buffer tag, key1, key2> (solves #118)
For example: you can use this code to configure ElasticSearch output:
td_agent_match 'output_es' do
  type 'elasticsearch'
  tag 'logs.**'
  parameters(
    hosts: 'localhost:9200',
    logstash_prefix: 'fluent-${key1}.${key2}',
    'buffer tag, key1, key2' => {
      timekey: '1d'
    }
  )
end

This code will result configuration which will route logs to different indices based on specific keys in message.
<match logs.**>
  @type elasticsearch
  index_name elastic.${key1}.${key2}
  <buffer tag, key1, key2>
    timekey 1d
  </buffer>
</match>

More information related to section parameters:

https://docs.fluentd.org/configuration/buffer-section#argument
https://docs.fluentd.org/configuration/buffer-section#placeholders
https://github.com/uken/fluent-plugin-elasticsearch#placeholders

@yyuu - any chance this PR gets reviewed? : 🙏 😉

@simonasr would it fix https://github.com/treasure-data/chef-td-agent/issues/142 as well?
@yyuu any chance to get this reviewed and merged? 👍

Hi @yyuu and @simonasr, any updates on getting this merged? It would be a big help for us!

@simonasr would it fix #142 as well?

@scalp42 it should.
But this repository looks abandoned 😢

@yyuu should we fork it?

Howdy guys, any news on this PR merge?


shards for CI

https://www.npmjs.com/package/karma-parallel
https://jestjs.io/docs/configuration#testsequencer-string

useless, because CI uses 1 job and 4 machines per job, instead of 4 jobs and 1 machine per job.


Predictible hostnames with one replicated job

I'm testing a JobSet with just one replicated job, and one pod.  The predictable hostname has gone away. E.g., what i'd want is:
# Either of the following would work
metricset-sample-l-0.ms.default.svc.cluster.local
metricset-sample-l-0-0.ms.default.svc.cluster.local

But in practice I get:
metricset-sample-l-0-qcnd9.ms.default.svc.cluster.local

The addition of the pod random mangled string makes it impossible to predict and thus write applications for. Given that someone has chosen to use JobSet, it would be useful to have consistent behavior, even if there is just one replicated job and one pod. What do others think?

What do you mean by has gone away? Was this working in a previous release and has stopped working?
what Jobset spec are you using?
I think you should write applications based on labels selectors rather than relying on specific names.

What do you mean by has gone away?

I mean as in the example above. When I have two replicated jobs, I get a predictable string. When I have just one, and one pod, I get the addition of the pod name qcnd9.

/kind bug
Can you describe the job and check if it's in indexed completion mode?

Can you describe the job and check if it's in indexed completion mode? I will try to reproduce this as well. Can you paste an example JobSet yaml?

You know what, I think that's obviously it - this is a user error I think, I forgot that I had that logic. Sorry for the noise!

Ah ok, np!


Sync VSO - GitHub public repo

Sync VSO - GitHub public repo.
npm package version 0.5.0.

Hi @ignatvilesov, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Vilesov Ignat (Akvelon)). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

Looks good.


Have margins for paragraphs in ckeditor

Paragraphs should have margin. Otherwise users enter 2 line returns (inserting an empty paragraph). Comment/discussion pages and emails sending processing correctly interpret paragraphs, so with an empty paragraph between each real paragraph the result is enormous visual space between paragraphs. Having paragraph margins will avoid users entering double line returns.

Hello
Thanks a lot for your feedback.
We will try to find a solution as soon as possible.
Best regards

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


Add total point info on import confirmation screen

Provide item point totals on the final confirmation screen, mirroring the info available on item selection screen.
This is part of #1356

confirmed


Repackaging - Delinea Secret Server (MMA to AMA Migration)

Required items, please complete
Change(s):

See guidance below

Reason for Change(s):

See guidance below

Version Updated:

Required only for Detections/Analytic Rule templates
See guidance below

Testing Completed:

See guidance below

/Package


[dev] Package published build correctly

zip for Windows, tar for *nix
Correct file name

Tday we drop artifacts from both the Linux travis machine, the Osx travis machine, and the appveyor machines.
Linux provides us with the linux packages, and they're uploaded via the .travis.yml.
On Appveyor they're uploaded by appveyor.yml
In both cases, the drop target is artifacts/.
Windows assumes zip files, and builds for both x86 and x64 targets.
Linux assumes tarballs, and only builds for x64 targets
Osx assumes tarballs, and only builds for x64 targets.
Linux also builds and publishes the Mono based release.
With Troy's changes, that shifts around a little bit, we can build multiple runtimes per environment.
While it might make more sense to use one CI environment to build all 3, I do like the idea of the CI environment building and publish their own assets, for one reason and one reason only.  If that build fails, a failing asset for that platform doesn't get pushed, which helps track down the error sooner.

Pushed: https://github.com/OmniSharp/omnisharp-roslyn/pull/425
Is there a way to push only specific tar.gz files on Travis depending on the OS?

In the previous iteration, I simply only bundled the packages for the current environment.

Fixed by #421


Initial server deployment

Make the app available via a web server.
For now, deploying it manually is fine. Eventually we might want to introduce a CI/CD pipeline.

The app is now available here: http://<IP_ADDRESS>/


deb post install script writes to /etc/apt/sources.list.d

Issue Type: Bug
After adding a deb source for vscode:
deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main
in /etc/apt/sources.list.d/microsoft-vscode.list
the deb post install script writes its own variant of that file under its own name.
See:
https://github.com/microsoft/vscode/blob/master/resources/linux/debian/postinst.template
I'm not sure if it is a bug in the sense that it goes against Debian packaging rules, but applications secretly dropping their own package sources in one of the most fundamental OS configuration places sure is a breach of trust at the very least.  Managing /etc/apt is the administrator's job, not that of a random package maintainer.
VS Code version: Code 1.40.2 (f359dd69833dd8800b54d458f6d37ab7c78df520, 2019-11-25T14:54:40.719Z)
OS version: Linux x64 5.2.0-0.bpo.3-amd64

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz (4 x 2993)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: disabled_softwareskia_renderer: disabled_offsurface_control: disabled_offsurface_synchronization: enabled_onvideo_decode: unavailable_offviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
4, 2, 2

Memory (System)
7.75GB (0.12GB free)

Process Argv
--no-sandbox --unity-launch

Screen Reader
no

VM
0%

Extensions (7)

Extension
Author (truncated)
Version

project-manager
ale
10.9.1

vscode-markdownlint
Dav
0.32.0

vscode-azurestorage
ms-
0.7.2

azure-account
ms-
0.8.7

powershell
ms-
2019.11.0

azurerm-vscode-tools
msa
0.8.2

vscode-yaml
red
0.6.1

/duplicate https://github.com/microsoft/vscode/issues/22145
That was open for 2 years and no one seemed to care enough to contribute, I'd still accept a PR for it though.


Edit and delete buttons in shift creation/edit view discard unsaved changes

Describe the bug
When I add or edit multiple shifts of an event and thus use the "Edit" link in the right sidebar, changes made to the current shift are not saved.
To Reproduce
Steps to reproduce the behavior:

Create a new event with settings of your choice.
Add two shifts to the event, again with settings of your choice
Save the event including the two shifts
Notice that some settings on both shifts are not correct. For example, you specified the wrong meetup time
In the event view, click the "Edit" menu entry of the first shift
Change the meetup time for the current shift
Click the "Edit" link of the other shift and change the meetup time there too
Scroll down and click "Save".
Observe the event view. Only the second shift has the new meetup time.

Expected behavior
Both shifts should have the new meetup time applied OR clicking the edit link (step 7) should warn about unsaved changes.
I would prefer the first option as this would make bulk-editing of shifts much easier than selecting, editing and saving each shift on its own. A similar result could be achieved if the current shift would have an additional "Save" link that (in contrast to the save button at the bottom of the page) does not leave the edit view, combined with the warning on the "Edit" link if the current changes have not been changed.
Screenshots
Example screenshot after step 6. Notice that the meetup time has been changed (old value can be seen in sidebar). Clicking "Edit" in the sidebar would discard this change. Saving this change would require the user to scroll down to the button of the page and additionally would leave the edit view.

Environment
Ephios 0.16.6 as well as latest main branch.
Additional context
Clicking any of the "Delete" links or the "Edit" link of the event in step 7 causes the same behavior.

related to #280


python312Packages.validators: 0.28.0 -> 0.28.1

Diff: https://github.com/python-validators/validators/compare/refs/tags/0.28.0...0.28.1
Changelog: https://github.com/python-validators/validators/blob/0.28.1/CHANGES.md
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

0.32.0 released.


Add more angle conventions and conversions

There are many angle conventions in robotics
As many conventions and conversions as possible should be supported
An Angle class could act as a neutral container

Angle(vector, enum) constructs the class from a given vector convention
Angle(transform) constructs the class from a given transform
Angle.to(enum) -> vector or transform converts to given convention

Quaternions should also be considered


Added column sorting. Includes clickable table headers and uses hidd…

…en columns that include watch.title, and watch.last_checked and watch.last_changed epoch times to facilitate the sorting.

Would be nice if there was some nice icon that indicates that it is sortable

Thanks for the feedback on the first thing, I won't be doing that again...  I haven't changed fonts - I see a couple of mentions of monospace in styles.css but there not applied anywhere.  I've done more work since the PR, so I'm going to close this one do another one that includes everything you see here.  Should be done this weekend, and has sort direction indicators included :-).

really nice! ok I look forwards to it, thanks again! yeah sorry about the fonts, maybe my fonts look worse than I remember :D


standings_all request with date paremeter is failing with dates higher than 201903111

Hello!
standings_all request with date paremeter is failing with dates higher than 201903111
Example:
This work:
http://data.nba.net/prod/v1/201903110/standings_all.json
But when I try it with higher dates: HTTP ERROR 404
http://data.nba.net/prod/v1/201903111/standings_all.json
Thanks and regards
have a nice day :)

Hello,
Unfortunately I have no control over what data or URLs are valid; my API is merely a tool to access statistics from public NBA sources.  The NBA can change this at any time.
Sometimes data does not work one day and then works the next.  For this individual instance there is a decent chance the NBA stopped using this data point and no longer updated it after that date.
Hope that helps!


Unregistering Hotkeys

Hey,
I'm writing an OS X app where a user can create sets of hotkeys and then switch the sets so I need to be able to unregister 'non-active' Hotkeys. Is there a way to do this?

My current solution is to just do
hotkey.isPaused = true but Im not sure this is a 'good' solution


Use githubr to version control markdown

The githubr package can point to a specific commit of a file in a repository. The package loads the markdown code into the users working directory and is currently hard coded as "sageseqr-report.Rmd". To track the correct version via a commit using githubr, the user would need to push the changed file to their repo before running the plan. This is difficult to message to the user and may over complicate the workflow.
On the other hand, it might be possible to either push the file as a step in the workflow if the repository argument is provided.
For now - marking this as low priority since the sageseqr package version is tracked in the activity provenance and I think the general use case for the workflow will be to run it with minimal modifications to the markdown document.

Running the workflow with git is not required so I will not add this constraint.

The package version will be recorded in Synapse providing some provenance.


Option to choose channel

Hello, first of all I would like to say that I appreciate your work and effort on this project and I really mean that, as I know that it takes a lot of patience and dedication to maintain a project.
I wonder if it would be possible to select a certain channel to farm twitch points. The reason is that some channels allows to exchange twitch points and use in streamelements.
I'm not making a request or demanding anything, it's just an idea or suggestion.
Best regards!

This is a duplicate of #70. Please also see #105 for more context if you'd want to.


CUPS sensor

Description:
For monitoring printers managed by CUPS this sensor can help.
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#1377
Example entry for configuration.yaml (if applicable):
sensor:
  - platform: cups
    printers:
      - C410
      - C430

Checklist:
If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] New dependencies have been added to the REQUIREMENTS variable (example).
[x] New dependencies are only imported inside functions that use them (example).
[x] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[x] New files were added to .coveragerc.

Ok to merge when comment addressed 🐬

Good looks good. You could use hass.data  for store CupsData and give access from that.

@pvizeli storing things inside Entity instances is preferred over making it available to everyone.
Looks like Travis crashed while running tests, restarted it.

Pycups is not playing nice with CI. Add it to the ignored requirements list.
Ok to merge when tests pass.

Works only if the headers are present and a compiler on a local installation too.


Adds a CLI option to include the gradle depndency group ids

Signed-off-by: John Shahid<EMAIL_ADDRESS>

Merged! In v2.1.0.rc4


Publishing the extension

Publish our extension in chrome app store.
Publish our extension in firefox app store.

Publishing the chrome extension will require a google developer account. Wont that be published using fossasia's account?

The credentials will be provided.

Cool, I'ill do that.


Modify filter streams widget in search settings

This adds the magnifying glass icon and search box in the second
line for filtering streams in the streams settings. This is to
fix the disappearance of the search widget on narrow screens.
issue: #12898
Screenshot:

@timabbott I need some help!
My previous commit just adds the html and css and enough javascript to keep the search functionality working. As I add the javascript for making the search box appear and disappear on clicking the icon, I am not sure as to should I create a module as is created for the user search widget (static/js/user_search.js) or should the code reside in static/js/click_handlers.js?
Also, adding this second div element breaks the scrollbar (it is scrolled to the end in the screenshot but does not show the last stream). Where should I look to fix that?

You know, now that I see what this looks like, I think we could just have the "Filter streams" box always visible without the toggling behavior.  May need a bit of care for how wide to make the box in intermediate-size windows.  For testing, should carefully inspect a few sizes: Very wide, the width right when we don't have enough space for the filter widget in that top line, and the narrow/mobile view. (Screenshots appreciated).
I'm not sure what the scrollbar issue is; you may need to debug.  We do have somewhat custom scrolling code in static/js/subs.js (search for "scroll" there), but for this component I think we're mostly using the simplebar library.  I'd look at whether the adjustments in what is contained in what might have confused some logic/math we might be doing.  If you're having a lot of trouble, post in #frontend and @andersk (our scrollbar expert) can help.

Description
This commit makes the search box always visible. It jumps (no transition effects) to the next line if there is a lack of space in the top line. The search keywords are preserved when this happens.
Screenshots
Narrow widths (< 520 px)

Intermediate widths (<790 px)

Wide widths (< 1133 px)

Very wide widths

Scrollbar Issues
I'm still not able to fix the scroll bar issue I described earlier, even after going through static/js/subs.js, static/js/ui.js and static/js/scroll_bar.js. Prepending the extra div to the scroll elements of the simplebar instance (ui.get_scroll_element($(".streams-list")).prepend($("#add_new_subscription_extend"))) fixes the issue, but causes the div to scroll along with the list of streams.
Need some help @timabbott @andersk

This final commit fixes the simple bar issue by adjusting the height of the .streams-list container element whenever the search box shifts to the next line.
It also adds a border below the search box div for a consistent look.
Fixes #12898

Either way, I think you should move the CSS changes to the border, below the search box, into the first commit as it would make more sense there.

I've edited the git history. I still have kept the changes that fix the scrolling behavior separate in case you want to verify them once more, in continuation of your previous review, @vinitS101
Really appreciate this help!

@jiviteshjain thanks for all your work on this, and sorry for the slow review.  I'm a bit uncomfortable with the amount of complexity involved in e.g. copying fields back-and-forth between the two search boxes.

I started this thread to discuss options: https://chat.zulip.org/#narrow/stream/6-frontend/topic/stream.20settings.20.22filter.22/near/846029
Maybe we should just have the "Filter" box on that next line unconditionally, and perhaps do a bit of styling work to make that viable?

Sure, I have posted some things on the thread. Let's see the best way to do this.

@timabbott Just pushed a commit making the filter box always on a new line. I made the filter box take up the entire width available, because that's what looked the best.
Here are some screenshots:
Wide widths

Medium widths

Narrow widths

I tried mockups with text boxes that have a maximum width, and the results were disappointing:
(Not actual screenshots)

I need some help with this failed test. Can't figure out why it is failing. @timabbott

I like the UX, and the main thing to debug here is the Casper test changes.  I squashed the 3 commits as that made it more readable, and am going to ask if @showell can help with the tests.
The core problem here is the form element modified in subscription_table_body was a super weird/messed-up form; structurally, it's not a form at all, as none of the elements in it submit something to the server.  And the older casper code was a relic from when that HTML was part of a real form, I think.

I fixed the Casper tests and pushed to #14652, which I'll merge once the build passes.  Closing this.

See https://github.com/zulip/zulip/commit/3da483487af79fde9dce2d21124dfa39b94936a5
Thanks for fixing this, @jiviteshjain!


Add query params into the Page

I want to add the query parameters into the page data. How can I do that?

Hi @jochman,
Could you please show an example what you want to achieve?

Hi! thanks for answering.
from fastapi import FastAPI
from pydantic import BaseModel, Field

# import all you need from fastapi-pagination
from fastapi_pagination import Page, add_pagination, paginate

app = FastAPI()  # create FastAPI app

class UserOut(BaseModel):  # define your model
    name: str = Field(..., example="Steve")
    surname: str = Field(..., example="Rogers")

users = [  # create some data
    # ...
]

@app.get('/users')
async def get_users(name: str) -> Page[UserOut]:  # use Page[UserOut] as return type annotation
    return paginate(users, filter(x: x.name == name))  # use paginate function to paginate your data

add_pagination(app)  # important! add pagination to your app

I want to have at the output page something like :
{
  "items": [],
  "query": {
    "name": "my name"
  },
  ...
}

Easiest option will be to allow extra fields:
from fastapi import FastAPI, Query
from pydantic import BaseModel, Field

from fastapi_pagination import Page, add_pagination, paginate
from fastapi_pagination.customization import CustomizedPage, UseModelConfig

app = FastAPI()

class UserOut(BaseModel):
    name: str = Field(..., example="Steve")
    surname: str = Field(..., example="Rogers")

users = [  # create some data
    UserOut(
        name="Tony",
        surname="Stark",
    ),
]

Page = CustomizedPage[
    Page,
    UseModelConfig(extra="allow"),
]

@app.get("/users")
async def get_users(name: str = Query(None)) -> Page[UserOut]:
    return paginate(
        users,
        additional_data={"query": {"name": name}},
    )

add_pagination(app)

How from fastapi_pagination.links import Page reacts with query params for link building?

It works as expected:
from fastapi import FastAPI, Query
from pydantic import BaseModel, Field

from fastapi_pagination import add_pagination, paginate
from fastapi_pagination.links import Page
from fastapi_pagination.customization import CustomizedPage, UseModelConfig

app = FastAPI()

class UserOut(BaseModel):
    name: str = Field(..., example="Steve")
    surname: str = Field(..., example="Rogers")

users = [  # create some data
    UserOut(
        name="Tony",
        surname="Stark",
    ),
]

Page = CustomizedPage[
    Page,
    UseModelConfig(extra="allow"),
]

@app.get("/users")
async def get_users(name: str = Query(None)) -> Page[UserOut]:
    return paginate(
        users,
        additional_data={"query": {"name": name}},
    )

add_pagination(app)

GET http://localhost:8000/users?name=Tony

{
  "items": [
    {
      "name": "Tony",
      "surname": "Stark"
    }
  ],
  "total": 1,
  "page": 1,
  "size": 50,
  "pages": 1,
  "links": {
    "first": "/users?name=name%3DTony&size=50&page=1",
    "last": "/users?name=name%3DTony&size=50&page=1",
    "self": "/users?name=name%3DTony&page=1&size=50",
    "next": null,
    "prev": null
  },
  "query": {
    "name": "name=Tony"
  }
}

@jochman Any updates? Is this issue still relevant?

I just got back to that. Will keep you updated :)


UDF: detailed documentation

Part of #286:

[ ] move examples from usage to own page
[ ] explain buffer kinds
[ ] explain how the make_buffers function can create multiple buffers of different type and kind
[ ] explain how the init function can create shared data, and that it is called multiple times (once per partition)
[ ] create a diagram that explains the "mode of operation" - leave out architecture details and work on abstraction level "tasks executed by workers". include data flow and partitioning
[ ] explain role and parameters of each function in detail, and explain what is gained by this interface compared to a simpler map-like interface without all the buffer handling etc.
[ ] include a paragraph (or more likely: section) about efficiency, buffer re-use etc.

I will try to work on this

@sk1p @jaewshin Perhaps we could review what is still missing from the current documentation to close this issue?

The current state of UDF documentation should be fine for 0.2, probably? Closing now. We can create new issues for specific docs items when we become aware of them.


switch to docker's new nfs support

Docker now supports mounting sub-directories of an NFS mount (the problem was that because docker runs as root, any NFS mount with squash root enabled could not be navigated). just should switch to using it instead of the complicated symlink procedure of docker_entrypoint:docker_link_mounts, which uses the JUST_DOCKER_ENTRYPOINT_LINKS env var. This would also resolved #7 for Linux.

$ docker run -it --rm --mount 'type=volume,source=nfsvolume,target=/dest/in/container,volume-driver=local,volume-opt=type=nfs,volume-opt=device=:/exported/[sub]directory/on/nfs/server,"volume-opt=o=addr=nfs_server_hostname,ro"' debian:9

The volume-opt=device and the volume-opt=o=addr can be found with df (NOTE the leading ':' in volume-opt=device).
This creates a volume called nfsvolume which must somehow be namespaced like we do for other volumes.

docker-compose also supports this. I set up the docker-compose.yml file like in https://stackoverflow.com/a/46481637. I found I did not have to set the version to 3.2. 2.3 also worked. From there, I could run docker-compose run {service} (I did not do the docker stack stuff).
Use can use df to get the o: addr= and the device:
This works when setting the nfs server o: addr to a hostname as well as a the device: to a subdirectory in the nfs mount.
It is still necessary to scope the volume that is created by the username&project and delete it if it changes.

A reminder that the current NFS workaround in just only works for dynamically added volumes.

Although even if the nfs docker support was added, any volumes added in the docker-compose that were nfs would have to explicitly be setup as such.
The only way to do that dynamically would be to re-write the docker-compose.yml file. This is do-able but probably not in bash. We would probably need to compile a program in go (so that it doesn't have any dependencies) that expands the docker-compose file into some canonical form (yarp is not sufficient). (We could do this in a docker, but it takes time to start a container).
We'd then have to write out a new docker-compose.yml file (an un-yarp of sorts)

When does this happen?
The case of NFS mounting failing is limited to 3 conditions that have to be met in order to fail:

Using NFSv4 (v3 does not have this problem)
NFS server uses squash root. (This should be the norm and should never be disabled as a workaround.)
The mounting User/Group ID has execute permission on the subtree hierarchy

Excerpt from /etc/exports man page:
subtree checking is also used to make sure that files inside directories to which only root has access can only be accessed if the filesystem is exported with no_root_squash (see below), even if the file itself allows more general access.

What this means is that if the an NFS mount point is at /mnt/for/example and you are trying to mount the directory /mnt/for/example/this/is/a/test/, the Effective user must have execute permissions to:

/mnt/for/example/this/is/a
/mnt/for/example/this/is
/mnt/for/example/this
/mnt/for/example

Note: /mnt/for/example/this/is/a/test is not in the list.
Who is this effective user?
By default, the docker daemon runs as root, whose user:group id is 0:0. However, which squash root turned on (as is a requirement for this issue), this becomes the anonymous user nobody whose id is 65534:65534. What this means is that the user nobody

owner
permisison
works

me:me
100
❌

me:me
010
❌

me:me
001
✅

root:root
100
❌

root:root
010
❌

root:root
001
✅

nobody:nobody
100
✅

nobody:nobody
010
✅

nobody:nobody
001
✅

(In theory, giving nobody permissions to other groups might work, but that is not recommended)
Daemon-less docker not tested (since no one uses it), but probably similar to podman
Podman
Podman is a little simpler even though the exact same rules apply. Instead of being root that gets squash, you are typically your own user/group id, and so it's a little more natural. You can only mount folder you have execute access to. Now if squash_all was turned on (this is not typical) you would be in the same situation.

First Proof of concept fix on Docker: https://github.com/andyneff/moby/commit/806fd5eadf6182c6270c470e7de9fc7130261b6a


prebuilt arm builds for softwaremill/elasticmq-native is not working

Hello
I try to run the arm builds in this repo, but they are not working.
After some digging I can see that even if the image it self is arm64, the executable is not:
/opt/docker # file bin/elasticmq-native-server
bin/elasticmq-native-server: ELF 64-bit LSB executable, x86-64,
in the same image, busybox is aarch64(arm)
file /bin/busybox
/bin/busybox: ELF 64-bit LSB pie executable, ARM aarch64

duplicate


about Attentive Embedding Propagation

Hi, in your work,Attentive Embedding Propagation is only for recommendation training, why not used in the training process of KGE ? Have you conduct any experiment for comparison?

Thanks for your interest. Blocking the attentive embedding propagation part from the KGE part is to reduce the memory-out error :( We are working on how to simplify KGAT. Thanks.

Thanks for your reply, with attentive embedding propagation only used in  recommendation training, in this way items with more user interactions will have more effective information propagation from other entities, it's not beneficial to cold start items who have very few user interactions, so with Attentive Embedding Propagation used in KGE, maybe we can get better performance especially for cold start items.


Add deploy command

Add command snapp deploy <network>
Exclude config file from git
If config file does not exist yet, create it and create an address & private keypair and say: "Testnet address & private key created & added to config.js". (User can overwrite this with their own address & private key, if updating an existing Snapp.)
If config exists, check if network name exists. If not, create address & private key as above. If yes, we'll use it.
"Continue with deploy to  y/n?"
Create TX from proof.
Send to proper network.

Alternatively, make it interactive and allow user to select tesnet or devnet
Add step to run tests first?

Idea: Do key management in Auro wallet & use Mina Web3 to open wallet? Open a web tab & then use MinaWeb3.JS to communicate with the browser extension wallet?

The UX for this is done, implemented, reviewed & merged. But we are waiting for tx construction and signing to be finished so we can plug in the pieces to make it work.

@MartinMinkov is going to finish integrating Mina Signer & the tx construction result: https://github.com/o1-labs/zkapp-cli/blob/main/src/lib/deploy.js#L126

Finished! We also added the support for zk deploy when no network alias is provided, a dropdown list of available options is shown.


Feature request: Run browser process as different user

I'd like to be able to run the browser as a different user. That way I can apply a set of outbound firewall rules to it to prevent it from accessing anything in the internal network while still allowing the node process to do that.
The use-case for this lies in rendertron-like services that expose some of the browser functionality to the outside world. It could be a security threat if those were able to access internal IPs.

@Janpot you can run the browser yourself and connect to it later with the puppeteer.connect method. At the very least you'd need to pass the --remote-debugging-port flag to the browser and parse its stdout to extract the browser target. Check out the Launcher implementation for an example.
The only thing that is missing is the executable path of the bundled browser.

@aslushnikov That's roughly my current setup. we currently use chrome-remote-interface and chrome-launcher to do what you describe. I'm currently looking into replacing a few of our abstractions with puppeteer.

By the way, I don't mind creating a PR that passes uid to the childprocess if that's something you would support.

@Janpot I'd rather expose executable path since it gives more freedom and makes API more "round".

@aslushnikov I was thinking about this a bit more. I might be overthinking it a bit but in order for this to work for me I guess I'd need to do something like:
CHROME_PATH=$(node -e "console.log(require('puppeteer').executablePath())")
runuser headlessuser -c "$CHROME_PATH $@"

in my script. then pass this to puppeteer.launch().
Another solution which could work without changing public API and which would simplify the above script would be to provide the CHROME_PATH directly to the environment when you spawn the child_process. the options object of the spawn method has a env property which could be used for this.
https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options

@Janpot these scripts look scary.
Would it help you if we add a uid option to the puppeteer.launch? The option would be passed over to the internal spawn method.
const browser = await puppeteer.launch({uid: headlessuserid});

@Janpon the puppeteer.executablePath() lets you spawn your own chromium isntance with child_process.spawn method, if there's a need to. You'll be able to pass in the uid and gid if needed.
Let me know if this would work for you.

Would it help you if we add a uid option to the puppeteer.launch?

That's basically my feature request in this ticket. What would also work for me is passing through env to the internal spawn. then I could do:
const browser = await puppeteer.launch({
  executablePath: path.resolve(__dirname, 'start-chrome.sh'),
  env: {
     CHROME_PATH: puppeteer.executablePath()
  }
});

and in the start-chrome.sh:
runuser headlessuser -c "$CHROME_PATH $@"

The problem with taking over launching the child process is that I also have to take over its lifecycle management. Not that that's impossible, it just defeats some of the purpose of using a utility library like puppeteer.
Anyway, I understand if you want to close this issue, I think I can craft something with the new API.

@Janpot By default spawned process inherits environment  from process.env – so you should be able to do the following:
process.env.CHROME_PATH = puppeteer.executablePath();
const browser = await puppeteer.launch({
  executablePath: path.resolve(__dirname, 'start-chrome.sh'),
});

Ah yes, good idea, didn't think about that yet. Thanks!

Are you still looking into the request for adding the uid as an option to the launch command?

Are you still looking into the request for adding the uid as an option to the launch command?

@dbauszus-glx we don't. The scenario described here was solved without introducing new API's.
If you have a need for the functionality, I'll appreciate if you create a new issue and describe your usecase there.


closed last one by mistake sorry: fps drop

when we use this on eithe rour server or even on single player there is a MASSIVE drop in fps when mounting a ship, moving a ship or even standing near a ship these ships are no bigger than 500-1000 blocks and they worked fine on 1.7.10 we have moving world etc we just cant figure out whats cauing this massive fps drop i even loaded minecraft up with just the mod and moving world to see if it would be better and yet again my fps went from 60 to 10-15 when in a ship....

Please make sure to follow guidelines and be more clear.
1.8 uses a different rendering system for ships, it's more accurate at the cost of being more resource intensive. This is more of a hardware issue on your end as I'm not noticing any major frame drops between 1.7 and 1.8.
If you could please list your specs that would be a big help, as well as give your fml-latest log.
Closing until more information is given.

processor: Intel (R) Celeron(R)
cpu N2830 2.16GHz
RAM: 4.00gb
and running windows 10
on 1.7 with the same spec i would loose no frames but on 1.8 (with optifine installed) my frames crashed big time (tried without optifine same issue) my friend has same spec and he has the same issue is there a way to use the 1.7 rending engine like a seperate download because not having ships has takin a massive part of the RPG element we had out of the game


Minor: update readme with new link to reference doc

Codecov Report

Merging #385 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #385   +/-   ##
=======================================
  Coverage   86.05%   86.05%
=======================================
  Files          56       56
  Lines        4359     4359
  Branches      464      464
=======================================
  Hits         3751     3751
  Misses        461      461
  Partials      147      147

Impacted Files
Coverage Δ

azure-storage-file/azure/storage/file/models.py
93.87% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Bring Meson build definition more in line with CMake

Update the Meson build definition to use Meson best practices, and bring into alignment with the CMake build files.
Particularly, This changes the meson build to only expose a single target, like the CMake does, controlled by an option with the same name. It additionally exposes the GlobalUDLs and ImplicitConversions options, which have behavioral implementations a consumer may wish to control. I have not exposed other options as they don't seem to be important for behavior.
The options names do not have the JSON_ prefix, and Meson already has (sub)project option namespaces, so adding JSON_ would worse (-Dnlohmann_json:ImplicitConversions vs -Dnlohmann_json:JSON_ImplicitConversions).
Pull request checklist
Read the Contribution Guidelines for detailed information.

[x]  Changes are described in the pull request, or an existing issue is referenced.
[x]  The test suite compiles and runs without error.
[ ]  Code coverage is 100%. Test cases can be added by editing the test suite.
[x]  The source code is amalgamated; that is, after making changes to the sources in the include/nlohmann directory, run make amalgamate to create the single-header files single_include/nlohmann/json.hpp and single_include/nlohmann/json_fwd.hpp. The whole process is described here.

Is meson_options.txt really needed? If so, can it be moved into a subdirectory?

Meson options must be specified in a meson_options.txt (or for fairly new versions of Meson in a meson.options file), and that file has to be in the same directory as the root meson.build file. Meson options are read-only from the meson.build files, and are read in before the parsing of the meson.build file starts.


APT whitelist request for libghc-zlib-dev

@BanzaiMan Hi, they aren't merging automatically because of conflict... should I open new issues?


migration

Contains migrations for relavant resources and new gui features
-gui debugging / testing in progress more to follow

The merge completed successfully


GUACAMOLE-1391: Fixed a typo

There was a typo in referencing the Enum value.

I'm okay with this change, but could you update the commit message to be a little more appropriate ;-).
https://www.codelord.net/2015/03/16/bad-commit-messages-hall-of-shame/

That was an interesting process. I've never had to do that in GitHub...


IBAnimatable Themes

IBAnimatable Themes
It would be nice to be able to set default values for IBDesignable classes without having to subclass.
How?
I'm thinking we can add a property:
@IBInspectable
var theme: String {}

This would be the name of a .plist file to use for the configuration.
Then we could parse this file and apply all the values.
Some limitations:

Storing a UIImage -- actually, we could just use the IMG name
Colors, would probably need to be represented as a HEX value

I thought about this but haven't found a way to set the default values within the protocol without doing it in subclasses. It will be great if we can do it. then we don't need to set a lot of = CGFloat.nans

I try something like that using a CSS parser (like 100mango/SwiftCssParser, ...)
but plist or json it's easier

Thank you for sharing SwiftCssParser! I wanted to look at something like this!

I play also with https://github.com/146BC/StyleKit, https://github.com/akane/Gaikan
but I want the result in storyboard editor, not at execution time
I try also to edit storyboard XML (by modifying https://github.com/krzyzanowskim/Natalie) to edit some attributes to make a "theme change"

@phimage Yeah, I've looked at StyleKit.
I think having a "theme change" at execution time still provides value. However, like you, I want the result in the storyboard editor. It's not a simple task but I've been playing with it now and then

@phimage If we use a didSet property observer in the theme property, won't this parse the stylesheet and apply the values to the storyboard editor?

If you parse your own style sheet(in code or file using the good Bundle to read file) and apply directly to some view attributes, yes it will work on the current view
And if there is issue, you can try with prepareForInterfaceBuilder


Suggestion: batch uploads

Hi, it would be amazing to have the ability to batch-upload a set of letters in Word or PDF format.

Parsing Word and PDF files is a very involved task because they aren't text files. Dealing with a batch upload with multiple files is even more involved. It may be best for someone to make a new project that could deal with such things.


Remove Customer ID from subscription model

Summary
Please remove the customer_id column from the subscriptionTable database model.
This would allow a consumer of the Orchestrator Core to build custom tables that meet the needs of their organization.
Example for home institution (Not required as part of this):
Reintroduce it in a new surf specific table where a customer is linked to one subscription

subscription_id
customer_id

x
y

a
y

Create a surf specific "SubscriptionModel" that re-adds the customer_id property and keeps the API backwards compatible to the current SURF orchestrator code.
Acceptance Criteria:

Customer_id is no longer part of the schema
A consumer of orch-core could have a new table with an optional schema migration that is not part of the core
Documentation is updated providing an example of how to do this
Tests are updated to reflect the new changes

Looking for clarification on this story regarding AC #2: "A consumer of orch-core could have a new table with an optional schema migration that is not part of the core"
Is this to say that once the consumer_id column is removed from the schema, that any current consumer of orch-core that uses that field will have to create a migration to ensure their code does not break?

Correct. This is a breaking change and would require users to carefully migratie existing information to a new database table.

Circling back to this after a busy sprint...
I wonder about the decision to eventually remove the customer_id column entirely from the Subscription model.
There is almost always an entity (organization, customer, "owner") associated with a Subscription in the Service/Product/Resource BSS model. I believe that removing this column entirely might pointlessly make the orchestrator-core library much harder to extend/use for downstream consumers.
If we remove the customer_id, a user of the core library will probably have the use case to associate a customer to a Subscription—whether it be one-many, many-many, many-one—and will have to extend/override the included SubscriptionTable ORM model in orchestrator/db/models.py to build the appropriate queries joined to their own orchestrator-db Customer (or just use the column value to query an external resource).
Instead of removing this column, maybe it can be changed to a VARCHAR type to allow flexibility for the end user without removing a core functionality of the orchestrator. By converting it to a string type, a user could associate whatever foreign key best suits their use-case, be it an LDAP username, Integer key, Organization name, or UUID. Then, if a user decides to implement a SubscriptionCustomer table, they can make the necessary associations however they choose, without having to sub-class or create a new SubscriptionTable ORM model.
I could also be completely missing the intent of this issue, or have a misunderstanding of how the new models would be implemented... welcome feedback on these thoughts!

I'm also in favor of removing the column from the core Subscription model.
Another option instead of moving customer_id to a new (implementation specific) SQL table, is to make it part of the generic subscription metadata being implemented in #266.

Another option instead of moving customer_id to a new (implementation specific) SQL table, is to make it part of the generic subscription metadata being implemented in #266.

This is an acceptable compromise -- still a breaking change that can require some significant refactoring for downstream users, but if the column has to go...

Another option instead of moving customer_id to a new (implementation specific) SQL table, is to make it part of the generic subscription metadata being implemented in #266.

This is an acceptable compromise -- still a breaking change that can require some significant refactoring for downstream users, but if the column has to go...

Subscription ownership is a key feature in the orchestrator, and is not something optional. Searching or filtering on the customer name (and for SURF also the customer abbreviation) is an important feature in the orchestrator client. This makes integrating a CRM that contains this information highly recommended. For me, meta data is optional, customer description (and probably abbreviation) is not. This does not mean that the orchestrator client does not work when you do not integrate a CRM but then you only see and can search or filter on the internal customer ID as stored in the orchestrator. The only thing we wanted to do here is to lift the restriction for a customer ID to be a UUID by introducing a linking table.

Round up of the discusion:

[ ] We need to loosen the restriction on the customer_id column to be a varchar.
[ ] Furthermore we need to make an example implementation where the following can be set as default:

[ ] Fullname
[ ] Shortcode
[ ] Identifier

[ ] Add configuration option DEFAULT_CUSTOMER_ONLY that will enable GraphQL endpoint /customers that serves the one and only default customer as specified above

As discussed in the meeting today, it seems to make more sense to use the existing /api/graphql endpoint and add a customers query to the strawberry Query which (conditionally) returns the default customer


Make failed download progress bar look like a proper failure

It should suggest a failure just like the failed installation. Hence it should look like a failure, including the new fancy icon and colours.

test this


Optimize []= operator for ObservableMap when it has no observers

This issue was originally filed by<EMAIL_ADDRESS>
ObservableMap's []= operator should not query the oldValue and length if there are no observers.  For small maps, this is not an issue but if the request is being made to populate a huge map, this adds up when there are no observers.
@reflectable void operator []=(K key, V value) {
    int len = _map.length;
    V oldValue = _map[key];
    _map[key] = value;
    if (hasObservers) {
      if (len != _map.length) {
        notifyPropertyChange(#length, len, _map.length);
        notifyChange(new MapChangeRecord.insert(key, value));
      } else if (oldValue != value) {
        notifyChange(new MapChangeRecord(key, oldValue, value));
      }
    }
  }

This issue has been moved to dart-lang/observe#60.


Enable Namespaces

Now that namespaces landed, we should enable it :)

The question is if the name of the namespace should be BsReactNative or ReactNative (as it is now). I'd like it to be ReactNative and it is technically possible but I'm not sure what's better.

I had the same problem with my bindings to material-ui, i had named them material-ui  in my bsconfig.json so it would be accessible as open MaterialUi;, but then it looks for the bindings in require("material-ui/src/buttons.js") and it failed.
So i had to change it to bs-material-ui so it can properly look in bs-material-ui/src/button.js

https://github.com/reasonml-community/bs-react-native/releases

@nhducit right! Thank you!


Vectorized random_module()

Distributions in pyro can generally take a tensor of params and return a corresponding tensor of samples, allowing models to be vectorized nicely over batches.
For many applications of random_module() (e.g. hierarchical models), however, there's currently no corresponding way of vectorizing: you obviously can't sample a single tensor of k nns (e.g. one for each domain) and index into them with a batch tensor.
@jpchen and I were chatting about a way of handling this by basically extending the sampling method of random_module() with a sample_size option that internally creates one giant nn with an additional ith dimension indexing which of the sampled nns params you want. This would allow you to simultaneously run a single tensor of data through the corresponding nns. From our conversation:

i think a solution might be ... to parallelize on the layer level; ie have one giant nn that operates on matrices individually. this is possible because we have multivariate normal so we can sample all domain parameters altogether and also because the input and outputs are all the same size

cc: @karalets, hes doing this as well and from our discussions, doing it with batch matrix multiply

Sounds like a good idea, but I suspect it might run into issues with broadcasting in nn.Modules.  You could try expanding parameters manually for a few different networks to see if they behave correctly.

I still think this is still an important feature to make random_module() usable at scale, and from recent conversations with @jpchen, it sounds like a minimal version allowing batching is in progress. I can understand wanting to clean up the issues, and obviously enhancements like this aren't top priority, but could this be reopened until there's consensus about whether it'll be supported or not? (or if there's a temporary hack outside pyro to achieve the same efficiency?)

we can make this issue more concrete to track progress. based on various discussions, there seems to be two v0 ideas worth trying that support the same use case:

ability for random_module to be able to lift a  batch nn and run a subset forward. the lifted nn would need to be a "batch nn" (all its linear operations need to use torch.bmm) and on the forward call, would take an argument specifying which nns to run forward
take batch priors (priors for all the domains/nns) and takes an index tensor upon calling which creates a nn with parameters sampled from the indexed priors. so on each call, a new nn is constructed and sampled

(on phone right now, will add code examples later)
(1) this has a restriction that the user knows the nn structure ie the shape of the inputs a priori.  i have a basic implementation of (2) on a branch that i can open for review after some cleanup


scale issue

how i can change scaling of selected card in page row fragment

This sample has been migrated to a new location and updates are happening there (check README for more information).
As recommended by GitHub, we are closing all issues and pull requests now that this older repo will be archived.
If you still see this issue in the updated repo, please reopen the issue/PR there. Thank you!