Talos install error - couldn't get current server API group list: - tls: internal error

Following the pathway to install Talos, I have an issue where the cluster does seem to setup but the workers do not join, and the masters have these errors:
error refreshing pod status and the error is related to TLS (tls: internal error)
and also controller failed errors too

this is what I see in my terminal while setting it up

I think this is expected due to etcd not being bootstrapped?
https://github.com/onedr0p/cluster-template/blob/b6234fcbad3f9b3be13f94a563b6b73cbe3741f5/.taskfiles/Talos/Taskfile.yaml#L55-L63
At what point in the task commands did you get to and was there any errors on the client side?

In addition to @onedr0p's comments, when I tried to install Talos manually, it took some time for the master to be ready.
In both of the screenshots, uptime is only a few minutes so maybe it hasn't finished bootstrapping yet.
I went back to k3s in the meantime, but please update us on your Talos install progress via this template and I may take another stab at it when time permits.
Good luck!

I left it running the whole night yesterday and the same thing happened. I am also sure that I think all scripts are running and before the node first reboots/loads there are errors regarding something like a "admin" certificate
Any ideas?

Maybe give it another shot when you have a moment? Not sure what happened here to be honest :/

Disk selectors work I believe, data is being written to the disk and network is working o I believe on all the nodes.
The error is just the "tls: internal error" every time the masters try to fetch something from their own localhost IP

I saw this in your previous config:
    networkInterfaces:
      - deviceSelector:
          hardwareAddr: ""

That should be the mac address

I already populated those, I just redacted them when I sent it here. Every single value is present

https://github.com/onedr0p/cluster-template/assets/47594764/302633b5-723c-431d-af21-d0d041ca1c81
This is a recording of what happens

I wonder if you need to use a different type of network selector in the Talos/talhelper config or change something in the NIC settings on the VM in Proxmox?
I just hand-held someone thru the whole repo who is using bare-metal nodes and we had success after figuring out they were not setting the correct value for talos_nic which lead me to commit validation on that.

Do you have an example of what I would need to do?

I am probably not the best person to ask about that as I do not use any hypervisors in my life right now 😄
Maybe a good start is to review the  talos proxmox docs and see if everything lines up there and with the rendered config here.

Keep in mind there are a bunch of different network selectors you can use so maybe mac address is not the best? I dunno.


Remove redundant args from Pennsieve constructor

The Pennsieve class is a wrapper for the Agent and so doesn't need many startup parameters. This PR simplifies the Pennsieve constructor to reflect this.
It also factors out a HttpApiClient which can be constructed directly in case a user might want to call the Pennsieve API without running the Agent.

Getting attribute error (empty http_api):
p=Pennsieve(connect=False)
p.get('/datasets/discover')
AttributeError: 'NoneType' object has no attribute 'get'
pennsieve.py:200, in Pennsieve.get(self, url, **kwargs)
199 def get(self, url, **kwargs):
--> 200     return self.http_api.get(url, **kwargs)


Fix CSS for Markdown Preview

When clicking on preview in submit lab or quiz, or even make quiz / lab it often breaks the CSS  (makes it too wide)

Fixed in latest commit


fix: specify timeout in avm_proving.test.ts

#6689  👈
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @fcarreiro and the rest of your teammates on  Graphite

Benchmark results
Metrics with a significant change:

protocol_circuit_proving_time_in_ms (private-kernel-tail): 35,634 (-17%)
protocol_circuit_proving_time_in_ms (public-kernel-tail): 154,154 (-18%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.
| Metric |  |
| - |  |
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
64 txs

l1_rollup_calldata_size_in_bytes
1,412
1,412
1,412

l1_rollup_calldata_gas
9,428
9,464
9,464

l1_rollup_execution_gas
616,069
616,105
616,105

l2_block_processing_time_in_ms
1,300 (+2%)
4,809
9,559 (-1%)

l2_block_building_time_in_ms
47,801 (+1%)
189,242 (+1%)
378,179 (+1%)

l2_block_rollup_simulation_time_in_ms
47,630 (+1%)
188,616 (+1%)
376,942 (+1%)

l2_block_public_tx_process_time_in_ms
25,473 (+1%)
106,326 (+2%)
217,633 (+1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
9,517
14,486 (-1%)

node_database_size_in_bytes
14,495,824
21,385,296

pxe_database_size_in_bytes
18,071
29,868

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
512 leaves
1024 leaves
2048 leaves
4096 leaves
32 leaves

batch_insert_into_append_only_tree_16_depth_ms
10.5
17.2 (+1%)
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.7
31.8
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.609
0.526 (+1%)
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
48.9 (+1%)
76.1
246
473
929
1,841
N/A

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
543
1,055
2,079
4,127
N/A

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.500 (+1%)
0.469
0.446
0.441
0.440
0.439 (-1%)
N/A

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
58.6
112 (-1%)
356
697
1,384
2,759 (-1%)
N/A

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
106
208
692
1,363
2,707
5,395
N/A

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.507
0.502 (-1%)
0.483
0.478
0.478
0.479 (-1%)
N/A

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
62.5

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
107

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
0.554

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
83,794
665,117

Transaction size based on fee payment method
| Metric |  |
| - |  |


[2.5] switch to upstream saml library

#30291
PROBLEM:
Rancher was maintaining a fork of crewjam/saml to fix a since resolved issue.  This has put us behind the latest version of the upstream library.  Now that the original issue is resolved we can switch back to the upstream.
SOLUTION:
Switched back to the upstream library in go.mod.  In the latest version of crewjam/saml the generic cookie database interface was remove in favor of a more concise approach for storing data. link Rancher depended on this generic interface to store some extra rancher specific data. I pulled the removed code into the rancher saml package.
TESTING:
I tested this with a keycloak setup and was able to configure keycloak and log in as a keycloak user.

#30306

#30306


Install CloudStack From Source

ISSUE TYPE

Bug Report

COMPONENT NAME
Source Code
CLOUDSTACK VERSION
4.17 main branch
CONFIGURATION
N/A otherwise
OS / ENVIRONMENT
Ubuntu 18.04
Apache Maven 3.6.0
Java version: 11.0.15,
nodejs v16.16.0
SUMMARY
I Compiled CloudStack From Source But At The Compile Stage i encountered  With an ERROR mentioned in the follow screenshot. Whats The Mean  cannot find symbol
STEPS TO REPRODUCE
mvn clean install -P systemvm,developer

EXPECTED RESULTS
ACTUAL RESULTS
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project cloud-plugin-storage-volume-storpool: Compilation failure: Compilation failure:
[ERROR] /root/cloudstack/plugins/storage/volume/storpool/src/main/java/org/apache/cloudstack/storage/datastore/util/StorPoolHelper.java:[188,21] error: cannot find symbol
[ERROR]   symbol:   method setConversionPattern(String)
[ERROR]   location: variable patternLayout of type PatternLayout
[ERROR] /root/cloudstack/plugins/storage/volume/storpool/src/main/java/org/apache/cloudstack/storage/datastore/util/StorPoolHelper.java:[193,23] error: incompatible types: RollingFileAppender cannot be converted to Appender
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project cloud-plugin-storage-volume-storpool:

Thanks for reporting @ahmadamirahmadi007 I rechecked to find my commit shared above had no effected, I had to cherry-pick them again on 4.17/main branches - I caused this while merging <IP_ADDRESS> to 4.17 branch somehow the commits got missing (had no effect on fwd-merging which is perhaps because I used the -X ours flag :( )


Bootstrap Spinner will mess up banner and footer

Well I use this for a page of my site and the site has fixed banner and footer position. However, bootstrap spinner messes up with banner and footer in this case, placing itself on top of the banner or footer, while I want it to hide below the banner or footer.
This is a screenshot of how it looks like:
http://oi68.tinypic.com/54jgw4.jpg
So is there a way to fix this css problem with bootstrap spinner?

Well, this is weird. You could try playing with z-index: the higher an element has, the higher it is placed. However, I don't maintain this library anymore, there are many others which do things better.

I see, I will try to play with the z-index and see if it fixes problem. And btw what do you mean by 'there are many others which do things better'?

There are other spinner libraries which do the same task better. By the time I wrote this, I couldn't find any, but since then there are newers.

I see, so can you link me to the newer libraries that do the same thing as your library? Id appreciate this.

Sorry, I don't have any concrete one lately. Google is your friend :smile: Try them out


Go library fails to compile

I am trying to use the Ollama Go library in my own project, and running into the following error:
% go build .

../../go/pkg/mod/github.com/jmorganca/ollama@v0.0.18/llm/ggml_llama.go:31:12: pattern llama.cpp/ggml/build/*/bin/*: no matching files found

JayNakrani/ollama-lib-issue repo has the minimal repro code. Filing this issue based on discussion on discord

Root cause: The Go library/mod publishing expects the go generate generated code to be checked into the repo, and Ollama repo isn't doing that. So when importing the Go lib, it's not able to find the generated code, and we get the build error.

Ok, so I went down a rabbithole and tried a bunch of different solutions. Below is a summary of them all

#
Approach
Status
Notes

1
Import Ollama go library
❌
Does not work because of https://github.com/jmorganca/ollama/issues/505#issuecomment-1712968035

2
Git Subtree + Go Vendor
❌
Subtree does not work because the Ollama repo has own submodules, and git subtree doesn't seem to gel well with submodule

3
Git submodule + Go Vendor
❌
Can't get all vendor deps through go mod vendor -- stops at trying to vendor out the llm due to missing generated files. The "add-submodule followed by go mod vendor" doesn't work either becaue go mod vendor overrides the added submodule!

4
Fork Ollama & check-in generated binaries to get own working Go library
❌
The generated files are under ggml -- a submodule of Ollama repo. We'd need to do clone the ggml/llama.cpp and do own submodule in forked repos!

5
Thin proxy server around ollama serve
TBD
Have been trying to avoid this because it means having to ship yet another binary! But may be there is no way around it!

Ollama is not meant to be used as a library. Any suggestion otherwise is unintentional and unsupported. I suggest installing ollama and using the API

Ollama is not meant to be used as a library. Any suggestion otherwise is unintentional and unsupported. I suggest installing ollama and using the API

i don't understand your answer : There is a ollama app folder saying to build the lib https://github.com/jmorganca/ollama/blob/main/app/README.md

I think what @mxyng meant to say is that they did not mean to export it as a separate Go library. Because the router handler names start with a capital letter, they were automatically picked up as a Go library even though that wasn't the original intention.


Exception handling

Hi,
is it possible to add an Exception Handler?
I would prefer a 4xx Http Status Code with a message instead of a 500 Server error in some cases.
For example the ResourceAccessNotAllowedException
=> 403 - You do not have the resource access
Best regards
thoss

I have fixed this with the global Laravel Exception handler.
If it is not intended to add a specific ExceptionHandler, you can close this issue :)

For now i would suggest you to stick with global handler.


Update google java format and JDK

Fixes #4847

Proposed Changes

Update to JDK 17+
update the google java format version

Readiness Checklist
Author/Contributor

[x] If documentation is needed for this change, has that been included in this pull request

Reviewing Maintainer

[x] Label as breaking if this is a large fundamental change
[x] Label as either automation, bug, documentation, enhancement, infrastructure, or performance

Actions didn't kick off on the latest commit but I manually ran the actions here and got passing results: https://github.com/super-linter/super-linter/actions/runs/6831279503


Fix permissions to REST endpoints

Describe the bug
After one of recent changes it seems that something went wrong with user permissions when it comes to REST endpoints.
Taking for example Settings#POST endpoint - administrator is not able to do anything there and is greeted with 401 - Unauthorized. This definitely need to be fixed.
To Reproduce
Steps to reproduce the behavior:

Send POST request to create a new Setting (authenticate as admin - 1000)
See the 401 - Unauthorized error page in response

Expected behavior
Users with the proper roles should be able to execute the REST endpoints
Observed behavior
User with high privileges like administator is not able to create new Settings
Screenshots

Additional context

it is possible that this bug is somewhat related to web.xmls being join with maven-cargo plugin

Closing as not relevant


Link to website in about section

Add the link https://rfc.stitcher.io in this repo's "About" section!

Thanks for pointing that out, it's fixed :)


Fix compatibility with react-refresh-swc, which doesn't provide a default export

Description 📖
Vite 4 includes support for react-refresh-swc, which replaces Babel with SWC for even faster hot reloads. However, unlike react-refresh, it doesn't provide a default export. Thus, it's necessary to directly import injectIntoGlobalHook and call it rather than importing defaults as RefreshRuntime
See the plugin's preamble implementation:
https://github.com/vitejs/vite-plugin-react-swc/blob/00fe7e406f0a7568ee7aabb3c65e6debdc8e8bd3/src/index.ts#L10-L13
The Fix 🔨
We just directly import injectIntoGlobalHook rather than importing the whole module.

Hi Chris!
Unfortunately this would break compatibility with the official @vitejs/plugin-react, which provides a default export instead.
Please make a PR to the swc plugin, so that it adds a default export with injectIntoGlobalHook, which is backwards comp


Konradjanica.heightfitting

https://github.com/grantland/android-autofittextview/issues/19
Adds an option to allow text downsizing to fit height.
See methods:

setHeightFitting()
isHeightFitting()

See members:

isHeightFitting
heightToFit

Works in project https://github.com/KonradJanica/aMatch
Notes:

I did it very quickly and AutofitLayout isn't tested but only one line was added.
mIsHeightFitting is a static member due to autofit() being a static method

P.S. sorry about the entire file change, I think my IDE changed something... I suggest maybe leaving it as a new branch until thoroughly tested.

Hrm, this is very difficult to review as the entire files are shown as changed. Any chance you can update this with correct diffs?

I'll take a look, no guarantees because I'm a bit stretched for time this month. I think without thinking I automatically changed tab indenting to 4 space indenting via the android studio prompt :-(

This line:
int targetHeight = view.getHeight() - view.getPaddingTop() - view.getPaddingTop();

Should it not be:
int targetHeight = view.getHeight() - view.getPaddingTop() - view.getPaddingBottom();

?

Hey @grantland. can you merge this please? My specific case needs this badly.
Thanks.


Markdown broken?

Hi,
i updated to the last version and since then I do have trouble with headings:

The markdown '###' is not rendered anymore correctly. Is there a trick? thanks!

ah, it needs a white space now

Hi, yes this is in the new Markdown reference.


UnicodeEncodeError in retrieve_author() with non-ascii names

I was searching for "Augustín Carstens" with Scopus ID<PHONE_NUMBER>:
>>> info = scopus.retrieve_author("6603722641")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build/bdist.linux-x86_64/egg/pyscopus/pyscopus.py", line 101, in retrieve_author
UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 2793: ordinal not in range(128)

I'm on Ubuntu 14.04 using  with Python 2.7. I however don't know which version of pyscopus I am on as __version__ is not defined.

Updated version fixed this issue.

This one does not work completely. While there is no error, the name is wrong because the non-ascii character is simply removed.
>>> info = scopus.retrieve_author("6603722641")
Name: Agustn G. Carstens
Affiliation: International Monetary Fund (n/a,Washington,DC,n/a,United States)
>>> info
{'current-affiliation': [{'address': 'n/a,Washington,DC,n/a,United States', 'id': '60021406', 'name': 'International Monetary Fund'}], 'citation-count': 30, 'last-name': 'Carstens', 'subject-areas': ['Development', 'Accounting', 'Finance', 'Economics and Econometrics', 'Geography, Planning and Development'], 'affiliation-history': [{'address': 'n/a,Washington,DC,n/a,United States', 'id': '60021406', 'name': 'International Monetary Fund'}, {'address': 'Central Bank of,n/a,n/a,n/a,Mexico', 'id': '101232294', 'name': 'IMF'}, {'address': 'Avenida 5 de Mayo 2, Colonia Centro,Delegacion Cuauhtemoc,DF,6059,Mexico', 'id': '60092432', 'name': 'Banco de Mexico'}], 'cited-by-count': 29, 'first-name': 'Agustn G.', 'journal-history': ['Journal of Asian Economics', 'American Economic Review', 'IMF Staff Papers', 'Pakistan Development Review', 'American Economic Review', 'Columbia Journal of World Business', 'Trimestre Economico', 'Finance and Development'], 'document-count': 7}

I understand what you want but for my tasks, I simply remove ascii for easier preprocessing of text mining. That's why I just ignore other encoding characters.
If you really need this, I can work on this later today or tomorrow.

Well it's not about me, I am just reporting problems/issues related to an
open-source software project ;)
On 4 October 2016 at 17:07, Zhiya Zuo<EMAIL_ADDRESS>wrote:

Reopened #3 https://github.com/zhiyzuo/python-scopus/issues/3.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/zhiyzuo/python-scopus/issues/3#event-811898554, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGxGdidnF_Q-bRzliKsWv5iHZ4JjpAgjks5qwmuVgaJpZM4KGieH
.

--
Michael E. Rose / PhD student
University of Cape Town | African Institute of Financial Markets and Risk
Management & School of Economics
michael-e-ro.se/

I got it fixed not and the version now is upgraded to 0.7.2.post4.
Thank you for bringing this up and let me make this project better. Let me know if the modified version works for you now.

Looks perfect, thank you!


Report structure API / DX

Overview
A report is currently a list of components, such as Markdown, Plots, Tables etc. It looks similar to  React code without JSX
In the real world, reports end up looking a bit like this:
from datapane import Report, Plot, Table, Markdown, Asset

report = [
    Markdown(f"""### Analysing clogged toilets with Google Trends
You may often find yourself wondering about the seasonality and geopraphy of toilet clogging. Which US states are the biggest culprits? Is it worse at a certain time of year?
Thanks to the marvels of modern data, we can pull this information from the Google Trends API and find out..."""),
    Table.create(df),
    Markdown("Let's plot this, both over time and per month (using the Python library Altair).."),
    Plot.create(all_trends),
    Markdown("Toilet clogging looks pretty seasonal, with a big spike around Christmas, which makes sense (I guess?) It seems to be generally growing over time, and we are at an all time high, presumably due to folks isolating and working from home.\n\nLet's use Facebook's Prophet forecasting library to try and forecast for the coming years, and analyse the nature of the seasonality."),
    Table.create(forecast),
    Plot.create(fig1),
    Plot.create(fig2),
    Markdown("Looks like 2021 is going to be a big year for clogged toilets."),
    Markdown("### The geography of cloggage\nWe can also query Google Trends to find which states are the biggest culprits, and plot it on an interactive map."),
    Plot.create(loo_map),
    Table.create(geo),
    Markdown("""### Conclusion\n
I hope you found these important analyses and visualisations informative. You can find the notebook which generated this report [on Github]().
If there's enough interest, I'd be happy to upload it to Datapane as an interactive script which works with other keywords.
""")
]

Generally, it's a series of plots/tables/etc. interspersed with Markdown/text. As text is such an important primitive, we could remove the need for a markdown block, so your report would just be:
report = [
      f"""### Analysing clogged toilets with Google Trends
You may often find yourself wondering about the seasonality and geopraphy of toilet clogging. Which US states are the biggest culprits? Is it worse at a certain time of year?
Thanks to the marvels of modern data, we can pull this information from the Google Trends API and find out..."""),
    Table.create(df),
   "Let's plot this, both over time and per month (using the Python library Altair)..",
    Plot.create(all_trends),
    "Toilet clogging looks pretty seasonal, with a big spike around Christmas, which makes sense (I guess?) It seems to be generally growing over time, and we are at an all time high, presumably due to folks isolating and working from home.\n\nLet's use Facebook's Prophet forecasting library to try and forecast for the coming years, and analyse the nature of the seasonality.",
    Table.create(forecast),
    Plot.create(fig1),
    Plot.create(fig2),
    "Looks like 2021 is going to be a big year for clogged toilets.",
    "### The geography of cloggage\nWe can also query Google Trends to find which states are the biggest culprits, and plot it on an interactive map.",
    Plot.create(loo_map),
    Table.create(geo),
    """### Conclusion\n
I hope you found these important analyses and visualisations informative. You can find the notebook which generated this report [on Github]().
If there's enough interest, I'd be happy to upload it to Datapane as an interactive script which works with other keywords.
"""
]

A more left of field idea is that, as Markdown/text is such an integral part of any report, we could invert this, and base reports more around Markdown -- with other components as format strings. This could be easier to:
a. Write a report -- I even could preview and write in a regular Markdown editor, and bring it into Python to add plots etc.

b. Visualise the end result when writing a report
That said, I'm not sure of the technical implications.
f"""
### Analysing clogged toilets with Google Trends

You may often find yourself wondering about the seasonality and geopraphy of toilet clogging. Which US states are the biggest culprits? Is it worse at a certain time of year?
Thanks to the marvels of modern data, we can pull this information from the Google Trends API and find out...

{Table.create(df)}

Let's plot this, both over time and per month (using the Python library Altair)..

{Plot.create(all_trends)}

Toilet clogging looks pretty seasonal, with a big spike around Christmas, which makes sense (I guess?) It seems to be generally growing over time, and we are at an all time high, presumably due to folks isolating and working from home.\n\nLet's use Facebook's Prophet forecasting library to try and forecast for the coming years, and analyse the nature of the seasonality.

{Table.create(forecast)}
{Plot.create(fig1)}
{Plot.create(fig2)}

Looks like 2021 is going to be a big year for clogged toilets.

### The geography of cloggage

We can also query Google Trends to find which states are the biggest culprits, and plot it on an interactive map.

{Plot.create(loo_map)}
{Table.create(geo)}

### Conclusion

I hope you found these important analyses and visualisations informative. You can find the notebook which generated this report [on Github](). If there's enough interest, I'd be happy to upload it to Datapane as an interactive script which works with other keywords.
"""

this is blocked until we have an XML implementation

Closing as you can now add text without a Markdown block, and we dropped the create method so this is a lot cleaner now.


fix(prost-build): re-export protoc_from_env & protoc_include_from_env

fixes: #1062
I'm adding this to fix a breaking change introduced in https://github.com/tokio-rs/prost/pull/1020 where these items were moved.
Since 0.12.5 this is causing build failures after cargo update.
   Compiling grpc-build v6.1.0
error[E0432]: unresolved imports `prost_build::protoc_from_env`, `prost_build::protoc_include_from_env`
 --> /Users/ethan.brierley/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpc-build-6.1.0/src/lib.rs:3:19
  |
3 | use prost_build::{protoc_from_env, protoc_include_from_env, Module};
  |                   ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^ no `protoc_include_from_env` in the root
  |                   |
  |                   no `protoc_from_env` in the root

@gibbz00
Looking at #1015 I'm guessing that making these private was intentional. I'm guessing this was expected to be included only in a breaking release. If you'd like these to be private you can open a follow-up PR deprecating the re-exports so that the change remains non-breaking. The re-exports can then be removed in 0.13.0.

Yup, let me yank v0.12.5, we didn't think this was going to cause an issue but clearly it does 😄 thanks for the report.

It's been yanked, we will work on a follow up release that fixes these semver issues.


documentation fixes

[x] Have you followed the guidelines in our Contributing document?
[ ] [v2] Have you created a JIRA and used it in the commit message?
[ ] [v4] Have you created a GitHub Issue and used it in the commit message?
[x] Have you checked to ensure there aren't other open Pull Requests for the same issue?
[ ] Have you built the project locally prior to submission with mvn clean install?

Thanks!

Linux JDK 11 failure is a known flaky test from MP FT TCK.


Minor wording changes

@AErmie : Thanks for your contribution! The author, @rayne-wiselman, has been notified to review your proposed change.

@PRMerger17 @AErmie Thanks! These changes are good with the exception of "internet", which we don't capitalize.

@AErmie @PRMerger17  Hi, I see that these changes were never merged. Since there are now a number of conflicts on this file, I've added the edits in another PR - https://github.com/MicrosoftDocs/azure-docs-pr/pull/53431
@AErmie Thanks for your help on this!

MicrosoftDocs/azure-docs-pr#53431 has merged, so we'll close this pull request.


tar.exe breaks actions/cache

The included tar.exe causes actions/cache to break on the Windows-2022 runner in case it is added to the path. As a temp fix, i renamed it during the workflow, but updating tar.exe (and perhaps the other binaries) is advised.

Wait, now that you mention it, there is another tar.exe in C:\Program Files\Git\usr\bin:

The cache action will use GNU tar instead of bsd tar on Windows. This should work on all Github Hosted runners as it is. For self-hosted runners, please ensure you have GNU tar and zstd installed.

https://github.com/actions/cache/blob/main/workarounds.md#improving-cache-restore-performance-on-windowsusing-cross-os-caching

Remember, contributions to this repository should follow our [GitHub Community` Guidelines]( #2

/ #__


Acceptance test suite for function invokers

There must be a clear contract between the function-sidecar and the *-function-invokers. As the protocol is formalized between the sidecar and invoker (whether based on HTTP, gRPC or something else) we should have confidence that the invoker is correctly invoking functions. An acceptance test suite will make it easier for us to ensure each provided invoker is functioning correctly, as well as third party invokers can ensure their compatibility.

Related to #128 duplicate?

Dups #128


Screenshot failing on remote Digital Ocean server

Hi @michenriksen ,
Great tool here :+1: , really thanks for taking the time to develop it.
I am facing difficulty getting screenshots on my digital ocean server for some reason it fails with
http://www.google.com/: screenshot failed: exit status 127
https://www.google.com/: screenshot failed: exit status 127

I don't know whether it is some x11 issue ( I don't have that knowledge, just read it in another issue, but that was for nightmarejs ) or something else altogether.
However, its working fine on my local machine but I would still like to get it working on my remote server.

Thanks and regards,
Temporarya

its chromium failing. Follow here to install chromium on ubuntu VPS. Then specify --chrome-path "chromium-browser".


Investigate potential renderer performance issue Extension.local

The automatic perf monitoring has shown a high number of calls to local. This means the call/function itself is slow or it is called at a very high rate (so that the profiler always sees it running)
The most common stacktrace via which this is reported comes through reloadRequiredStatus.
get local#workbench.desktop.main.js:2830
Y#workbench.desktop.main.js:2830<(anonymous)#workbench.desktop.main.js:2830
<get reloadRequiredStatus#workbench.desktop.main.js:2826
<(anonymous)#workbench.desktop.main.js:2826
<g#workbench.desktop.main.js:2826
<invoke#workbench.desktop.main.js:85
<deliver#workbench.desktop.main.js:85
<fire#workbench.desktop.main.js:85
<(anonymous)#workbench.desktop.main.js:83

/duplicate
https://github.com/microsoft/vscode/issues/164834

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!

@sandy081 I don't think this is a dupe because the callstack comes in via reloadRequiredStatus  which I don't see in the other trace

But I think the root cause is same for both that ExtensionsWorkbenchService.local is slow as mentioned in the summary of the other issue. Hence I marked it as duplicate.

Pfff - that would mean it is catastrophically slow. My suspicion is that it is just slow but that comes in combination with being over eagerly called? Maybe some event leakage or some over eager calling through some other means. This symptom might disappear when local is become fast but I think we need to understand why it ends up on a hot code path in the first place

Will investigate why this is being eagerly called too.


1387/Deprecate function_wrapper helper and introduce warning

Ticket: https://github.com/timber/timber/issues/1387
Reviewer: @jarednova
Issue
Developers should get a warning when they still use Helper::function_wrapper.
Solution
This pull request puts a Helper::warn call into the function_wrapper method:

function_wrapper is deprecated and will be removed in 1.4. Use {{ function( 'function_to_call' ) }} instead or use FunctionWrapper directly. For more information refer to http://timber.github.io/timber/#functions

Many developers still use function_wrapper to expose functions to Twig. This solutions is some kind of compromise. It replaces instances in Timber where Helper::function_wrapper is still used by using FunctionWrapper directly.
The only remaining use case I saw for Helper::function_wrapper in Timber is Timber::get_widgets() (after wp_head and wp_footer will be deprecated).
Impact

Developers that use function_wrapper to expose functions to Twig will have to refer to the documentation on what to use best, see (#1394). Most use cases will probably be covered by {{ function() }}, the use of Twig_SimpleFunction or Helper::ob_function.
Developers that use function_wrapper like it was intended to be in the beginning will also get the warning. They will also have to use FunctionWrapper directly.

@jarednova I don’t know if this a direction you want to take. It’s a proposal that might help.
Considerations
The link in the warning would refer to the newly introduced functions guide in #1394.
Testing

Ran phpunit tests for TestTimberWPFunctions and TestTimberWidgets, all ok.
I didn’t test manually if widgets still display in the frontend.

Thanks again @gchtr, merging! The FunctionWrapper stuff now feels in tip-top shape


Change collection empty state

i18n-check

The following components have not been translated
collections (ru)collections (en)sql (ru)sql (en)wizard (ru)wizard (en)

Wait for the reviewers to check your changes in Weblate and try running github action again.

i18n-check

The following components have not been translated
collections (ru)collections (en)sql (ru)sql (en)wizard (ru)wizard (en)

Wait for the reviewers to check your changes in Weblate and try running github action again.

i18n-check

The following components have not been translated
collections (ru)collections (en)sql (ru)sql (en)wizard (ru)wizard (en)

Wait for the reviewers to check your changes in Weblate and try running github action again.

i18n-check

The following components have not been translated
collections (ru)collections (en)sql (ru)sql (en)wizard (ru)wizard (en)

Wait for the reviewers to check your changes in Weblate and try running github action again.

i18n-check

The following components have not been translated
collections (ru)collections (en)sql (ru)sql (en)wizard (ru)wizard (en)

Wait for the reviewers to check your changes in Weblate and try running github action again.


odbc: begin generalizing over different driver managers

[x] built on nixos
[x] checked mssql .so with ldd
[x] activated new functionality on system and tested various combinations
[x] tested that the assertions fire

ODBC drivers are managed by driver managers. Driver managers provide the same
ABI, but driver’s shared objects need to have their dm’s .so baked in.
The nixos module is changed to allow choosing between the older unixODBC dm and
libiodbc. The drivers are then compiled with the correct references.
Additionally, this adds the non-free mssql driver (too many changes, it’s hard
to put in a separate commit).

I added two more commits that change the interface somewhat. Some external input about the API would be nice nonetheless.

Anyone willing to review?

I'm also currently coming to the conclusion that there is currently a bit of a mixture of libiodbc and unixodbc, which causes me pain on a non-NixOS installation, since they are based on different environment variables to specify the drivers.
I think your effort is great! Do you think that this could also be done without nixOS-modules? I'd love to make this work also on non-nixOS.


Fix for clear orphan events work flow.

https://github.com/microsoft/Service-Fabric-POA/issues/43

In my opinion we should remove this source id defined here and have just one method below which always take in source id. Since this is a helper method.

Refers to: src/PatchOrchestrationApplication/CoordinatorService/src/HealthManagerHelper.cs:16 in 4273d80. [](commit_id = 4273d80602bcb4efa3118fa67dd0158a12a966a1, deletion_comment = False)


Memory leak when using custom DataGenerator

For the past 3 weeks I've been searching nonstop for a solution to this problem, when training a LSTM model with a custom DataGenerator, Keras ends up using all my RAM memory. The context of the project is to predict sleep stages, in this script, its expected to paralelyze 15 different participants with its 10 folds (10 train and 10 validation), and in a following phase test with its respective partition.
Having said that, this is the LSTM Network I'm currently using:
I'm using:

Python 3.11.5
Tensorflow 2.16.1
Keras 3.3.3

This network has been used in this project
def create_lstm1(number_inputs, window_size):
    model = Sequential()

    model.add(Input(shape=(window_size, number_inputs)))

    model.add(LSTM(units=50, return_sequences=True))
    model.add(Dropout(0.2))

    model.add(LSTM(units=100, return_sequences=False))
    model.add(Dropout(0.2))

    model.add(Dense(units=ProjectConfig().n_phases, activation='softmax'))

    model.compile(loss="categorical_crossentropy", optimizer="rmsprop", metrics=['accuracy'])
    return model

Then, I've implemented this custom DataGenerator which suites my problem.
import math
from statistics import mode

import keras
import tracemalloc
import gc
import numpy as np
import pandas as pd
from imblearn.over_sampling import SMOTE
from sklearn.preprocessing import StandardScaler, LabelEncoder

from src.utils import utils

class DataGenerator(keras.utils.Sequence):

    def __init__(self,
                 x_data: pd.DataFrame,
                 y_data: pd.DataFrame,
                 name: str = "DataGenerator",
                 window_size: int = 30,
                 window_overlap: int = 15,
                 batch_size: int = 32,
                 lstm_mode: int = 1,
                 n_clases: int = 5,
                 sample_frequency: int = 10,
                 shuffle: bool = True,
                 is_training: bool = True,
                 **kwargs):
        super().__init__(**kwargs)
        self.x_data = x_data
        self.y_data = y_data
        self.name = name
        self.window_size = window_size
        self.window_overlap = window_overlap
        self.batch_size = batch_size
        self.lstm_mode = lstm_mode
        self.sample_frequency = sample_frequency
        self.shuffle = shuffle
        self.is_training = is_training

        current, peak = tracemalloc.get_traced_memory()
        print(f"\t\t\t\t{name} Memory before Oversampling: Current = {current / 10 ** 6} MB; Peak = {peak / 10 ** 6} MB")
        self.x_data, self.y_data = self._oversample(self.x_data, self.y_data)

        current, peak = tracemalloc.get_traced_memory()
        print(f"\t\t\t\t{name} Memory after Oversampling: Current = {current / 10 ** 6} MB; Peak = {peak / 10 ** 6} MB")
        self.x_data, self.y_data = self._create_windows(self.x_data, self.y_data)

        current, peak = tracemalloc.get_traced_memory()
        print(f"\t\t\t\t{name} Memory after Windows Creation: Current = {current / 10 ** 6} MB; Peak = {peak / 10 ** 6} MB")
        encoder = LabelEncoder()
        self.y_data = encoder.fit_transform(self.y_data)
        self.y_data = keras.utils.to_categorical(self.y_data, num_classes=n_clases)
        self.indexes = self.on_epoch_end()

    def __len__(self):
        n = len(self.indexes)
        return math.ceil(n / self.batch_size) if n > 0 else 0

    def __getitem__(self, index):
        windows_x = []
        windows_y = []

        min_val = max(0, min(len(self.indexes), index * self.batch_size))
        max_val = min(len(self.indexes), (index + 1) * self.batch_size)
        for val in range(min_val, max_val):
            x_data = self.x_data[self.indexes[val]].copy()
            y_data = self.y_data[self.indexes[val]]
            x_data = self._scale_data(x_data)
            x_data = self._update_mode(x_data)

            windows_x.append(x_data)
            windows_y.append(y_data)

        batch_x = np.array(windows_x)
        batch_y = np.array(windows_y)

        del windows_x, windows_y, x_data, y_data
        gc.collect()

        return batch_x, batch_y

    def _create_windows(self, x_data, y_data):
        windows_x = []
        windows_y = []
        n_windows = math.ceil(len(x_data) / (self.window_overlap * self.sample_frequency))
        for w in range(n_windows):
            start_index = w * self.window_overlap * self.sample_frequency
            end_index = min(len(x_data), start_index + (self.window_size * self.sample_frequency))
            indexes = list(range(start_index, end_index))
            if len(indexes) == (self.window_size * self.sample_frequency):    # All windows must be equal
                X = x_data.iloc[indexes]
                Y = mode(y_data[indexes])

                windows_x.append(X)
                windows_y.append(Y)

        return windows_x, windows_y

    def _oversample(self, x_data, y_data):
        if self.is_training:
            sm = SMOTE(random_state=0, sampling_strategy='not majority')
            X_resampled, y_resampled = sm.fit_resample(x_data, y_data)
            return X_resampled, y_resampled
        return x_data, y_data

    def _update_mode(self, x_data: pd.DataFrame):
        if self.lstm_mode == 2:
            magacc = utils.calculate_magnitude(x_data['accx'], x_data['accy'], x_data['accz'])
            ret = x_data.copy()
            ret['magacc'] = magacc
        elif self.lstm_mode == 3:
            magacc = utils.calculate_magnitude(x_data['accx'], x_data['accy'], x_data['accz'])
            ret = x_data[['hr']].copy()
            ret['magacc'] = magacc
        else:
            ret = x_data.copy()
        return ret

    def on_epoch_end(self):
        indexes = np.arange(len(self.x_data))
        if self.shuffle:
            np.random.shuffle(indexes)
        return indexes

    @staticmethod
    def _scale_data(x_data):
        scaler = StandardScaler()
        scaled_data = scaler.fit_transform(x_data)
        return pd.DataFrame(scaled_data, columns=x_data.columns)

And finally, the training phase is the following:
import gc
import multiprocessing
import os
import shutil
import tracemalloc

import luigi
import numpy as np
import pandas as pd

from . import DeepPartitioning
from .data_generator import DataGenerator
from .lstm_creation import *
from ..utils import ProjectConfig, utils

class DeepTraining(luigi.Task):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.results_path = ProjectConfig().deep_training_path
        self.inputs_by_mode = {
            1: 4,  # accx, accy, accz, hr
            2: 5,  # accx, accy, accz, magnitude, hr
            3: 2  # magnitude, hr
        }

    def requires(self):
        return DeepPartitioning()

    def output(self):
        return luigi.LocalTarget(os.path.join(self.results_path, "output_paths.txt"))

    def run(self):
        os.makedirs(self.results_path, exist_ok=True)
        prev_files = utils.get_prev_files_path(self.input().path)

        patient_partitions = self.get_partitions(prev_files)

        path_list = self.run_experiments(patient_partitions)
        utils.create_output_paths_file(self.results_path, path_list)

    def run_experiments(self, partitions):
        path_list = []

        with multiprocessing.Pool(processes=multiprocessing.cpu_count(), maxtasksperchild=1) as pool:
            results = pool.map(self.process_participant_wrapper, partitions.items())

        for result in results:
            path_list.extend(result)

        return path_list

    def process_participant_wrapper(self, participant_partitions):
        participant, partitions = participant_partitions
        return self.process_participant(participant, partitions)

    def process_participant(self, participant, participant_partitions):
        path_list = []
        os.makedirs(os.path.join(self.results_path, participant), exist_ok=True)
        patient_idx = participant.split("_")[1]
        train_folds, validation_folds, test = self._get_folds(participant_partitions, patient_idx)
        model = self.create_neural_network()
        print(f"\tStarting participant {patient_idx}")

        for ep in range(ProjectConfig().n_epochs):
            epoch_path = os.path.join(self.results_path, participant, f"epoch_{ep}")
            os.makedirs(epoch_path, exist_ok=True)
            print(f"\t\tStarting epoch {ep}")
            history = []
            for k in range(ProjectConfig().n_splits):
                train_fold = pd.read_csv(train_folds[k], sep=";")
                validation_fold = pd.read_csv(validation_folds[k], sep=";")
                hist = self.train_fold(model, train_fold, validation_fold, participant, ep, k)
                history.append(hist)

                current, peak = tracemalloc.get_traced_memory()
                print(
                    f"\t\t\tMemory usage after fold {k}: Current = {current / 10 ** 6} MB; Peak = {peak / 10 ** 6} MB")

                del train_fold
                del validation_fold
                gc.collect()
            final_history = {}
            for key in history[0].history.keys():
                final_history.update({key: np.concatenate([hist.history[key] for hist in history])})

            current, peak = tracemalloc.get_traced_memory()
            print(f"\t\tMemory usage after epoch {ep}: Current = {current / 10 ** 6} MB; Peak = {peak / 10 ** 6} MB")
            history_path = os.path.join(epoch_path, f"history_{participant}_{ep}_all_folds.csv")
            pd.DataFrame.from_dict(final_history).to_csv(history_path, sep=";")
            path_list.append(history_path)
            print(f"\t\tFinished epoch {ep}")
            print(f"\t\tSaving lstm ({ProjectConfig().neural_network}) weights")
            weights_path = os.path.join(epoch_path, f"weights_{patient_idx}_{ep}.weights.h5")
            model.save_weights(weights_path)
            path_list.append(weights_path)
        print(f"\tFinished participant {patient_idx}")
        print(f"\tSaving lstm ({ProjectConfig().neural_network}) model")
        model_path = os.path.join(self.results_path, participant, f"model_{patient_idx}.keras")
        model.save(model_path)
        path_list.append(model_path)

        test_path = os.path.join(self.results_path, participant, f"test_{patient_idx}.csv")
        shutil.copyfile(test, test_path)
        path_list.append(test_path)

        current, peak = tracemalloc.get_traced_memory()
        print(f"\tMemory usage after all epochs: Current = {current / 10 ** 6} MB; Peak = {peak / 10 ** 6} MB")

        del model
        gc.collect()
        return path_list

    def create_neural_network(self):
        mode = ProjectConfig().lstm_mode
        neural_network = ProjectConfig().neural_network
        number_inputs = self.inputs_by_mode[mode]
        window_size = (ProjectConfig().w_size * ProjectConfig().sample_frequency)

        # All neural networks are already compiled
        if neural_network == 1:
            print("Creating LSTM1 model")
            return create_lstm1(number_inputs, window_size)
        elif neural_network == 2:
            print("Creating LSTM2 model")
            return create_lstm2(number_inputs, window_size)
        elif neural_network == 3:
            print("Creating LSTM3 model")
            return create_lstm3(number_inputs, window_size, ProjectConfig().n_phases)

    def train_fold(self, model, train_fold, validation_fold, participant, ep, k):
        print(f"\t\t\tTraining model for participant {participant} - epoch {ep} - fold {k}")
        X_train, y_train = (train_fold[['accx', 'accy', 'accz', 'hr']], train_fold['stage'])
        X_validation, y_validation = (validation_fold[['accx', 'accy', 'accz', 'hr']], validation_fold['stage'])
        hist = self.train_model(model, X_train, y_train, X_validation, y_validation)
        return hist

    @staticmethod
    def train_model(model, x_train, y_train, x_validation, y_validation):
        train_generator = DataGenerator(x_data=x_train,
                                        y_data=y_train,
                                        name="train",
                                        window_size=ProjectConfig().w_size,
                                        window_overlap=ProjectConfig().w_overlapping,
                                        lstm_mode=ProjectConfig().lstm_mode,
                                        sample_frequency=ProjectConfig().sample_frequency,
                                        n_clases=ProjectConfig().n_phases)
        validation_generator = DataGenerator(x_data=x_validation,
                                             y_data=y_validation,
                                             name="validation",
                                             window_size=ProjectConfig().w_size,
                                             window_overlap=ProjectConfig().w_overlapping,
                                             lstm_mode=ProjectConfig().lstm_mode,
                                             n_clases=ProjectConfig().n_phases,
                                             sample_frequency=ProjectConfig().sample_frequency,
                                             is_training=False)

        del x_train
        del y_train
        del x_validation
        del y_validation

        hist = model.fit(train_generator,
                         steps_per_epoch=train_generator.__len__(),
                         epochs=1,
                         validation_data=validation_generator,
                         validation_steps=validation_generator.__len__())

        del train_generator
        del validation_generator
        return hist

    @staticmethod
    def get_partitions(prev_files):
        partitions = {}
        for prev_file in prev_files:
            patient = os.path.basename(os.path.dirname(prev_file))
            file_name = os.path.basename(prev_file).split(".")[0]
            partitions.setdefault(patient, {}).setdefault(file_name, prev_file)
        return partitions

    @staticmethod
    def _get_folds(partitions, patient_idx):
        train_folds = []
        validation_folds = []
        for i in range(ProjectConfig().n_splits):
            train_folds.append(partitions[f"train_fold_{patient_idx}_{i}"])
            validation_folds.append(partitions[f"validation_fold_{patient_idx}_{i}"])
        test = partitions[f"test_participant_{patient_idx}"]
        return train_folds, validation_folds, test

With that, I have this output file (I'm showing the first and the last epoch) where we can see how it ends up spending 80GBs of RAM on just one participant with 10 epochs and 10 folds.
# FIRST EPOCH
Starting participant 0
		Starting epoch 0
			Training model for participant patient_0 - epoch 0 - fold 0
Memory usage after fold 0: Current = 1033.934569 MB; Peak = 1556.608261 MB
			Training model for participant patient_0 - epoch 0 - fold 1
Memory usage after fold 1: Current = 1854.543623 MB; Peak = 2381.11604 MB
			Training model for participant patient_0 - epoch 0 - fold 2
Memory usage after fold 2: Current = 2675.151555 MB; Peak = 3201.725061 MB
			Training model for participant patient_0 - epoch 0 - fold 3
Memory usage after fold 3: Current = 3495.760576 MB; Peak = 4022.326754 MB
			Training model for participant patient_0 - epoch 0 - fold 4
Memory usage after fold 4: Current = 4316.366685 MB; Peak = 4842.94543 MB
			Training model for participant patient_0 - epoch 0 - fold 5
Memory usage after fold 5: Current = 5136.99149 MB; Peak = 5663.567691 MB
			Training model for participant patient_0 - epoch 0 - fold 6
Memory usage after fold 6: Current = 5957.613007 MB; Peak = 6484.199312 MB
			Training model for participant patient_0 - epoch 0 - fold 7
Memory usage after fold 7: Current = 6778.235883 MB; Peak = 7304.812643 MB
			Training model for participant patient_0 - epoch 0 - fold 8
Memory usage after fold 8: Current = 7598.856964 MB; Peak = 8125.438533 MB
			Training model for participant patient_0 - epoch 0 - fold 9
Memory usage after fold 9: Current = 8419.47895 MB; Peak = 8946.065265 MB
Memory usage after fold 9: Current = 8210.1733 MB; Peak = 8946.065265 MB
		Finished epoch 0

# LATEST EPOCH
		Starting epoch 9
			Training model for participant patient_0 - epoch 9 - fold 0
Memory usage after fold 0: Current = 74889.296057 MB; Peak = 75415.873067 MB
			Training model for participant patient_0 - epoch 9 - fold 1
Memory usage after fold 1: Current = 75709.918092 MB; Peak = 76236.499263 MB
			Training model for participant patient_0 - epoch 9 - fold 2
Memory usage after fold 2: Current = 76530.522405 MB; Peak = 77057.104749 MB
			Training model for participant patient_0 - epoch 9 - fold 3
Memory usage after fold 3: Current = 77351.125716 MB; Peak = 77877.709326 MB
			Training model for participant patient_0 - epoch 9 - fold 4
Memory usage after fold 4: Current = 78171.730176 MB; Peak = 78698.309015 MB
			Training model for participant patient_0 - epoch 9 - fold 5
Memory usage after fold 5: Current = 78992.352293 MB; Peak = 79518.938572 MB
			Training model for participant patient_0 - epoch 9 - fold 6
Memory usage after fold 6: Current = 79812.972282 MB; Peak = 80339.551835 MB
			Training model for participant patient_0 - epoch 9 - fold 7
Memory usage after fold 7: Current = 80633.590744 MB; Peak = 81160.172095 MB
			Training model for participant patient_0 - epoch 9 - fold 8
Memory usage after fold 8: Current = 81454.212892 MB; Peak = 81980.790902 MB
			Training model for participant patient_0 - epoch 9 - fold 9
Memory usage after fold 9: Current = 82274.83347 MB; Peak = 82801.413244 MB
Memory usage after fold 9: Current = 82065.526847 MB; Peak = 82801.413244 MB
		Finished epoch 9

I've tried to explicitly delete variables, also calling garbace collector and using clear_session() after finishing training each model, since its an incremental training, I think I'm not suposed to use it between folds.
Finally, if this could help proving my issue, I've also tried to see what would print a memory_profiler, just in case it was really freeing memory (but not the necessary), this is the result for one epoch 10 folds on one participant.

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
    62    484.1 MiB    484.1 MiB           1       @profile
    63                                             def process_participant(self, participant, participant_partitions):
    64    484.1 MiB      0.0 MiB           1           path_list = []
    65    484.1 MiB      0.0 MiB           1           os.makedirs(os.path.join(self.results_path, participant), exist_ok=True)
    66    484.1 MiB      0.0 MiB           1           patient_idx = participant.split("_")[1]
    67    484.2 MiB      0.1 MiB           1           train_folds, validation_folds, test = self._get_folds(participant_partitions, patient_idx)
    68    550.3 MiB     66.1 MiB           1           model = self.create_neural_network()
    69    550.3 MiB      0.0 MiB           1           print(f"\tStarting participant {patient_idx}")
    70    550.3 MiB      0.0 MiB           1           tracemalloc.start()
    71
    72   5377.8 MiB      0.0 MiB           2           for ep in range(ProjectConfig().n_epochs):
    73    550.3 MiB      0.0 MiB           1               epoch_path = os.path.join(self.results_path, participant, f"epoch_{ep}")
    74    550.3 MiB      0.0 MiB           1               os.makedirs(epoch_path, exist_ok=True)
    75    550.3 MiB      0.0 MiB           1               print(f"\t\t{participant}Starting epoch {ep}")
    76    550.3 MiB      0.0 MiB           1               history = []
    77   6433.6 MiB -13257.3 MiB          11               for k in range(ProjectConfig().n_splits):
    78   6523.9 MiB  -9093.3 MiB          10                   train_fold = pd.read_csv(train_folds[k], sep=";")
    79   6525.7 MiB -10294.1 MiB          10                   validation_fold = pd.read_csv(validation_folds[k], sep=";")
    80   6433.6 MiB  -8830.9 MiB          10                   hist = self.train_fold(model, train_fold, validation_fold, participant, ep, k)
    81   6433.6 MiB -13358.4 MiB          10                   history.append(hist)
    82
    83   6433.6 MiB -13358.3 MiB          10                   current, peak = tracemalloc.get_traced_memory()
    84   6433.6 MiB -13358.2 MiB          10                   print(f"\t\t\t{participant}Memory usage after fold {k}: Current = {current / 10 ** 6} MB; Peak = {peak / 10 ** 6} MB")
    85
    86   6433.6 MiB -13168.4 MiB          10                   del train_fold
    87   6433.6 MiB -13156.4 MiB          10                   del validation_fold
    88   6433.6 MiB -13257.3 MiB          10                   gc.collect()
    89   5373.1 MiB  -1060.5 MiB           1               final_history = {}
    90   5373.1 MiB      0.0 MiB           5               for key in history[0].history.keys():
    91   5373.1 MiB      0.1 MiB          52                   final_history.update({key: np.concatenate([hist.history[key] for hist in history])})
    92
    93   5373.1 MiB      0.0 MiB           1               current, peak = tracemalloc.get_traced_memory()
    94   5373.1 MiB      0.0 MiB           1               print(f"\t\t{participant}Memory usage after epoch {ep}: Current = {current / 10 ** 6} MB; Peak = {peak / 10 ** 6} MB")
    95   5373.1 MiB      0.0 MiB           1               history_path = os.path.join(epoch_path, f"history_{participant}_{ep}_all_folds.csv")
    96   5375.3 MiB      2.2 MiB           1               pd.DataFrame.from_dict(final_history).to_csv(history_path, sep=";")
    97   5375.3 MiB      0.0 MiB           1               path_list.append(history_path)
    98   5375.3 MiB      0.0 MiB           1               print(f"\t\t{participant}Finished epoch {ep}")
    99   5375.3 MiB      0.0 MiB           1               print(f"\t\t{participant}Saving lstm ({ProjectConfig().neural_network}) weights")
   100   5375.3 MiB      0.0 MiB           1               weights_path = os.path.join(epoch_path, f"weights_{patient_idx}_{ep}.weights.h5")
   101   5377.8 MiB      2.4 MiB           1               model.save_weights(weights_path)
   102   5377.8 MiB      0.0 MiB           1               path_list.append(weights_path)
   103   5377.8 MiB      0.0 MiB           1           print(f"\t{participant}Finished participant {patient_idx}")
   104   5377.8 MiB      0.0 MiB           1           print(f"\t{participant}Saving lstm ({ProjectConfig().neural_network}) model")
   105   5377.8 MiB      0.0 MiB           1           model_path = os.path.join(self.results_path, participant, f"model_{patient_idx}.keras")
   106   5378.9 MiB      1.1 MiB           1           model.save(model_path)
   107   5378.9 MiB      0.0 MiB           1           path_list.append(model_path)
   108
   109   5378.9 MiB      0.0 MiB           1           test_path = os.path.join(self.results_path, participant, f"test_{patient_idx}.csv")
   110   5378.9 MiB      0.0 MiB           1           shutil.copyfile(test, test_path)
   111   5379.0 MiB      0.1 MiB           1           path_list.append(test_path)
   112
   113   5379.0 MiB      0.0 MiB           1           current, peak = tracemalloc.get_traced_memory()
   114   5379.0 MiB      0.0 MiB           1           print(f"\t{participant}Memory usage after all epochs: Current = {current / 10 ** 6} MB; Peak = {peak / 10 ** 6} MB")
   115
   116   5379.0 MiB      0.0 MiB           1           del model
   117   5379.0 MiB      0.0 MiB           1           gc.collect()
   118   5473.8 MiB     94.9 MiB           1           clear_session()
   119   5473.8 MiB      0.0 MiB           1           current, peak = tracemalloc.get_traced_memory()
   120   5473.8 MiB      0.0 MiB           1           print(f"\tMemory usage after patient {participant}: Current = {current / 10 ** 6} MB; Peak = {peak / 10 ** 6} MB")
   121
   122   5680.4 MiB    206.5 MiB           1           tracemalloc.stop()
   123   5680.4 MiB      0.0 MiB           1           return path_list

Hope someone knows how to fix this issue. Thanks!
What I've tried
I've tried reading the folds just when needed, explicitly freeing memory by deleting variables and calling garbage_collector, using different techniques of paralelization, but I've always faced the issue of one single participant consuming too much memory to handle.

I have nothing to provide you but solidarity. I am running into this same problem with a TFRecords data pipeline:
def _parse_function(example_proto):
    feature_description = {
            'ny'  : tf.io.FixedLenFeature([], tf.int64, default_value = 0),
            'nx'  : tf.io.FixedLenFeature([], tf.int64, default_value = 0),
            'ntp' : tf.io.FixedLenFeature([], tf.int64, default_value = 0),
            'ntf' : tf.io.FixedLenFeature([], tf.int64, default_value = 0),
            'ncp' : tf.io.FixedLenFeature([], tf.int64, default_value = 0),
            'ncf' : tf.io.FixedLenFeature([], tf.int64, default_value = 0),
            'priors' : tf.io.FixedLenFeature([], tf.string, default_value = ''),
            'forecasts' : tf.io.FixedLenFeature([], tf.string, default_value = ''),
            }
    features = tf.io.parse_example(example_proto, feature_description)
    priors = tf.io.parse_tensor(features['priors'], tf.float32)
    forecasts = tf.io.parse_tensor(features['forecasts'], tf.float32)

    ny  = features['ny']
    nx  = features['nx']
    ntp = features['ntp']
    ntf = features['ntf']
    ncp = features['ncp']
    ncf = features['ncf']

    priors = tf.reshape(priors, shape = [ntp, ny, nx, ncp])
    forecasts = tf.reshape(forecasts, shape = [ntf, ny, nx, ncf])

    return priors, forecasts

...
def create_dataset_onr_tfrecords(path,
                                 glob,
                                 batch_size = 32,
                                 compression = 'GZIP',
                                 shuffle = True,
                                 deterministic = False):
    return tf.data.Dataset.list_files(str(path / glob), shuffle = shuffle).interleave(
            lambda x: tf.data.TFRecordDataset(x, compression_type = compression),
                    cycle_length = tf.data.AUTOTUNE,
                    num_parallel_calls = tf.data.AUTOTUNE,
                    deterministic = deterministic
                    ).map(
                        _parse_function,
                        num_parallel_calls = tf.data.AUTOTUNE
                    ).batch(
                        batch_size, drop_remainder = True
                    ).prefetch(tf.data.AUTOTUNE)

I'll spare you the plot, but I am having the same issue with a vanilla TF dataset. I've tried removing interleave, removing GZIP compression, calling TFRecordDataset directly, removed batching, removed prefetching... nothing.
I believe this is a Tensorflow problem and (in particular) a TF Dataset problem: https://github.com/tensorflow/tensorflow/issues/65675
This TF 2.16 + K3 era has been a disaster.

I am facing the same problem, using scripts from here: https://github.com/kpertsch/rlds_dataset_mod
which also involves with certain features from tensorflow dataset. The scripts is intended to do some modifications to an existing tensorflow dataset stored in TFRecord format.

Hi @Omitg24!
Are you facing this issue in the TensorFlow backend? Have you tested other backends (jax or torch)? Do you see this issue with other backends?

@SamanehSaadat

Are you facing this issue in the TensorFlow backend? Have you tested other backends (jax or torch)? Do you see this issue with other backends?
I've tried with Tensorflow Backend and its giving me that issue, but I've yet to try with TF 17.0.
I've also tried with Torch, a small trial version, the memory leak does not seem to happen, but it takes much more time than using keras.

@Omitg24
Does this still happen if you use the fit argument run_eagerly=True ?

@Omitg24
Does this still happen if you use the model.compile(..., run_eagerly=True) ?
Also use keras backend.clear_session() fn before deleting the model as other posts recommend.

I

@Omitg24
Does this still happen if you use the model.compile(..., run_eagerly=True) ?
Also use keras backend.clear_session() fn before deleting the model as other posts recommend.

I've tried with the new version but same code and the error persits.
Will try today with your sugestion and I'll edit my comment with my results!


feat: add container specific securityContext

This PR adds the missing container level securityContext to the deployment.
This option is required to run the operator inside a restricted namespace

Conflicts have been addressed :)

Hey @TylerHelmuth i see some tests are failing but can’t say I see the reason. It does not look to me like it’s related to my changes, or?

It is flakiness with the operator tests: https://github.com/open-telemetry/opentelemetry-operator/pull/1733


Chrome 86: AVIF enabled by default

https://bugs.chromium.org/p/chromium/issues/detail?id=960620#c162

Enable the AVIF image format by default

Draft PR to wait for Canary to come around to be able to test using https://tests.caniuse.com/?feat=avif to check if it really gets enabled far and wide.

Absolute mad lads:

85.0.4181.9, which moved from canary to dev, doesnt have it (enabled?) though.

Thanks!


Improved anyOf keyword support

The anyOf and oneOf logical keywords are not intuitive to use and come with a number of caveats that make understanding certain issues hard to debug. This feature aims to simplify the use of these keywords and make them "obvious".
See https://docs.pactflow.io/docs/bi-directional-contract-testing/contracts/oas/keyword-support#oneof-anyof for background.
See https://github.com/mefellows/pact-oas-validator for an example demonstrating how an intuitive version of an anyOf operator would work.

Closed in #82


Vector compare bug?

There appears to be an error in the Equals method of Vec3b.
Line 88 does not appear to be valid C#:
return obj is Vec3b b && Equals(b);
Based on the pattern used in the other vector classes I believe this was intended:
return obj is Vec3b && Equals((Vec3b)obj);
How did this compile? Is it special syntax to .Net Core?

It is a new C# syntax. Please use Visual Studio 2017.

Got it.


upgrade-zulip: Remove tsearch-extras on upgrade.

We stopped using tsearch-extras in Zulip 2.1.0 after Anders figured
out how to achieve its goals with native postgres.  However, we never
did a DROP EXTENSION on systems thta had upgraded, which meant that
backups created on systems originally installed with Zulip 2.0.x and
older, and later upgraded to Zulip 2.1.x, could not be restored on
Zulip servers created with a fresh install of Zulip 2.1.x.
We can't do this with a normal database migration, because DROP
EXTENSION has to be done as the postgres user, so we add some custom
migration code in the upgrade-zulip-stage-2 tool.
It's safe to run this whenever tsearch_extras.control is installed because:

Zulip is AFAIK the only software that ever used tsearch_extras.
The package was only installed via puppet on production servers configured to
run a local Zulip database.
We'll only run this code once per system, because it removes the
package and thus the control files.

Fixes #13612.

We'll want to backport to 2.1.x once this is ready.

Good catches on all 3 points; pushed an updated version addressing them all.


Use a custom pseudoweather

@Zarel like this? This doesn't really seem better to me.

First let's listen to Marty's claims...


Cannot drag methods to class when using hierarchy view?

Should be fixed (and tested) in Oscar 3.0.46


Lsmallwood/search for webmap

@jtrieu please review and merge the first pass for this sample

@lsmallwood it looks good to me. @tdunn if it looks good to you. can you merge?

@lsmallwood - PR looks good. Thanks for doing this.


Clarity on the README.

Hi there.
The README currently states that you don't accept PRs yet I see one fix PR was accepted.
Can you clarify if PRs are accepted or not?
I would like to improve the codebase as I can see a few places where it can be improved, especially if this is a template repository.

It was a bug that I needed to fix and they already fixed it. If you see bugs please file a ticket and I can fix it.


Separate Alamofire/URLSession managers to different targets

#3 Resolves

[x] Create SPM target for Alamofire / URLSession managers.
[x] Create subspec for the same targets.

Do we need to add the Alamofire source files to the Example project?

@zierka Alamofire was used since the URLSession driver is not implemented yet.

@magyarosibotond I mean can't we install it through cocoapods?

@zierka Alamofire is only added (to the lock file) since RestBird/Alamofire (the specific driver) depends on Core and Alamofire.


Standardize testing directory filepath naming

Standardize the naming and remove the weird capitalization issues. This
may create a bit of churn in the tree in the short term, but will save
developers' fingers when trying to figure out which characters need to be
capitalized or not while attempting to edit specific filepaths.

/test

Only one failure. I see that there's a conflict, can coordinate rebase+merge at some point to hopefully minimize conflict with any other PRs in the tree.

Wow, I actually didn't anticipate it pulling in so many codeowners. I really think this only needs one or two people to look over it for a sanity check and :+1: .

/test

To avoid filesystem naming conflicts, I renamed the runtime test files slightly differently than the k8sT->k8s renames:
 test/runtime/{assertionHelpers.go => assertion_helpers.go}               |  0
 test/runtime/{Policies.go => net_policies.go}                            |  0

/test

/mlh new-flake Cilium-PR-K8s-1.21-kernel-5.4

/mlh new-flake Cilium-PR-K8s-1.23-kernel-net-next

runtime provisioning took a very long time, looks suspiciously like issues we've had in the past with the provider for the CI infrastructure. Ignoring. I'll rebase once more & re-kick for another check of CI stability. None of the failures are looking at all related to the PR at this point.

/test

k8s-1.21-kernel-5.4 hit #18873. runtime hit timeouts during provisioning, to be fixed by https://github.com/cilium/cilium/pull/18886.

/mlh new-flake Cilium-PR-K8s-GKE

Runtime job hit some weird issue:
12:11:37      runtime: /tmp/provision/compile.sh: line 28: cd: /home/vagrant/go/src/github.com/cilium/cilium: Stale file handle

/test-runtime


MapDelegate overrides default routing when calling with Html.ActionLink

Given the following routes
routes.MapDelegate("RouteFailureTest", "home/test",
context => new HomeController().HomeTest(context.HttpContext));
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }//, // Parameter defaults
);
a call to @Html.ActionLink("Log Off", "Logout", "User") always matches the "RouteFailureTest".
My guess is that it's related to the lack of default controller/action values so the ActionLink, providing the default values matches the delegate route.
It's fairly simple to reproduce, use a standard MVC3 application (with default Home/Account controllers) add the MapDelegate route above and check the Login/Home/About Us links. They will always match the RouteFailureTest route.
routes.MapRoute(
"ShouldntMatch", // Route name
"home/test", // URL with parameters
null // Parameter defaults
);
Confirmed it's the null defaults. This route produces the same results as the MapDelegate by matching any Html.ActionLink or other similar helpers

This is an issue with the underlying ASP.NET Routing. Read http://haacked.com/archive/2010/11/21/named-routes-to-the-rescue.aspx for more details.
We could in theory fix it by having MapDelegate return a route that checks to see if the URL pattern has any parameters (aka sections with {curlybraces}) and if it doesn't, the route doesn't implement GetVirtualPath. That's the method that generates a URL. What that would mean is such an URL cannot be used for URL generation.
Seem reasonable?

Interesting. It makes sense now that I read that. However since a lot of people use the default RouteLink/ActionLink and their ilk without specifying a named routes I'm pretty sure it's reasonable to handle it in the way you specify.


data_structures.py is quite large

data_structures.py is becoming quite large, and I've been thinking about how to split it up.
I'd propose the following
Module soco.data_structures

MusicInfoItem
QueueItem
URI (from #147)

Module soco.data_structures.musiclib

MusicLibraryItem
ML* classes

Module soco.data_structures.services

MusicServiceItem
MS* classes

What do you think?

@stefankoegl I believe this is no longer an issue after @lawrenceakka's rewrite. The module is below 1k lines and only contains core DIDL data structures. Please re-open if you think it is still relevant.


Find Feature should not mention a feature that is disabled

Description
I was using the awesome "Find Feature" button to figure out why in my list of PRs and issues some are grey.
It explained to me that the issue was coming form dim-bots, but when I checked, it was already disabled. Luckily I discovered dim-visited-conversations along the way since I only searched for dim, so I was abe to disable it.
But I wonder why the it even suggests features that are disabled...
I think it could also be considered a bug, but the form for that didn't seem to fit.
Steps to reproduce:

Disable dim-bots and enable dim-visited-conversations
Open any list of PRs or issues where you can see some title being dimmed and others aren't (the link I added works for me but might not work for you)
Open the options, scroll to the bottom and click "Find Feature"
go back to the tab from step 2 and refresh the page
click "yes" whenever some PR is dimmed and "no" if all PRs are black/white

Screenshot
No response
Example URL
https://github.com/xmldom/xmldom/issues

Thanks for the detailed report!
However I tried to reproduce it in the same conditions as mentioned, and I got the correct answer of dim-visited-conversations.
My guess is that you must have clicked the wrong button during one of the steps — probably because the color of the visited links isn't very different from the regular one.

Just reproduced it again, this time with a recording. If there is more information I should provide, please let me know.

Just reproduced it again, this time with a recording.

Thank you for the recording! I think I understand where the issue is coming from: on the fourth step (with 6 steps remaining), you clicked "Yes" where it should have been "No", because you saw the collapsed issue at the bottom of the page.
This is not caused by dim-visited-conversations, but dim-bots instead, which collapses and dims every PR, issue and commit made by a bot. And the "Find feature" mechanism only works properly if focusing on the effects of a single feature.
Your point is valid nonetheless, because the feature finder always starts with every feature enabled, regardless of the user's settings. Since the user might be exposed to features they aren't used to seeing, this can cause confusion and derail the process.
So I think we should make the finder work with only the features already enabled. Not only would it be more straightforward, it'd be faster too (less features to consider = less steps).

Thx for the elaboration, i guess the biggest surprise for me is, that the feature finder enables all features.
Maybe it would also be possible to list all possible features that where clicked "yes" for. I guess it would still help to narrow down the problem. Just in case this is simpler to implement.
Of course I agree that only checking the enabled features makes most sense.
Looking forward to it.
Anyways, it's already a really cool feature and I was able to find it when I needed it. So kudos for that.

I think it might make sense to start only with the currently-enabled features simply because the user is likely to be looking for a specific feature that they're already seeing. Skipping already-disabled features will also reduce the number of steps.
The only drawback is that the user won't be able to ever find disabled features unless they re-enable them first, but I think that's unlikely (and if they disabled few features it won't be difficult to do that anyway)

I have an idea for both cases:
You could let the user pick as the first step if all features should be enabled before starting the search.
I have not contributed to anything in this repo yet. And resource wise I cant promise anything.
Any hint where to start looking would be helpful for me to judge if I feel capable to pull that off.

I have an idea for both cases: You could let the user pick as the first step if all features should be enabled before starting the search.

Why not, but I'm not sure there's really a use case for it.

Any hint where to start looking would be helpful for me to judge if I feel capable to pull that off.

The main logic is in https://github.com/refined-github/refined-github/blob/main/source/helpers/bisect.tsx. It's relatively self-contained, although this change would require an understanding of the way options are stored (which isn't very complex).

I did have a look at that code in the browser for half an hour, but I still didn't figure out how it manages to "loop" through the different bisected features.
I will try again using my IDE at some point in time, but so far I don't feel capable of touching that code.

how it manages to "loop" through the different bisected features

Basically: the list of remaining features is loaded from the cache, split in half according to the user's answer, put back in the cache, and the page is reloaded. Rinse and repeat.

but so far I don't feel capable of touching that code

That's totally fine! Don't feel obligated to send a PR because you opened this issue.


Confusing Resizing in the Pipelines

I would like to understand how mmdetection resizes the images and pad them and how does keep_ratio come into play.
Consider the config
transforms=[
            dict(type='Resize', img_scale=(640, 640), keep_ratio=True),
            dict(type='RandomFlip', flip_ratio=0.0),
            dict(
                type='Normalize',
                mean=[123.675, 116.28, 103.53],
                std=[58.395, 57.12, 57.375],
                to_rgb=True),
            dict(type='Pad', size_divisor=32),
            dict(type='DefaultFormatBundle', keys=['img']),
            dict(type='Collect', keys=['img'])
        ])

If I have an Image that is 1400x1900, what happens here?

Does it resize it to Mx640 where M is just the short side converted from the ratio?
Does it get padded?
What is the output here?

Is it possible to mimic square training like how YOLOv5 does it where it resizes it to the target 640x640, keeps ratio by padding it?
Additional
It seems that pytorch2onnx results for both ONNX and Pytorch resizes the input image into the test_cfg image size and that the predictions are predictions for that image size and not rescaled for the original image resolution. It also seems that it doesn't pad the image.
Meanwhile, the image_demo provides the outputs rescaled to the original input shape.
Could you please elaborate on this? It is rather confusing

@RangiLyu any on this?

Sorry for the late reply.

Does it resize it to Mx640 where M is just the short side converted from the ratio?

yes

Does it get padded?

the Resize won't pad the image. The Pad transform dict(type='Pad', size_divisor=32), will.

What is the output here?

640 / 1900 * 1400 = 472
472 + 8(pad size_divisor=32) 480

Is it possible to mimic square training like how YOLOv5 does it where it resizes it to the target 640x640, keeps ratio by padding it?

just use a square padding dict(type='Pad', pad_to_square=True),


Mccalluc/add portal visualization

The goal is to move vis-conf build to index-time so that problems are encountered earlier, rather than deferred until render-time. This is the start of alternative to:

https://github.com/hubmapconsortium/portal-ui/pull/2313

Vis config code is incorporated as a git submodule so that it can be shared between this this repo and portal-ui. As of

https://github.com/hubmapconsortium/portal-ui/pull/2386

the submodule is being used at render time... once the view conf is available in the index, the plan is to just keep the submodule in portal-ui around for developer use.
Filing as draft until everything works... but early feedback welcome.

Asking Zhou for help on Slack:

What is the right way to access the TypeClient at index-time? We are moving away from accessing it in the portal at render-time: In that context we have access to a TYPE_SERVICE_ENDPOINT from the Flask context… what’s the right way to do this in search-api?

From Joel:

I believe if you are running in the context of search-api you can probably instantiate libs.assay_type.AssayType(type_name) directly.

At the meeting this morning, concluded that this is not a viable solution. Closing.


fix minor typo

Fix a minor typo in the lamba-worker URL.

Thanks for this

Thanks for looking at this @ludov04. It looks like you closed the PR instead of merging it, I still see the issue in HEAD. thanks!


Best way to add a subview to collection view cell

What I want to do is when I send a message, it comes up as a collectionview cell with an activity indicator spinning beside the message bubble and when the message is finished sending, the activity indicator disappears if success or another button appears in place if failed.
What is the best way to do this?
I am thinking of adding subviews in cellforrowatindexPath but it seems not appearing. Is this because of the cell resizing issues cutting off just beside the message bubble?
Or should I subclass jsqcollectionviewcell to add this?
Thanks in advance.

Check out #1519 and see if it helps

@eliburke Thank you very much! It's exactly what I was thinking of. I should add the subview to contentview of cell instead of directly to the cell.

👍 glad to hear it was helpful.


BitMap-AdityaPV

Draw images through Blot
It is an implementation of BitMap imges on BLOT.
This code enables you to draw images with blot.
Steps to use:

Convert your image to binary using - https://www.dcode.fr/binary-image
Copy the binary and paste it in a .txt file
Access the .txt file with this code - https://github.com/Vipremigini/Myfiles/blob/main/pixler.py (This code will print a list, copy that)
Paste the list in index.js array as "pixl"

Examples

steve jobs

hc logo

Interesting.
I though Blot has a feature for SVGs?

I like this idea but could you include the program to turn the image into a blotable piece in the script you write. Right now the heavy lifting is done externally. I see your input as an image which is ascii encoded and the core of your program as the python script.
Did you also write that python script? It seems so. Just port it over to JS and you're good to go!

Going to close this for now. Looking forward to seeing the updated submission.


Missing 1.7.1 tag

https://github.com/shazow/unstdlib.py/releases only has 1.7

Good call, just pushed it, sorry about that. :)


cannot resolve the fs module

Here is the error when i tried to use the intuit-oauth
⨯ ./node_modules/intuit-oauth/src/OAuthClient.js:34:11
Module not found: Can't resolve 'fs'

Thanks @e-kibet , please let me know the steps to reproduce this.


Warn about creating BigDecimal from float or double

Ported from scapegoat, gives a warning when calling BigDecimal.apply(float | double) or instanciating with new. Covers both the Scala and the Java BigDecimal.

I'm tentatively closing old abandoned-seeming PRs. We can reopen if someone wants to move it forward again (after a rebase).


Don't overwrite user-provided GOFLAGS

What this PR does / why we need it:
Allows using GOFLAGS provided by the environment. This shall make it easier to customize the build.
Special notes for your reviewer:
Release note:

NONE

/retest

/lgtm
/approve

/lgtm cancel

/lgtm

/retest

/test pull-kubevirt-e2e-k8s-1.18

/test pull-kubevirt-e2e-k8s-1.18

/retest


Ring Target calculation fix

The code styling needs fixing, also I would have done this differently, why not just check for the defenders item on any of the type effectiveness damage calcs?

It would be kind of the same story, since Ring Target denies immunities on moves while moves are single-typed, then that item will only negate one immunity out of 2 immunities theorically possible (since there is no way a Pokémon would be dual-typed Ghost/Ghost for example). Plus, it might not be known if the move type is effective on the other type (let's say Superpower on a Ring Target Sableye, it still is super effective since fighting is x2 on darkness, which shouldn't be ignored), hence the not-so-classy way of switching through typeEffectivenesses 1 or 2 to check who from them equals 0. I still can make it a traditional if / else if though, just wanted to point my point of view (woah) out.

Why not just if (typeEffectiveness === 0 && defender.item === ‘Ring Target’) {  typeEffectiveness = 1 }
?

Because as I said, you still have to take into account the move type vs the secondary type of the defender (the type that isn't affected by Ring Target).

Oh I see, I was misunderstanding. Anyways your code styling needs fixing

I was thinking it was the same as thousand arrows but they’re different

Making it an if else should make it for good, right ?

Yes this is better but by “styling” I meant your code syntax. You’re missing spaces after If and before your curly braces

The code is implemented and works, the styling has been fixed, what's left ?

Sorry, thanks for that,  I’m just going to test and make sure this works how intended. Give me a few hours

Thanks!


Device tracker component config missing file /config/known_devices.yaml

Home Assistant release with the issue:
0.86.3
Last working Home Assistant release (if known):
none
Operating environment (Hass.io/Docker/Windows/etc.):
docker
Component/platform:
device_tracker
Description of problem:
When enabled ios component I see in log error:
2019-01-27 21:41:59 ERROR (MainThread) [homeassistant.components.device_tracker] Unable to load /config/known_devices.yaml: Config file not found: /config/known_devices.yaml
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
ios:

Expected:
Default config file /config/known_devices.yaml for device_tracker component  is added to docker image or is created on startup if it's missing.
Additional information:

AFAIK This is "normal", it should create itself when it discovers the first device, is that not happening?


How to use Q/A

How do I communicate with the bot via telegram on my mobile? I have the telegram plugin cloned and zipped and have added the info to my .env I just cant figure out how to communicate with it

It will start working once the other 2 pr's are in Auto-GPT and Auto-GPT-plugin-template

Also please read the Readme.

root@Auto:~/Auto-GPT# python3 -m autogpt
NEWS:  Welcome to Auto-GPT! We'll keep you informed of the latest news and features by printing messages here. If you don't wish to see this message, you can run Auto-GPT with the --skip-news flag
WARNING:  You are running on master branch - this is not a supported branch.
WARNNG Plugin AutoGPTTelegram found. But not in the whitelist... Load? (y/n): y
Traceback (most recent call last):
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/root/Auto-GPT/autogpt/main.py", line 5, in
autogpt.cli.main()
File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1635, in invoke
rv = super().invoke(ctx)
File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/click/decorators.py", line 26, in new_func
return f(get_current_context(), *args, **kwargs)
File "/root/Auto-GPT/autogpt/cli.py", line 130, in main
cfg.set_plugins(scan_plugins(cfg, cfg.debug_mode))
File "/root/Auto-GPT/autogpt/plugins.py", line 227, in scan_plugins
loaded_plugins.append(a_module())
File "/usr/local/lib/python3.10/dist-packages/abstract_singleton/init.py", line 14, in call
cls._instances[cls] = super().call(*args, **kwargs)
TypeError: Can't instantiate abstract class AutoGPTTelegram with abstract methods can_handle_chat_completion, can_handle_on_instruction, can_handle_on_planning, can_handle_on_response, can_handle_post_command, can_handle_post_instruction, can_handle_post_planning, can_handle_post_prompt, can_handle_pre_command, can_handle_pre_instruction, can_handle_report, can_handle_user_input, handle_chat_completion, on_instruction, on_planning, on_response, post_command, post_instruction, post_planning, post_prompt, pre_command, pre_instruction, report, user_input
root@Auto:~/Auto-GPT#

This is what I get when trying to start autogpt

Thats just what I said, the template is missing the report and user_input methods, so it cannot be casted into the proper object.

Sorry this is all new to me and im just trying to figure it out with my limited knowledge

Until then, feel free to use this branch:
https://github.com/Wladastic/Auto-GPT-Telegram
I built this plugin as an integration first, so this is where it still works.

Sorry this is all new to me and im just trying to figure it out with my limited knowledge

no problem, I am happy to answer any questions.

Until then, feel free to use this branch:
https://github.com/Wladastic/Auto-GPT-Telegram
I built this plugin as an integration first, so this is where it still works.

I used this everything all setup, the bot has access to messages on telegram it send message to the group just fine but when I send any type of response it just keeps polling like it cant see my request in telegram.

a group?

a group?

I tried using the chat id of the group I added the bot to because when I added the chat id of the bot I got an error stating that messages cant be sent to itself

I am glad, because you only need the chat_id, not the bot id.
For anyone who jumps in:
To get the chat_id, first create the bot using botfaher,
once done, send a chat message to your bot and retrieve the chat_id through getUpdates Call

Hello, please await the pr that makes it runnable first.

SO just to confirm, even with cloning your version of AutoGPT it doesn't work just yet?

No, the Plugin won't work, the fork with telegram built in, does not need the plugin.
Please don't mix those two up.
The plugin is the same functionality built as a plugin, while the Auto-GPT-Telegram repo has it built in already.

Significant Gravitas is already informed, once they update the package on python pip lib, then this PR will be merged and you can use the plugin:
https://github.com/Significant-Gravitas/Auto-GPT/pull/2929
Then the plugin works. :)
Sorry for the confusion, the telegram functionality was already done, but we decided to make it a plugin instead, which needs some extra time.

Happy to know!
I will close this once the other PR's went through, that make the Plugin work.

Hi Wladstic,
I got that plugin showing up on AutoGPT but not working due to the PRs you mentioned. Any eta you can throw at it?
Nice work btw - really needed functionality

I am a DevOps guy but probably can help out if you need a hand on the project.
Peter

got it running! :)
https://github.com/Significant-Gravitas/Auto-GPT/pull/2929
once that is through, please pull the plugin again as I had to change some things

Amazing - can't wait to test. Was looking already to develop my own.
In the meantime added a feature to the commands to use a local gpt4all for agent queries. Quicker turn around for code gen.

PR is done, it should work now!


Unable to build the docs

Hi,
I am able to successfully run it in dev mode. However as soon as I try to build the docs I get a long list of failures. Pasting only a part of it  -
(undefined) /media/e0lithic/D/GameX/src_generic/release_tools/Test2/tsconfig.json
[tsl] ERROR
      TS2688: Cannot find type definition file for 'node_modules/@mr-hope/vuepress-theme-types'.
(undefined) /media/e0lithic/D/GameX/src_generic/release_tools/Test2/tsconfig.json
[tsl] ERROR
      TS2688: Cannot find type definition file for 'node_modules/vuepress-types'.
(undefined<EMAIL_ADDRESS>[tsl] ERROR in /media/e0lithic/D/GameX/src_generic/release_tools/Test2/node_modules/@mr-hope/vuepress-plugin-components/src/enhanceAppFile.ts(3,28)
      TS2307: Cannot find module 'vuepress-types'.
(undefined<EMAIL_ADDRESS>[tsl] ERROR in /media/e0lithic/D/GameX/src_generic/release_tools/Test2/node_modules/@mr-hope/vuepress-plugin-pwa/src/enhanceAppFile.ts(2,28)
      TS2307: Cannot find module 'vuepress-types'.

As mentioned in the documentation I have already added typescript and the following to tsconfig.json
{
    "compilerOptions": {
      "target": "ES6", /// Any target which is not less than 'ES5'
      "experimentalDecorators": true, // Typescript files for '.vue' needs this option
      "allowSyntheticDefaultImports": true,
      // type definition files of vuepress and this theme
      "types": ["@mr-hope/vuepress-theme-types","vuepress-types"]
    },
    "include": [
      "docs/.vuepress/enhanceApp.ts" // replace `src` with your doc folder
    ]
}

And the file enhanceApp.ts is empty as mentioned in the guide. Could you please point out where I am going wrong?

My fault, you should add an extra line:
{
  "compilerOptions": {
    "target": "ES6",
    "allowSyntheticDefaultImports": true,
    "experimentalDecorators": true,
    "module": "commonjs",
    "types": ["@mr-hope/vuepress-theme-types", "vuepress-types"]
  },
  "include": ["docs/.vuepress/enhanceApp.ts"]
}

I will update the docs later.

Works like a charm.

The problems to cause this is that both @mr-hope/vuepress-theme-types and vuepress-types only have d.ts files in them with no js, that means they have no entrance, and will fall on module 'ES6`


Unable to install hooks

This is what's in log:
Started GET "/admin/settings/plugin/redmine_git_hosting/install_gitolite_hooks" for <IP_ADDRESS> at 2022-04-11 10:55:15 +0000
Processing by SettingsController#install_gitolite_hooks as JS
  Parameters: {"id"=>"redmine_git_hosting"}
  Current user: admin (id=1)
Completed 500 Internal Server Error in 56ms (ActiveRecord: 6.9ms)

TypeError (no implicit conversion of nil into String):

plugins/redmine_git_hosting/lib/redmine_git_hosting/config/gitolite_hooks.rb:34:in `join'
plugins/redmine_git_hosting/lib

Ruby 2.7.5
Redmine 4.2.5
Plugin 5.0.1-master

seems that gitolite_local_code_dir is empty
so I have replaced line 34  of lib/redmine_git_hosting/config/gitolite_hooks.rb
with:
  File.join gitolite_home_dir, 'hooks', 'common'
and it's green now...

I believe this is an incorrect workaround as gitolite will not find the hooks in gitolite_home_dir/hooks/common. The plugin will install in gitolite_home_dir/.gitolite/hooks/common for gitolite 2 and gitolite_home_dir/local/hooks/common for gitolite3. YOu issue seems that gitolite_home_dir/local is not created. It was on my install. Maybe you had another error beforehand that dismissed its creation. But the above workaround is not good.

I have encountered the same issue in a setup with distinct  redmine and gitolite servers (as described at http://redmine-git-hosting.io/faq/#can-i-install-gitolite-and-redmine-on-different-servers-).
I think I encountered some inconsistencies in the docs, and I will list them below.

the configuration option gitolite_local_code_dir is mentioned in the docs, but I cannot grep code that reads it. I can only find the method gitolite_local_code_dir in gitolite_hooks.rb
the faq statesthat gitolite might be running on a separate server, but the code uses both sudo_capture and ssh_capture in various places, with inconsistent results (the repo count is zero, gitolite commands are unavailable, but some info is still presented as the gitolite banner, the gitolite version is correctly parsed)

I think the use case where the servers are separate does not fully work at this point, but the main features seem fine. I had some problems with it, but