nixos/davmail: init

Motivation for this change
PR adds NixOS options for davmail, an IMAP/SMTP gateway server for MS Exchange.
Things done

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

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

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

@Infinisil I don't have access to a setup where I can test this anymore. It may be another month or so before I'm able.

I don't want to merge a PR untested. DynamicUser specifically enables some security related settings which might initially break things without the appropriate fixes.

@furrycatherder @Infinisil
I'd like to have some more options. I've drafted this up and successfully tested the IMAP against my companies exchange server. Please consider my commit which is on top of the original:
https://github.com/NixOS/nixpkgs/compare/master...aanderse:davmail

@aanderse I know everybody is doing this, but I'm really not a fan of making an arbitrary set of config values NixOS options. Instead see what I've done in #45470, that is, adding a single config option of a flexible type representing the configuration format. You can then set arbitrary config values comfortably through it, without the need for a NixOS option for everything.
This has the advantages:

All configuration values get properly merged and can be inspected via the config argument
Detached from upstream

No need to add/remove/change configuration values on upstream changes
No need to document all the values, the docs can stay localized in the place where they belong (upstream)
No need to copy upstream defaults which might change later (this could be solved with nullOr ... but that's kinda ugly)

No option bloat, NixOS evaluation time after all is still linear in the number of available options, even if you only use a fraction of them.
Simpler to implement and the module stays small and manageable
You can always add more options later if they're needed, but you can never take options away without (probably) at least one person being annoyed over it.

There are also a couple disadvantages, namely:

Can't type check everything as easily
Options for the package aren't as discoverable as others in the NixOS options manual.

But I think the advantages outweigh the disadvantages. Please consider doing this instead, I'd really love to see it being used more in nixpkgs :)

@Infinisil Might as well go back to cfg.configFile, then, and skip the step of translating INI to and from Nix expressions? :man_shrugging:

@Infinisil The options I added are the bare minimum required to operate the service and nothing more (except extraConfig, of course).
I've followed the conversations about reducing options which exist for no reason other than "because I can add them" and understand the problem. I've looked at some of the modules I have written and wish I understood these problems back then... but in this scenario I feel like all these options are justified.
I'll take a look at your linked PR to analyze what you did, but I think that absolutely required options for a service to run should still be listed individually, no?

@furrycatherder The problem with that is that you need to know the syntax of the file, and you can't set options in multiple NixOS modules and expect them to merge properly. Strings can only be concatenated together, whereas a Nix value can be merged nicely, which is invaluable for modularity.
@aanderse But then you have the problems of: You can't detect when the user tries to override logFilePath in extraConfig, it will just be ignored or so. Such a config option I described is very much like a semantic extraConfig type, except that the extra part falls away, because we don't need such a hardcoded config file anymore.
Note that doing it this way doesn't in any way limit what default values you may set, you can just do { config.services.davmail.config.ports.smtp = mkDefault 1025; }, etc. So these options aren't really necessary.
In my opinion, NixOS options should ideally only be used for things that interact with other parts of NixOS. E.g. take a look at my murmur module. There's options enable, config, openFirewall and acmeDomain, and each of those interact with other modules.

@aanderse But then you have the problems of: You can't detect when the user tries to override logFilePath in extraConfig, it will just be ignored or so.

To quote: https://github.com/NixOS/nixpkgs/pull/56423#discussion_r262249240

Does this need to be configurable? I don't think there's any need for it. Same for logDir tbh.

In regards to my experience with NixOS - at first I thought all the many configuration options in the module system was great. I've recently come to agree with the opinions of others that many of the options (such as stateDir, logDir, user, group, etc...) serve no real purpose or provide no value (and yes, at a cost). Debian doesn't offer any choice here and it has worked out great for them... why should we?
This is "replace all options with a config option set" is definitely a larger discussion that needs to happen. You have some great points. I'd like to hear from more people like you (ie. those much smarter than myself :smiley: ) on both sides of the discussion and hopefully get some sort of consensus. Have you started an RFC by chance?
As far as this PR goes... I'd really hate to see this PR get merged with the original configFile option because the beauty of the module system is that things generally "just work" with a minimal amount of configuration from the sysadmin.
@Infinisil thanks for all the hard work you put in, and I appreciate you trying to show us a better way.

This "replace all options with a config option set" is definitely a larger discussion that needs to happen. You have some great points. I'd like to hear from more people like you (ie. those much smarter than myself smiley ) on both sides of the discussion and hopefully get some sort of consensus. Have you started an RFC by chance?

Thanks, I haven't started an RFC yet, but I probably will at some point (soon?)
@aanderse @furrycatherder I've rewritten this module to have such a config option here: https://github.com/Infinisil/nixpkgs/blob/b51c0528a9df5e9637299796f23079137fe60115/nixos/modules/services/mail/davmail.nix . What do you think?

@Infinisil on irc we had discussed the idea of fewer options being better, but still having the ability to tweak if needed. The url is a required value as noted in your code. If we saw config as that last resort a sysadmin had to take to tweak the app for some special use case then I still think url should be a NixOS option. Consider that as soon as you need to tweak config you need applicationt specific knowledge, you have to read documentation on the app you are configuring. We had discussed how NixOS is awesome because you don't need application specific knowledge, you just type services.foo.enable = true; and you're done.
The thing that bothers me here is that in order to get the app working I need to tweak the config which means I need to read the manual. In the case of davmail only the url really jumps out at me as needing to be an option and documented in NixOS.
Thoughts?

@Infinisil I've based a new commit on top of yours which puts url as a nixos option, but leaves the other options as you did. I think this strikes the right balance as services.davmail.url = "blah"; (which there is no possible default value for) requires no application specific knowledge as it will be documented in https://nixos.org/nixos/options.html. This allows most users to have zero knowledge of the inner workings of davmail and simply read nixos options documentation, but provides the ability for advanced users who actually want to dig into davmail documentation to do whatever they need.
https://github.com/aanderse/nixpkgs/commit/ca578813436ca223a1492dee3cad221fb95f8ab7
Does this sit well with you?

@furrycatherder how does https://github.com/aanderse/nixpkgs/commit/ca578813436ca223a1492dee3cad221fb95f8ab7 sit with you then? Want to add that commit on top, squash them, and get this merged? I've already tested on my commit and everything is working.

@aanderse It looks good, I have to manually cherry-pick your commit (d'oh) but I'll get it done today. Thanks for your help! And thanks @Infinisil for the useful insight.

@Infinisil Should be ready for approval.


Create a new branch to support php 7.1 and better

Create a new branch to support php 7.1 and better

The current version of this package already works on php 7.1, with guzzle.


SigProfilerExtractor, no ID signatures, ValueError: operands could not be broadcast together with shapes (78,0) (0,0)

Dear developers,
I have been using SigProfilerExtractor to extract mutational signatures for a number of VCF files. For two of those files, no ID signatures were produced and the script exited with an error:
ValueError: operands could not be broadcast together with shapes (78,0) (0,0)
I do, however, get the deconvolution for SBS and DBS for those samples.
The VCF files contain INDELs as the first lines of the output indicate
Starting matrix generation for SNVs and DINUCs...Completed! Elapsed time: 2.3 seconds. Starting matrix generation for INDELs...Completed! Elapsed time: 1.8 seconds. Matrices generated for 1 samples with 0 errors. Total of 395 SNVs, 4 DINUCs, and 109 INDELs were successfully analyzed.
This is the content of the JOB_METADATA.txt
-------System Info-------
Operating System Name: Darwin
Nodename: [REMOVED]
Release: 21.4.0
Version: Darwin Kernel Version 21.4.0: Fri Mar 18 00:45:05 PDT 2022; root:xnu-8020.101.4~15/RELEASE_X86_64

-------Python and Package Versions-------
Python Version: 3.8.13
SigProfilerExtractor Version: 1.1.7
SigProfilerPlotting Version: 1.2.1
SigProfilerMatrixGenerator Version: 1.2.5
Pandas version: 1.4.2
Numpy version: 1.22.3
Scipy version: 1.8.0
Scikit-learn version: 1.1.0

--------------EXECUTION PARAMETERS--------------
INPUT DATA
	input_type: vcf
	output: [REMOVED]
	input_data: [REMOVED]
	reference_genome: mm10
	context_types: SBS96,DBS78,ID83
	exome: True
NMF REPLICATES
	minimum_signatures: 1
	maximum_signatures: 10
	NMF_replicates: 100
NMF ENGINE
	NMF_init: random
	precision: single
	matrix_normalization: gmm
	resample: True
	seeds: random
	min_NMF_iterations: 10,000
	max_NMF_iterations: 1,000,000
	NMF_test_conv: 10,000
	NMF_tolerance: 1e-15
CLUSTERING
	clustering_distance: cosine
EXECUTION
	cpu: 8; Maximum number of CPU is 8
	gpu: False
Solution Estimation
	stability: 0.8
	min_stability: 0.2
	combined_stability: 1.0
COSMIC MATCH
	opportunity_genome: GRCh37
\cosmic_version: 3.1
	nnls_add_penalty: 0.05
	nnls_remove_penalty: 0.01
	initial_remove_penalty: 0.05
	de_novo_fit_penalty: 0.02
	refit_denovo_signatures: True
	collapse_to_SBS96: True

-------Analysis Progress-------
[2022-06-07 15:38:25] Analysis started:

##################################

[2022-06-07 15:38:29] Analysis started for SBS96. Matrix size [96 rows x 1 columns]

[2022-06-07 15:38:29] Normalization GMM with cutoff value set at 9600

[2022-06-07 15:39:20] SBS96 de novo extraction completed for a total of 1 signatures!
Execution time:0:00:50

##################################

[2022-06-07 15:39:30] Analysis started for DBS78. Matrix size [78 rows x 0 columns]

[2022-06-07 15:39:30] Normalization GMM with cutoff value set at 7800

Thanks for your help!

Thanks for the help! I double-checked the mm10 reference genome and it is installed. It is interesting that I only get this problem with certain VCFs. Your response prompted me to generate the matrices first using SigProfilerMatrixGenerator and use those as input for SigProfilerExtractor, which worked great for SBS96, DBS78, and ID83. Using SigProfilerExtractor on the VCF does not work though. I have tried using the R wrapper first and then the Python version. I am sending you the VCF via email.
Thanks again 👍


npcs do not move

Describe the bug
NPCs do spawn, however they do not move around the map and just stand in one place with an Idle pose, the only way to get them to move is to bump into them but even then, they still proceed to stand still.
Situation for the error to occur
I just loaded into a map, and they do not move. I also tried multiple maps such as Bigcity_Improved and Rp_Southside. I have a custom model module installed that replaces civillian models and have disabled the "Disable Logic" setting.
Desktop:

Windows 10
Not exactly sure, but It is the update that was released on April 13th

Additional context
I had uninstalled the addon prior to this, and only reinstalled the addon recently (Not sure how relevant this is)

https://github.com/Shark-vil/background-citizens/pull/133
https://github.com/Shark-vil/background-citizens/releases/tag/1.9.3


OHW22 Python tutorial environment changes

Please comment with any Python packages that are need for OHW22 tutorials here. We are looking to get all of these at least a week before the main event starts, so we aren't changing anything for the undergrads!
Users can create their own conda environments for projects, so those packages do not need to be installed into the base environment (which will help keep it smaller and faster).
Please use a checkbox for each package so we can track what has been added, ex:
- [ ] some-awesome-package, link to documentation if the conda package isn't obvious to someone who doesn't use it

The current Python environment is defined in https://github.com/oceanhackweek/jupyter-image/blob/main/py-base/environment.yml

For Python env:

[ ] fsspec (https://anaconda.org/conda-forge/fsspec). Though, other packages (eg, echopype) probably already install it as a dependency (the same is true for other packages currently listed, such as numpy and s3fs); better to be explicit?

On a different note, git and nb_conda_kernels are listed twice in the Python env file. Twice the goodness?

Fsspec has been explictly added, but I should make sure some of the IAAS libraries are included.

[ ] s3fs
[ ] gcsfs
[ ] abfs

We need tensorflow for the undergraduate program tutorial on Friday, Aug 12.
https://www.tensorflow.org/install
We will also be using tensorflow for projects and it's a pain to install, so I'd say it is necessary to pre-install it beforehand instead of asking for each user to do it on their own.
You can install the CPU version of tensorflow if the GPU version is too much of a trouble to install.

[ ] gh cli tool https://github.com/conda-forge/gh-feedstock

@gmanuch Conda makes it easy to install either version of Tensorflow, but as we don't have GPUs, and the GPU accelerated version easily doubled the size of the build, I installed tensorflow-cpu.
If you truly have projects and tutorials that would benefit from GPU accelleration, it would probably be worth making a Conda environment that participants can install locally to use.

This request is not Python specific. Maybe it belongs in both Python and R.

[ ] nano

There's interest here (NW satellite) in having nano available. We mention nano in https://oceanhackweek.github.io/resources/prep/git.html#terminal-command-line-text-editor, but of course, if need be we can edit that text to remove mention of nano ... and replace it with notepad, maybe :roll_eyes:

Nano is in https://github.com/oceanhackweek/jupyter-image/pull/58


Extra step on "New" showing "Jupyter Notebook preview"

Steps to cause the bug to occur

File > New File

Actual behavior
Shows a pop-up dialog containing:

Text Editor, Built-in
Jupyter Notebook (preview), Python

Expected behavior
No pop-up, just open a new text editor window like it used to work. Jupyter shouldn't be showing up.
Your Jupyter and/or Python environment
Please provide as much info as you readily know

VS Code version: 1.48.0

Hi @killerkalamari, sorry for the trouble! Unfortunately I cannot reproduce this behavior. What operating system are you on, and can you confirm that you aren't on the Insiders version of VS Code?

Ubuntu 18.04 LTS
I'm not sure how to know if it's Insiders. Here is the repo I am using, and the package is called "code":
deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main
the Python extension is 2020.8.101144

Thanks for filing this issue.

No pop-up, just open a new text editor window like it used to work. Jupyter shouldn't be showing up.

This is how VSCode works, unfortuanately there's nothing we can do about this.
Jupyter notebooks is a new file type that we support and VS Code have decided to make the changes to add a new dropdown asking users to pick the file type.
There are other extensions that contribute other file types in this manner, and if you have those extensions installed you will end up with more items in this drop down.
At this point, there's nothing much we can do about this UI as this is controlled by VS Code.
Please could you file an issue upstream on VS Code for this.

not sure how to know if it's Insiders. Here is the repo I am using, and the package is called "code":

Even if you are in stable VS Code, you will get this dropdown as the extension has contribued a new file type (NOtebooks), and VS Code is updating the list of file types based on this contribution.


Increase Canary Stress Timeout to 4 hours

https://dev.azure.com/fluidframework/internal/_build/results?buildId=155905&view=logs&j=c7213352-638b-50b5-3c0e-1624a2e64f62&t=b07448fb-6653-5288-d115-8a4b2a0b6833&l=24 is timing out, seeing if thats the only issue

i'd rather us reduce the config to fit in the two hour window, as increasing the timeout will keep the lock held longer and slow down subsequent runs.

i'd rather us reduce the config to fit in the two hour window, as increasing the timeout will keep the lock held longer and slow down subsequent runs.
the current error rate is crazy high already, so its not like a longer run will be healthier

I believe (@RishhiB correct me if I'm wrong) that this is intended to be a temporary mitigation while we investigate the root cause for the time increase. If so, we should add a comment to that effect in both the PR description and on the line where we increased the timeout in the pipeline template.

i'd rather us reduce the config to fit in the two hour window, as increasing the timeout will keep the lock held longer and slow down subsequent runs.
the current error rate is crazy high already, so its not like a longer run will be healthier

I believe (@RishhiB correct me if I'm wrong) that this is intended to be a temporary mitigation while we investigate the root cause for the time increase. If so, we should add a comment to that effect in both the PR description and on the line where we increased the timeout in the pipeline template.

why not just let it fail. what purpose does letting it run longer serve. it consumes resources and prevents other runs so it does matter.

i'd rather us reduce the config to fit in the two hour window, as increasing the timeout will keep the lock held longer and slow down subsequent runs.
the current error rate is crazy high already, so its not like a longer run will be healthier

I believe (@RishhiB correct me if I'm wrong) that this is intended to be a temporary mitigation while we investigate the root cause for the time increase. If so, we should add a comment to that effect in both the PR description and on the line where we increased the timeout in the pipeline template.

why not just let it fail. what purpose does letting it run longer serve. it consumes resources and prevents other runs so it does matter.

(Sorry, I initially edited your reply while trying to reply to it 😅 I think I restored it to its original contents.)
It sounds like the tests are succeeding with the bumped timeout (again, @RishhiB correct me if I'm wrong), and there is a difference between tests running too long, and tests actually failing in ways we may want to detect. I'm not necessarily arguing one way or the other here (either way we need to reduce the amount of time being taken), but until we fix that, the constant failures due to timeouts can make it harder for us to detect real issues.

we don't really monitor the pipeline runs themselves. it all comes for logged error rate. i wouldn't make this change.

Stress tests on FRS prod/canary should not be taking more then ~30mins.  https://dev.azure.com/fluidframework/internal/_build/results?buildId=157361&view=results. If the test takes more then 2hours, we need to understand why. @Josmithr I know you are currently investigating this issue.


[Request] Move the System info tab to the end, and, Automatic hash calculator.

It is possible to move the "system info" tab at the end of the tab list next to extensions?
As this is an important tab and not related to any of the Image tools extensions, could be better to have it next to Extensions and settings.
Also, it is possible to have a Hash calculator in the system info tab?
I always prune my models to save disk space, and I think that changes the model's hash.. as your extension has access to the models and hashes, it is possible to make a script to create all HASHes for each model with one click?
Like, look for all the models without HASH, calculate the HASH, and assign the hash to the model.
If I'm not mistaken,  right now we need to select and use a model for the HASH to be calculated and assigned.
I have 493 models at the moment and less than 10% have the HASH.

i'd like if that was possible, but its webui that controls the layout.
i'll look into core webui code if i can make some layout customizations configurable.
closing here as not much can be done from the extension side.

and what about the Automatic hash calculator option? :D

that should be doable, but why do you need a hash before you ever used a model?
there is also a problem of loading many models sequentially one after another due to memory leaks when switching models (much better in recent versions of webui, but still present on some systems) - so loading 100 models to generate hashes would likely cause a crash.

Got it... thanks for your quick response!


Add audit log reason to channel deletion

Summary
This PR adds the optional reason argument for the audit log to hikari.api.rest.RESTClient.delete_channel and hikari.impl.rest.RESTClientImpl.delete_channel, the same way it already exists for e.g. edit_channel
Checklist

[x] I have run nox and all the pipelines have passed.
[x] I have made unittests according to the code I have added/modified/deleted.

Related issues
n/a, I brought this up on Discord earlier today and proceeded to fix it, as I was told it was likely an oversight

Added the changelog fragment, but unsure what to do about the failing tests on unix and macOS - can't reproduce these on my Windows machine, and from what I can tell based on the reported error, the failure has nothing to do with my code changes

Hey!
Thanks for the pull request!
The test failures are completely unrelated to this PR. They seem to arise from a change downstream in aiohttp. I will fix them shortly and then get this merged!


feat: add Indonesian blocklist

Hi @hisamafahri,
Thank you for the PR. I've created a new next branch where we can gather adjusted/improved lists, for the next major release (so we don't break id generation for existing versions). Do you think you could submit this PR there instead?

Hi, @4kimov. Sure. I've changed the target branch to next branch.
Thank you for the info 😄

Thank you.


actions for processing multiple permissions

The goal is to introduce the actions that existed on the page that is marked as obsoleted and named "Permissions (legacy)" on a page listing all permission sets. Processing multiple objects in a batch was highly appreciated feature so far.
How it looked on a paged marked for obsoletion:

How it is desired to look a new permission set card page:

Hi,
This looks good to me.
Small comment; I think we should align the captions of the actions with the field captions, e.g. "Allow Read", "Allow Insert", "Allow Modify" etc.
Furthermore, we need some tests for these actions.

Tests :) The magic word. I'll create some. Rename - roger.

@miljance the AL-GO Pipeline checks for rule "AA0005 Only use BEGIN..END to enclose compound statements."
You could fix this by the CodeAction of AL Outline Extension

corrected

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 11520.


Getting error object not callable in my program

OS : Windows 7
Python 2.7
total=0
temp =0
i=0;
j=1;
counter=0
MIN_val = 100
MAX_val = 0
file = open("C:/Users/Shrikanth/Desktop/Report.csv")
csv_reader = csv.reader(file)
next(csv_reader)
for all in csv_reader:
FileName, Channel, OrgSize, TransSize = all
if Channel == "TimesNow_LB":
total_redn= (float(OrgSize)- float(TransSize))/float(OrgSize) * 100
counter = counter + 1
MIN_val(float(total_redn))
MAX_val(float(total_redn))
AVG_val(float(total_redn))
print counter
def MIN_val(num):
global MIN_val
if MIN_val > num:
MIN_val = num
print MIN_val
def MAX_val(num):
global MAX_val
if MAX_val < num:
MAX_val=num
print MAX_val

So i'm getting     ''MIN_val(float(total_redn))
TypeError: 'int' object is not callable'' error.
Why does it happen and what is the solution?

hey @SsN03 ,
The problem here from what I see is that you are using the same name for a variable and a function. Also, to use a function you need to place it before it is called.
So, try renaming the functions MIN_val and MAX_val to find_min_val and   find_max_val and then moving them to the top of the file, or simply above the first call.
soooo:
def find_min_val( num):
    ...
def find_max_val(  num):
    ....
for ( ...):
    ...
    find_min_val( some_number)
    find_max_val( another_number)


fix: use ReadonlyArray type for table parameter / align option

This should be a backwards-compatible improvement to the markdownTable function parameter/option TypeScript types. In addition to allowing regular (writable/mutable) arrays, the user can now provide read-only arrays. This is possible because markdown-table does not modify these input arrays anyway.
Without this change, someone wanting to pass a read-only array to this function would have to first recreate the array (like [...arr]) in order to do so.
Related documentation about the readonly arrays in TypeScript:

https://mariusschulz.com/blog/read-only-array-and-tuple-types-in-typescript#read-only-array-types-in-typescript
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#a-new-syntax-for-readonlyarray

Thanks, released in 3.0.3!


gitignore a new config file

Now this PR right here is the reason GitHub created the Squash and Merge button.

@Scotchester no kidding.


Text input with suggestions

I might be missing something but is there a input with suggestions for the answer?
What I mean is a simple text input with a list of options from which I might choose one but does not have to and instead be able to wright my own. Something like a radio input but with an "other" option.

@SebastianKempf  If you have a question that has more than one option such as an checkbox or radio, when you type in the textInput, it will filter the list to match your search! Is this what you were asking?

Thanks for your reply. It's not quite what I mean. Maybe the following example helps to understand my case:
The Question would be:
"What do you want to talk about?"
Now, I what to give three suggestions (e.g.: "the weather", "everything and anything" and "the godfather") but also I want the user to be able to ignore these suggestions and type in the topic of his or her choice instead which does not have to be one of the suggestions.
If I use an radio or checkbox field to achive this I get a "Your input is not correct ..." reply which makes sense but excluded the use case above.

@SebastianKempf You have the SAME problem I have, I need the users to try to choose some items from the list, but if a item he seeks is not there, I wish he could add that. I currently achieved the action of adding another item into the list, but it has a LOT of bugs, I'm even considering not using this framework at all because of this. This feature is a MUST HAVE for the type of flow my platform need to have...

@SebastianKempf @shaolinjr this is a limitation of the UI, I would suggest building a new UI that accommodate your requirements. Adding a new type of UI is very easy, just ping me if you want to get the info on how. PRs are welcome.

Hey @felixnielsen I would love to know how hehe! I needed to use the .js, because I could not compile the .ts, can you help me with both? Building this new UI component and compiling the .ts (the Tag class somehow was compiling after all dependencies, even with the ///)

@shaolinjr sure, let me know the errors you are getting when compiling the .ts files.

@felixnielsen  it says that I had used the class Tag.ts before it was implemented, and I've just cloned the repository...

@shaolinjr can you send me the output?

@felixnielsen Course! Give my a sec'

@shaolinjr did you do a $ bower update  from ./ ? I think it is the es6-promise polyfill that disrupt the compiling and not an issue with Tag.ts

@frederikchristensen  Oww.. I didn't do that! I will try it now!

@felixnielsen Should I do anything else than bower update in root folder? It didn't work...

@shaolinjr please also do the $ typings install

@shaolinjr can you try and run $ gulp build?

Hey @felixnielsen thx for the reply would love to know how to build a new UI.

Hi @shaolinjr I think what they need, and actually I also need is a way to use ajax autocomplete.
Eg. The question from chatbot: Which location did this happen at?
And when they start typing an address, we can call ajax, and return autocomplete.
Is there a way to trigger this for a specific question?
Another question, related. Could we use a datepicker for specific questions.
thanks,
Dan

is there a way to autocomplete the user input like in android while user type it gets suggestions..something similar in conversational form

@Rchanger When you add a select field you can type and then options will be filtered.

@jenssogaard thanks for your reply, thats all with select,radio and checkboxes. I'm trying with normal text inputs

@Rchanger I see. It is not something we support currently. I can't really see a use case where that feature is needed, but if you can convince me it is something we might implement.

sometimes some of the address and words are to big if user gets suggestions that makes it is and if we have to give same input again and again in that case getting suggestions makes it is.

I see the use case for autosuggestions when typing in your address. That makes sense. What that would look like in CF would probably be:

event for handling user input changes (We already have that)
method for presenting suggestions returned by e.g. Google Maps Api

I'll discuss with the team but right now I do not think that it will take priority as it's a feature that would greatly rely on 3rd party API.

@jenssogaard That's great ,but actually I have done that only i have made ajax call on key change and given suggestions but problem is thàt EventDispatcher giving error in vuejs that its not a constructor....it works fine with JavaScript

@Rchanger Did you find a solution to submit the data ?
I build the autocomplete logic myself, but I can't make conversational from to proceed to next question.

i didn't get your question do you submit the form ? or it does not proceed to next question

I have an input for getting zipcode-city. The list is loaded via AJAX and manually appended to cf-input as ul > li.
When user clicks on an item, it fills the input with selected item, put the key in an hidden field of the form and removes ul autocomplete list.
From there, I do not know how to automatically go to next question.
User has to focus in the field and press ENTER to do that. But I want this action to be done automatically when an item is selected in the autocomplete list.

@Rchanger finally I came up with triggering click event on the hidden button.
It works :)

@melicerte Hi, I'm facing some same issue. Could you talk more about how you achieve that?
In my survey, I have some questions with so many choices(like choose which state you live in).
My idea is to hide the radio at first and be shown after typing in some letters (like show Washington after typing in wa). I'm trying to set up a UserInputEvents.KEY_CHANGE dispatcher on this particular question by id rather than the whole form, but I failed....Is it possible to do that?

Hi @sijiahahaha
What I did is loading a simple input text, let's say
<input type="text" name="city" />
On change, get data via AJAX. On success, add custom ul li in cf-input.
On click on li, set data where you want (current field or hidden input for example), then submit to next question.
jQuery version to submit :
$('cf-input cf-input-button').trigger('click');

@melicerte Thank you so much!!!

@melicerte Hi, I'm sorry to bother you again, but I still don't know how to implement....I'm a starter in AJAX and JQuery.
Could you indicate more about how to do it? And I don't know how to hide the buttons.
Thank you so much and so sorry for any inconvenience!!!!!

@sijiahahaha You should probably read jQuery documentation :
AJAX : http://api.jquery.com/jquery.ajax/
Attach events : http://api.jquery.com/on/
Trigger events : http://api.jquery.com/trigger/
You'll find documentation of what AJAX and events are is on the Internet, your favorite search engine is your friend ;)
Hide the buttons with CSS (display:none). You'll find plenty of documentation on the Internet.

Thank you for sharing!
On Fri, Jun 1, 2018 at 1:40 AM melicerte<EMAIL_ADDRESS>wrote:

@sijiahahaha https://github.com/sijiahahaha You should probably read
jQuery documentation :
AJAX : http://api.jquery.com/jquery.ajax/
Attach events : http://api.jquery.com/on/
Trigger events : http://api.jquery.com/trigger/
You'll find documentation of what AJAX and events are is on the Internet,
your favorite search engine is your friend ;)
Hide the buttons with CSS (display:none). You'll find plenty of
documentation on the Internet.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/space10-community/conversational-form/issues/178#issuecomment-393811717,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXVR4LqOOM8vz1QBjaNExMQzTvnTufCZks5t4P35gaJpZM4PXYry
.


Typed Errors in CoFuture

Is there a reason that CoFuture is not generic to its Error result type as well as its Value?  As it is, similarly to Swift's untyped throwing functions, I'm always needing a default clause when I switch over CoFuture failure cases.  I assume there's a good reason for designing it this way....

@AverageHelper Thanks for your suggestion. I’ve considered this option, but apart from generic Error it can also throw CoFutureError.canceled (in future other CoFutureError might be added). It’s necessary for completing coroutines when it is suspended by await() and canceling CoFuture. Alternatively, you can try this:
extension CoPromise {

    func success<T, E>(_ value: T) where Value == Result<T, E> {
        success(.success(value))
    }

    func fail<T, E: Error>(_ error: E) where Value == Result<T, E> {
        success(.failure(error))
    }

}

func makeFuture() -> CoFuture<Result<Int, SomeError>> {
    let promise = CoPromise<Result<Int, SomeError>>()
    promise.success(1)
    return promise
}

func useFuture() {
    DispatchQueue.global().startCoroutine {
        let future = self.makeFuture()

        switch try future.await() {
        case .success(let int):
        case .failure(let someError):
        }
    }
}

Or you can create some CoFutureWrapper<Value, Failure: Error>, which will be a wrapper for CoFuture<Result<Int, SomeError>>.
Currently, I’m not planning to add this feature because I want to keep the library api as simple as possible.

@AverageHelper It's even better to create typealiases:
typealias CoFutureResult<T, E: Error> = CoFuture<Result<T, E>>
typealias CoPromiseResult<T, E: Error> = CoPromise<Result<T, E>>

func makeFuture() -> CoFutureResult<Int, SomeError>


I18n Fr

This pr is about adding French lang on this guide.

[x] Have you explained what your changes do, and why they add value to the Guides?

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

Thanks @fbenariac! Is this translation complete as far as you know?
If so, hopefully we can get another French speaker to review before merging.

Yes it is.
Thank you for your reply. ;-)

@chuttarin and @luchogil96 thanks for your approvals. Could you confirm that you are French speakers and have at least skimmed the proposed translation? Sometimes it's hard to tell from code reviews with no commentary! 😄

I'm going to go ahead and merge this. If there are improvements to be made, anyone is welcome to submit pull requests. Thanks @fbenariac!

@mlinksva : Many thanks to you :+1:


Is this a false positive?

Hello,
My code has a reference to marshmallow-enum
Upon running Dependency Check, the report displays:
<EMAIL_ADDRESS>(Confidence:Highest)
cpe:2.3:a:marshmallow_project:marshmallow:1.4:*:*:*:*:*:*:*  (Confidence:Highest)

Is this counted as a false positive because it is not the marshmallow project included in my code but a utility for it?

I observe the same with the below packages:

SQLAlchemy-JSONField

<EMAIL_ADDRESS>(Confidence:Highest)
cpe:2.3:a:sqlalchemy:sqlalchemy:0.9.0:*:*:*:*:*:*:*  (Confidence:Low)

SQLAlchemy-Utils

<EMAIL_ADDRESS>(Confidence:Highest)
cpe:2.3:a:sqlalchemy:sqlalchemy:0.37.7:*:*:*:*:*:*:*  (Confidence:Low)  suppress

marshmallow-sqlalchemy

<EMAIL_ADDRESS>(Confidence:Highest)
cpe:2.3:a:marshmallow_project:marshmallow:0.23.1:*:*:*:*:*:*:*  (Confidence:Highest)  suppress
cpe:2.3:a:sqlalchemy:sqlalchemy:0.23.1:*:*:*:*:*:*:*  (Confidence:Highest)  suppress

zope.deprecation

<EMAIL_ADDRESS>(Confidence:Highest)
cpe:2.3:a:zope:zope:4.4.0:*:*:*:*:*:*:*  (Confidence:Highest)  suppress

python3-openid

<EMAIL_ADDRESS>(Confidence:Highest)
cpe:2.3:a:openid:openid:3.2.0:*:*:*:*:*:*:*  (Confidence:Highest)  suppress

I cannot seem to find these packages reported with vulnerabilities in other websites like Sonatype.
Please can you help me @jeremylong ?

Please see https://jeremylong.github.io/DependencyCheck/general/thereport.html.


context menu for translations gets squished on right side of the page

likely a bootstrap js issue

Not a bootstrap issue. I'm calculating position relative to the right click. If the right click is near the edge of the window, the window gets very thin.
Possible changes: smarter positioning or minimum width on the dialog div.


Skip setting workloadId for pods with non-workload owner refs

https://github.com/rancher/rancher/issues/22106
Looking at adding a test.

LGTM


Improve authentication - Slack only auth

Remove local registration / login
Remove "verified" flags from users.
Replace login link with "Sign in with slack" button.
Remove 55 dependencies! (bcrypt and passport-local).
Passport can be fully removed in future if required, replacing it with
pure JS Slack OAuth authentication.
DB reset is suggested as user database is completely changed.
This will close #38

Adding commentary from slack:
Some points:

Users can now no longer update their username, it will be same as slack "display name" (not Full name) We can add feature to re-fetch new name if users want to do it, but it will always be linked with their slack display name.
you probably already know the session problem. Until that issue is fixed, server reload will log out everyone. I plan to push PR for that today or tomorrow max.

A general thought now is that we can do away with the /profile page. We could just add a filter option to the /reviews page ("Only my reviews") and stick an edit button into those reviews that belong to the current user.

A general thought now is that we can do away with the /profile page. We could just add a filter option to the /reviews page ("Only my reviews") and stick an edit button into those reviews that belong to the current user.

@arjunmuralidharan I would be in favor of this but we might add additional functionality in the future where it would be important. Personally I like the condensed list of reviews in the profile page (as opposed to showing all the cards) but I take your point - it isn't really necessary anymore. Additionally, a filter to only show your reviews is a good feature regardless.
I don't see the harm in getting rid of the profile view right now, but if we do, I think we should save the routes and template because there is a good chance we will want to bring it back.


Pass SubnetID to vips.Create()

Fixes #12131

I signed it!

@k8s-bot ok to test

@anguslees

lgtm

LGTM


callback function for deleted items

I find myself needing to redirect a page after deleting with ajax and getting a response that it was successful. Here's what my code looks like:
swal({
  title: 'Are you sure?',
  text: 'You will not be able to recover this imaginary file!',
  type: 'warning',
  showCancelButton: true,
  confirmButtonColor: '#3085d6',
  cancelButtonColor: '#d44',
  confirmButtonText: 'Yes, delete it!',
  closeOnConfirm: false
}, function() {
  swal.disableButtons();
  setTimeout(function(){
    // The callback doesn't work here
    swal({ title: 'Failed', text: 'The file was not deleted', type: 'error', function(){ window.location.href = '/' } });
  }, 2000);
});

not swal2 related question.


Closses #47

Closses #47: When end of month timesheet request we calculate the required hours

:white_check_mark: Build mentorbot 1.0.140-mstcsffa completed (commit https://github.com/mentormate/mentorbot/commit/a7435f89ff by @rosenkolev)

Codecov Report

Merging #49 into master will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #49      +/-   ##
==========================================
+ Coverage   96.89%   96.91%   +0.01%
==========================================
  Files          50       50
  Lines        2096     2104       +8
==========================================
+ Hits         2031     2039       +8
  Misses         65       65

Impacted Files
Coverage Δ

...MentorBot.Functions/Connectors/OpenAirConnector.cs
98.35% <100.00%> (+0.07%)
:arrow_up:

...unctions/Processors/Timesheets/OpenAirProcessor.cs
96.99% <100.00%> (ø)

Continue to review full report at Codecov.

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


Package upgrade: location 4.1.1 --> 4.2.3

Summary
Package upgrade: location 4.1.1 --> 4.2.3
Changelog
[General] [Change] - Upgrade location from 4.1.1 to 4.2.3 (changelog)
Test Plan
Regression test the following areas:
./lib/core/providers/wayfinding.dart
./lib/core/providers/location.dart
./lib/app_provider.dart

Closing in favor of #1446


Does not work with my version of Daly Smart BMS Bluetooth

Hi,
I have four Sterling Power LiFePO batteries that have built in Daly Smart BMS BT, however they use a different message header to what you are using. There is more information here; https://github.com/roccotsi2/esp32-smart-bms-simulation/blob/main/README.md
I'm in the process of trying to get to test the stand alone code, but use not working too well, and I am not a Python programmer so is step learning curve for me/
extract;
Data format of used Smart BMS from Daly:
This section does not contain the full data format for Daly Smart BMS (there seems to be different Smart BMS that uses another data format, anyway), because I found no official documentation on this and therefore I analyzed the data packets. The results of my analysis are documented in this section. It seems to be the case that Smart BMS is waiting for some data (because Android App does send commands to my simulation while connected to it), but I do not know how to interpret these data yet. This section will be updated if I get new insights on the data format.
Daly Smart BMS expects following commands (data from client to Smart BMS):
Request RunInfo (tab status in Smart BMS app): D2 03 00 00 00 3E D7 B9
Request some unknown values (tab status in Smart BMS app): D2 03 00 A9 00 20 87 91
Request some unknown values (tab parameter in Smart BMS app): D2 03 00 80 00 29 96 5F
Daly Smart BMS uses the following format to send data (data from Smart BMS to a client):
<HEADER_READ><CONTENT_LENGTH>
<-----------CRC relevant------------->
HEADER_READ: always 0xD203
CONTENT_LENGTH: content length in bytes
CONTENT: the content (depends on the information which is sent)
CRC: checksum (2 bytes). The checksum is calculated over HEADER_READ, CONTENT_LENGTH and CONTENT. See function "getCRC" to see how CRC is calculated
The content lengths are in bytes:
Run Info: 124
Run Info Last Battery Value: 32
Set Info: 82
Version Info: 64
PWD: 6
Content format Run Info
All positions needs 2 bytes:
Position 0-31: Battery volt (in mV)
Position 32-39: Battery temperature in Celsius (offset: 40)
Position 40: current V (in 0,1V)
Position 41: current A (offset: 30000 in 0,1A)
Position 42: SOC - State Of Charge in Percent (in 0,1 percent)
Position 43: max cell voltage (in mV)
Position 44: min cell voltage (in mV)
Position 45: ???
Position 46: ???
Position 47: ???
Position 48: ???
Position 49: count battery volt
Position 50: count battery temperatures (max. 8)
Position 51: cycle
Position 52: JH on/off
Position 53: CDMOS on/off (1 = on, everything else off)
Position 54: FDMOS on/off
Position 55: average voltage (in mV)
Position 56: differential voltage (in mV)
Position 57: current KW (in W)
Position 58: Alarm1
Position 59: Alarm2
Position 60: Alarm3
Position 61: Alarm4
Content format Version Info
<App Version: 16 bytes as String> (reversed), <MCU Version: 16 bytes as String>, <Machine Version: 32 bytes as String>
Content format Run Info Last Battery Value
16 values (each 2 byte): Battery volt (in mV)

I also could not get this code to work on my Daly. I cloned another project and with some effort managed to get it talking. Maybe this can help in solving the issues

I am working on this.
@tomatensaus What project did you use?

I have published my changes here. https://github.com/tomatensaus/python-daly-bms

I'm having what appears to be a similar problem.  This is from a 500A Daly Smart BMS that's about 16 months old.
I've attached logs.  Let me know if there's anything else that would be helpful.
_addon_2af0a32d_batmon_logs (1).txt


Table filter need a scrollbar and search

What problem does this feature solve?
Scroll in filter list while it had lots of data and search inside filter list
What does the proposed API look like?

Please update filter with scroll bar. I need it

When nz-Table is having more data filter needs scroll bar

Why this is closed. Is something wrong?


Add JScript

Adding a language

[x] The code displays "Hello World"
[x] I have updated the readme to include the new language
[x] I have incremented the language count in the readme

Could you provide a link to the languages website?

Could you provide a link to the languages website?

Could you provide a link to the languages website?

Could you provide a link to the languages website?

 there's not really a website or even documentation anymore :/

did I just close my own PR ?? 🤦♂

You did.

thats a first

theres the wikipedia article i guess

I'm not really sure anymore tbh, JScript is weird, you should probably just ignore this

@MrBrain295 Next time, use squash merge.


Replace React\Socket\Connection with client TCP/UDP connection

This is an idea (and nothing more!) how the fix for https://github.com/reactphp/dns/issues/13 could look like.
This approach needs an additional PR against https://github.com/reactphp/socket-client/blob/master/src/Connector.php to allow creation with null Resolver (already allowed for the UDP socket).
The tests don't work due to the mock logic and I was not able to fix them, so not tested at all...

Thanks for filing this PR! :+1: I believe this has been resolved in the meantime, so I'm closing this for now. Please come back with more details if this problem persists and we can reopen this :+1:


Update cats-effect-laws, cats-effect-std to 3.2.4

Updates

org.typelevel:cats-effect-laws
org.typelevel:cats-effect-std

from 3.2.3 to 3.2.4.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel" } ]

labels: library-update, semver-patch

Superseded by #277.


about MFCDLL.dll

Hello
Thank you for your sharing, but there is no MFCDLL.dll, so I can not debug it.

Hello
What is MFCDLL.dll?How to get it?


Need to document transformation

Now the iohub.ngff_meta.TransformationMeta class is shown in iohub.ngff.Position.set_transform's docstring, but not linked since its docstring is not rendered in sphinx.

For now we do have the example rendered.


contract generation issue

While trying drogon with the tackle code generator, there is an error if you select "No" to "Is This a Token?" question. Tackle exits with the following error
drogon init
 _ .-') _  _  .-')                                             .-') _ ,---.
( (  OO) )( \( -O )                                           ( OO ) )|   |
 \     .'_ ,------.  .-'),-----.   ,----.     .-'),-----. ,--./ ,--,' |   |
 ,`'--..._)|   /`. '( OO'  .-.  ' '  .-./-') ( OO'  .-.  '|   \ |  |\ |   |
 |  |  \  '|  /  | |/   |  | |  | |  |_( O- )/   |  | |  ||    \|  | )|   |
 |  |   ' ||  |_.' |\_) |  |\|  | |  | .--, \\_) |  |\|  ||  .     |/ |  .'
 |  |   / :|  .  '.'  \ |  | |  |(|  | '. (_/  \ |  | |  ||  |\    |  `--'
 |  '--'  /|  |\  \    `'  '-'  ' |  '--'  |    `'  '-'  '|  | \   |  .--.
 `-------' `--' '--'     `-----'   `------'       `-----' `--'  `--'  '--'
✔ Name of the project … hello-world
✔ Do you want to initialize your Drogon project with samples? … no / yes
✔ Do you want to generate a keystore for this project? … no / yes
? Is this a token / NFT? No
? What is the contract name? main contract
Traceback (most recent call last):
  File "/usr/local/bin/tackle", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/dist-packages/tackle/cli.py", line 130, in main
    output = tackle(
  File "/usr/local/lib/python3.9/dist-packages/tackle/main.py", line 84, in tackle
    output = update_source(context)
  File "/usr/local/lib/python3.9/dist-packages/tackle/parser.py", line 1587, in upd
ate_source
    return run_source(context, args, kwargs, flags)
  File "/usr/local/lib/python3.9/dist-packages/tackle/parser.py", line 1051, in run
_source
    default_hook_output = context.default_hook().exec()
  File "/usr/local/lib/python3.9/dist-packages/tackle/parser.py", line 1235, in fun
ction_walk
    walk_sync(context=tmp_context, element=input_element.copy())
  File "/usr/local/lib/python3.9/dist-packages/tackle/parser.py", line 828, in walk
_sync
    walk_sync(context, v)
  File "/usr/local/lib/python3.9/dist-packages/tackle/parser.py", line 771, in walk
_sync

    run_hook(context)
  File "/usr/local/lib/python3.9/dist-packages/tackle/parser.py", line 747, in run_
hook
    parse_hook(hook_dict, Hook, context)
  File "/usr/local/lib/python3.9/dist-packages/tackle/parser.py", line 525, in pars
e_hook
    hook_output_value = run_hook_in_dir(hook)
  File "/usr/local/lib/python3.9/dist-packages/tackle/parser.py", line 329, in run_
hook_in_dir
    return hook.exec()
  File "/usr/local/lib/python3.9/dist-packages/tackle/providers/logic/hooks/match.p
y", line 77, in exec
    raise Exception(f"Value `{self.value}` not found in {self.case.keys()}")
Exception: Value `contract` not found in <ruamel.yaml.comments.CommentedMapKeysView
 object at 0x7f0a08060610>

If you select "Yes" to the question, tackle generation works as expected.
more details can be found here https://github.com/icon-community/drogon/issues/26

This is a simple fix but to be clear, code generation is WIP feature and still working on the templates. So in general, I think the code generator should not be exposed till the underlying templates have been implemented.

Closing this as this issue has been fixed but comment above still stands. Added warning to help other users.


Install Node.js

Install Node.js so that I can create a template using React and Next.js already in it

Installed with dependencies, template not yet created


Dispose does not release the file on an Amazon EFS drive

Once i call dispose, trying to delete the database file fails since it is still locked.

Can you show a small snippet that reproduces this behavior? For me, this works:
import 'dart:io';

import 'package:sqlite3/sqlite3.dart';

void main() {
  final db = sqlite3.open('/tmp/foo.db');
  db.execute('CREATE TABLE foo (bar);');
  db.execute('BEGIN;');
  db.dispose();

  File('/tmp/foo.db').deleteSync();
}

I've tested my environment with a simple python test and it runs by deleting the file
import os
import sqlite3 as s

def lambda_handler(event, context):
    con = s.connect("/mnt/jobucket/data.db")
    cur = con.cursor()
    cur.execute('CREATE TABLE IF NOT EXISTS artist(ArtistId INTEGER PRIMARY KEY AUTOINCREMENT,Name NVARCHAR);')
    cur.execute('INSERT INTO artist (name) VALUES ("Buddy Rich"), ("Candido"), ("Charlie Byrd");')
    records = []
    for a in cur.execute("SELECT * FROM artist"):
        records.append(a)
    con.commit()
    con.close()
    os.remove("/mnt/jobucket/data.db")
    return {
        'statusCode': 200,
        'body': records
    }

python "close" might do something different/more than your "dispose"

Could you post the Dart code that you're using at the moment to close the database and delete the file? For a good comparison, it would be helpful to have a Dart-equivalent of that Python snippet, maybe that helps to see where things might be going differently.

I've found the why I'm facing this issue: is you call multiple times 'open', then the 'dispose' is not releasing the file. Not sure if you can handle somehow this scenario.
Here is your modified example failing:
import 'dart:io';

import 'package:sqlite3/sqlite3.dart';

void main() {
  var db = sqlite3.open('/tmp/foo.db');
  db = sqlite3.open('/tmp/foo.db');
  db.execute('CREATE TABLE foo (bar);');
  db.execute('BEGIN;');
  db.dispose();

  File('/tmp/foo.db').deleteSync();
}

It is obvious that opening multiple connections requires closing each of them.
Going to close this issue


Convert docstrings to reStructuredText

Convert the existing documentation/docstrings to reStructuredText to enable Sphinx auto-documentation.

This has been completed via Feature-70: Sphinx Autodocs


[rmodels] Models with multiple materials/meshes not loading correctly on 5.0/master

[x] I tested it on latest raylib version from master branch
[x] I checked there is no similar issue already reported
[x] I checked the documentation on the wiki
[x] My code has no errors or misuse of raylib

Issue description
I have a model made in blender with multiple meshes and materials that load correctly in raylib 4.5, but after updating to 5.0 everything is in one material. I have provided a minimal example with a simple 2 mesh/material model.
Environment
Tried on multiple machines and operating systems
Issue Screenshot
4.5

master/5.0

Code Example
model.zip
#include "src/raylib.h"

int main(void)
{
    const int screenWidth = 800;
    const int screenHeight = 450;

    InitWindow(screenWidth, screenHeight, "model loading");

    Camera camera = { 0 };
    camera.position = (Vector3){ 2.0f, 2.0f, 2.0f };
    camera.target = (Vector3){ 0.0f, 0.0f, 0.0f };
    camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };
    camera.fovy = 45.0f;
    camera.projection = CAMERA_PERSPECTIVE;

    Model model = LoadModel("tomato.obj");

    Vector3 position = {0};

    DisableCursor();

    SetTargetFPS(60);

    while (!WindowShouldClose())
    {
        UpdateCamera(&camera, CAMERA_FIRST_PERSON);

        BeginDrawing();

            ClearBackground(RAYWHITE);

            BeginMode3D(camera);

                DrawModel(model, (Vector3) {0}, 1.0f, WHITE);
                DrawGrid(20, 10.0f);

            EndMode3D();

        EndDrawing();
    }

    UnloadModel(model);
    CloseWindow();

    return 0;
}

@njegg OBJ loading was redesigned due to other issues when mixing different number of materials and meshes. It probably needs another redesign.

Model loading breaks when calling LoadModel():
$ ./truck
INFO: Initializing raylib 5.1-dev
INFO: Platform backend: DESKTOP (GLFW)
INFO: Supported raylib modules:
INFO:     > rcore:..... loaded (mandatory)
INFO:     > rlgl:...... loaded (mandatory)
INFO:     > rshapes:... loaded (optional)
INFO:     > rtextures:. loaded (optional)
INFO:     > rtext:..... loaded (optional)
INFO:     > rmodels:... loaded (optional)
INFO:     > raudio:.... loaded (optional)
INFO: DISPLAY: Trying to enable MSAA x4
INFO: DISPLAY: Trying to enable VSYNC
INFO: DISPLAY: Device initialized successfully
INFO:     > Display size: 1920 x 1080
INFO:     > Screen size:  800 x 450
INFO:     > Render size:  800 x 450
INFO:     > Viewport offsets: 0, 0
INFO: GLAD: OpenGL extensions loaded successfully
INFO: GL: Supported extensions count: 226
INFO: GL: OpenGL device information:
INFO:     > Vendor:   Intel
INFO:     > Renderer: Mesa Intel(R) HD Graphics 620 (KBL GT2)
INFO:     > Version:  4.6 (Core Profile) Mesa 22.3.7
INFO:     > GLSL:     4.60
INFO: GL: VAO extension detected, VAO functions loaded successfully
INFO: GL: NPOT textures extension detected, full NPOT textures supported
INFO: GL: DXT compressed textures supported
INFO: GL: ETC2/EAC compressed textures supported
INFO: PLATFORM: DESKTOP (GLFW): Initialized successfully
INFO: TEXTURE: [ID 1] Texture loaded successfully (1x1 | R8G8B8A8 | 1 mipmaps)
INFO: TEXTURE: [ID 1] Default texture loaded successfully
INFO: SHADER: [ID 1] Vertex shader compiled successfully
INFO: SHADER: [ID 2] Fragment shader compiled successfully
INFO: SHADER: [ID 3] Program shader loaded successfully
INFO: SHADER: [ID 3] Default shader loaded successfully
INFO: RLGL: Render batch vertex buffers loaded successfully in RAM (CPU)
INFO: RLGL: Render batch vertex buffers loaded successfully in VRAM (GPU)
INFO: RLGL: Default OpenGL state initialized successfully
INFO: TEXTURE: [ID 2] Texture loaded successfully (128x128 | GRAY_ALPHA | 1 mipmaps)
INFO: FONT: Default font loaded successfully (224 glyphs)
INFO: FILEIO: [./share/truck.obj] Text file loaded successfully
INFO: MODEL: [./share/truck.obj] OBJ data loaded successfully: 5 meshes/8 materials

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
#0  0x827820369 in ???
#1  0x82781f495 in ???
#2  0x8227fdb5f in ???
#3  0x8227fd11e in ???
#4  0x7ffffffff8a2 in ???
#5  0x457fb1 in LoadOBJ
    at /tmp/raylib-master/src/rmodels.c:3995
#6  0x457808 in LoadModel
    at /tmp/raylib-master/src/rmodels.c:1037
#7  0x402e0e in MAIN__
    at examples/truck.f90:36
#8  0x4032b6 in main
    at examples/truck.f90:12

Le voy a tirar un ojo !

I have the same issue. My OBJs are exported with Blender triangulated - the else statement here is the issue - the tri count is actually an offset with there are two or more models in the same file:
https://github.com/raysan5/raylib/blob/dc7f81a7b0cbc666812c870841313e0c15a87a0c/src/rmodels.c#L4070-L4076
Here's an example - it crashes the demo here too - https://www.raylib.com/examples/models/loader.html?name=models_loading
obj_multiple_models.zip

Hello
I also have issues loading a model with 3 materials defined by an obj+mtl files.
Only the first material appearing in mtl file is used for the entire model.
BUT !
If I add this
model.meshMaterial[0]=0;
model.meshMaterial[1]=1;
model.meshMaterial[2]=2;
Then my model displays completely fine, with the right 3 materials ...

I had a similar issue, and the above code by BobSleigh38 didn't work for me with the materials not being set properly to the meshes. What I did was just export in Blender as a .glb file instead of an .obj file (so this isn't really a fix to this issue, rather a workaround).
When I initially did this however, all my meshes were centered at (0,0,0) and with normalized scales, so my fix was just to select all the objects in Blender (A), and apply the transforms by pressing Ctrl+A and selecting All Transforms like so:

Here's my export settings in Blender...

If it helps anyone else, for OBJ model loaded I ended up using this single file library to load OBJ models into raylib: https://github.com/Not-Nik/rlobj
Not sure the author would agree to swapping it out, but for anything more complicated than a single object it's required

@x1nixmzeng

Not sure the author would agree to swapping it out, but for anything more complicated than a single object it's required

The license for rlobj is a bit sketchy.  There is a statement about an exception at the repository but there is no such statement in the license document itself.  The exception is also for (indirectly-)named individuals, not arbitrary users of raylib.

@x1nixmzeng, @orcmid is right, the license does not seem to be compatible with raylib.

Is there any progress being done on this?

The OBJ format is broken for any file that uses multiple materials. Making it as a format in the current state useless.
Raylib reads the other materials but does not even bother to assign them.
The changes made for 5.0 were very bad and cause many more problems than they solve.
If we want to keep OBJ as a format, we need to upgrade to the current TinyOBJ and process the material assignments that are in the shape structure.
If we do not do this then OBJ is not a useful format in raylib since raylib will not respect the data. If we are unwilling to fix this then OBJ should be removed from the library, and made an external drop in header.
It is not useful for any real work beyond simple primitives in it's current format.

I am working on new code for raylib to read the data from TinyOBJ.
The loader has the data needed, it just needs to be converted properly into multiple meshes. The old code made too many assumptions and took some shortcuts that can be made.

This is a simple test drawing the data from tiny obj using the batch system, it's clear all the data is correct, thus it's there, we just need to get it into mesh buffers.
Splitting the mesh by material is required for OBJ to work simply due to how the OBJ format is defined. To OBJ the entire file is one mesh with N groups, each group can have N material assignments. To represent this as a raylib mesh, each group must be split into sub-meshes when the material changes, since a raylib mesh can only have one material. It is insufficient to combine sub meshes with the same material into one, since the group split must also be maintained. A user may need to manipulate individual groups.
To do this the mesh must be scanned multiple times to get the actual number of meshes and number of triangles per mesh.
As a side note, we may want to see about adding an array of mesh names to the model structure so that people can know what groups each mesh in the model came from, but that is not required for this fix.
It's tedious code but very possible. I will continue to work on it and make a PR when I have something.
It will involve an entirely new LoadOBJ function.

I have written a new LoadOBJ in this branch. It till needs massive testing and Debugging.
https://github.com/JeffM2501/raylib/tree/LoadObjNew

I literally just ran into this issue after trying to load an .obj file I created in Blender. Very interested in what you're doing, @JeffM2501 !

Yes use glb when possible, obj is an old and fragile format.

I'm closing this issue, feel free to send a PR when ready for further discussion there.

I’m eager to try material exports from blender.  .gltf does not look reasonable in naylib.  I’m using a icosphere at level 5 (I think 5 is highest you can go, I tried 10 and I had to kill my blender.  Currently I only have one material…


fix architecture types 7 and 9

As of the writing of this document, the following pre-boot architecture types
have been requested.
Type   Architecture Name

0    Intel x86PC
1    NEC/PC98
2    EFI Itanium
3    DEC Alpha
4    Arc x86
5    Intel Lean Client
6    EFI IA32
7    EFI BC
8    EFI Xscale
9    EFI x86-64

-- https://tools.ietf.org/html/rfc4578#section-2.1

So, funny you should say that... I submitted an errata for that RFC, which swaps those two values :) https://www.rfc-editor.org/errata_search.php?rfc=4578
Have you hit a system where the code as-is fails? Unfortunately, due to this mixup, I was worried that I would forever be forced to guess what 7 and 9 actually mean, depending on which RFC or piece of code a firmware implementor looked at...

I've found no such firmware, much less any bug therein. I found it in the code, and the erroneous RFC you reference was the first one I found. Sorry about that.

Phew, okay. I based the errata submission on the code in Intel's TianoCore UEFI implementation, which is what ~every x86 system uses as a base. It's unfortunate that there is this mismatch all over the place, but I think the way it works right now is empirically correct. If you find counter-examples, I'm more than happy to revisit and see what we can do to make things work.


Add partitioning mode support to cloudapi and weldr api

This pull request includes:

[X] adequate testing for the new functionality or fixed issue
[ ] adequate documentation informing people about the change such as

[ ] submit a PR for the guides repository if this PR changed any behavior described there: https://www.osbuild.org/guides/

This includes a vendored copy of https://github.com/osbuild/images/pull/189 which will be removed once it makes it into images and is updated in osbuild-composer. It also includes a copy of @ondrejbudai patch for gen-manifests from https://github.com/osbuild/osbuild-composer/pull/3722

Rebased and removed the unneeded commits that are already on main.


requirements.sh failed to run on ARM clients ?

my OS info
Linux phicomm-n1 5.9.0-arm-64 #20.11 SMP PREEMPT Sat Nov 21 20:50:45 CST 2020 aarch64 aarch64 aarch64 GNU/Linux

Welcome to Armbian 20.11 Focal with Linux 5.9.0-arm-64

No end-user support: built from trunk

System load:   2%           	Up time:       14:10
Memory usage:  15% of 1.70G  	IP:            <IP_ADDRESS> <IP_ADDRESS>
CPU temp:      56°C           	Usage of /:    83% of 6.0G

[ General system configuration (beta): armbian-config ]

running requirements.sh
chchang@phicomm-n1:~/git/PVE-VDIClient$ ./requirements.sh
Collecting proxmoxer
  Downloading proxmoxer-1.3.0-py3-none-any.whl (14 kB)
Installing collected packages: proxmoxer
Successfully installed proxmoxer-1.3.0
Collecting PySimpleGUIQt
  Downloading PySimpleGUIQt-0.35.0-py3-none-any.whl (82 kB)
     |████████████████████████████████| 82 kB 172 kB/s
ERROR: Could not find a version that satisfies the requirement pyside2 (from PySimpleGUIQt) (from versions: none)
ERROR: No matching distribution found for pyside2 (from PySimpleGUIQt)

any suggestions ??

Check out this blog post:
https://www.apalrd.net/posts/2022/raspi_spice_vdi/#setup-for-raspberry-pi
Let me know if this helps.
On Tue, Apr 19, 2022 at 7:22 PM Eric Chang @.***> wrote:

my OS info
Linux phicomm-n1 5.9.0-arm-64 #20.11 SMP PREEMPT Sat Nov 21 20:50:45 CST 2020 aarch64 aarch64 aarch64 GNU/Linux
Welcome to Armbian 20.11 Focal with Linux 5.9.0-arm-64
No end-user support: built from trunk
System load:   2%           	Up time:       14:10
Memory usage:  15% of 1.70G  	IP:            <IP_ADDRESS> <IP_ADDRESS>
CPU temp:      56°C           	Usage of /:    83% of 6.0G
[ General system configuration (beta): armbian-config ]
running requirements.sh
@.***:~/git/PVE-VDIClient$ ./requirements.sh
Collecting proxmoxer
Downloading proxmoxer-1.3.0-py3-none-any.whl (14 kB)
Installing collected packages: proxmoxer
Successfully installed proxmoxer-1.3.0
Collecting PySimpleGUIQt
Downloading PySimpleGUIQt-0.35.0-py3-none-any.whl (82 kB)
 |████████████████████████████████| 82 kB 172 kB/s

ERROR: Could not find a version that satisfies the requirement pyside2 (from PySimpleGUIQt) (from versions: none)
ERROR: No matching distribution found for pyside2 (from PySimpleGUIQt)
any suggestions ??
—
Reply to this email directly, view it on GitHub
https://github.com/joshpatten/PVE-VDIClient/issues/12, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABIP64QEXL27IGWJVBAYLJTVF5E2ZANCNFSM5T2NHZSQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

not working in my case.

Can you post the output of the commands?
On Wed, Apr 20, 2022, 2:44 AM Eric Chang @.***> wrote:

not working in my case.
—
Reply to this email directly, view it on GitHub
https://github.com/joshpatten/PVE-VDIClient/issues/12#issuecomment-1103575069,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABIP64SQ5XPWP6R3T6DRALDVF6YWRANCNFSM5T2NHZSQ
.
You are receiving this because you commented.Message ID:
@.***>

OK I made a change to fallback to Tkinter if QT is not available. Pull the latest file and run:
pip3 install PySimpleGUI

And run it again. Let me know if it works.

nothing different
chchang@phicomm-n1:~/git/PVE-VDIClient$ ./requirements.sh
Collecting proxmoxer
  Downloading proxmoxer-1.3.0-py3-none-any.whl (14 kB)
Installing collected packages: proxmoxer
Successfully installed proxmoxer-1.3.0
Collecting PySimpleGUIQt
  Downloading PySimpleGUIQt-0.35.0-py3-none-any.whl (82 kB)
     |████████████████████████████████| 82 kB 163 kB/s
ERROR: Could not find a version that satisfies the requirement pyside2 (from PySimpleGUIQt) (from versions: none)
ERROR: No matching distribution found for pyside2 (from PySimpleGUIQt)

chchang@phicomm-n1:~/git/PVE-VDIClient$ pip3 install PySimpleGUI
Collecting PySimpleGUI
  Downloading PySimpleGUI-4.59.0-py3-none-any.whl (493 kB)
     |████████████████████████████████| 493 kB 773 kB/s
Installing collected packages: PySimpleGUI
Successfully installed PySimpleGUI-4.59.0

chchang@phicomm-n1:~/git/PVE-VDIClient$ ./requirements.sh
Requirement already satisfied: proxmoxer in /home/chchang/.local/lib/python3.8/site-packages (1.3.0)
Collecting PySimpleGUIQt
  Using cached PySimpleGUIQt-0.35.0-py3-none-any.whl (82 kB)
ERROR: Could not find a version that satisfies the requirement pyside2 (from PySimpleGUIQt) (from versions: none)
ERROR: No matching distribution found for pyside2 (from PySimpleGUIQt)
chchang@phicomm-n1:~/git/PVE-VDIClient$

well , I found something interesting..
I downgrade the python from 3.8 to 3.8 using pyenv
chchang@phicomm-n1:~/git/PVE-VDIClient$ pyenv local 3.7.13
chchang@phicomm-n1:~/git/PVE-VDIClient$ cd
chchang@phicomm-n1:~$ cd git/PVE-VDIClient/
chchang@phicomm-n1:~/git/PVE-VDIClient$ python -V
Python 3.7.13

then run the requirements.sh
chchang@phicomm-n1:~/git/PVE-VDIClient$ ./requirements.sh
Collecting proxmoxer
  Using cached proxmoxer-1.3.0-py3-none-any.whl (14 kB)
Installing collected packages: proxmoxer
Successfully installed proxmoxer-1.3.0
Collecting PySimpleGUIQt
  Using cached PySimpleGUIQt-0.35.0-py3-none-any.whl (82 kB)
  Downloading PySimpleGUIQt-0.34.0-py3-none-any.whl (81 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 81.5/81.5 KB 948.2 kB/s eta 0:00:00
  Downloading PySimpleGUIQt-0.33.0-py3-none-any.whl (81 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 81.3/81.3 KB 2.6 MB/s eta 0:00:00
  Downloading PySimpleGUIQt-0.32.0-py3-none-any.whl (81 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 81.1/81.1 KB 3.2 MB/s eta 0:00:00
  Downloading PySimpleGUIQt-0.31.0-py3-none-any.whl (79 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 79.1/79.1 KB 3.2 MB/s eta 0:00:00
  Downloading PySimpleGUIQt-0.30.0-py3-none-any.whl (73 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.3/73.3 KB 2.8 MB/s eta 0:00:00
Installing collected packages: PySimpleGUIQt
Successfully installed PySimpleGUIQt-0.30.0
chchang@phicomm-n1:~/git/PVE-VDIClient$

damn , PySimpleGUIQt-0.30.0 successfully installed !?!?
but ,unfortunately , vdiclient.py is still not working.
chchang@phicomm-n1:~/git/PVE-VDIClient$ ./vdiclient.py
Traceback (most recent call last):
  File "./vdiclient.py", line 4, in <module>
    import PySimpleGUIQt as sg # pip install PySimpleGUIQt
ModuleNotFoundError: No module named 'PySimpleGUIQt'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./vdiclient.py", line 6, in <module>
    import PySimpleGUI as sg # pip install PySimpleGUI
  File "/home/chchang/.local/lib/python3.8/site-packages/PySimpleGUI/__init__.py", line 2, in <module>
    from .PySimpleGUI import *
  File "/home/chchang/.local/lib/python3.8/site-packages/PySimpleGUI/PySimpleGUI.py", line 128, in <module>
    import tkinter as tk
ModuleNotFoundError: No module named 'tkinter'

it still use python3.8 , so I update vdiclient.py to use pyenv python.
then here comes some different error messages
chchang@phicomm-n1:~/git/PVE-VDIClient$ ./vdiclient.py
Traceback (most recent call last):
  File "./vdiclient.py", line 5, in <module>
    import PySimpleGUIQt as sg # pip install PySimpleGUIQt
  File "/home/chchang/.pyenv/versions/3.7.13/lib/python3.7/site-packages/PySimpleGUIQt/__init__.py", line 2, in <module>
    from .PySimpleGUIQt import *
  File "/home/chchang/.pyenv/versions/3.7.13/lib/python3.7/site-packages/PySimpleGUIQt/PySimpleGUIQt.py", line 22, in <module>
    from PySide2.QtWidgets import QApplication, QLabel, QWidget, QLineEdit, QComboBox, QFormLayout, QVBoxLayout, QHBoxLayout, QListWidget, QDial, QTableWidget
ModuleNotFoundError: No module named 'PySide2'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./vdiclient.py", line 7, in <module>
    import PySimpleGUI as sg # pip install PySimpleGUI
  File "/home/chchang/.pyenv/versions/3.7.13/lib/python3.7/site-packages/PySimpleGUI/__init__.py", line 2, in <module>
    from .PySimpleGUI import *
  File "/home/chchang/.pyenv/versions/3.7.13/lib/python3.7/site-packages/PySimpleGUI/PySimpleGUI.py", line 128, in <module>
    import tkinter as tk
  File "/home/chchang/.pyenv/versions/3.7.13/lib/python3.7/tkinter/__init__.py", line 36, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'

no need to use pyenv to create virtualenv
install some python modules via apt
sudo apt install python3-pyside2.qt3dcore python3-pyside2.qt3dinput python3-pyside2.qt3dlogic python3-pyside2.qt3drender python3-pyside2.qtcharts libpyside2-py3-5.14 python3-tk

update requirement.sh
chchang@phicomm-n1:~/git/PVE-VDIClient$ cat requirements.sh
#!/bin/bash
pip3 install proxmoxer
#pip3 install PySimpleGUIQt
pip3 install PySimpleGUI

running requirement.sh
chchang@phicomm-n1:~/git/PVE-VDIClient$ bash requirements.sh
Collecting proxmoxer
  Using cached proxmoxer-1.3.0-py3-none-any.whl (14 kB)
Installing collected packages: proxmoxer
Successfully installed proxmoxer-1.3.0
Collecting PySimpleGUI
  Using cached PySimpleGUI-4.59.0-py3-none-any.whl (493 kB)
Installing collected packages: PySimpleGUI
Successfully installed PySimpleGUI-4.59.0

running vdiclient.py without a config

copy ini example to specified path and run vdiclient.py again , DAMN !!

error messages here
chchang@phicomm-n1:~/git/PVE-VDIClient$ ./vdiclient.py
Traceback (most recent call last):
  File "./vdiclient.py", line 430, in <module>
    sys.exit(main())
  File "./vdiclient.py", line 420, in main
    loggedin = loginwindow()
  File "./vdiclient.py", line 346, in loginwindow
    event, values = window.read()
  File "/home/chchang/.local/lib/python3.8/site-packages/PySimpleGUI/PySimpleGUI.py", line 9804, in read
    results = self._read(timeout=timeout, timeout_key=timeout_key)
  File "/home/chchang/.local/lib/python3.8/site-packages/PySimpleGUI/PySimpleGUI.py", line 9870, in _read
    self._Show()
  File "/home/chchang/.local/lib/python3.8/site-packages/PySimpleGUI/PySimpleGUI.py", line 9614, in _Show
    StartupTK(self)
  File "/home/chchang/.local/lib/python3.8/site-packages/PySimpleGUI/PySimpleGUI.py", line 16280, in StartupTK
    _convert_window_to_tk(window)
  File "/home/chchang/.local/lib/python3.8/site-packages/PySimpleGUI/PySimpleGUI.py", line 16167, in _convert_window_to_tk
    PackFormIntoFrame(window, master, window)
  File "/home/chchang/.local/lib/python3.8/site-packages/PySimpleGUI/PySimpleGUI.py", line 14477, in PackFormIntoFrame
    tktext_label = element.Widget = tk.Label(tk_row_frame, textvariable=stringvar, width=width,
  File "/usr/lib/python3.8/tkinter/__init__.py", line 3148, in __init__
    Widget.__init__(self, master, 'label', cnf, kw)
  File "/usr/lib/python3.8/tkinter/__init__.py", line 2572, in __init__
    self.tk.call(
_tkinter.TclError: expected integer but got "18.0"
chchang@phicomm-n1:~/git/PVE-VDIClient$

looks like we are almost there !

No i meant to run the command i posted in my last comment and then try
running the program
On Wed, Apr 20, 2022, 7:04 PM Eric Chang @.***> wrote:

nothing different
@.***:~/git/PVE-VDIClient$ ./requirements.sh
Collecting proxmoxer
Downloading proxmoxer-1.3.0-py3-none-any.whl (14 kB)
Installing collected packages: proxmoxer
Successfully installed proxmoxer-1.3.0
Collecting PySimpleGUIQt
Downloading PySimpleGUIQt-0.35.0-py3-none-any.whl (82 kB)
 |████████████████████████████████| 82 kB 163 kB/s

ERROR: Could not find a version that satisfies the requirement pyside2 (from PySimpleGUIQt) (from versions: none)
ERROR: No matching distribution found for pyside2 (from PySimpleGUIQt)
@.***:~/git/PVE-VDIClient$ pip3 install PySimpleGUI
Collecting PySimpleGUI
Downloading PySimpleGUI-4.59.0-py3-none-any.whl (493 kB)
 |████████████████████████████████| 493 kB 773 kB/s

Installing collected packages: PySimpleGUI
Successfully installed PySimpleGUI-4.59.0
@.***:~/git/PVE-VDIClient$ ./requirements.sh
Requirement already satisfied: proxmoxer in /home/chchang/.local/lib/python3.8/site-packages (1.3.0)
Collecting PySimpleGUIQt
Using cached PySimpleGUIQt-0.35.0-py3-none-any.whl (82 kB)
ERROR: Could not find a version that satisfies the requirement pyside2 (from PySimpleGUIQt) (from versions: none)
ERROR: No matching distribution found for pyside2 (from PySimpleGUIQt)
@.***:~/git/PVE-VDIClient$
—
Reply to this email directly, view it on GitHub
https://github.com/joshpatten/PVE-VDIClient/issues/12#issuecomment-1104565326,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD4U7MBLQCM6K3MBDEOVDVDVGCLPLANCNFSM5T2NHZSQ
.
You are receiving this because you commented.Message ID:
@.***>

--
https://www.westparkcom.net
https://www.westparkcom.net/
https://www.facebook.com/Westparkcom
https://plus.google.com/115805397773385459794
https://www.linkedin.com/company-beta/854512/
https://twitter.com/westparkcom
Confidentiality Notice: The information
contained in or attached to this message may be privileged and confidential
and protected from disclosure. If the reader of this message is not the
intended recipient, or an employee or agent responsible for delivering this
message to the intended recipient, you are hereby notified that any
dissemination, distribution or copying of this communication is strictly
prohibited. If you have received this communication in error, please notify
us immediately and delete the message as received.

OK I made a change to fix this, please pull the latest version.

I still can not install PySimpleGUIQt , so I have to update requirement.sh to install PySimpleGUI
#!/bin/bash
pip3 install proxmoxer
#pip3 install PySimpleGUIQt
pip3 install PySimpleGUI

after that , and with your latest commit , it works !! thanks !

I think what I'm going to do is modify the requirements script to only
install pysimplegui on ARM based systems because of the difficulty in
getting Qt installed on ARM. Thanks for your help!
On Thu, Apr 21, 2022, 8:26 PM Eric Chang @.***> wrote:

I still can not install PySimpleGUIQt , so I have to update requirement.sh
to install PySimpleGUI
#!/bin/bash
pip3 install proxmoxer
#pip3 install PySimpleGUIQt
pip3 install PySimpleGUI
after that , and with your latest commit , it works !! thanks !
https://camo.githubusercontent.com/2981a98bc87400854ae563a3e380bb3c2cc157fba61c485d2bec0e3ed5ae6e55/68747470733a2f2f692e696d6775722e636f6d2f68504a6f7936372e706e67
—
Reply to this email directly, view it on GitHub
https://github.com/joshpatten/PVE-VDIClient/issues/12#issuecomment-1105913205,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABIP64U4PDOG6GKAYZRP25DVGH55ZANCNFSM5T2NHZSQ
.
You are receiving this because you commented.Message ID:
@.***>

It seems like it's an issue upstream really (I found the same issue on Alpine Linux as I found on the Pi).
pip tries to install PySide2 and can't find a wheel that it thinks is compatible with your OS/arch, so it installs PySimpleGUIQt 0.30.0 (the last revision that didn't depend on PySide2). This doesn't work since it's really old.
You can install PySide2 through apt on Pi (or apk on Alpine) but pip doesn't realize it's installed outside of Pip so it still won't update to the latest PySimpleGUIQt. It's not hard since PySide2 is in the repos, but Pip can't figure that out.
My solution is to install PySimpleGUIQt at default (so it installs dependencies), then install ==0.35.0 --no-deps to upgrade version (at which point the app would try to load library and fail), and rely on the system package for PySide2. But this of course assumes PySide2 is in the repo of whatever distro you are running.

I recently made a change to the requirements.sh file to also install PySimpleGUI alongside PySimpleGUIQt so that if Python can't load PySimpleGUIQt it will fallback to PySimpleGUI. Hopefully that will reduce installation complexity for thin clients as well.

I'll try the change and see if it functions better. Not sure if Tkinter will have the same issue or not.

I am getting this error message when I run the vdiclient.py.
Traceback (most recent call last):
  File "/home/klo/Downloads/PVE-VDIClient/./vdiclient.py", line 436, in <module>
    sys.exit(main())
  File "/home/klo/Downloads/PVE-VDIClient/./vdiclient.py", line 420, in main
    if not loadconfig(config_location):
  File "/home/klo/Downloads/PVE-VDIClient/./vdiclient.py", line 81, in loadconfig
    win_popup_button(f'Unable to read supplied configuration from any location!', 'OK')
  File "/home/klo/Downloads/PVE-VDIClient/./vdiclient.py", line 148, in win_popup_button
    window = sg.Window('Message', layout, return_keyboard_events=True, no_titlebar=True, keep_on_top=True, finalize=True)
  File "/home/klo/.local/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 9606, in __init__
    self.Finalize()
  File "/home/klo/.local/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 10292, in finalize
    self.Read(timeout=1)
  File "/home/klo/.local/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 10067, in read
    results = self._read(timeout=timeout, timeout_key=timeout_key)
  File "/home/klo/.local/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 10138, in _read
    self._Show()
  File "/home/klo/.local/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 9878, in _Show
    StartupTK(self)
  File "/home/klo/.local/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 16809, in StartupTK
    _get_hidden_master_root()
  File "/home/klo/.local/lib/python3.9/site-packages/PySimpleGUI/PySimpleGUI.py", line 16696, in _get_hidden_master_root
    Window.hidden_master_root = tk.Tk()
  File "/usr/lib/python3.9/tkinter/__init__.py", line 2270, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

@joshpatten
Yes, I am running it as a regular user and inside of the default Raspberry Pi OS desktop environment.


Split out docker-compose specific code into "dev backend".

Long run this opens up the possibility of using a local K3S cluster, minikube
or even a kull K8S install as a dev backend.
For now it just moves things about!
Closes: #23

Thanks for the reviews @chrissinclairedited @gchazot!


Help a user who forgot to update their pnpm-lock.yaml

We could have some repository rule to re-run pnpm install --lockfile-only and verify that the users file is up-to-date.
Otherwise you might add a first-party dep to your package.json and then Bazel doesn't see that change.

@alexeagle Is this addressed by #157?

Resolved with update_pnpm_lock feature in npm_translate_lock


Throw errors for incorrect chat command parameters

Type: Feature
Fixes: Partially 138

enableSlow() - Checks delay is an integer between 1 and 1800.
enableFollowersOnly() - Checks delay is an integer between 0 and 129600.
timeout() - Checks duration is an integer between 1 and 1209600.

This does not currently complete whole issue. The issue also requires a sanity check of usernames and channel names to be resolved.

The use of return undefined; seems clunky and bad, but it's the only thing I can get to work.
Is there a better alternative?

Just don't use return at all - throw already exits the function.

throw already exits the function.

Never knew that. I guess that makes things easier.

I'm fine with these changes now - please either add the sanity checks for user and channel names, or remove the "fixes" from the initial description to not have this PR automatically close the corresponding issue.

I've removed the "fixes" part of the initial description.
I may add the sanity checks for user and channel names at a later date, but it's getting late now and I'm not sure when I'll next be able to do it.

It's fine, the PR can stay open for a while. I'm unlikely to release any new versions for the rest of the year.

Thanks for your effort!
@all-contributors please add @Naeviant for code


Added workflow to use FFMPEG to convert video to gif

Discord username (optional) please include so we can attribute you with our Contributor role (like so elvis#4747)
molson#0565
Description of changes (updated or new workflows)
New workflow to convert videos to gifs

@olsoma13 just reaching back out to see if you could make a few small changes based on aloke's feedback once you have free cycles

Closing for now, please re-open if you get the bandwidth to resolve the comments.


Optimize CI workflow.

The -eval option means most of the CI tasks no longer have to wait for all the others. If we run more of them in parallel, users will be able to get much quicker feedback on their pull requests.

At this point, it's possible to complete everything else while waiting for the brew bundle step of macos-ndll.

Credit to @Apprentice-Alchemist for figuring out why Homebrew was so slow.

Workflow succeeded in 25 minutes, compared to ~1h45m before this PR.

Great to see the CI finishing faster! I'm concerned about one thing that you changed, though. The removal of this dependency from the samples builds:
needs: package-haxelib

I made the samples builds rely on package-haxelib on purpose. The idea was to ensure that the Haxelib .zip bundle that we're generating is valid, and can build projects for all supported targets.

I see where you're coming from. On the one hand, with the brew issue fixed (for now), going back to the package-haxelib bottleneck shouldn't slow things down too much. On the other hand, it has been packaging correctly for years, it would throw an error if any of the pieces were missing, and we're testing the pieces individually. I don't see how it could start going wrong now.
How about this as a compromise? We test each target as soon as the required ndlls become available, saving time. Later when package-haxelib finishes, we test its output by downloading the bundle on Windows/Mac/Linux, and building a sample in HashLink. (HashLink because all we're trying to do is prove that the bundled version of Lime works.)

How about this as a compromise? We test each target as soon as the required ndlls become available, saving time. Later when package-haxelib finishes, we test its output by downloading the bundle on Windows/Mac/Linux, and building a sample in HashLink. (HashLink because all we're trying to do is prove that the bundled version of Lime works.)

Works for me!

Ok, the variables gave me a fair bit of trouble, and I think the 25-minute run might have been a fluke, but it's working.

Hmm, some of the Neko runs take a while to download the artifact. Maybe there are just too many in parallel. Could scale it back, I guess.

Ugh, reducing the number of jobs didn't even help. All of the time saved was because the iOS builds happened to go a bit faster.

As an experiment, let's try going back to hard-coded runs-on values. It's possible GitHub optimizes based on knowing in advance which machines to use, and that's how we got that 25-minute run.

It's definitely faster with hard-coded machines to run on. Still not 25 minutes, but I think that was only possible because we didn't test lime-haxelib.zip. @joshtynjala, does this look good to merge?


Is it possible to let Drupal VM built multiple Drupal sites (e.g. Drupal 7 and Drupal 8)  with a Drush make file?

Is it possible to let Drupal VM built multiple Drupal sites (e.g. Drupal 7 and Drupal 8)  with a Drush make file?
Or do I have to add the second Drupal Site manually by using a local Drupal code base  as mentioned in the doc

At this time, the actual building of makefiles or composer.json files is restricted to one site/app per Drupal VM instance.
If you're building your own playbook or want to fork Drupal VM to be able to support this, you could do something like (note this is totally untested, just an idea):
drupal_sites:
  - drupal_docroot: '/path/to/docroot1'
    drupal_build_makefile: yes
    [...]
  - drupal_docroot: '/path/to/docroot2'
    drupal_build_makefile: yes
    [...]

Then in your playbook:
  tasks:
    - include_role:
      role: geerlingguy.drupal
      with_items: drupal_sites

But I'm closing this issue as that's not something I'd like to officially support, just because of the extra complexity it would introduce (especially as Drupal VM is slowly but surely transforming into a dev tool you would add to a Composer-based project).

Thanks for the prompt reply.


Get a comprehensive canonical list of TZLabels

Since I started deduping TZLabels, I chose a bunch of arbitrary names. This could really be done more systemically.
% cabal repl -b tzdata
Resolving dependencies...
Build profile: -w ghc-9.8.1 -O1
In order, the following will be built (use -v for more details):
 - tzdata-0.2.20231222.0 (lib) (requires build)
 - fake-package-0 (lib) (first run)
Starting     tzdata-0.2.20231222.0 (lib)
Building     tzdata-0.2.20231222.0 (lib)
Installing   tzdata-0.2.20231222.0 (lib)
Completed    tzdata-0.2.20231222.0 (lib)
Configuring library for fake-package-0..
Warning: No exposed modules
GHCi, version 9.8.1: https://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /tmp/cabal-repl.-12638/setcwd.ghci
ghci> :m +Data.Time.Zones.DB
ghci> :set -XOverloadedStrings

For some labels, it's fine, I think:
ghci> fromTZName "Asia/Tel_Aviv"
Just Asia__Jerusalem

But for others, it's a bit weird:
ghci> fromTZName "Indian/Reunion"
Just Asia__Dubai

Not sure if there is a better canonical label than Dubai.

Closing since I removed deduping with release 2024a.


Validate: envoyfilter patch value should not be empty

I have seen invalid envoyfilters during upgrade, we should prohibit empty value if the operation is not remove
    patch:
      operation: INSERT_BEFORE
      value: {}

@hzxuzhonghu: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
4f417fd6e50a601c20567a463fe562f5f09da173
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@hzxuzhonghu: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
2830edefd82d5a8d6906ed8f9201efd3f2476024
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@hzxuzhonghu: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
babed0b3ddd957513b8a396714bff6b52fc8bc80
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test unit-tests_istio

@kyessenov  @mandarjog is there any real use case for inserting {}? I am thinking no so we should do this?

Yeah sometimes empty proto has a meaning, like in http2_protocol_options or router filter config.

It is different, this requires providing a root field at least. For http2_protocol_options, at least the field name should be set.

In other words, this is not checking the value of the subfields


Download Collection from webrecorder.io fails

Possibly related to issue #20, but today while attempting to download a 252MB collection from webrecorder.io the download has failed thrice. This is my first time using the tool, so I don't know if this is a particularly large file or not. Using FF 50.1.0 on Win7, FWIW

Hi, thanks for reporting the issue. We have not seen this recently, the logs report that the entire file was served.. Was any error message displayed when it failed, or just the browser stopped downloading?

Sadly, FF simply says Failed - webrecorder.io  I did finally get it all
down via Chrome!
--
Paul R. Pival
http://distlib.blogs.com
On 26 January 2017 at 14:42, Ilya Kreymer<EMAIL_ADDRESS>wrote:

Hi, thanks for reporting the issue. We have not seen this recently, the
logs report that the entire file was served.. Was any error message
displayed when it failed, or just the browser stopped downloading?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/webrecorder/webrecorder/issues/295#issuecomment-275523218,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAxusvrLlANSGDr5ImRXLvBFtzb8CJuMks5rWRNcgaJpZM4LvJoc
.

FWIW, I was just able to download a 103 MB collection using Firefox 50.1.0

I just downloaded a 374MB collection in FF 50 and in Chrome, over a relatively slow connection.. I think will chalk this up to networking errors, but will reopen if I find anything specific.


Take into account public folder override when configuring server

Closes GH-1252

@goshakkk take a look at https://github.com/hellyeahllc/brunch/pull/1 before merge please