Add option to modify css styling of single visual element in order to not overload main.css

Description
Hi all,
when creating a multi-page application with many blocks / controls, for custom css styling of single elements one would have to rely on the predefined stylesheet classes like text-center or, alternatively, use either the ID approach or add custom css classes to modify this single element. This can result in unnecessarily overloading the main.css file with only one-time used css definitions where ideally only multiple times used definitions should be placed.
An example:
Currently, a card has a default padding of 32px. In cases where I would like to reduce this to 16px for a single element but retain the padding for all other cards, one would have to add another css class to the main.css or modify it by the assigned ID in the same place.
tgb.part(class_name = "card padding_16px", ...) with .padding_16px {padding_top = 16px, ...} in the main.css.
Ideally, a solution could be to add another argument like css_styling to all the visual object (blocks / controls) which override the css styling just for this particular visual object --> with tgb.part(class_name = "card", css_styling = {"padding_top": "16px", "padding_bottom: "16px"}, ...): ...
Acceptance Criteria

[ ] Ensure new code is unit tested, and check code coverage is at least 90%
[ ] Propagate any change on the demos and run all of them to ensure there is no breaking change
[ ] Ensure any change is well documented

Thank you for creating the issue @MaBoMo !

Thank you @MaBoMo for this issue, and your thoughts about it.
Now we have a few problems with your proposal and I would like to hear your opinion of these:

Although providing a CSS rule using the Page Builder API seems pretty straightforward, this would be far less readable in the Markdown syntax. You would have to use a variable to store the style, breaking the beauty of linking the element and its style as clearly.
Most of the elements are rendered using a hierarchy of HTML nodes. The inline style can apply to the first element only, making it usually impossible to access the underlying HTML structure and apply the style.

The only way to allow for proper styling is to use selectors that allow for child selection: CSS rules, not inlined.
However, what you seem to dislike is and I quote, the current situation "can result in unnecessarily overloading the main.css file with only one-time used css definitions where ideally only multiple times used definitions should be placed".
So we came up with the beginning of an idea that might solve all this: allow for an easier, pure-Python approach: Taipy could provide a way to define CSS stylesheets entirely in Python (and potentially dynamic) that would apply at the application or a given page level (reducing the number of global rules).
For example, you would define a style dictionary:
# All paragraphs use a bold font except the ones with the 'regular' CSS class
css_rules = {
    "p:not(.regular)": "font-weight: bold;"
    ...
}

and indicate that this should be applied for a given page:
page = Markdown(<markdown_content>, css_rules=css_rules)
Wouldn't this address the initial problem, and allow for a clearer targeted style?

Hi @FabienLelaquais,
took me a while to come back to you, sorry about that :) Yes, I would support your approach, sounds very reasonable to define css rules on page/markdown level and thereby untangle the global css file.
In case a page element is defined in both the page/markdown-specific css rules and the global css file, which of the two definitions would be applied? Or would you just merge the page/markdown-specific css rules with the global css file in the background before applying it?

@FabienLelaquais Your solution seems complex to me.
@MaBoMo's solution is really straightforward. I have seen people trying to do this syntax with Taipy because they thought they could, and it seemed natural to them. I have more people asking for styling.


Trams are missing

See http://wiki.openstreetmap.org/wiki/Tag:railway%3Dtram
Only railway=rail, subway and light_rail are used.

duplicate of #364


"boxplot" is not a registered controller

When I compile my  app, it is getting a erro but developement is working ok.
To Reproduce

error below:
react-dom.production.min.js:189 Error: "boxplot" is not a registered controller.
at t.value (core.registry.js:178:13)
at t.value (core.registry.js:66:17)
at t.value (core.controller.js:455:42)
at t.value (core.controller.js:508:33)
at new t (core.controller.js:206:12)
at P (chart.tsx:41:24)
at chart.tsx:97:5
at ol (react-dom.production.min.js:244:332)
at Sc (react-dom.production.min.js:286:111)
at react-dom.production.min.js:283:409
du @ react-dom.production.min.js:189
n.callback @ react-dom.production.min.js:189
Na @ react-dom.production.min.js:144
wl @ react-dom.production.min.js:262
El @ react-dom.production.min.js:260
bl @ react-dom.production.min.js:259
(anonymous) @ react-dom.production.min.js:283
_c @ react-dom.production.min.js:281
cc @ react-dom.production.min.js:273
Vo @ react-dom.production.min.js:127
(anonymous) @ react-dom.production.min.js:267
react-dom.production.min.js:189 Error: "category" is not a registered scale.
at t.value (core.registry.js:178:13)
at t.value (core.registry.js:90:17)
at core.controller.js:370:37
at O (helpers.core.ts:149:12)
at t.value (core.controller.js:355:5)
at t.value (core.controller.js:561:10)
at t.value (core.controller.js:495:10)
at new t (core.controller.js:206:12)
at P (chart.tsx:41:24)
at chart.tsx:97:5
d
Expected behavior

Screenshots

Context

Version:
"@sgratzl/chartjs-chart-boxplot": "^4.1.2",
"chart.js": "^4.3.0",
"react-chartjs-2": "^5.2.0",
Browser:
Chrome

Additional context

take a look at https://github.com/sgratzl/chartjs-chart-boxplot#esm-and-tree-shaking to properly register the controller and its elements


Mambaforge (Discouraged as of September 2023)

Purpose of PR?:
Fixes #2114
Does this PR introduce a breaking change?
updates documentation -> replaces mambaforge by miniforge

https://github.com/Open-MSS/mss-install/issues/18 is also ready


[Bug?] Calendar event still in menu bar although it is deactivated

In my settings I deactivated the option to show the upcoming event in the menu bar.

But it's still in the menu bar after a reboot and the automatic launch on startup of sol.
What is strange is that after I close and reopen sol manually, the upcoming event will not be shown.
Could this be a bug or do I miss something?

Yeah, I have seen this a couple of times but have not managed to reproduce it reliably. It's definitely a bug. Let me see if I can find anything.

I think I found the problem. Please test new version 2.1.112 and let me know if it is fixed.

Seems to work. I would reopen the issue if this happens again, thank you


How to keep Meteor state in redux store?

Is it possible to store the meteor state (user, loggingIn, status) in a redux store using react-native-meteor?
I see two solutions:

Wrap a meteor container with a redux store container (Redux parent, meteor child)
Wrap a redux container with a meteor container. (Meteor parent, redux child)

Is there a correct way to do this?
This has some good insight into the problem but I was unable to get the store event correctly connected.
https://forums.meteor.com/t/solved-meteor-1-3s-createcontainer-and-redux-dispatch-event-handlers-etc/20092/9
Here's another approach that updates the store with a dispatch.
https://gist.github.com/spencercarli/8a0eea08a218cc16a35938fd3a95fc45#file-meteorconnect-js
Here's my attempt that wraps Meteor outside the store, but I don't know how to access the Meteor prop data.
// Bootstrap the app
const App = (props) => {
	const { status, user, loggingIn } = props;
	return (
		<Provider store={store}>
			<RootContainer {...props}/>
		</Provider>
	);
};

// Redux (inner) container
const RootContainer = connect(state => ({
    counterState: state.counter,
    appState: state.app,
	userStorageState: state.userStorage
  }),
  (dispatch) => ({
    appActions: bindActionCreators(appActions, dispatch),
    userStorageActions: bindActionCreators(userStorageActions, dispatch),
    counterActions: bindActionCreators(counterActions, dispatch)
  })
)(MyRootComponent);

// Outer container, passed to index.ios.js/index.android.js
export default createContainer(() => {
	return {
		status: Meteor.status(),
		user: Meteor.user(),
		loggingIn: Meteor.loggingIn(),
	};
}, App);

Any help or pointers would be great!

I usually wrap the meteor container in the redux connect so that I can pass search parameters from the view via the redux store into meteor to query the domain data. My current solution is so inelegant I am embarrassed to share. I would love to find an elegant solution.

The elegant way I use is https://github.com/kadirahq/react-komposer

@Mokto can you show an example?

See here : https://github.com/inProgress-team/react-native-mantra-boilerplate

@artem-russkikh  Note: the above approach is based on the Mantra application framework.  You'll need to become somewhat familiar with Mantra to appreciate the value of react-kompser.


Add bin/htmlize.py

This pull request adds bin/htmlize.py. The script is a rudimentary tool for converting JSON files in a similar format as web/db/handlerpresets.json to a HTML page with embedded links for all the presets.
@ikisusi asked for this (or at least something like it) to bootstrap some new experiment.
The tool accepts 0-n JSON files and outputs the generated HTML to STDOUT, the usage pattern being:
$ python bin/htmlize.py [JSONFILE ...]

For example to htmlizeify the web/db/handlerpresets.json you would run:
$ python bin/htmlize.py web/db/handlerpresets.json

@jviide Thank you \o/


Remove button clears placeholder

Hi!
First of all, thanks for all your work on Choices. It's a very good <select> add-on 👍
I'm running into a small problem though. First of all, some code:
<select class="myElement">
    <option value="" placeholder>Brand
    <option value="Ford">Ford
    <option value="Mercedes">Mercedes
    <option value="Opel">Opel
</select>

new Choices(document.querySelector('.myElement'), {
    removeItemButton: true,
});

This produces a nice searchable Choices dropdown, with the ability to clear a selected value:

However, when the remove button is pressed, the placeholder is also gone, showing an empty dropdown:

Is this intended behaviour? If so, is there a way to show the placeholder again after clearing?
Thanks!

+1

I am also having this problem. I was able to solve it in my application by adding the following code.
var placeholder = 'Select one';
var choices = new Choices(input, options);
if (choices.isSelectOneElement) {
  this.addEventListener(input, 'removeItem', () => {
    choices._addItem(placeholder, placeholder, 1, -1, null, true, null);
  });
}


Error Running iOS 11 Simulator

Godot version:
3.0.2-stable
OS/device including version:
iOS 11 running on iPhone X simulator.
Issue description:
When running Godot on the iPhone X simulator the app crash and I got the following error:
Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
the debug is pointing to the line 524 of map.h:
    const Element *find(const K &p_key) const {

        if (!_data._root) // Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
            return NULL;

        const Element *res = _find(p_key);
        return res;
    }

Steps to reproduce:

Compile Godot for iOS 11 simulator using the following commands:
scons p=iphone arch=x86_64 target=debug IPHONESDK="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk/" -j3
Run any project using this template on iOS 11 simulator

Additional notes:
If I compile without using the IPHONESDK parameter it works fine, but I have issues with orientation as described here.

I reproduce the issue on the same condition, there is my stack trace:


Having PowerRename and New + at the same time causes a minor issue

Microsoft PowerToys version
0.86.0
Installation method
PowerToys auto-update
Running as admin
No
Area(s) with issue?
PowerRename, New+
Steps to reproduce
Having PowerRename and New + active and clicking on the secondary button in the mouse:

✔ Expected Behavior
I expected the menu not to clip to  as you can see when I have only PowerRename active and clicking on the secondary button in the mouse:

Or when I have only New + active and clicking on the secondary button in the mouse:

❌ Actual Behavior
Having PowerRename and New + at the same time causes the mouse soncodary button menu to clip

Other Software
No response

Updated windows 11 problem solved.


can not synthesize audio like human voice when execute "python synthesize.py --model='WaveNet'"

Hi,  I trained the Tacotron-2 model with the latest code(e2f9780b186). The command was "python train.py --model='Both' ". During the training process, I found that the model synthesized some good quality audio "logs- Both/wavs/step-*-pred.wav”, but when I execute the command “python synthesize.py”, I get the following error:
NotFoundError (see above for traceback): Key model_1/model/ResidualConv1dGLU_0/residual_block_cin_conv/bias_residual_block_cin_conv/ExponentialMovingAver found not found in checkpoint
Although the author said that this problem has been solved  issue52  , I still have this problem.
Then i performed the following operations in the workspace:
(1) mkdir logs-Wavenet
(2) cp -r logs-Both/wave_pretrained/ logs-WaveNet/
(3) python synthesize.py --model='WaveNet'
and the WaveNet model loaded successful, but the synthesized audio is not like human voice.
Has anyone encountered this problem? If someone solves this problem I would be very grateful !
there are two examples, which 'step-70000-pred.wav' is the audio synthesized in training process,
and 'speech-audio-00001.wav' is the audio synthesized after i execute "python synthesize.py --model='WaveNet' "
wav.zip

This may be helpful
:NotFoundError (see above for traceback): Key model_1/model/ResidualConv1dGLU_0/residual_block_cin_conv/bias_residual_block_cin_conv/ExponentialMovingAver found not found in checkpoint
--- a/synthesize.py
+++ b/synthesize.py
@@ -31,6 +31,8 @@ def synthesize(args, hparams, taco_checkpoint, wave_checkpoint, sentences):
        log('Synthesizing mel-spectrograms from text..')
        wavenet_in_dir = tacotron_synthesize(args, hparams, taco_checkpoint, sentences)
        log('Synthesizing audio from mel-spectrograms.. (This may take a while)')
+       import tensorflow as tf
+       tf.reset_default_graph()
        wavenet_synthesize(args, hparams, wave_checkpoint)
        log('Tacotron-2 TTS synthesis complete!')

@cuicp I met same error, do you have solve it?

@cuicp I also met same error, do you have solve it?
I used command "python synthesize.py --model='WaveNet'", but I only got full-noisy audio. The used model is 360k-step wavenet model on LJ-speech database.  I found the pred-wave in eval-dirs/wavs also is noise.  I guess the wavenet don't coverage at 360k-step.


Remove armv7 from default iOS target architectures

Fixes #1733. Nevermind.
Avoids the error no such file or directory: 'arm64' due to multiple architectures being passed in.

I mean, we could remove it from the defaults for other reasons, but that's unrelated to the rebuild error.

The original error was caused by a bug in hxcpp, but maybe it makes sense to remove armv7 from the defaults anyway:
https://community.openfl.org/t/ios-armv7-architecture-is-deprecated/13698

That thread seems to be talking about the build step, not rebuild, and I think they already removed it by default for that step. So rebuilding for armv7 isn't breaking anything, it just performs a bunch of unnecessary work.
If you undelete the branch, I can reopen the pull request.

The branch is restored.


[ENH] Use LAUNCHER_NETCAT_FLAGS to add -d in cray systems

This patch will run the regular nc command (without -d) if the variable is not set. The $LAUNCHER_NETCAT_FLAGS can be exported at module load:
-- Use -d (cray-specific) in nc command only in LS5
if string.match(os.getenv("TACC_SYSTEM"), "ls5") then
	setenv("LAUNCHER_NETCAT_FLAGS", "-d")
end

Sorry, I accidentally removed the branch and closed the previous PR (#10 )

Thanks @oesteban. It may eventually be worthwhile to build this into a system-specific set of config values, like rsh/ssh for remote connection, etc.
I will merge this into the master so it's available in the next release.


madlibber updates

Per Lucy's comment, I will merge this PR now, but feel free to leave other comments, I am happy to address them.


ISSUE-102: Simplify APIs for registering/fetching serdes api.

upload ser/des jar
register serdes info
map serdes with a schema

Detailed documentation with json structure can be seen with swagger.

+1


Tutorial for installing whook on an Amazon EC2 Linux virtual machine

Hello there,
I created a tutorial in order to use ubuntu with AWS virtual machine. Much better than windows for this purpose !
You will find it on the fork I created of this project on my github.
If you need it by email, just ask.
Please don't hesitate to give me some feedback about it, because maby some process could be replaced by a better one, like noip.com for instance.

Thank you! I added it to the repository.


[CARBONDATA-4212] Fix case sensitive issue with Update query having Alias Table name

Why is this PR needed?
Update Query having Alias Table name, fails with Unsupported complex types error, even if table does not any.
What changes were proposed in this PR?
Check the columnName irrespective of case
Does this PR introduce any user interface change?

No

Is any new testcase added?

Yes

Build Failed  with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5558/

Build Failed  with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/3815/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/3819/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5562/

Build Failed  with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5573/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/3830/

retest this please

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5576/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/3833/

LGTM


Fix init phase logging and error reporting

Description

Upgrade base sdk to newest version
Use base sdk's _is_debug_mode
Use "print" for debug logging in init phase and output to stderr like in NodeJS SDK.
Report errors around wrapping and instrumentation with _report_error SDK call.

Testing done
Unit & integration tested:
➜  node git:(fix-init-logging) ✗ npx mocha test/python/aws-lambda-sdk/integration.test.js
2023-03-20T10:35:32.684Z ℹ test test uid: cihan

  Python: integration
2023-03-20T10:35:32.788Z ℹ test Creating core resources test-python-sdk-cihan
2023-03-20T10:35:45.237Z ℹ test Process function success-v3-8
2023-03-20T10:35:45.238Z ℹ test Process function success-v3-9
2023-03-20T10:35:45.239Z ℹ test Process function success-sampled
2023-03-20T10:35:45.239Z ℹ test Process function error-v3-8
2023-03-20T10:35:45.239Z ℹ test Process function error-v3-9
2023-03-20T10:35:45.240Z ℹ test Process function error_unhandled-v3-8
2023-03-20T10:35:45.240Z ℹ test Process function error_unhandled-v3-9
2023-03-20T10:35:45.240Z ℹ test Process function sdk-v3-8
2023-03-20T10:35:45.241Z ℹ test Process function sdk-v3-9
    ✔ success-v3-8 (23338ms)
    ✔ success-v3-9
    ✔ success-sampled (5915ms)
    ✔ error-v3-8 (2490ms)
    ✔ error-v3-9
    ✔ error_unhandled-v3-8
    ✔ error_unhandled-v3-9
    ✔ sdk-v3-8
    ✔ sdk-v3-9
2023-03-20T10:36:17.016Z ℹ test Cleanup test-python-sdk-cihan
2023-03-20T10:36:17.359Z ℹ test Deleted 9 version of the layer test-python-sdk-cihan-internal
2023-03-20T10:36:17.359Z ℹ test Detached IAM policy arn:aws:iam::692593327170:policy/test-python-sdk-cihan from test-python-sdk-cihan
2023-03-20T10:36:17.591Z ℹ test Deleted IAM role test-python-sdk-cihan
2023-03-20T10:36:17.606Z ℹ test Deleted IAM policy arn:aws:iam::692593327170:policy/test-python-sdk-cihan

  9 passing (45s)

@medikoo ready for review please


Buttons not showing in Craft <IP_ADDRESS>

Hey,
I have installed the plugin but in the Field Layout Designer the buttons are not showing.
Craft Version is <IP_ADDRESS> and Plugin version 2.0.1
Is there anything I missed ?

Thanks :)

Are there any errors in the browser console?
If not, is this happening on the field layout designer for an entry type, category group, or other element type (or any field layout designer regardless of element type)?

@ttempleton No console errors, same for every field layout designer.

Does it happen in any browser you try it with?
If it does, then if possible, could you please send your database backup and composer.json/lock to<EMAIL_ADDRESS>and we'll have a look.

@ttempleton Unfortunately this is isn't possible but I've found the issue, in the _includeResources function the condition solves to false because Craft::$app->getUser()->getIsAdmin() is returning false which I don't really understand 🤔
It's an updated Craft 3 and I have admin rights, the admin column is set to 1 as well.

Thanks for pointing that out, seems like https://github.com/craftcms/cms/issues/11033 is getting involved here.
I've just released Quick Field 2.0.2 which follows the advice from https://github.com/craftcms/cms/issues/11033#issuecomment-1111754160 which should resolve this. Please do let me know if that hasn't resolved it, though, and I'll reopen the issue.


Roll Flutter Engine from e0900f83a0c8 to 4a7daa504ed9 (8 revisions)

https://github.com/flutter/engine/compare/e0900f83a0c8...4a7daa504ed9
2024-12-02<EMAIL_ADDRESS>[ci] use env for format and support arm64 hosts (flutter/engine#56268)
2024-12-02<EMAIL_ADDRESS>Replace outdated wiki URLs in pull request template (flutter/engine#56824)
2024-12-02<EMAIL_ADDRESS>[impeller] makes UniformBindData 15% faster and adds unit test (flutter/engine#56844)
2024-12-02<EMAIL_ADDRESS>Roll Skia from dd70c8e1c38f to d7751d3d6ff4 (36 revisions) (flutter/engine#56898)
2024-12-02<EMAIL_ADDRESS>Roll Dart SDK from 5785058c9bb1 to 46630dbefbbd (12 revisions) (flutter/engine#56897)
2024-12-02<EMAIL_ADDRESS>switched reactor to absl::flat_hash_map (flutter/engine#56845)
2024-12-02<EMAIL_ADDRESS>Sped up SubpixelGlyph::Equal (flutter/engine#56851)
2024-12-02<EMAIL_ADDRESS>[Impeller] dont cache glyph layout if atlas is invalid. (flutter/engine#56879)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


A typo in "path_engine.cpp"

Directory: Path4GMNS-master/engine/path_engine.cpp
There is a typo of "index".

Another typo is found there.


mingw cspec

Is your feature request related to a problem? Please describe.
When using the gcc compiler spec for programs compiled with mingw-w64 (may be the wrong name), the calling convention for thiscall is incorrect. In order to get more correct results, the compiler spec can be changed to windows. This causes some analyzers to become unavailable. It also causes the thiscall storage to be incorrect when the auto return storage is used because the return pointer should come before this.
Describe the solution you'd like
A cspec specifically for mingw and mingw-w64.

We have work ongoing that will handle mingw better. It makes the compiler spec windows, which as you mention, makes the calling convention correct, it makes the compiler gcc, it updates the demangler check so that it uses the correct demangler and it handles relocations correctly. There is separate work ongoing that includes changes to RTTI script to handle mingw, too.

Ok great. Just note that for mingw thisbeforeret should be false. That's the only difference I've noticed with the calling convention between visual studio and mingw-w64

It looks like we already pushed the fix to recognize mingw's and set compiler id to windows and compiler to gcc and have demangler recognize and use gnu demangler. I don't think we adjusted the calling convention, though. Thanks for that info. Have you seen these changes? The relocation updates are still ongoing.

It looks like we already pushed the fix to recognize mingw's and set compiler id to windows and compiler to gcc and have demangler recognize and use gnu demangler. This means it will use the windows calling convention. I don't think we adjusted the calling convention, though, per your advice. Thanks for that info. Have you seen these changes? The relocation updates are still ongoing. The RTTI script changes to handle mingw are mixed in with other updates to improve gcc RTTI handling and that work is ongoing, as well.

The first part does seem to work I just "knew" to manually set it to gcc so I didn't notice. It definitely works better this way. Not sure how the difference with thiscall will be handled though.

Will take a look and see if thiscall calling convention change is still needed.


Spec: NSM Plugin Architecture

Overview
The spec describes how plugin concept can be applied to Network Service Mesh and why it can be useful

Link to the Google Docs document
Spec

References

This seems to me to be a good idea.  Would it make sense to use a registration mechanism that looks similar in the dataplane as well?

@edwarnicke they are already similar: both dataplane and plugin send their socket locations on registration. And in both scenarios NSM is a registrar. Dataplane registration is more complicated: it has also a liveness stream and unregister service (maybe we will need unregister service too).


gh-717: Add get contextionary from URL

Gets contextionary from URL or path.

Some high level review questions, before digging into it more deeply:

Are you writing the downloaded file to disk or trying to keep it entirely in memory?
Both options would have some consequences for the kubernetes setup:

If it’s in memory, the memory requirements will increase massively, as each horizontal replica downloads and keeps the contextionary
If it writes to disk, we need a file system mounted into the container which we currently don’t have

Will it download at every startup? Also if it was just a restart?

This would mean if all pods crash within a few seconds or minutes of each other, we'd have a downtime for the duration of the download
This could be helped by introducing an emptyDir volume in K8s, i.e. a non-persistent volume that shares the lifecycle of the pod (and survives container restarts)

Something is not quite right here. Running the tests locally, the weaviate container takes about 100% CPU usage
CONTAINER ID        NAME                                                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
22e54ec0ea0d        weaviate_weaviate_1                                 94.24%              16.61MiB / 7.786GiB   0.21%               1.42GB / 21.7MB     0B / 0B             16
[other containers removed for readability]

Checking the logs, it seems it doesn't start just one download, but many:
docker logs -f 22e54ec0ea0d
2019/02/21 08:12:33 INFO: Temp folder created....
2019/02/21 08:12:34 INFO: Using default config file location './weaviate.conf.json'..
2019/02/21 08:12:34 INFO: Config file found, loading environment...
2019/02/21 08:12:34 INFO: Running in DEBUG-mode.
2019/02/21 08:12:34 Downloading: https://contextionary.creativesoftwarefdn.org/0.6.0/en/contextionary.knn
2019/02/21 08:13:44 Downloading: https://contextionary.creativesoftwarefdn.org/0.6.0/en/contextionary.idx
2019/02/21 08:13:45 INFO: Contextionary loaded from disk.
2019/02/21 08:13:45 INFO: Network configured, connecting to Genesis 'http://genesis_fake:8090'.
2019/02/21 08:13:45 INFO: Bootstrapping network.
2019/02/21 08:13:45 INFO: Registered at Genesis server with id 'd2a9b5be-4cfc-4929-963c-185c7f9c8697'.
2019/02/21 08:13:45 ERROR: Could not initialize local database state: could not retrieve key '/weaviate/schema/state': context.deadlineExceededError{}.
2019/02/21 08:13:45 ERROR: This error needs to be resolved. For more info, check creativesoftwarefdn.org/weaviate. Exiting now...
2019/02/21 08:13:50 INFO: Using default config file location './weaviate.conf.json'..
2019/02/21 08:13:50 INFO: Config file found, loading environment...
2019/02/21 08:13:50 INFO: Running in DEBUG-mode.
2019/02/21 08:13:50 Downloading: https://contextionary.creativesoftwarefdn.org/0.6.0/en/contextionary.knn
2019/02/21 08:14:57 Downloading: https://contextionary.creativesoftwarefdn.org/0.6.0/en/contextionary.idx
2019/02/21 08:14:58 INFO: Contextionary loaded from disk.
2019/02/21 08:14:58 INFO: Network configured, connecting to Genesis 'http://genesis_fake:8090'.
2019/02/21 08:14:58 INFO: Bootstrapping network.
2019/02/21 08:14:58 INFO: Registered at Genesis server with id 'd2a9b5be-4cfc-4929-963c-185c7f9c8697'.
2019/02/21 08:14:58 ERROR: Could not initialize local database state: could not retrieve key '/weaviate/schema/state': context.deadlineExceededError{}.
2019/02/21 08:14:58 ERROR: This error needs to be resolved. For more info, check creativesoftwarefdn.org/weaviate. Exiting now...
2019/02/21 08:15:01 INFO: Using default config file location './weaviate.conf.json'..
2019/02/21 08:15:01 INFO: Config file found, loading environment...
2019/02/21 08:15:01 INFO: Running in DEBUG-mode.
2019/02/21 08:15:02 Downloading: https://contextionary.creativesoftwarefdn.org/0.6.0/en/contextionary.knn
2019/02/21 08:16:09 Downloading: https://contextionary.creativesoftwarefdn.org/0.6.0/en/contextionary.idx
2019/02/21 08:16:10 INFO: Contextionary loaded from disk.
2019/02/21 08:16:10 INFO: Network configured, connecting to Genesis 'http://genesis_fake:8090'.
2019/02/21 08:16:10 INFO: Bootstrapping network.
2019/02/21 08:16:10 INFO: Registered at Genesis server with id 'd2a9b5be-4cfc-4929-963c-185c7f9c8697'.
2019/02/21 08:16:10 ERROR: Could not initialize local database state: could not retrieve key '/weaviate/schema/state': context.deadlineExceededError{}.
2019/02/21 08:16:10 ERROR: This error needs to be resolved. For more info, check creativesoftwarefdn.org/weaviate. Exiting now...
2019/02/21 08:16:14 INFO: Using default config file location './weaviate.conf.json'..
2019/02/21 08:16:14 INFO: Config file found, loading environment...
2019/02/21 08:16:14 INFO: Running in DEBUG-mode.
2019/02/21 08:16:14 Downloading: https://contextionary.creativesoftwarefdn.org/0.6.0/en/contextionary.knn
2019/02/21 08:17:20 Downloading: https://contextionary.creativesoftwarefdn.org/0.6.0/en/contextionary.idx
2019/02/21 08:17:21 INFO: Contextionary loaded from disk.
2019/02/21 08:17:21 INFO: Network configured, connecting to Genesis 'http://genesis_fake:8090'.
2019/02/21 08:17:21 INFO: Bootstrapping network.
2019/02/21 08:17:21 INFO: Registered at Genesis server with id 'd2a9b5be-4cfc-4929-963c-185c7f9c8697'.
2019/02/21 08:17:21 ERROR: Could not initialize local database state: could not retrieve key '/weaviate/schema/state': context.deadlineExceededError{}.
2019/02/21 08:17:21 ERROR: This error needs to be resolved. For more info, check creativesoftwarefdn.org/weaviate. Exiting now...
2019/02/21 08:17:28 INFO: Using default config file location './weaviate.conf.json'..
2019/02/21 08:17:28 INFO: Config file found, loading environment...
2019/02/21 08:17:28 INFO: Running in DEBUG-mode.
2019/02/21 08:17:28 Downloading: https://contextionary.creativesoftwarefdn.org/0.6.0/en/contextionary.knn
2019/02/21 08:18:36 Downloading: https://contextionary.creativesoftwarefdn.org/0.6.0/en/contextionary.idx
2019/02/21 08:18:37 INFO: Contextionary loaded from disk.
2019/02/21 08:18:37 INFO: Network configured, connecting to Genesis 'http://genesis_fake:8090'.
2019/02/21 08:18:37 INFO: Bootstrapping network.
2019/02/21 08:18:37 INFO: Registered at Genesis server with id 'd2a9b5be-4cfc-4929-963c-185c7f9c8697'.
2019/02/21 08:18:37 ERROR: Could not initialize local database state: could not retrieve key '/weaviate/schema/state': context.deadlineExceededError{}.
2019/02/21 08:18:37 ERROR: This error needs to be resolved. For more info, check creativesoftwarefdn.org/weaviate. Exiting now...
2019/02/21 08:18:44 INFO: Using default config file location './weaviate.conf.json'..
2019/02/21 08:18:44 INFO: Config file found, loading environment...
2019/02/21 08:18:44 INFO: Running in DEBUG-mode.
2019/02/21 08:18:44 Downloading: https://contextionary.creativesoftwarefdn.org/0.6.0/en/contextionary.knn

It doesn't seem to work as intended, see #718 (comment) It seems to start multiple downloads and uses 100% of one CPU core.
Considering that we are (regardless of the problems above) replacing one bad practice (very long CI build times) with another bad practice (very long application start up times), I'm not convinced we should pursue this further.
My suggestion would be to extract the contextionary into a separate microservice. This way it scales independently of weaviate, can be its own repo and have its own pipeline and weaviate will be both fast to bulid and fast to startup.

Perfectly fine, changing the files back to the filesystem will work @etiennedi.
From a service perspective, how do you see this working? Is there an issue for this?
Please don't close the PR, there is more Contextionary stuff added.

From a service perspective, how do you see this working? Is there an issue for this?
Not yet, I'll create one now and fill it with content a bit later

Please don't close the PR, there is more Contextionary stuff added.
ok :)

created https://github.com/creativesoftwarefdn/weaviate/issues/730, but as mentioned it doesn't contain much content yet


Add support for generating low lights videos for a specific player

What problem is this solving
When I want to review faults, save this to a video file I currently have to use the "watch -> low lights" feature, and manually record the video using OBS or similar.
Proposed solution
It would be great if there was a "Death" event similar to the "kill" event in the "Generate Player's sequence" option.
Describe alternatives you've considered
Using OBS when playing the "low lights" demo, stopping the recording when done, and trimming the pre-, and post-recording of the OBS video.

Thank you so much @akiver  :-)


Deploying to Heroku

I've just written a toy app using this template, and I'd like to deploy it to Heroku.
I followed the usual steps but hit a failure:
...
2016-08-02T09:41:59.777243+00:00 heroku[slug-compiler]: Slug compilation started
2016-08-02T09:41:59.777249+00:00 heroku[slug-compiler]: Slug compilation finished
2016-08-02T09:42:04.537917+00:00 heroku[web.1]: Starting process with command `lein with-profile production trampoline run`
2016-08-02T09:42:06.800054+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2016-08-02T09:42:06.813188+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx350m -Xss512k -Dfile.encoding=UTF-8
2016-08-02T09:42:45.664277+00:00 app[web.1]: Compiling ClojureScript...
2016-08-02T09:42:46.963767+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx350m -Xss512k -Dfile.encoding=UTF-8
2016-08-02T09:42:48.681490+00:00 app[web.1]:    at clojure.lang.Compiler.load(Compiler.java:7391)
2016-08-02T09:42:48.681325+00:00 app[web.1]: Exception in thread "main" java.io.FileNotFoundException: Could not locate cljsbuild/compiler__init.class or cljsbuild/compiler.clj on classpath., compiling:(/tmp/form-init9197767631145422317.clj:1:73)
2016-08-02T09:42:48.681536+00:00 app[web.1]:    at clojure.lang.Compiler.loadFile(Compiler.java:7317)
2016-08-02T09:42:48.681592+00:00 app[web.1]:    at clojure.main$load_script.invokeStatic(main.clj:275)
...

I see in this project's README.md the note Desired profiles: +Heroku, so I assume it is known that some magic is needed to make this work. But, I don't know what the next step is, or even exactly what the error means.  Help?  Thanks!

FWIW, I verified that I can run the uberjar locally, or in a docker instance, with a simple
lein uberjar
java -jar flashcards-0.1.0-SNAPSHOT-standalone.jar

@deg Unfortunately, I am unfamiliar with using heroku. Regarding the note in the README, I figured someone in the community would submit a PR to add the +heroku profile.
I know reagent-template supports heroku, perhaps what is needed can be cleaned from there.

Doing a quick copy from reagent-template, I got a bit closer.
The problem seems to be that I was missing a Procfile. So, cribbing shamelessly, I created:
web: java $JVM_OPTS -cp target/flashcards-0.1.0-SNAPSHOT-standalone.jar clojure.main -m flashcards.server

This let me start locally with foreman start, with only one surprising quirk - the default port moved from 3000 to 5000.
So, feeling hopeful, I pushed to Heroku, but
...
2016-08-02T20:06:53.246251+00:00 heroku[web.1]: Starting process with command `java $JVM_OPTS -cp target/flashcards-0.1.0-SNAPSHOT-standalone.jar clojure.main -m flashcards.server`
2016-08-02T20:06:55.762757+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2016-08-02T20:06:55.780069+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx350m -Xss512k -Dfile.encoding=UTF-8
2016-08-02T20:06:56.214128+00:00 app[web.1]: Error: Could not find or load main class clojure.main
2016-08-02T20:06:56.320162+00:00 heroku[web.1]: Process exited with status 1
2016-08-02T20:06:56.313475+00:00 heroku[web.1]: State changed from starting to crashed
...

So, looks like something in my project replaces clojure.main
I had built with
lein new re-frame flashcards +cider +test +compojure +garden +re-com +secretary

and my guess would be that this is compojure-related. But, I'm not familiar enough, and it's too late at night here, so I'm going to give this a rest for now.
(I'll be a very happy camper in the morning if someone recognizes the issue and surprises me with an answer.  Pretty please?)

There's three things you need to do:

Create your template with +handler, not +compojure
Add a line in project.clj: :uberjar-name "flashcards.jar"
Make sure your Procfile says web: java $JVM_OPTS -cp target/flashcards.jar clojure.main -m flashcards.server

This worked for me, and I was able to deploy to Heroku and run it.

tl;dr - Thanks!  I've got it almost working now; everything but the css.
Details:

"+handler" vs "+compojure". Red herring. I had fixed this earlier, but had cut-n-pasted from my earlier notes. I've edited my comment above now, in a perhaps futile attempt to minimize confusion of future readers.
:uberjar-name - Added now, and this seems to have fixed the problem. But, I don't understand why this worked. As far as I can see, my previous Procfile was essentially the same, and just referred to the default name of the uberjar file.  Is the contents of the jar file somehow different when uberjar-name is specified explicitly?
But, the heroku site is not getting my css. It is being seen by locally, including by foreman start. I will look into this right now, but my guess is that build is not including it, but the foreman run is picking up a local copy of the css that I had compiled earlier. (I'm surprised that it was not removed by lein clean).  I'll post back when/if I find the problem, unless someone beats me to the punch.

Re the css problem: I'm confused.
If I do a lein clean && lein garden once, the css is generated.  But then, if I do lein uberjar, the css file is deleted.
I don't understand enough of what is going in in project.clj to debug this competently.

You need to add your css compile to the prep tasks.

Is this working for you? Can you send me the exact line you use?
When I try, with variations of
  :prep-tasks [["cljsbuild" "once" "min"] ["garden" "once"] "compile"]

I get an endless loop of Compiling Garden..., like what was reported at https://github.com/noprompt/lein-garden/issues/43 or an equally endless loop of Compiling Garden...  Compiling ClojureScript...

:uberjar-name - Added now, and this seems to have fixed the problem. But, I don't understand why this worked. As far as I can see, my previous Procfile was essentially the same, and just referred to the default name of the uberjar file. Is the contents of the jar file somehow different when uberjar-name is specified explicitly?

When you create an uberjar, by default two files are created. app-version.jar, and app-version-standalone.jar. You need to use the standalone one as this is the uberjar with all the classes in it. Setting the uberjar name just sets it to a standard name so you don't need to update your Procfile when your app version changes.

Is this working for you? Can you send me the exact line you use?

I didn't do anything with Garden when I deployed to Heroku. I've never used it, so I can't help you there sorry.
The issues you're grappling with are a bit broader than just related to re-frame template. I recommend you ask for help on the Clojure mailing list or Clojurians Slack, as there are people there who may be able to help you further. Thanks!

@deg I just tried bumping the lein-garden version to 0.2.8 and that did the trick!  App is deployed to heroku with css from garden.

Thanks!  I'm good now.
I've not tested enough to create a PR but, for the sake of the next person reading this, here is a summary of the changes I had to make.
This was for a project created with
lein new re-frame myproject +cider +test +handler +garden +re-com +routes

I had to:

Add a file Procfile, containing

web: java $JVM_OPTS -cp target/myproject.jar clojure.main -m myproject.server

Add to project.clj:

  :uberjar-name "myproject.jar"

Change two lines in project.clj, for garden to run as part of the build, and use a working version:

  :plugins [[lein-cljsbuild "1.1.3"]
            [lein-garden "0.2.8"]]
  ...
  :prep-tasks [["cljsbuild" "once" "min"] ["garden" "once"] "compile"]

@gadfly361 and @danielcompton - thank you agan for all your help!

Hmm I was able to push to heroku once with garden's css. However, since I have been getting an error like this after I run git push heroku master:

Looks like this can be resolved by manually including [ns-tracker "0.3.0"] in the :dependencies vector in project.clj. I was trying to create a minimal example, and I am guessing that one of the extra +xxx profiles was bringing in ns-tracker 0.3.0.

+handler profile should now support heroku and take into account the +less and +garden profiles

@deg
as for:

:prep-tasks [["cljsbuild" "once" "min"] ["garden" "once"] "compile"]

It seems that with  [garden " 1.3.6"] and plugins: [[lein-cljsbuild "1.1.7"]  [lein-garden "0.3.0"]]
garden is being compiled with the cljsbuild and the "garden" "once" only empties the css file again...
I was puzzled over this but found that it deploys fine without the garden command:
Hence:
`:prep-tasks [["cljsbuild" "once" "min"] "compile"]


Issue reading in Zip-file

Not all zip-files can be used to create the sqlite file.
The Dutch public transport net cannot be processed by zip, only after unzipping. (data from www.openOV.nl)
Not a major issue, but this bug creates a minor annoyance for the users. Maybe a good case study for bug testing?

Hi @BeishuizenTimKPMG,
Can you provide a sample of your code with the error message so that we can understand what the problem is about in more detail.

The code is directly taken from the example in " gtfspy/examples/example_temporal_distance_profile.py". The error can be found in the following method:
import_gtfs.import_gtfs([imported_data_path],processed_data_path)
In this line, using a direct link to the previously mentioned zip file at www.openOV.nl it can not be loaded.
The following is printed:

Beginning AgencyLoader
Importing agency.txt into agencies for
Indexing agencies
Post-import agency.txt into agencies
Beginning RouteLoader
Importing routes.txt into routes for
Indexing routes
Beginning MetadataLoader
Indexing metadata
Beginning CalendarLoader
calendar.txt  missing in  {'zipfile': '../data/raw/gtfs-nl.zip', 'zip_commonprefix': ''}
Indexing calendar
Beginning CalendarDatesLoader
Importing calendar_dates.txt into calendar_dates for
Beginning ShapeLoader
Importing shapes.txt into shapes for
Indexing shapes
Post-import shapes.txt into shapes
Beginning FeedInfoLoader
Importing feed_info.txt into feed_info for
Beginning StopLoader
Importing stops.txt into stops for
Indexing stops
Post-import stops.txt into stops
Beginning TransfersLoader
Not importing transfers.txt into transfers for
Beginning StopDistancesLoader
Post-import None into stop_distances
Calculating straight-line transfer distances
Copying information from transfers to stop_distances.
Beginning TripLoader
Importing trips.txt into trips for
Indexing trips
Beginning StopTimesLoader
Importing stop_times.txt into stop_times for

And the following error occurs:

AttributeError                            Traceback (most recent call last)
 in
1 # Not needed to rerun, is for accessing data
----> 2 import_gtfs.import_gtfs([imported_data_path],processed_data_path)
~/Projects/GemeenteAmsterdam/gtfspy-master/gtfspy/import_gtfs.py in import_gtfs(gtfs_sources, output, preserve_connection, print_progress, location_name, **kwargs)
102
103     for loader in loaders:
--> 104         loader.import_(conn)
105
106     # Do any operations that require all tables present.
~/Projects/GemeenteAmsterdam/gtfspy-master/gtfspy/import_loaders/table_loader.py in import_(self, conn)
355         # This does insertions
356         if self.mode in ('all', 'import') and self.fname and self.exists() and self.table not in ignore_tables:
--> 357             self.insert_data(conn)
358         # This makes indexes in the DB.
359         if self.mode in ('all', 'index') and hasattr(self, 'index'):
~/Projects/GemeenteAmsterdam/gtfspy-master/gtfspy/import_loaders/table_loader.py in insert_data(self, conn)
295             from itertools import chain
296             rows = chain([row], self.gen_rows([csv_reader], [prefix]))
--> 297             cur.executemany(stmt, rows)
298             conn.commit()
299
~/Projects/GemeenteAmsterdam/gtfspy-master/gtfspy/import_loaders/stop_times_loader.py in gen_rows(self, readers, prefixes)
23     def gen_rows(self, readers, prefixes):
24         for reader, prefix in zip(readers, prefixes):
---> 25             for row in reader:
26                 #print row
27                 assert row['arrival_time'] != "", "Some stop_times entries is missing arrival time information."
~/Projects/GemeenteAmsterdam/gtfspy-master/gtfspy/import_loaders/table_loader.py in (.0)
217                 csv_reader_stripped = (dict((k, (v.strip() if v is not None else None))  # v is not always a string
218                                             for k, v in row.items())
--> 219                                        for row in csv_reader)
220                 csv_reader_generators.append(csv_reader_stripped)
221             except TypeError as e:
~/Projects/GemeenteAmsterdam/gtfspy-master/gtfspy/import_loaders/table_loader.py in (.0)
216                 # The following results in a generator, the complicated
217                 csv_reader_stripped = (dict((k, (v.strip() if v is not None else None))  # v is not always a string
--> 218                                             for k, v in row.items())
219                                        for row in csv_reader)
220                 csv_reader_generators.append(csv_reader_stripped)
AttributeError: 'list' object has no attribute 'strip'

As you can see the error is an object mismatch. As I said before, unpacking the zip works, but using the zip directly does not.

Looks like one of the rows's csv is being turned into a list, instead of string.  I guess it's done something clever.
Can you look into the stops.txt and see if anything is weird there?  and/or, use a debugger to try to figure out the bad line and value?  That would help to understand what is going on...
Otherwise, can you gave an link to the exact file you are using and exact command line used?

I cannot replicate this issue as it was solved by https://github.com/CxAalto/gtfspy/pull/24. At that time, I considered the issue to be connected with special characters that caused that a string was considered split to many due to the special chars (i.e. creating something like ["/ax instead of š).
I am using GTFS zip file that can be downloaded here and ran the script by
import_gtfs.import_gtfs(["..\\data\\traffic_source.zip"],                             "some.db",                             print_progress=verbose,                             location_name="Prague")


[HOLD for payment 2024-10-10] [$250] Copilot - Missing email in RHP header and message when adding new contact

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.32-0
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause Internal Team
Action Performed:

Go to staging.new.expensify.com
Login as copilot
Go to Account settings.
Click on the account switcher.
Switch to another account.
Click Contact method.
Click New contact method.
Enter a new contact method > Next.

Expected Result:
The RHP header will show the current contact method.
Actual Result:
The RHP header is missing when confirming magic code for adding new contact method.
Also, the message "Please enter the magic code sent to" is also missing the email.
Workaround:
Unknown
Platforms:

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

Screenshots/Videos
https://github.com/user-attachments/assets/13793b42-b666-462f-abfd-61f37ff10dba
https://github.com/user-attachments/assets/91527319-07f0-4b56-8c85-84591231b31a

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021834067418784580129
Upwork Job ID:<PHONE_NUMBER>784580129
Last Price Increase: 2024-09-12
Automatic offers:

nkdengineer | Contributor | 103936362

Issue OwnerCurrent Issue Owner: @RachCHopkins

@RachCHopkins  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

Go to staging.new.expensify.com
Login as copilot

I don't appear to be able to do this at all. I have tried multiple accounts with copilots and I don't have the drop-down.

@kadie is gonna repro for me.

Reproduced in web chrome:
https://github.com/user-attachments/assets/e1959f18-09f3-4b99-abaf-571699fb3b67

Proposal
Please re-state the problem that we are trying to solve in this issue.
The RHP header is missing when confirming magic code for adding new contact method.
Also, the message "Please enter the magic code sent to" is also missing the email.
What is the root cause of that problem?
We get the contact method by accessing account?.primaryLogin. In the case of accessing account via Copilot, the account data doesn't have  primaryLogin field

https://github.com/Expensify/App/blob/336e4782aec98bb29a06c28e0d630c276d4eddf6/src/pages/settings/Profile/Contacts/NewContactMethodPage.tsx#L41
What changes do you think we should make in order to solve the problem?
We should use session data to get the email of the user
const [session] = useOnyx(ONYXKEYS.SESSION);
const contactMethod = session?.email ?? '';

https://github.com/Expensify/App/blob/336e4782aec98bb29a06c28e0d630c276d4eddf6/src/pages/settings/Profile/Contacts/NewContactMethodPage.tsx#L41
const contactMethod = Object.keys(loginList ?? {}).find((login) => loginList?.[login]?.partnerUserID === login);

or if we want to default contact method we can find in the login list that has the email is partnerUserID
What alternative solutions did you explore? (Optional)
NA

Thanks for the proposal @nkdengineer
I believe we should use session?.email only if account?.primaryLogin  is not available. What do you think?
const contactMethod = account?.primaryLogin ?? session?.email ?? '';

We also need to fix the other cases in that we use account?.primaryLogin

Could you please specify which other features or cases require changes involving the use of account?.primaryLogin?

I believe we should use session?.email only if account?.primaryLogin is not available. What do you think?

@sobitneupane  I think that makes sense. I think we can create a util for this and use in other places.

Could you please specify which other features or cases require changes involving the use of account?.primaryLogin?

I checked the use of account?.primaryLogin in the App and see that we have some other places that we use this data.

Thanks for the update @nkdengineer
Proposal from @nkdengineer looks good to me.
🎀 👀 🎀 C+ reviewed

Proposal LGTM, assigning @nkdengineer

Approved the PR, waiting for a response here before merging.

PR is merged

@sobitneupane the automation has failed here, can I get you to do the checklist, please?
And I guess this will be ready to pay on 8 October.

Regression Test Proposal

Login as copilot
Go to Account settings.
Click on the account switcher.
Switch to another account.
Click Contact method.
Click New contact method.
Enter a new contact method > Next.
Verify that correct contact method is displayed on the RHP header.

Do we agree 👍 or 👎

Contributor has been paid, the contract has been completed, and the Upwork post has been closed.

@RachCHopkins I will need payment summary to request payment in newdot.

Sorry @sobitneupane I didn't realise Melvin's summary was leaving that out!
Payment Summary:

Contributor: @nkdengineer paid $250 via Upwork
Contributor+: @sobitneupane to be paid $250 via NewDot manual request

Upwork job here

$250 approved for @sobitneupane


Emitting undefined automatically when a component's onion stream is unsubscribed

I understand that currently the only way to remove an unused child component's property from the onion state is to have the parent set it's state value to undefined.  This seems not convenient or ideal.  Ideally a child component can be configured to automatically/implicitly emit an UndefinedReducer from it's onion stream (state => undefined) when it's onion stream is unsubscribed.  Is that possible?

Hi @ntilwalli

I understand that currently the only way to remove an unused child component's property from the onion state is to have the parent set it's state value to undefined.

Alternatively, the child can also set its own state value to undefined. Either the parent or child have control over that.
But what's puzzling me is to think of a case where a child component disappears but its state property is still present. So far I've been treating undefined setters as the only way of making a component disappear. So it should be an equivalence: "the child component is shown if and only if its corresponding state subtree is not undefined". What does your use case look like?

Here's one use case I believe (child state gets added to parent and doesn't get removed).
const toggle_visibility$ = DOM.select('.foo').events('click').scan((acc, val) => !val, false)
const child$ = toggle_visibilty$.map(show => {
  if (show) {   // Uses onionify
    return isolate((sources) => {
      return {
        DOM: sources.state$.map(state => div([state.val ? state.val : null])),
        onion: xs.of(state => {
          return {
             val: 'Some value'
          }
        })
      }
    })(sources)
} else {
  return { // return an empty component
     DOM: xs.of(undefined),
     onion: xs.never()
  }
}).remember()

const child_dom$ = child$.map(child => child.DOM).flatten()
const child_onion$ = child$.map(child => child.onion).flatten()

Okay I understand the use case now.
I'm afraid doing what you asked is not possible, or at least would break other use cases. I can explain how.
First note that the onion sink is for writing state. When that sink is unsubscribed, it means that child component won't anymore write state. But that doesn't mean its state scope should be destroyed. What if the child uses a property on the parent state object which other children will also read? Yes, isolation still plays a role there in order to separate sibling scopes, but onionify supports lenses and this means the child's readable state can be a summary of the entire state object from the parent.
This is why we can't automatically emit an UndefinedReducer when child reducer stream is unsubscribed, because we have no guarantee that the readable state from the child is not also read by others.
Now that I saw your use case, I can recommend a refactor of it. Instead of toggle$ mapped to a component, I recommend clicks on .foo to emit reducer which will toggle the child's substate.
Assuming
type ParentState = {
  // ...
  child?: ChildState,
}

The toggling reducer in the parent could be
toggleReducer$ = click$.mapTo(function toggleReducer(prevState) {
  if (typeof prevState.child === 'undefined') {
    return {...prevState, child: {}};
    // I put {} here, but this can be anything, as long as the child's
    // default/initial reducer will override that with its own definition
    // of child initial state
  } else {
    return {...prevState, child: void 0}
  }
})

Then you can instantiate the child component once, and statically (not map+flatten dynamically) and it should appear/disappear according to its given state.


UML templates for CobiGen

This pull request contains the needed templates for the generation of the Entity infrastrucutre from a class diagram, exported as XMI version 2.1.
I have tested that the two-step generation properly generates the files. The server gets deployed correctly.
Implements

Relationships: Annotations are correctly addressed. If no multiplicity is defined, then CobiGen generates a One-to-One relationship. In addition, they are bidirectional by default.
The @Column annotation is also generated, for the different attributes of the class.

I have left some templates in this branch, just in case we use them on the future. For example, generating Angular from a class diagram.
@devonfw/cobigen

I can't wait for this to get built on Jenkins. Vaibhav already needs the templates for the next linux distro.
Anyway, we still have to fix the master builds 💃


NO data in any sparklines!!

The sparklines are all blank right now!
There is data on the sandbox.

+1

Thank you!


Proto files without a package not handled properly

If a proto file does not contain a package (which is perfectly valid), the inspect succeeds, but the results are incorrect. The messages and services end up as namespaces, and functionality like serviceNames() always returns [].

Thanks!

This slipped by and forgot about it so took longer. Please see the note in the commit ^.

NOTE If no package name is specified in the protocol buffer definition an empty '' string is used for the package / namespace name.


feat(Nodes): filter and sort on backend

When change sort order or filters with backend, Skeleton is obtrusively blinking.

It blinks because data is loaded too fast. If it is some bigger cluster, skeletons would be just fine.

It blinks because data is loaded too fast. If it is some bigger cluster, skeletons would be just fine.

Just thinking... What do you think about not showing skeleton but highlight that data is deprecated (maybe font color -> secondary)?

It looks good for fast loads, but weird when loading takes some time.
I think this should be discussed with the team and maybe our designer, because such changes should relate to all tables.

Ok. I'm talking about it because in users perception sorting is not refetching (even if it is, but user is not aware of realisation of an app). And thats why it's weird to see a skeleton here.


Running Balance not updating after editing Scheduled Transaction

Name of Defective Feature

Running Balance

System Settings (Required)

ToolKit Version: 2.3.2
Operating System (Mac/Windows/Etc): Windows 10
Browser (Chrome/Firefox/Safari): Chrome
Browser Version: Version 66.0.3359.139 (Official Build) (64-bit)
Other Extensions: n/a

Export of Toolkit Settings (Bottom Left of Settings Page)

Settings Export
[{"key":"AccountsDisplayDensity","value":"1"},{"key":"AccountsEmphasizedOutflows","value":true},{"key":"AccountsStripedRows","value":true},{"key":"AdditionalColumns","value":true},{"key":"AdjustableColumnWidths","value":false},{"key":"AutoDistributeSplits","value":true},{"key":"BetterScrollbars","value":"0"},{"key":"BudgetProgressBars","value":"0"},{"key":"BudgetQuickSwitch","value":true},{"key":"CalendarFirstDay","value":"0"},{"key":"CategoryActivityCopy","value":true},{"key":"CategoryActivityPopupWidth","value":"1"},{"key":"ChangeEnterBehavior","value":true},{"key":"CheckCreditBalances","value":true},{"key":"CheckNumbers","value":false},{"key":"ClearSelection","value":true},{"key":"CollapseSideMenu","value":false},{"key":"ColourBlindMode","value":false},{"key":"CompactIncomeVsExpense","value":false},{"key":"CreditCardEmoji","value":true},{"key":"CurrentMonthIndicator","value":false},{"key":"CustomFlagNames","value":true},{"key":"DaysOfBuffering","value":true},{"key":"DaysOfBufferingHistoryLookup","value":"0"},{"key":"DisableToolkit","value":false},{"key":"DisplayTargetGoalAmount","value":"0"},{"key":"DisplayTotalMonthlyGoals","value":false},{"key":"EasyTransactionApproval","value":false},{"key":"EditAccountButton","value":"0"},{"key":"EnableRetroCalculator","value":true},{"key":"EnlargeCategoriesDropdown","value":true},{"key":"EnterToMove","value":true},{"key":"GoalWarningColor","value":true},{"key":"GoogleFontsSelector","value":"0"},{"key":"HideAccountBalancesType","value":"0"},{"key":"HideAgeOfMoney","value":false},{"key":"HideHelp","value":true},{"key":"HideReferralBanner","value":true},{"key":"ImportNotification","value":"1"},{"key":"IncomeFromLastMonth","value":"0"},{"key":"LargerClickableIcons","value":true},{"key":"MonthlyNotesPopupWidth","value":"1"},{"key":"NavDisplayDensity","value":"2"},{"key":"Pacing","value":"0"},{"key":"PrintingImprovements","value":true},{"key":"PrivacyMode","value":"0"},{"key":"QuickBudgetWarning","value":true},{"key":"ReconciledTextColor","value":"0"},{"key":"RemovePositiveHighlight","value":true},{"key":"RemoveZeroCategories","value":false},{"key":"ResizeInspector","value":false},{"key":"RightClickToEdit","value":true},{"key":"RowHeight","value":"2"},{"key":"RowsHeight","value":"2"},{"key":"RunningBalance","value":"1"},{"key":"SeamlessBudgetHeader","value":true},{"key":"ShowCategoryBalance","value":true},{"key":"ShowIntercom","value":true},{"key":"SpareChange","value":true},{"key":"SplitKeyboardShortcut","value":true},{"key":"SplitTransactionAutoAdjust","value":false},{"key":"SquareNegativeMode","value":false},{"key":"StealingFromFuture","value":true},{"key":"SwapClearedFlagged","value":false},{"key":"TargetBalanceWarning","value":true},{"key":"ToBeBudgetedWarning","value":false},{"key":"ToggleMasterCategories","value":false},{"key":"ToggleSplits","value":true},{"key":"ToggleTransactionFilters","value":"0"},{"key":"TransactionGridFeatures","value":true},{"key":"ViewZeroAsEmpty","value":false},{"key":"goalIndicator","value":true},{"key":"highlightNegativesNegative","value":false},{"key":"l10n","value":"0"},{"key":"pacing","value":"0"},{"key":"popupCalculator","value":true},{"key":"reports","value":true}]

Steps to Reproduce the Behavior

With Running Balance turned on, change the amount of a scheduled transaction.

Expected Behavior

Expected running balance to update.
Actual Behavior

Running balance did not update until I switched to another account and went back. Also updates if you switch to Budget screen and back.
Screenshots

Before changing scheduled transaction (second row): outflow=$334.39, running balance=$4.23

After changing scheduled transaction (second row): outflow=$338.62, running balance should be $0 but is still $4.23.

Console output just in case it's helpful (although it means nothing to me :)) - this was after changing the outflow but before switching between accounts to get the running balance to update.

Expected (obtained by switching to another account & then switching back): outflow=$338.62, running balance=$0

Hey @ActuarialChef the fix for this should be in our current release. If you notice the issue still exists and you're definitely running the newest version of the toolkit, please reopen! Thanks!

Hey @joshmadewell - I think this bug is back with Version 2.5.0 :(

@ActuarialChef yeah it's weird this time -- I think YNAB might have changed something about entering transactions -- I'm going to be looking for a better way to handle this at my next earliest chance.


feat: use ray.so to generate images for code snippets

Closes #27

:tada: This PR is included in version 1.10.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


VB.Net: Strict Mode

Hi, BC30209	Option Strict On requires all variable declarations to have an 'As' clause. is causing build to fail.
Any help would be appreciated, Thanks

Here's the VB template file: https://github.com/kzu/GitInfo/blob/master/src/GitInfo/build/GitInfo.vb.pp
Care to open a PR?
Thanks!
(also, FWIW, you can modify it locally from the package you referenced, until you make it work for you, then send the PR)


Setting default value of 'name' in a Parameterized class doesn't work

ALL software version info
channels:
  - conda-forge
  - defaults
dependencies:
  - ipykernel=6.15.1
  - ipython=8.4.0
  - jupyter_client=7.3.4
  - jupyter_core=4.10.0
  - libcxx=14.0.6
  - param=1.12.2
  - python=3.10.5
  - traitlets=5.3.0

MacOS 11.6.5

Description of expected behavior and the observed behavior
Setting a default (string) value to Parameterized class' name attribute doesn't work (as expected).
A given default value is overwritten by an incremental "Classname<SERIAL>" value.
We can set the/a value later, though.
I was expecting the default value to be used as initial value.
Complete, minimal, self-contained example code that reproduces the issue
class Person(param.Parameterized):
    name = param.String('ze')
    birthyear = param.Integer(1991)

p = Person()
p
# Person(birthyear=1991, name='Person00003')
p.name = 'ze'
p
# Person(birthyear=1991, name='ze')

Screenshots or screencasts of the bug in action

Notebook playing that: https://github.com/docdatpie/params/blob/c8b6efaab6146bf08385d0c6e8dfec1f1b05fbc3/oneOf.ipynb

You shouldn't use the variable name as it is reserved. A more in-depth description is given here, which I have copied below.

name is the one Parameter that Parameterized objects always have, and it’s also the only one that has special semantics in Param: If the name is not set on an instance or in its constructor, it has a name autogenerated for it from the class name. The intention of this mechanism is for each object to have some relatively unique name to distinguish it when exploring collections of objects, though that’s not necessarily always useful. In any case, here, if we want it to have the value John Doe as in the Pydantic example, we have to provide that name explicitly on the instance as above. The original Pydantic example doesn’t make a whole lot of sense for name anyway, as it would be a recipe for errors for something like a name to inherit a concrete value like John Doe from the base class.

I wonder if we could support this by changing Param's code, so that anyone who explicitly declares a name parameter thereby disables this "special semantics".  The special semantics made sense at the time it was implemented, in the context of heavyweight objects that needed a unique visual representation as a string, but Parameterized objects are used in many other contexts nowadays, and it would be nice for people to be able to reject this special behavior and declare that name should behave just like any other parameter. The syntax above seems like a good way to declare that, but I'm not sure if we can make that work cleanly.

I agree with your suggestion @jbednar, if name is to keep being used as it is nowadays. I understand that would be a mid-way solution for something (the "special semantics") that has an ambiguous behaviour: at the end of the day, if the (name) attribute can be modified and its supposed uniqueness cannot be guaranteed (anymore), the "special semantics" mechanism behind it should be turned off anyway.
But I want to share/discuss something underneath it that is bouncing here in my head: I understand there is a design issue there. Bear with me, 'name' is a "public" member, a (fairly) common and meaningful word, that can be modified, holding (sometimes) a special meaning. From my understanding of OO, we have a broken encapsulation here. And from my understanding of Params, it blocks a very common attribute many users would use.
I know that would probably mean more work, but how about changing 'name' to, say, '__name' (or something alike, eg, '__id')? I emphasized "probably" before because I would not change any behaviour currently associated to 'name' (as suggested by you, @jbednar ), I would "just" change its label and decorate 'name' with a deprecation warning for all the current users out there.
Does that make sense?

if the (name) attribute can be modified and its supposed uniqueness cannot be guaranteed (anymore), the "special semantics" mechanism behind it should be turned off anyway.

Sorry if I gave the wrong impression: the name was never enforced or even assumed to be unique; it was only helpful that it was unique so that when the object's name was displayed (e.g. in an error message or as a representation of the objecdt in a GUI) the user could distinguish this object from other objects.
What was enforced (and continues to be enforced, even with my proposed change) was that the name exists, so that the object would have some sort of label for use in those purposes. Users were always expected to update the name to something meaningful for them if they wanted the label to be useful, and the meaningful name has never been required to be unique. Given that the name is required to exist, the other reasonable default would have been to give it the name of its class, but doing that would make the visual representation ambiguous by default, which isn't desirable in a GUI context where people need to tell similar objects apart from each other.
So there hasn't been any change in this support or behavior (ever); the only difference is that Param has become used much more widely, outside of the context of a small number of heavyweight objects a user might want to manipulate in a GUI context or visually represent in text reports.

'name' is a "public" member, a (fairly) common and meaningful word, that can be modified, holding (sometimes) a special meaning.

I think I gave the wrong impression here, by not making a distinction between the two different ways that name parameter has special significance: (1) the actual code that ensures the name always exists and generates unique values for it by default unless overridden in the instance, and (2) the convention that other libraries like Panel and some parts of Param itself treat the name parameter as a label for the object.
I'm proposing that the behavior in (1) be configurable; if people don't want special auto-generated names, there's no reason they should have to have them! Param doesn't require that the names be unique, and people should be able to use any non-unique name they feel like, instead of having to fight Param. Making this change shouldn't affect any other behavior, as it does not change the semantics of name in the constructed object.
Having relaxed (1), it's up to the user what they do about (2). Wherever name is used as a default label, e.g. in Selectors, you should always be able to provide an alternative label, e.g. by supplying a dictionary to a Selector rather than a list of named objects. Here if people want to build a system that makes no assumption about name even existing or being a suitable label, they can do so; Param shouldn't care that you do that. But tooling around Param, such as Panel, does make an assumption that it can use the name as a default label, and I'm not proposing that Panel change that.

how about changing 'name' to, say, '__name' (or something alike, eg, '__id')?

To be clear, name is not an id (which people will assume is unique), it is a label for the object when displayed.  I could imagine adding a special __label field that would override the name for display purposes, but then that would have to be respected by libraries using Param, which seems painful to add at this point.

Perfect, I now understand the whole thing. It was my mistake thinking it should be unique. After that, I would say everything is indeed the way it should be. I'm closing this. Thanks.

I'd still like to address your original concern, namely (no pun intended) that your user-supplied "ze" name was not respected as the default value for this parameter. That's about behavior (1), which I think we can and should change. If a user has specified some particular value for name explicitly in a Parameterized class, I think Param should respect it, and I think we can do that without disrupting any other behavior of Param.
I briefly tried to do that by suppressing the self.param._generate_name() call in the Parameterized constructor, but it looks like it will be tricky to  implement until https://github.com/holoviz/param/pull/605 is merged, which is on my plate to finish up and merge anyway. So I'd like to reopen this and revisit it after parameters allow sentinel values, so that we can detect that the user has set the value explicitly and disable all auto-generating functionality in that case.


DefaultExecutionContextSessionStateLanguageModeInRemoteSession tests fails as output is not as expected.

Steps to reproduce
Potentially a test issue.
.\runlite -suite Scripting.CoreLanguage.CoreLanguageTest -pri  -test DefaultExecutionContextSessionStateLanguageModeInRemoteSession
Expected behavior
The language mode is FullLanguage.
Actual behavior
LanguageMode is 3.
Exception calling "Invoke" with "0" argument(s): "Default $host.Runspace.InitialSessionState.LanguageMode should be FullLanguage when UMCI is not enabled.: '3' does not equal 'FullLanguage'
CallStack: Asserts.ps1: line 87 <- Asserts.ps1: line 219 <- Lite.Scripting.CoreLanguage.CoreLanguageTest.ps1: line 842"
System.Management.Automation.MethodInvocationException: Exception calling "Invoke" with "0" argument(s): "Default $host.Runspace.InitialSessionState.LanguageMode should be FullLanguage when UMCI is not enabled.: '3' does not equal 'FullLanguage'
CallStack: Asserts.ps1: line 87 <- Asserts.ps1: line 219 <- Lite.Scripting.CoreLanguage.CoreLanguageTest.ps1: line 842" ---> System.Management.Automation.RuntimeException: Default $host.Runspace.InitialSessionState.LanguageMode should be FullLanguage when UMCI is not enabled.: '3' does not equal 'FullLanguage'
CallStack: Asserts.ps1: line 87 <- Asserts.ps1: line 219 <- Lite.Scripting.CoreLanguage.CoreLanguageTest.ps1: line 842
at System.Management.Automation.Runspaces.PipelineBase.Invoke(IEnumerable input)
at System.Management.Automation.Runspaces.Pipeline.Invoke()
at CallSite.Target(Closure , CallSite , Object )
--- End of inner exception stack trace ---
at System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext funcContext, Exception exception)
at ExecuteInRunspace(Closure , FunctionContext )
Environment data
> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      5.1.10032.0
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   <IP_ADDRESS>
GitCommitId                    v0.6.0-112-g3276846c401e0c2132cc260f89752b121c81abde
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

@adityapatwardhan same ping

@joeyaiello  This test verifies the default language mode. This test is missing from GitHub repo. This should be added. The test code is like:
(Invoke-Command -ComputerName . {$ExecutionContext.SessionState.LanguageMode}) | Should Be ([Management.Automation.PSLanguageMode]::FullLanguage)


make workspace in tree view more visually separated

because it looks like a folder icon visually it's hard to see when I pass workspaces as I scroll, this is a problem with lots of files and long directories. Having workspaces more distinct like maybe a hard line, or and empty row, could go with a hard line too. This would be good so I can better see it as I scroll.

This is a fair feature request, however we do not have it on our immediate plan. Thus assigning to backlog and we might add this in the future. Thanks


x/pkgsite: gap below unit header is a bit large on desktop viewports

See screenshot below for the area I’m talking about. I think it could be tightened up a bit.
Great job, team!

/cc @jamalc

Oh yeah, good call. I'll take this.


Add profile for Uwe Gradenegger

Automatically generated pull request to add profile for  according to application pkic/members#101.
This closes pkic/members#101

Individuals are not yet listed, we are working on this.


gst_all_1.gst-plugins-good is missing soup, needed for radiotray-ng

Describe the bug
According to the GStreamer website, the "good" plugins package should contain the "soup" plugin. However, the nix package gst_all_1.gst-plugins-good does not.
Steps To Reproduce
Steps to reproduce the behavior:

install packages gst_all_1.gstreamer.bin and gst_all_1.gst-plugins-good
run gst-inspect-1.0 | grep soup

Result: nothing found.
As a result, radiotray-ng cannot play any streams, failing with "could not create souphttpsrc element".
Expected behavior
gst_all_1.gst-plugins-good should include soup.
Notify maintainers
gst_all_1.gst-plugins-good: @matthewbauer @lilyinstarlight
radiotray-ng: @dtzWill
Metadata
[chalice:~]$ nix-info -m
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.63, NixOS, 23.11 (Tapir), 23.11.20231128.7c4c205`
 - multi-user?: `no`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.1`
 - channels(root): `""`
 - channels(ashley): `""`
 - nixpkgs: `not found`

Add a :+1: reaction to issues you find important.

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/radiotray-ng-failed-to-dowload-playlist/24722/6

please try
nix run github:NixOS/nixpkgs/4d054ee68c41c3eeeeaf4d7ca44512c3274c1397#radiotray-ng

and see if that fixes the problem.

This fixes the problem for radiotray-ng, thanks.
Does this mean that gst_all_1.gst-plugins-good is OK?

This fixes the problem for radiotray-ng, thanks.
Does this mean that gst_all_1.gst-plugins-good is OK?

not really, in my opinion as it doesn't work out of the box. there was a PR to partially fix gstreamer https://github.com/NixOS/nixpkgs/pull/264293 but seems like it was missing glib-networking and didn't want to add it for some reason.
if the gstreamer pkg isn't modified then adding glib-networking and the libsoup to the ld_library_path is a work around.

The issue title is misleading. The loading of the library is broken but gst-plugins-good is actually compiled against libsoup.


MAINT: Relax test tolerance

tests were failing with a within numerical noise error:
E       AssertionError:
E       Arrays are not equal
E
E       Mismatched elements: 103 / 145 (71%)
E       Max absolute difference: 2.22044605e-16
E       Max relative difference: 2.11475965e-16
E        x: array([[0.960134],
E              [1.143682],
E              [1.049976],...
E        y: array([[0.960134],
E              [1.143682],
E              [1.049976],...

Thanks.


404 errors from date_fns JS files in registry

If you visit this page: https://deno.land/x/date_fns/addMonths/index.js you'll see a 404 error.
This reporter seemed to think it was an issue with JS files: https://github.com/denoland/registry/issues/177
However, if you look at the "repository" link on the index.js page linked above, you'll see it points to: https://github.com/date-fns/date-fns/tree/mastersrc/addMonths/index.js
Note /tree/mastersrc/, which should actually be /tree/master/src/. I suspect this might have something to do with the handling of the path parameter in database.json: https://github.com/denoland/deno_website2/blob/92a20e81c51c051080311c2edefe517049dbafcd/src/database.json#L116
Note the old registry code has a leading /: https://github.com/denoland/registry/blob/714ffcf29d55620fb02b53c99c7d954a366a19e7/src/database.json#L116

The fiona repo, which also has "path": "src/", seems to have the same issue: the "repository" link at https://deno.land/x/fiona/core points to https://github.com/billymoon/fiona/tree/mastersrc/core

All paths in the database should have a leading /. I'll PR a fix in a minute.


WingetUI installation: Pre-select the recommended action and have it at the top

Currently (v1.4.2 installation):

Ought to be:

TODO:

[ ] Fix scoop not being detected
[ ] Improve installer order

Of note is that upon the first startup after installation, WingetUI wasn't detecting Scoop or its apps (similar to #71 but for Scoop) – possible bug related to the new Scoop options during installation?
Upon the second startup it first updated its repositories and the corresponding apps showed up in the list as expected.

Yes, this issue is due WingetUI being launched with the path being loaded before is actually installed, so when restarting, it shows jut fine. I'm working on fixing that

[ ] Improve installer order

Fixed (in theory). Also, Scoop is now capitalized 😀
https://github.com/martinet101/WingetUI/pull/231

I don't know how to fix that 😢

This would require a env vars reload, dont worry, i'll (hopefully be able to) do that

@martinet101, I think TODO should be like this:
() Fix scoop not being detected
(X) Improve installer order
() If scoop is detected, do NOT disable it when updating

actually yes

This issue should be now fixed


Fixed it so that the drawing when hidpi is correct (OSX)

With this PR, rendering in HiDPI mode on MacOS is rendered correctly in high definition and pixels blur-free.
I briefly tested this fix in Windows as well, and there seemed to be no problem.

Thank you for the PR!
Proper high DPI support is something I'd definitely like to add in the future (although I might make it optional, as I don't have access to a high DPI screen myself and don't want to force people to use something I can't test very well).
I'm a little uneasy about the workaround for resizes, however - I'd rather solve the issue properly to avoid creating more issues down the line.
Questions:

What behaviour do you see without the workaround? If you could include a screenshot, that would be good.
What version of OSX and SDL2 are you using? If you're on Catalina or higher, make sure you have SDL 2.0.12 or higher, as there's a DPI bug in older versions which ended up being the root cause of #147.
If the issue isn't caused by an old version of SDL2, does using this code instead of your workaround fix the issue? I think passing the window size (rather than the drawable size) to graphics::update_window_projection is incorrect in high-DPI mode.

WindowEvent::SizeChanged(width, height) => {
    ctx.window.window_width = width;
    ctx.window.window_height = height;

    let (pixel_width, pixel_height) = ctx.window.sdl_window.drawable_size();

    graphics::update_window_projection(
        ctx,
        pixel_width as i32,
        pixel_height as i32,
    );

    state.event(ctx, Event::Resized { width, height })?;
}

Thanks for the detailed advice.
Answers:

Screenshot 1

            This is what happens.
In my actual application it looks like this

    macOS Mojave,  sdl2 2.0.12_1

Screenshot 2

With the fix you presented, it was drawn correctly.
However, after resizing the window, MouseMoved { delta } is half of the correct value originally expected.
In Screenshot 1 as well, MouseMoved { delta } is half the value after the window is resized, but if you move the window, it becomes normal.

All I could see was an anomaly in MouseMoved { delta }, but there may be other values returned by SDL that will change.
And even if you multiply that anomalous value by something like dpi scale, it won't be able to deal with the situation both before and after the window resizes.

That's very weird 🤔 The delta for mouse events comes straight from SDL, so that sounds like it could be an SDL bug. Do you get the correct values for the position in the event, or is that halved as well?

position seems to return the correct value.
I didn't notice it earlier.
In Screenshot 2, after the window resizes, the drawing area is correct, but the texture being drawn is half the size.
I didn't notice it earlier.
So it's not that there is something wrong with MouseMoved { delta }, but rather that the drawing scale seems to be halved after the window resizes.

Ah, I think I understand why all of this is happening now 😄

At startup, the projection matrix is set to match the window size. The GL viewport is left as the default, which I believe SDL sets to the drawable size.
Without any workaround/fix, on resize, both the projection matrix and the viewport are set to the window size. This leads to the 'bottom-left corner' issue you're seeing in screenshot 1, as the viewport is meant to match the drawable size.

I'm guessing that moving the window resets the GL viewport to the drawable size, and this is why your workaround works, but I'm not 100% sure!

With my code changes, on resize, both the projection matrix and the viewport are set to the drawable size. This allows the viewport to access the whole screen, but it effectively halves the size that things are being drawn, since the matrix has changed!

So I think the solution to get rendering to look the same in both high DPI and low DPI mode would be to always match the startup behaviour - i.e. set the projection matrix to the window size, and the viewport to the drawable size, effectively scaling everything to match the target DPI. I like this approach, as it should mean that existing code will 'just work' in high DPI mode.
I've been looking at Love2D's code while we've been discussing this, and I think this is the approach they take as well:

I will create a branch with these changes applied - hopefully then you can test them with your code 🙂

I have pushed a branch called hidpi - please let me know if this works as you'd expect 👍

Wonderful!
Your fixes in the hidpi branch seem to work fine.

Excellent! I've merged hidpi into main - for now, I've put it behind an off-by-default flag on ContextBuilder so that people's existing code will work the same, but I might flip the default in later versions depending on how well it works.
Thank you so much for your help in figuring out the right way forward with this 😄


Fix EBUSY errors on uv_loop_close (#1909).

#1909
Backports #1798 and #1633 to 1.1.x.

Added one more test. Will merge when CI is green.


Does not work after update.

After update integration does not work =(
Here is log:
smartthinq: Error on device update!
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 335, in _async_add_entity
await entity.async_device_update(warning=False)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 456, in async_device_update
await self.hass.async_add_executor_job(
File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/smartthinq/climate.py", line 344, in update
self.check_power()
File "/config/custom_components/smartthinq/climate.py", line 313, in check_power
power = self._ac.get_power()
File "/usr/local/lib/python3.8/site-packages/wideq/ac.py", line 324, in get_power
value = self._get_config('InOutInstantPower')
File "/usr/local/lib/python3.8/site-packages/wideq/client.py", line 431, in _get_config
data = self.client.session.get_device_config(
File "/usr/local/lib/python3.8/site-packages/wideq/core.py", line 486, in get_device_config
res = self.post('rti/rtiControl', {
File "/usr/local/lib/python3.8/site-packages/wideq/core.py", line 394, in post
return lgedm_post(url, data, self.auth.access_token, self.session_id)
File "/usr/local/lib/python3.8/site-packages/wideq/core.py", line 213, in lgedm_post
raise APIError(code, message)
wideq.core.APIError: ('0111', '제품 응답 지연')

Same thing with me

same issue here

Same issue for me

Mine broke as well when I updated - damn!

After update, mine broke - I had to get a new token via the $ python3 example.py -c US -l en-US process and it then worked again ....


Initial run at draft/2019-04 tests, complete with output

This is essentially the draft-07 test suite with the addition of the expected output.  I generated the output as I ran the test suite in Manatee.Json.
It's missing a few things:

Some of the optional tests don't pass (for various reasons), so these aren't included.  I can look at adding them manually, but it would be a serious undertaking to make all of them pass in .Net (e.g. zeroTerminatedFloats: "a float is not an integer even without fractional part" just isn't going to happen since I don't save the string representation of numeric values, so I can't test for integer vs fraction-less float).
I didn't create any tests for the keywords, formats, etc. that are new as of this draft.
There should be tests that validate annotation collection.  Maybe these should be optional since annotation collection is not required.

Resolves #247

@gregsdennis thanks!
This is obviously too big to review as-is, so still thinking about how to do that, but at least the tests are failing because the schema for tests themselves has now changed to add the output. I suppose the cheap way to fix that is to remove the additionalProperties, which would evade tackling #223 or having per-draft test suite schemas.

I think (maybe) looking at some of the larger, more deeply nested ones then assuming the others follow suit would be okay .  Other than that, ¯_(ツ)_/¯

I think another thing after I sent that is (assuming the new draft is fully backwards compatible) first merging a complete copy over, such that what's left is at least purely the diff from what's already here.
I'm going to try that later, unless you mind giving that a shot perchance and beat me to it.

@Julian off the top of my head the main incompatibilities are is that dependencies was split into dependentSchemas and dependentRequired, and that definitions was renamed $defs
However, it's still entirely valid to use definitions (because it's a placeholder location and doesn't actually do anything), and dependencies effectively becomes an extension keyword that people can support for backwards compatibility if they want to.  Both of these old keywords are still present in the schema meta-schema, they're just not present in the individual vocabulary meta-schemas.
Anyway, those are pretty simple changes so I think copy, commit, and then PR the copies would make sense.

Sure. If you'd like to split the migration of draft 7 -> 8 from the addition of the output, that's fine.  Just let me know. It's simple enough to generate the output.
I didn't think about the keyword differences.  It's probably a good idea to migrate the tests first.

OK, pushed a straight up copy (without yet handling the renames) to master directly, and pushed a rebased version of this @gregsdennis to the output branch, which at least looks slightly more manageable.
Will now need to handle reviewing that, and then handling the changes @handrews mentioned (thanks!)

I'll update this when we're happy that the new draft suite is ready.

Github just closed this for some reason. And the reopen button is gone too.
Thanks GitHub :/

GH merged the changes! ???!!

Github closed the associated issue (#247) because the first post says "Resolves #NUMBER".
The "Resolves' word is underlined.
I'm assuming you're referencing the issue as opposed to the PR, which cannot be re-opened once merged.

No, we can't figure out why this was merged. It's understandable that the issue closed when this merged, but why did this merge?

Just to confirm @Julian you did NOT merge this PR yourself?

If so, I'll contact github =]

You guys seem more interested in the mystery than I was :D
I merged the other PR (#267).
But, now looking, all that it looks like happened here is that @gregsdennis it looks like you put the commits from #265 on your master branch, then put commits after that that essentially reverted the ones adding output (e.g. 1ce104fb738fba63e7f111b1a608f7d2fa114175), then branched off of that to create the defs branch.
So when I merged that, the commits adding output were in fact merged (and then reverted by later commits).

It's still dumb IMHO by the way that GitHub won't let me reopen the PR, as a marker (as if it were an issue), but whatever.

Given you can close manually, I would guess you CAN open manually, but only IF the code hasn't been merged.

Oh. Oops.

Hard-reset the branch if you have to, that's simpler than any other option.

I've already opened a new PR.


settings: add mint derivation path

Codecov Report
Patch coverage: 100.00% and project coverage change: +0.01 :tada:

Comparison is base (8f2a0d6) 52.56% compared to head (2fc0309) 52.58%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #166      +/-   ##
==========================================
+ Coverage   52.56%   52.58%   +0.01%
==========================================
  Files          36       36
  Lines        2882     2883       +1
==========================================
+ Hits         1515     1516       +1
  Misses       1367     1367

Impacted Files
Coverage Δ

cashu/mint/startup.py
0.00% <ø> (ø)

cashu/core/settings.py
97.22% <100.00%> (+0.03%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Test vulnerabilities with custom IAST spans

Description
Test custom span creation by IAST when there's no active request
Check list
Your PR is not ready to be reviewed? Please save it as a draft :pray:

[x] Follows the style guidelines of this project (See how to easily lint the code)
[ ] CI is passing
[x] There is at least one approval from code owners

Yes to all? Feel free to merge it whenever you want :heart:

I've rewritted the test using the new test model, which is a little bit simpler.

marking the PR as draft, waiting for a fix for the lint issue

Hi @manuel-alvarez-alvarez,
Is this Pr still relevant? or can I close it ?

Hi @manuel-alvarez-alvarez,
Is this Pr still relevant? or can I close it ?

Hello, I've closed it as it's no longer relevant, thanks!


[fix](Metadata tvf) Metadata TVF supports read the specified columns from Fe

Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall


[Feature request]- Remembering type of syntax highlighting of unsual file extension

It will be really convenient that it can remember the type of syntax highlighting of some unsual extension files. I usually work with these files so I have to keep changing the type of syntax highlighting to the one i want to use.

Sure, It will available in next version.

Added in version <IP_ADDRESS> and will be available on play store soon.


Issue #2141 - Script & Link tag helpers should support generating cache-busting file version hash in URL.

#2141

/cc: @DamianEdwards @NTaylorMullen

Will re-visit tests in next iteration after:

File version defaults to true based on issue requirement double checked with @DamianEdwards that this is the intended functionality.
File version url bit should be ?v= OR &v= instead of always ?v=  Should add tests to validate this too

Talked with @DamianEdwards about caching and he said we should definitely be caching the disk reads.

Updated the PR. Have some tests to add. Will do that tomorrow.

:watch: Didn't look at tests, waiting for you to complete them.

:watch:

:watch:

Updated.. Please have a look.

:shipit: when @NTaylorMullen is happy

It looks good, just want to check on one thing with @DamianEdwards before we get it in.

:shipit: we'll grab damian later.

Add two tests that flow the request app base from LinkTagHelper/ScriptTagHelper all the way through to the version provider. :watch: Almost done.

:shipit:

Thanks guys! https://github.com/aspnet/Mvc/commit/0e783ace5898c761435541aa937085a8593a75d0