Add Ollama local models

I have been trying to connect my Ollama model llama3.1 to the system without results :skull: , only working with OpenAI and Diffbot :100:.
Can you give me instructions how to deal with this configuration?
Config in my .env:
Optional Backend
EMBEDDING_MODEL = "llama3.1:8b"
IS_EMBEDDING = "true"
KNN_MIN_SCORE = "0.94"
Enable Gemini (default is False) | Can be False or True
GEMINI_ENABLED = False
LLM_MODEL_CONFIG_ollama_llama3="llama3.1:8b,http://localhost:11434"
Thanks in advance!!!

@aashipandya

Hi @trasgoverde
Configurations which you have mentioned seemed to be correct. What is the exact issue? Are you not getting any nodes and relationships from llama 3.1 model or there is error in model initialization ?

Hi @trasgoverde Configurations which you have mentioned seemed to be correct. What is the exact issue? Are you not getting any nodes and relationships from llama 3.1 model or there is error in model initialization ?

Hi @aashipandya , I am not getting any node nor relationships from Llama3.1, the model is initiated and the endpoint/port is correct and working.
Dockerized Graph-llm-builder + Ollama(Llama3.1):
$docker ps -a

fab8bf607447   ollama/ollama                        "/bin/ollama serve"      About a minute ago   Up About a minute          <IP_ADDRESS>:11434->11434/tcp, :::11434->11434/tcp       ollama
48f25f7c7a43   graph-builder-main-frontend          "/docker-entrypoint.…"   6 days ago           Up 5 minutes               80/tcp, <IP_ADDRESS>:8080->8080/tcp, :::8080->8080/tcp   frontend
586115aeab02   graph-builder-main-backend           "gunicorn score:app …"   6 days ago           Up 6 minutes               <IP_ADDRESS>:8000->8000/tcp, :::8000->8000/tcp           backend

Only works with Diffbot Model and OpenAI models, stills not working  in my machine with local Ollama model
Thanks in advance!

Hi @trasgoverde are you able to solve the issue. I'm also facing same issue, with Ollama local server. Documents and Chucks are getting created but not entities(nodes and relationships). Status is showing failed but entities are Documents and Chunks are getting created

Hi @trasgoverde are you able to solve the issue. I'm also facing same issue, with Ollama local server. Documents and Chucks are getting created but not entities(nodes and relationships). Status is showing failed but entities are Documents and Chunks are getting created

Hello @naveen-420, I still have the same problem as you, seems something about naming but I wasn´t able to fix it. May be @aashipandya  can help with the issue.
Best,

LLama 3.0 versions might give some nodes and relations but 3.1 versions are not extracting graph currently. Working on it, will update here when it will be available in dev

Hi @trasgoverde are you able to solve the issue. I'm also facing same issue, with Ollama local server. Documents and Chucks are getting created but not entities(nodes and relationships). Status is showing failed but entities are Documents and Chunks are getting created

Hello @naveen-420, I still have the same problem as you, seems something about naming but I wasn´t able to fix it. May be @aashipandya can help with the issue.
Best,

I think this error is due to the configuration entry
1、frontend .env

2、backend .env

Hi @trasgoverde are you able to solve the issue. I'm also facing same issue, with Ollama local server. Documents and Chucks are getting created but not entities(nodes and relationships). Status is showing failed but entities are Documents and Chunks are getting created

Hello @naveen-420, I still have the same problem as you, seems something about naming but I wasn´t able to fix it. May be @aashipandya can help with the issue.
Best,

I think this error is due to the configuration entry backend -->.env

Hi @zhanglt,
Did it work after your .env change? Are you getting any nodes and relationships from llama 3.1 locally installed?
Best,

yes i also think it's a config issue, please follow the config example in the docs.

Hi @trasgoverde are you able to solve the issue. I'm also facing same issue, with Ollama local server. Documents and Chucks are getting created but not entities(nodes and relationships). Status is showing failed but entities are Documents and Chunks are getting created

Hello @naveen-420, I still have the same problem as you, seems something about naming but I wasn´t able to fix it. May be @aashipandya can help with the issue.
Best,

I think this error is due to the configuration entry backend -->.env

Hi @zhanglt, if you are able to generate entities(nodes and relationships) with config change and ollama3.1 running locally, can you please share your complete config and ollama3.1 model version you are using. as @trasgoverde mentioned i'm also not able to generate any nodes and relationships with config change.

Followed example in the docs.
Error:
Failed To Process File:crewAI or LLM Unable To Parse Content 'NoneType' object has no attribute 'split'

Followed example in the docs. Error: Failed To Process File:crewAI or LLM Unable To Parse Content 'NoneType' object has no attribute 'split'

def get_llm(model: str):
    """Retrieve the specified language model based on the model name."""
    env_key = "LLM_MODEL_CONFIG_" + model
    env_value = os.environ.get(env_key)

elif "ollama" in model:
        model_name, base_url = env_value.split(",")
        llm = ChatOllama(base_url=base_url, model=model_name)

This error because env _ key is misconfigured, causing env _ value is null,See the code above.
backend->.env
LLM_MODEL_CONFIG_ollama_llama3="llama3.1, http://localhost:11434"
be revised as
LLM_MODEL_CONFIG_ollama="llama3.1, http://localhost:11434"

Hi @trasgoverde are you able to solve the issue. I'm also facing same issue, with Ollama local server. Documents and Chucks are getting created but not entities(nodes and relationships). Status is showing failed but entities are Documents and Chunks are getting created.

Hello @naveen-420, I still have the same problem as you, seems something about naming but I wasn´t able to fix it. May be @aashipandya can help with the issue.
Best,

I think this error is due to the configuration entry backend -->.env

Hi @zhanglt, if you are able to generate entities(nodes and relationships) with config change and ollama3.1 running locally, can you please share your complete config and ollama3.1 model version you are using. as @trasgoverde mentioned i'm also not able to generate any nodes and relationships with config change.Thanks

@naveen-420  Yes, it all looks normal
backend.log
ollama.log

@zhanglt config would be LLM_MODEL_CONFIG_ollama_llama3="llama3,http://localhost:11434/v1"

Hey guys @zhanglt @aashipandya it's not easy to follow here because the last comments are telling opposite suggestions.
As the others I am also experiencing the Ollama issue (llama 3.1).
The changes made in my attempts :
I tried the change in the .env file (root folder)
LLM_MODEL_CONFIG_ollama="llama3.1,http://<IP_ADDRESS>:11434"
instead of LLM_MODEL_CONFIG_ollama_llama3.
I also changed  the dropdown to
VITE_LLM_MODELS="diffbot,openai-gpt-3.5,openai-gpt-4o,ollama" as seeing in @zhanglt , but make it or not does not change the result.
the problem is in the extraction :
2024-10-11 10:08:14,158 - File Failed in extraction: {'message': 'Failed To Process File:Steve_Jobs or LLM Unable To Parse Content ', 'error_message': "'tail_type'", 'file_name': 'Steve_Jobs', 'status': 'Failed', 'db_url': 'neo4j+s://343561dd.databases.neo4j.io:7687', 'failed_count': 1, 'source_type': 'Wikipedia', 'source_url': None, 'wiki_query': 'Steve_Jobs', 'logging_time': '2024-10-11 10:08:14 UTC'}
Traceback (most recent call last):
  File "/code/score.py", line 190, in extract_knowledge_graph_from_file
    result = await asyncio.to_thread(
  File "/usr/local/lib/python3.10/asyncio/threads.py", line 25, in to_thread
    return await loop.run_in_executor(None, func_call)
  File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/code/src/main.py", line 255, in extract_graph_from_file_Wikipedia
    return processing_source(uri, userName, password, database, model, file_name, pages, allowedNodes, allowedRelationship)
  File "/code/src/main.py", line 335, in processing_source
    node_count,rel_count = processing_chunks(selected_chunks,graph,uri, userName, password, database,file_name,model,allowedNodes,allowedRelationship,node_count, rel_count)
  File "/code/src/main.py", line 410, in processing_chunks
    graph_documents =  get_graph_from_llm(model, chunkId_chunkDoc_list, allowedNodes, allowedRelationship)
  File "/code/src/llm.py", line 192, in get_graph_from_llm
    graph_document_list = get_graph_document_list(
  File "/code/src/llm.py", line 172, in get_graph_document_list
    graph_document = future.result()
  File "/usr/local/lib/python3.10/concurrent/futures/_base.py", line 451, in result
    return self.__get_result()
  File "/usr/local/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
    raise self._exception
  File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.10/site-packages/langchain_experimental/graph_transformers/llm.py", line 795, in convert_to_graph_documents
    return [self.process_response(document, config) for document in documents]
  File "/usr/local/lib/python3.10/site-packages/langchain_experimental/graph_transformers/llm.py", line 795, in <listcomp>
    return [self.process_response(document, config) for document in documents]
  File "/usr/local/lib/python3.10/site-packages/langchain_experimental/graph_transformers/llm.py", line 748, in process_response
    nodes_set.add((rel["tail"], rel["tail_type"]))

I am not sure you guys saw that even the docker-compose has an entry for Ollama
 - LLM_MODEL_CONFIG_ollama_llama3=${LLM_MODEL_CONFIG_ollama_llama3-}
but even in this case a variation to
- LLM_MODEL_CONFIG_ollama=${LLM_MODEL_CONFIG_ollama-}
brings any result..
Any chance for some final light ?

Please try to take the latest pull form main branch
For runnig locally config is - LLM_MODEL_CONFIG_ollama_llama3="llama2,http://localhost:11434"
For docker build - ```
LLM_MODEL_CONFIG_ollama_llama3=${LLM_MODEL_CONFIG_ollama_llama3-llama3,
http://host.docker.internal:11434}

Please try to take the latest pull form main branch For runnig locally config is - LLM_MODEL_CONFIG_ollama_llama3="llama2,http://localhost:11434"
For docker build - LLM_MODEL_CONFIG_ollama_llama3=${LLM_MODEL_CONFIG_ollama_llama3-llama3,http://host.docker.internal:11434}

I'm having issues with Ollama showing up in the LLM model selection.
I've installed Ollama image to docker and it's running on port 11434.
My config amendments:
Docker YAML:

LLM_MODEL_CONFIG_ollama_llama3=${LLM_MODEL_CONFIG_ollama_llama3-llama3,http://host.docker.internal:11434}
Build args:
VITE_LLM_MODELS=${VITE_LLM_MODELS-diffbot,openai-gpt-3.5,openai-gpt-4o,llama3}

.env file:
LLM_MODEL_CONFIG_ollama_llama3="llama3,http://host.docker.internal:11434"
VITE_LLM_MODELS="diffbot,openai-gpt-4o,llama3"
Are there any issues which is preventing Ollama showing up?

Hi @richdatasci in the frontend env what you have mentioned for VITE_LLM_MODELS??

Hi @richdatasci in the frontend env what you have mentioned for VITE_LLM_MODELS??

I've tried quoting "llama3" in the frontend env and that gives the option for Llama3.  However when prompting it gives the error:
Failed To Process File:crewAI or LLM Unable To Parse Content 'NoneType' object has no attribute 'split'

Hi @richdatasci it is related backend llm configuration can you mention backend env variables?

Hi @richdatasci it is related backend llm configuration can you mention backend env variables?

I've got this in my backend .env:
LLM_MODEL_CONFIG_ollama_llama3="llama3,http://host.docker.internal:11434"

Any update on this?  It still doesn't work.

Hi @richdatasci this may help you #678


Error while using API Explorer

Unable to instrument com.google.cloud.solutions.mobilepushnotification.DeviceRegistration, Security restrictions may not be entirely emulated.
java.lang.ArrayIndexOutOfBoundsException: 137

Try : I have uncommented the security constraint item on the web.xml

Is the DummygameEndpoint working ?

Retrying with DeviceRegistration, go debugging it

import com.google.cloud.solutions.mobilepushnotification.EMF; not used in DeviceRegistration endpoint

Pb not important enough,
alternative : recreate DeviceRegistration with objectify. (inconvenient with eclipse to add jar...)
I pretty sure the API is still working the problem of security is not a "not working problem" look at the request created pb, the message is sent to the wrong adress (and not at the local server).


Switch to Makie.jl

Switch to Makie for all plotting routines

Codecov Report
Attention: 60 lines in your changes are missing coverage. Please review.

Comparison is base (0856ccc) 95.09% compared to head (85cd83b) 71.85%.

:exclamation: Current head 85cd83b differs from pull request most recent head 4fa3a03. Consider uploading reports for the commit 4fa3a03 to get more accurate results

Files
Patch %
Lines

src/plots.jl
66.27%
57 Missing :warning:

src/noisemodels/noisemodels.jl
0.00%
3 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##             main      #16       +/-   ##
===========================================
- Coverage   95.09%   71.85%   -23.25%
===========================================
  Files          15       15
  Lines        1204     1176       -28
===========================================
- Hits         1145      845      -300
- Misses         59      331      +272

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


imgName is not appended to imgPath if imgPath is set (sass)

Been trying spritesmith today, it works and is brilliant. However, I think I found an issue.
Please ignore the line numbers in the code blocks below :)
This:
138   var spriteData = gulp.src(config.sprites)
139     .pipe(spritesmith({
140       imgName: 'sprites.png',
141       cssName: '_sprites.scss',
142       algorithm: 'top-down',
143       padding: 2,
144     }));

Works and produces this output:
$arrow-navigation-left: (0px, 56px, 0px, -56px, 46px, 95px, 337px, 496px, 'sprites.png', 'arrow_navigation_left', );
Now, setting imgPath:
138   var spriteData = gulp.src(config.sprites)
139     .pipe(spritesmith({
140       imgPath: '../assets/images',
141       imgName: 'sprites.png',
142       cssName: '_sprites.scss',
143       algorithm: 'top-down',
144       padding: 2,
145     }));

I'm getting this (notice that there is no filename in the path):
$arrow-navigation-left: (0px, 56px, 0px, -56px, 46px, 95px, 337px, 496px, '../assets/images', 'arrow_navigation_left', );
I need to add the filename in the path to get it working:
137 gulp.task('sprites', function () {
138   var spriteData = gulp.src(config.sprites)
139     .pipe(spritesmith({
140       imgPath: '../assets/images/sprites.png',
141       imgName: 'sprites.png',
142       cssName: '_sprites.scss',
143       algorithm: 'top-down',
144       padding: 2,
145     }));

And now I have the final sass file which points to the sprite file:
$arrow-navigation-left: (0px, 56px, 0px, -56px, 46px, 95px, 337px, 496px, '../assets/images/sprites.png', 'arrow_navigation_left', );
I do not know if this is intended, I thought it would be good to mention it.

That is working as intended. We use the direct version of imgPath in the CSS variables to avoid any potential edge cases that occur by adjusting data.

Thanks ;)


ACIDDAMAGE runs as low-privileged user

I tried replicating the attack but my DLL is loaded as the user running cp_client and not as SYSTEM. Any ideas?

@bananabr  Did you ever sort it out?  I'm having the same issue.

Obviously, I'd need more information to troubleshoot this. Windows version, driver version, etc.

I have access to some older versions of Windows at home and will test those when I get off work.
Info from the client PC:
Driver
This is the driver that was installed when connecting to the malicious printer.
From Get-PrinterDriver:

Name
Value

Name
Lexmark Universal v2

MajorVersion
3

DriverVersion
562992903094277

From lmud1040.GDL
<GDL_ATTRIBUTE Name="*GPDFileVersion" xsi:type="GDLW_string"><IP_ADDRESS></GDL_ATTRIBUTE>
<GDL_ATTRIBUTE Name="*GPDSpecVersion" xsi:type="GDLW_string">1.0</GDL_ATTRIBUTE>

Device Info

Name
Value

WindowsProductName
Windows 10 Pro

WindowsEditionID
Professional

WindowsVersion
2009

OSBuildNumber
19044

OSArchitecture
64-bit

Hotfixes:
KB5015730
KB5003791
KB5012170
KB5016616
KB5014671
KB5015895
KB5005699


Feature Request: Evaluate Validation Set Using Generator

I noticed that there has yet to be an evaluation function implemented for validation data which uses a generator, from models.py line 1040:
 # TODO: call self.evaluate_generator()
Motivation
Large validation datasets shouldn't be fully loaded into memory, only to be used at the end of an epoch (waste of memory). This feature would be quite useful in general for all applications.
Implementation
Evaluate the generator's next output by batches, with the user specifying an additional parameter in fit_generator to specify how many examples to evaluate from the validation set at the end of each epoch. Will add a function to the Model parent class so as to generalize to the Sequential and Graph classes.
Finally, as much as I've benefited much using Keras, I would also like to contribute back, hopefully by implementing this little feature successfully. As this is my first, would appreciate some guidance and any tips that you feel a beginner should know but might not!
p.s. I've read the CONTRIBUTING.md file :)

Please note that you can also use a callback to do this meanwhile:
from keras.callback import Callback
class SampleValCB(Callback):
    def __init__(self, val):
        self.val = val

    def on_epoch_end(self, epoch, logs={}):
        mtloss = np.mean([self.model.test_on_batch(data) for data in sample_data(self.val, once=True)])

This assumes you have a generator sample_data that takes the dataset as first argument, and another argument once=True to indicate that it should go through the dataset exactly once.

@pasky Thanks for the suggestion; that's what I'm currently using. Wondering if that would be the 'proper way' to implement going forward?

I'm working on something along these lines in #1758

@qdbp Thanks!


ci: update versions

This is already applied but let's not merge this here. I want to have all these jobs on galoy-mobile-deployments


Update versions 100.15

Build appears to have failed due to https://stackoverflow.com/questions/73374893/nuget-restore-issue-xamarin-ios-csharp-targets-was-not-found


Refactor layer integration tests, moving common code to module.

Waiting for https://github.com/metalbear-co/mirrord/pull/544 to merge.

bors r+

bors r+


Feature powerup cleanup

fixed the shield powerup images, tweaked some parameters and wrote some tests for poison and shield.

Try to not forget javadoc for newly created methods so others know what it does, and we don't have to come back to it later.

We should consider moving the timer logic into a more generic timer class, so the power-up specific timer behaviour can be stored in the appropriate power-up class. Right now the Player class has too many responsibilities and is getting clogged.

Also, please merge development into this branch so GitHub can merge the pull-request automatically when it's time to do so.

After some testing, it seems that calling eat() each time inside the updateImage(String key) in the Player class writes an entry to the log file which limits the framerate around 20 FPS. I can't play the game anymore. I will fix this in a diferent branch, because this one is already merged.


Clearing PHPSESSID after using CAS login and reloading page prints out unneccessary information

If after successful CAS login, PHPSESSID cookie is set to empty value (for example) and the page reloaded, the following error message is displayed to user in otherwise empty page:
phpCAS error: phpCAS::client(): ErrorException: session_start(): The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in /var/www/example_webapp_domain/public_html/example_webapp/vendor/xavrsl/cas/src/Xavrsl/Cas/Sso.php on line 172
The error message is too verbose and gives out unneccessary information for the user, such as the absolute path in filesystem to the web application.

Could uses some hardening: #151 #147

@Laurenzi Please check master. I have introduced a fix for this issue with the setVerbose() function. It's disabled by default but can be switched on:
https://github.com/Jasig/phpCAS/blob/master/docs/examples/example_simple.php
or off like in:
https://github.com/Jasig/phpCAS/blob/master/docs/examples/example_hardening.php
Any feedback is welcome

Should be fixed


omnibus disk full / out of disk space

The following issues seem possibly, likely, or certainly related to
out-of-disk-space issues:
https://github.com/NebulousLabs/Sia/issues/2189
https://github.com/NebulousLabs/Sia/issues/2237
https://github.com/NebulousLabs/Sia/issues/2238
https://github.com/NebulousLabs/Sia/issues/2240
https://github.com/NebulousLabs/Sia/issues/2250
https://github.com/NebulousLabs/Sia/issues/2337
https://github.com/NebulousLabs/Sia/issues/2366
A two part solution is proposed below:

auto restartability
free disk space check on startup using portable file write-close-read.

One common and time-tested solution for this kind of failure mode is
from the Erlang OTP community called Supervisor Trees. These seem to
be available in Golang in the suture package:
http://www.jerf.org/iri/post/2930
Supervisor trees are one way to provide auto-restart for crashes in the long running
Actor model.
If we add restartability using supervisor trees as above or another Golang package such as https://github.com/ochinchina/supervisord
and we add a brief check during startup of siad to ensure that it
can create a one-megabyte file, close it and then read it back before
deleting it
this would let us detect all uncaptured disk full errors during startup
quickly and thereby provide missing error messages. One simple approach
is to allow for only 1 restart attempt. This can add fault tolerance, visibility, and robustness.
@tbenz9

Supervisor trees are cool but I don't think we should graft them onto a mature project. I would consider them if starting over from scratch. Even then, if I were starting over from scratch and really wanted supervisor trees, I'd probably write it in Erlang. Reminds me of my own stm repo, which, while cool, is clearly at odds with Go's concurrency model.
My inclination is to handle these errors on a case-by-case basis. We've already done so for bolt; we just need to extend that to other files. I imagine that in most or all cases, we should crash the program (while shutting down cleanly) and display the out-of-space error in the clearest possible terms.

I use this supervisor a lot. If you added it to sia and added the check I
suggested on startup, it would catch everything that you haven't gotten yet
and still wouldn't prevent you from going around to each cause specifically
and handling it a specific way as well. Think of it as a catch all.
#!/bin/bash
while true ; do
  siad
  sleep 1
done

(a production one will be better but this is just for illustration of how simple can still be useful)
In real fault tolerant distributed systems I find there are usually mutliple
failure modes and multiple recovery modes. So it is not odd to me to have
both at once. But if you know there are only a few places left to cover then
that sounds good to fix. But then the maintainability is at question as well
if you leave out the catch all.  Since future deps or sia core code changes
can introduce new ways to write to disk there may be a burden without the
extra coverage.
I think the only reason I have known not to do some sort of simple top level
restart for any server that is supposed to be long running but isn't is if it
is harmful or destructive to restart. One example might be if log files are
truncated.  But as far as I know I haven't seen Sia to be harmful to try
restarting a few times after it crashed.
I love Erlang and Elixir. I don't think you need all of Erlang to benefit from
restartable actors or fail fast (with restart at least once) because you can
concentrate expensive checks just once up front on boot and thereby detect
unexpected failures. Might be disk full or network connectivity loss.
It's the simplest way to provide the information we developers and users need
automatically to close these issues in a timely manner.

@petabytestorage Thanks for creating this!
Recommendation to devs: tag "Bug"

@petabytestorage I'm thinking it's time we close this issue.
1: The new writeaheadlog in 1.3.1 will resolve most of the issues linked
2: It sounds like the devs aren't very interested in implementing Supervisor trees
Let me know if you think otherwise and we can re-open this issue.


Tooltip focus problem on Chrome 53

I try to use Tooltip with MDL in Chrome 53 and the tooltip is blurred. I can read the content o the tooltip. In other browser the Tooltip is Ok.
Afect only Chrome 53.
OS: MAC OS El Capitan

This is because of some changes in the engine with GPU layers. M55 (current dev channel) fixes this problem. Nothing we should do internally since it would only be temporary and it isn't an MDL issue but a Chrome rendering engine issue.
Thank you.

@Garbee sadly i could to reproduce the problem in canavary version (55)

in canavary version (thats 55) its not fixed - see Screenshot


TimKosse.FileZilla version 3.60.2

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.2 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Close with reason: FileZilla no longer wants their application to be in WinGet due to abuse of its infrastructure;
WinGet = https://github.com/microsoft/winget-pkgs/issues/78578#issuecomment-1238126217
Scoop = https://github.com/ScoopInstaller/Extras/issues/9179#issue-1363052014

Unfortunate, but its their choice


Python language server crashed by Libzip on 2021.8.1

Environment data

Language Server version: 2021.8.1
OS and version: linux x64
Python version (and distribution if applicable, e.g. Anaconda): Miniconda Python 3.7.10 64-bit
python.analysis.indexing: undefined
python.analysis.typeCheckingMode: off

Expected behaviour
If it's hard to fix, will there be a switch to disable this feature?
Actual behaviour
In fact, I'm still facing the same issue as #1421 and #1417 since version of 6.1. I tried to not bothering you after 6.2 by freezing my pylance to 5.4 and disabling extension auto-update, but it's quite inconvenient to disable all updates.
Logs

[Info  - 11:13:53 AM] Server root directory: /~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist
Libzip Error: Not a zip archive
    at h.makeLibzipError (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ZipFS.js:149:29)
    at new h (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ZipFS.js:121:28)
    at I.getZipSync (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ZipOpenFS.js:816:28)
    at I.makeCallSync (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ZipOpenFS.js:697:21)
    at I.readdirSync (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ZipOpenFS.js:614:21)
    at c.readdirSync (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ProxiedFS.js:201:28)
    at C.readdirSync (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ProxiedFS.js:201:28)
    at D.readdirEntriesSync (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/src/common/realFileSystem.ts:212:23)
    at t.PyrightFileSystem.processPartialStubPackages (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/src/pyrightFileSystem.ts:187:46)
    at _0x4e647c.ensurePartialStubPackages (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/src/analyzer/importResolver.ts:587:25)
Libzip Error: Not a zip archive
    at h.makeLibzipError (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ZipFS.js:149:29)
    at new h (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ZipFS.js:121:28)
    at I.getZipSync (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ZipOpenFS.js:816:28)
    at I.makeCallSync (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ZipOpenFS.js:697:21)
    at I.readdirSync (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ZipOpenFS.js:614:21)
    at c.readdirSync (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ProxiedFS.js:201:28)
    at C.readdirSync (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/node_modules/@yarnpkg/fslib/lib/ProxiedFS.js:201:28)
    at D.readdirEntriesSync (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/src/common/realFileSystem.ts:212:23)
    at t.PyrightFileSystem.processPartialStubPackages (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/src/pyrightFileSystem.ts:187:46)
    at _0x4e647c.ensurePartialStubPackages (/~/.vscode-server/extensions/ms-python.vscode-pylance-2021.8.1/dist/pyright-internal/src/analyzer/importResolver.ts:587:25)

Code Snippet / Additional information

XXX

Thanks for the logs.

I tried to not bothering you after 6.2 by freezing my pylance to 5.4 and disabling extension auto-update, but it's quite inconvenient to disable all updates.

Please, do bother us, otherwise we don't know that this is still an issue!

Can you provide full trace logs for this?
I'm wondering if you can find the broken zip/egg file; the current code should be ensuring that any zipfiles it opens are valid zips, but perhaps this file is broken in a way we aren't detecting.

I've submitted a fix which should fix these lipzip errors.


No entity created, IndexError: list index out of range

Prerequirements
[✅] I have connected my mower(s) to the Automower Connect App
[✅] I have connected my Husqvanra developers account to the Authentication API
[✅] I have connected my Husqvarna developers account to the Automower Connect API
Describe the bug
On installing the integration I have no errors. Then when the install completes I have the Husqvarna Automower integration, but it does not create a device/entity.
When I click on CONFIGURE I get ERROR: Config flow could not be loaded: 500 Internal Server Error Server got itself in trouble
Expected behavior
I expected the device to be created.
Screenshots

Additional context
I have had this integration up and running in the past. But when I got the reauthenticate error months ago I could not fix it and deleted it. So currently I am trying to reinstall. I cannot find any entities left over from the previous install. I have removed the integration and rebooted a few times to no avail. Also when the integration was removed I made sure the credentials were deleted. Also made sure all files were deleted from custom_components dir. With the current install I also tried to remove the credentials and configure again to no avail.
Curl check as described on Husqvarna Developer Portal works correctly.
Enabled debug logging with following result:
Logger: aiohttp.server
Source: /usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py:403
First occurred: 21:01:04 (1 occurrences)
Last logged: 21:01:04

Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 31, in headers_middleware
    response = await handler(request)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 148, in handle
    result = await handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 63, in with_admin
    return await func(self, request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 213, in post
    return await super().post(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 72, in wrapper
    result = await method(view, request, data, *args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 71, in post
    result = await self._flow_mgr.async_init(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 255, in async_init
    flow = await self.async_create_flow(handler, context=context, data=data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 1868, in async_create_flow
    return handler.async_get_options_flow(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/husqvarna_automower/config_flow.py", line 114, in async_get_options_flow
    return OptionsFlowHandler(config_entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/husqvarna_automower/config_flow.py", line 177, in __init__
    self.sel_mower_id = self.mower_idx[0]["id"]
                        ~~~~~~~~~~~~~~^^^
IndexError: list index out of range

I have the same problem with my integration - it was working fine, 2 days ago entities become unavailable and I get the same error (500).

I've tried to reproduce this. But I don't get this error. It looks for me like a server-side problem. Maybe you can try again. And if it still doesn't work ask Husqvarna, if they have an idea?

I've tried to reproduce this. But I don't get this error. It looks for me like a server-side problem. Maybe you can try again. And if it still doesn't work ask Husqvarna, if they have an idea?

Before I contact Husqvarna, can I just check something with you (or someone else if anyone else is reading)? My knowledge of APIs is extremely limited and have very basic knowledge of Python etc.  But with help of the API section on the Husqvarna Developer website I managed to authenticate myself and get a token. With this token I can request a list of all my mowers --> GET /mowers.  I do get a valid 200 response, but it is an empty list:
{   "data": [] }
I'm assuming this is where the fault comes from as it cannot select index 0 from an empty list.
Could you show me what your (or another) valid GET /mowers result looks like?

Something like this:
https://github.com/Thomas55555/husqvarna_automower/blob/8c72c1a7960c5e1f984d983f2229fa1128a6d70b/custom_components/husqvarna_automower/tests/const.py#L48
What is the automower connect app showing?

Something like this:
https://github.com/Thomas55555/husqvarna_automower/blob/8c72c1a7960c5e1f984d983f2229fa1128a6d70b/custom_components/husqvarna_automower/tests/const.py#L48
What is the automower connect app showing?

Thanks for that.
Connect app is working perfectly. I'll see if I can get an answer out of Husqvarna...


Players are invisible

Well... yeah.

Hahah, thanks for report, this one is funny :).
I'll look into it, I have probably messed up the removeTeleportData.

Hahah, thanks for report, this one is funny :).
I'll look into it, I have probably messed up the removeTeleportData.

I think so...

I think so...

I've done some more testing and couldn't reproduce this. It might be tied to the world ..?

I've done some more testing and couldn't reproduce this. It might be tied to the world ..?

This is a bug that I've noticed on fabric (not sure if it occurs in vanilla) servers (at least in 1.17 snapshots), occurring sometimes when dying and doing /back and nobody seeing you and also not being able to see anyone. It also sometimes happens with dimension changing sometimes, like this case.

This is a bug that I've noticed on fabric (not sure if it occurs in vanilla) servers (at least in 1.17 snapshots), occurring sometimes when dying and doing /back and nobody seeing you and also not being able to see anyone. It also sometimes happens with dimension changing sometimes, like this case.

This is now done similar to sound exploit patch regarding coordinates and doesn't send the packet for entity removal but just modifies the coords to be out of render distance of the player.
If you still get the invisibility problem, please reopen 😉 .

This is now done similar to sound exploit patch regarding coordinates and doesn't send the packet for entity removal but just modifies the coords to be out of render distance of the player.
If you still get the invisibility problem, please reopen 😉 .


fix: backup last state of simulator before undo/redo

Fixes #3014
Describe the changes you have made in this PR -
fixed to backup up to the last state of the simulator workspace, so that while undoing and redoing we not lose the last working state.
we can perform a backup before every undo and redo by calling scheduleBackup() function, to make sure that we have backup up to the last working state of the user project.
Problems Fixed:

Update upto the last state of the simulator before Undo.
Check the last state of the simulator before Redo.

Coverage remained the same at 81.785% when pulling 4e8916ad76f30396181751818668e75ce2970788 on pulkit-30:updatestate-undo into 80b1a0ba56231b1b43d4d1355cf033ee36fe4025 on CircuitVerse:master.

Hey @gr455,
Please review this PR
Thanks :D


Default KO_PLATFORMS to only the current arch when kind is the target

ko has special behavior for a KO_DOCKER_REPO value of kind.local, it will load the images directly into the daemon rather than a registry. Kind clusters do not support multi-arch images, we should assume by default that the kind cluster is running on the same arch as the host.
A user may continue to override the default by setting KO_PLATFORMS with the value they want to use at runtime.

Codecov Report
Base: 81.80% // Head: 81.80% // No change to project coverage :thumbsup:

Coverage data is based on head (315d5cf) compared to base (cdb9db6).
Patch has no changes to coverable lines.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #244   +/-   ##
=======================================
  Coverage   81.80%   81.80%
=======================================
  Files          15       15
  Lines        1451     1451
=======================================
  Hits         1187     1187
  Misses        217      217
  Partials       47       47

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

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


Update Composer dependencies (2024-01-18-00-17)

Visual regression test passed!
View the visual regression test report


Move and update appengine-endpoints-helloendpoints-java-maven sample

This is an updated version of the appengine-endpoints-helloendpoints-java-maven repository.
Migrated sample to Endpoints Frameworks v2.0
Added gradle build support
Added support for new AppEngine plugin
Added comments on how to use Endpoints Frameworks v1.0. It's commented unless developer wants to use this framework version.
Updated README.md to reflect changes with new Endpoints Frameworks v2.0 tooling

Are you ready for me to look at this yet?

@lesv PTAL

Acknowledging comments.
Adding a test to verify specific deployed version versus a prior deployment.
Verified unique groupId for all repo.
Updated Copyrights
Updated README.md to reflect our conversation.

@lesv PTAL


Document Windows support via WSL2

Compilation of Windows installation instructions largely based on my experience and comments in #220.
@ihor-sviziev I borrowed these images from your comment, hopefully that is OK, otherwise I can re-create.

@hardyjohnson i don’t mind

Thanks for the contribution @hardyjohnson.


Unable to run with Rootless Docker configuration.

Hello, I have a little server box running NixOS, and I'm trying to launch the container to complete the setup, however the container fails to launch with the error
chown: changing ownership of '/factorio': Operation not permitted
The line that fails is
chown -R factorio:factorio /factorio
I have followed all of the setup instructions as best I could, but solving this issue has eluded me.
I launch the container using docker-compose up -d, as my Docker is configured Rootless as is described in the NixOS and Docker documentation.
Any help is appreciated.

Could you share your relevant nix config snippets?

Hi, this is my Docker config in my configuration.nix file.
# Virtualisation Configuration
  virtualisation.docker.rootless = {
    enable = true;
    setSocketVariable = true;
  };

I have an existing save that I was looking to transfer over but that was something to be done after the server was up and running on that machine, so I was using the example Docker Compose configuration in the README for the Factorio server.
version: '2'
services:
  factorio:
    image: factoriotools/factorio
    ports:
     - "34197:34197/udp"
     - "27015:27015/tcp"
    volumes:
     - /opt/factorio:/factorio

If you need any other information please let me know, thank you.

Have you chown'ed the right directory? I will personally set it up myself later today, but according to the example setup the data is stored in /opt/factorio.

I believe I did but it has been a while since I tried to launch it, I'll give it another go.

The container expects the mounted folder to have UID:GID of 845:845. Rootless Docker is probably unable to change it if it's owned by a different user.
Can you check who the owner of /opt/factorio is on your host and try changing it to 845:845?

Just double checked, chown'd to 845 using sudo chown -R /opt/factorio, same error occurs when starting the container. I also tried doing sudo chmod g+w /opt/factorio just to make sure it had write permission too, seemingly no change.

After running some tests on my own in rootless Docker in Docker container (image docker:27.2-dind-rootless) I ran into the same issue with permissions.
My theory was that the rootless Docker daemon cannot change ownership of the mounted volume which is why this fails.
I don't know if there is a better solution to fix it in general but I chowned the /opt/factorio folder to my rootless Docker user (ID 1000) chown -R 1000:1000 /opt/factorio. Then starting the Factorio container worked and it chowned it to ID 100844, booting up the server.
Hope this helps.

I must have done something wrong because I chown'd it to 1000:1000 using sudo chown -R 1000:1000 /opt/factorio and there was no change. This is the output of stat /opt/factorio after running the above command.
  File: /opt/factorio/
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 259,2   Inode: 6291458     Links: 7
Access: (0775/drwxrwxr-x)  Uid: ( 1000/  jacobs)   Gid: ( 1000/ UNKNOWN)
Access: 2024-10-24 09:59:15.780897166 -0400
Modify: 2024-08-03 17:10:22.820413802 -0400
Change: 2024-10-24 09:59:07.273633759 -0400
 Birth: 2024-08-03 00:03:42.575882145 -0400

Did you start the Factorio server container afterwards?

Yes, it still does not work but it tries to change it multiple times now instead of just once then failing.

Took look at the ownership of some other directories that are being used by some other containers being ran, turns out my Docker uid is 100999 which did not show up when I listed the users, which was fun to find out. Changing ownership of /opt/factorio to 100999 using sudo chown -R 100999:100999 /opt/factorio fixed it, as @Chronoes suggested. Marking as closed as this issue seems to be fixed.

So I'm reopening this as this issue isn't actually resolved. Because I am running Docker Rootless I cannot disable userland-proxy, which means that Docker's own proxy is still being used. The server starts up just fine, but it refuses to stay mapped to 34197, with the ping response changing the final server address as the ports inevitably don't match because of Docker's proxy. I've shared a screenshot of the containers logs on start up. That's the end of the log. I'm truly at a loss here with how to proceed with rootless Docker, and would really like to not use rootful Docker, so any help is appreciated.


Asyncdisplaykit not updated

ASDefaultPlaybackButtonType buttonType = (ASDefaultPlaybackButtonType)[parameters[@"buttonType"] intValue];
UIColor *color = parameters[@"color"];
These lines give an error
Expected method to read dictionary element not found on object of type 'id'

I have the same issue. Any one got any for this one?

Strong cast the id value to dictionary and then access the values might solve the issue.
NSDictionary *buttonTypeDic =  parameters;
ASDefaultPlaybackButtonType buttonType = [buttonTypeDic[@"buttonType"] intValue];
UIColor *color = buttonTypeDic[@"color"];

I have the same issue,
the IOSRaj solution worked for me but it generates this warning
Initializing 'NSDictionary *__strong' with an expression of incompatible type '__strong id<NSObject>'


[ENHANCEMENT] Enhance the Renter API endpoints

Currently, the renter API uses a combination of POST and GET to perform CRUD operations. This can be improved by using other HTTP verbs to make the endpoints more concise. See the examples below.
Upload a new file
Before: POST /renter/upload/*siapath
After:  POST /renter/*siapath
Delete a file
Before: POST /renter/delete/*siapath
After: DELETE /renter/*siapath
Rename a file
Before: POST /renter/rename/*siapath
After:  PUT /renter/*siapath
Download a file
Before: GET /renter/download/*siapath
After:  GET /renter/*siapath
If you pass ?destination=path then it will become async download
In summary, the new renter APIs will look like:
POST /renter/*siapath // upload
DELETE /renter/*siapath // delete
PUT /renter/*siapath // update
GET /renter/*siapath // retrieve
If this is ok, I will create a PR

Worth mentioning, a primary reason we chose to support only GET and POST was because most libraries we found in various programming languages for interacting with http APIs only had strong native support for GET and POST, any other method often required additional work by the user.
We wanted to avoid this friction, and so made that sacrifice at the cost of being less restful.


Ayato Implementation

it's ugly and missing c4, someone help review and test LOL

https://gcsim.app/viewer/share/HFtaSgo6svtudclCkREb0
Ayato is currently snapshotting on cast. But based on https://docs.google.com/spreadsheets/d/1M2nTLogzYd2o4ZLkYEkzfovwiTznQOB5ujWuMlQbE0k/edit#gid=2102662841
he snapshots late into his ult.

The Ayato ult lockout is wrong. You are hitting every 3 (1 0 0 1) pattern instead of every 4. Lockout of 4 hits should be 1.95s not 1.45s.
Also you didn't update the comments when copying from Ganyu's ult

It's ready to go other than frames now


Speed of talk change for small input (~1s) from 44100 to 16000 Mono

I tried the library with different audio files
For very small input ~1s or less the speed of audio is changed
Based on your example I tried  with and without skip_frame function but just flatten the result, no luck
This is my result for this small input
It's correctly working for audio > 1s , is this known or is it a parameter issue ?
My script:

/**
 * This is the Rust main smart ,function, use all pure function inside
 * Main logic is here
 */
fn re_sample_audio_buffer(
  buffer: Vec<Vec<f32>>,
  input_sample_rate: u16,
  output_sample_rate: u16,
  input_channels: u8,
  output_channels: u8,
) -> Vec<f32> {
  let fs_in = input_sample_rate as usize;
  let channels = input_channels as usize;
  let nbr_input_frames = buffer[0].len(); // ? because for stereo
  let duration_total = Instant::now();

  let fs_out = output_sample_rate;
  debug!("Sample {} for output {}", &fs_in, &fs_out);

  // Create buffer for storing output
  let mut outdata =
    vec![
      Vec::with_capacity(2 * (nbr_input_frames as f32 * fs_out as f32 / fs_in as f32) as usize);
      channels
    ];

  let f_ratio = fs_out as f64 / fs_in as f64;

  let mut resampler = FftFixedInOut::<f32>::new(
    input_sample_rate as usize,
    output_sample_rate as usize,
    1024,
    // f_ratio,
    // 1.1,
    // PolynomialDegree::Linear,
    // 1024,
    output_channels as usize,
  )
  .unwrap();

  // Prepare
  let mut input_frames_next = resampler.input_frames_next();
  let resampler_delay = resampler.output_delay();
  let mut outbuffer = vec![vec![0.0f32; resampler.output_frames_max()]; channels];
  let mut indata_slices: Vec<&[f32]> = buffer.iter().map(|v| &v[..]).collect();

  // Process all full chunks
  while indata_slices[0].len() >= input_frames_next {
    let (nbr_in, nbr_out) = resampler
      .process_into_buffer(&indata_slices, &mut outbuffer, None)
      .unwrap();
    for chan in indata_slices.iter_mut() {
      *chan = &chan[nbr_in..];
    }
    append_frames(&mut outdata, &outbuffer, nbr_out);
    input_frames_next = resampler.input_frames_next();
  }

  // Process a partial chunk with the last frames.
  if !indata_slices[0].is_empty() {
    let (_nbr_in, nbr_out) = resampler
      .process_partial_into_buffer(Some(&indata_slices), &mut outbuffer, None)
      .unwrap();
    append_frames(&mut outdata, &outbuffer, nbr_out);
  }

  let nbr_output_frames = (nbr_input_frames as f64 * fs_out as f64 / fs_in as f64) as usize;

  let duration_total_time = duration_total.elapsed();
  debug!("Resampling buffer took: {:?}", duration_total_time);

  flatten_frames(outdata)

  // skip_frames(outdata, resampler_delay, nbr_output_frames).unwrap()
}

pub fn flatten_frames(frames: Vec<Vec<f32>>) -> Vec<f32> {
  let num_channels = frames.len();
  let num_samples = frames[0].len(); // On suppose que tous les canaux ont la même longueur

  let mut flattened_data: Vec<f32> = Vec::with_capacity(num_channels * num_samples);

  for sample_index in 0..num_samples {
    for channel_index in 0..num_channels {
      flattened_data.push(frames[channel_index][sample_index]);
    }
  }

  flattened_data
}

The resampled file is stored as 48 kHz, not 16 kHz, and the original is 44.1 kHz. The resampled file sounds fine if played back at 24 kHz instead of 48. I think you have made some mistake when converting to/from raw.

Sorry it's because web is the only format supported by GitHub for hosting here and it only support 48Khz but I tried with 24Khz, 16Khz .. always same issue 😖

Ok thank to GitHub issue ticket for had been my rubber duck, the very last conversion I did with sox had the flag -c 2 which means 2 channels but it's mono, so that why I got this acceleration.
Hope this issue will helps other people facing those kind of issues


Project recently accessed (Top 5)

One feature that I've always wished we had was to show project that a user recently became a member. Like.. when someone add you to a member, right now we don't really have a good way for the user to know which project that the user was added.
We could show both recently accessed project and projects that user was recently added as a member - as well as any project that user recently created.  I believe we can implement this by doing the following.

for every project that user visits, store the timestamp on local storage.
while iterating over project list, look for any project that user does not have the timestamp (added recently) and set it to the current timestamp.
sort the timestamps/project list descending order. pick the first 5 and add those to the "recent project" list.

What do you think?

@bhatiadheeraj The PR doesn't look like it shows the recently added project as "recent" project. It only shows a project that the user has personally accessed most recently. Are you still working on that? Or should I go ahead and merge this and maybe I should work on it?

@soichih  I am working on any project the user does not have the timestamp (added recently) and set it to the current timestamp.

Amending on the algorithm..

for every project that a user visits, store the timestamp on local storage.
when the project list is loaded from the API, look for any project that does not have the timestamp on the local storage (it means user hasn't visited the project since we added this feature - or it could be a new project that someone shared with the user). Use current timestamp for such project and show "New" sign on the UI (until user visit that project).
sort the timestamps/project list in descending order. pick the first 5 and add those to the "recent project" list.

Initially, all users will see all 5 projects with "new" signs incorrectly - as we can't distinguish between projects that user hasn't visited yet, or was recently added. I believe we can deal with this by storing both the last accessed time and last seen data returned from the API.. but I need to do a bit more thinking on this.


Initial websocket http request not upgrading

The initial websocket http request to the proxy never gets upgraded and is left hanging. However, any subsequent requests are upgraded properly. Why does listening to the upgrade event and handling it on the proxy side fix this issue? Is there a way to fix this issue without listening to that event because in my actual scenario, I don't have access to the server.
Steps to reproduce
Described in the demo section below.
Expected behavior
The initial request should get upgraded. However, if the initial one is failing, all subsequent ones should also fail.
Actual behavior
The initial request does not get upgraded but any subsequent ones get upgraded.
Setup

http-proxy-middleware: 1.0.3
http-proxy-middleware configuration:
 createProxyMiddleware({   target: 'http://localhost:8844',   logLevel: 'debug',   ws: true })
server<EMAIL_ADDRESS>
client info
Issue occurring on Windows 10, Ubuntu 16.04 and RHEL 7
target server info
Basic http server with websocket support
Reproducible Demo
https://github.com/Hamza141/websocket-proxy-test

Run npm install in each of the 3 folders
Start server with node server.js
Start proxy server with node proxy.js
Run client with node client.js. Proxy will not upgrade request.
Run client again but this time the request will get upgraded and data will transfer between the client and server.

I had the same problem and found that this issue is actually documented in the README, it just didn't occur to me that it applied to my situation.
https://github.com/chimurai/http-proxy-middleware#external-websocket-upgrade
The initial http request referred to there is a non-websocket request. In my case, I have multiple sub-apps proxied from a single routing app, and some of the sub-apps ONLY listen for websocket requests as well as automatically reconnecting if the backend restarts. Both of these use cases fail without using the code from the External WebSocket upgrade section, making it absolutely mandatory for me...
To make matters worse (in my case), all of my sub apps are defined in separate files as separate express apps, which means they don't have access to server to hook into upgrade event. I got around this by triggering a custom event in the listen callback which the sub apps can listen for.
server.js
const server = app.listen(process.env.HTTP_PORT || 80, () => {
    app.emit("LISTENING", server)
})

sub_app.js
const app = express()
const proxy = createProxyMiddleware(options);
app.use('/subapp/', proxy)

app.on("mount", parent => {
    parent.on("LISTENING", server => {
        server.on("upgrade", proxy.upgrade)
    })
})

I was able to get access to the server and listen to the upgrade event but I agree that the docs aren't clear as to when to use the code from the External WebSocket upgrade section.


Error:: "Video Unavailable"

Tried that example code with video id: uvsqQg0myuA
Video not playing but shhow error in screen "Video Unavailable".

anyone solved it ?

So far my research has led to nowhere.  Given the mass and might of youtube, the state of the ability to create URLs is unbelievably messed up.  No consistency, no clear space to find the current ability, variant changes everywhere and 90% of the examples on published articles do not work.
It simply appears that there is an internal setting that sets some videos as to be forced to be wholly viewed or not appear at all.  I like to think that my conclusion is based on my lack of understanding.
The whole start/end/playlist accessibility is a hopeless mess, much like trying to navigate your google/youtube accounts.


Add local planning authorities

Mostly straightforward, except there are overlapping ones near Northhampton: https://www.planning.data.gov.uk/map/?dataset=local-planning-authority#52.29636,-0.64106,8.721963931284066z
I'll deal with this in the frontend. In the meantime, output at https://protomaps.github.io/PMTiles/?url=https%3A%2F%2Fatip.uk%2Flayers%2Fv1%2Flocal_planning_authorities.pmtiles

Ping on this -- is it OK? We've already merged the frontend PR that uses it ;)


How do I test inference on custom images?

Kudos for the great work!
I was trying to run the network for custom images, I could not find the 2d Joint coordinate estimation network with the released code. I might have missed something, could you please guide me to it?
Code to run the network separately on custom images with/without bounding box information would be really helpful.
Thanks.

Hi @deval-maker
The main focus of the code is to estimate the root joint location. However, there is indeed a 2D pose estimate as a by-product output of the model at https://github.com/jiahaoLjh/HumanDepth/blob/fba1c6669d09418b1a4bd648a9f4021821ca4037/test.py#L99
It's possible to perform inference on custom images with proper changes to the data loader in data/dataset.py. To obtain visualizable results other than the root joint location alone, you may consider adopting other 3D pose estimation approaches to recover the full 3D pose as well (such as the one used in our paper, refer to https://github.com/mks0601/3DMPPE_POSENET_RELEASE).

Understood!
Regarding the custom inference, I have a few questions.

As I understood from the model file, https://github.com/jiahaoLjh/HumanDepth/blob/fba1c6669d09418b1a4bd648a9f4021821ca4037/model.py#L186
x, coord_map, bbox_masks, vis are the required inputs. And these are calculated in dataset.py.

In the context of multi-person inference, will this https://github.com/jiahaoLjh/HumanDepth/blob/fba1c6669d09418b1a4bd648a9f4021821ca4037/data/dataset.py#L55 become center of the bounding box and corresponding width and height?
What else do I need to take care of while running a multi-person inference?

(cx, cy) corresponds to the principal point of the camera, and (pw, ph) could be considered as the size of the "canvas" in the image plane. (pw, ph) should not be changed for pre-trained models as otherwise the depth estimates will be affected due to the scale change of the input.
The only difference between single-person and multi-person cases is the bounding box input at https://github.com/jiahaoLjh/HumanDepth/blob/fba1c6669d09418b1a4bd648a9f4021821ca4037/data/dataset.py#L77
You just need to give a mask indicating the region inside the bounding box of a target person. For single-person case, we simply ignore the bounding box by setting the mask to be 1 at all pixel locations.

@deval-maker
How did you change the bbox_mask to inference on multi-person image??
I am having difficulty inputting the model when I have the bbox and the images...
Could you give some help??

@deval-maker
How did you change the bbox_mask to inference on multi-person image??
I am having difficulty inputting the model when I have the bbox and the images...
Could you give some help??

I couldn't make it work either.


android:windowSoftInputMode="adjustResize" not working properly with Unistyles

Description
When you try to avoid the keyboard on android and get the same behavior as for ios with config
<KeyboardAvoidingView
      style={{ flex: 1}}
       behavior={Platform.select({
             ios: 'padding',
              android: undefined,
        })}>
</KeyboardAvoidingView>

I also use
android:windowSoftInputMode="adjustResize"
in AndroidManifest.xml

After installing unistyles i guess android:windowSoftInputMode="adjustResize this breaks because the keyboard is not avoiding the view and content anymore

I tried different configuration for behavior or android:windowSoftInputMode but none of them fix the issue.
Could you please help me with that? Thanks in advance!
Steps to reproduce

Initiate React native app
Install Unistyles 2.8.3
Wrap the children in

Snack or a link to a repository (optional)
https://snack.expo.dev/NgtgmuKmO1oj1XRjeBgdL
Unistyles version
2.8.3
React Native version
0.74
Platforms
Android
Engine
Hermes
Architecture
Fabric (new)

The same with me.

I will check it out today. Thanks for the report 🙏🏼

Have you tried to use padding behaviour for Android too?
It works as expected. Default behaviour is different with Unistyles as I'm enabling edge-to-edge layout.
 <KeyboardAvoidingView
    style={styles.container}
    behavior="padding"
 >
   <TextInput
      placeholder="Type something"
      style={styles.textInput}
   />
</KeyboardAvoidingView>

You can run the demo in Unistyles examples:
https://github.com/jpudysz/react-native-unistyles/blob/main/examples/expo/src/examples/KeyboardScreen.tsx
Let me know if that works for you guys, if so I'll update the docs.

Thats a great news @Ashabu !
I always appreciate ppl that reports such issues. I'm happy that it works with padding.
I will add info to docs later today 🙏🏼


I couldn't get it to work

i tried putting the script in mulitipile places and it keeps telling me something about the script having a infinite yeld possible and then the script doesn't work

Do you have a place file or any sort of repro steps?

I just tried using my vr headset on your test place for the script. https://www.roblox.com/games/1502435445/Nexus-VR-Character-Model-Demo It did not work there either. I think your vr plugin might only work on microsoft mr or something becuase i have a vive and you probably couldn't get anyone to test on any other vr headset. Just my guess

I tested it with both an Oculus Rift and HTC Vive before, and both of them worked. I didn't use any API to pick which headsets work, and the Microsoft Mixed Reality headsets currently register as Vive.  Do you have the toggle in the menu enabled, and does Roblox launch as a normal VR character?

what toggle in what menu? Everything looked the same as usual when i booted into vr when the vr player model script was in the game.

There is a VR toggle in the main ESC menu. Since a VR character loads, it should be on. Can I get a screenshot with the F9 console in VR?

Bit of an update: Someone was able to give me more clear repro steps. It may be on Roblox's end with VRService.VREnabled not being enabled when it is changed. I will be investigating more tomorrow when I am at the VR lab.

Should be fixed now. Added a while loop for 10 seconds that attempts to start the character, since it seems like VREnabled is false and Changed isn't firing.


"Breakout rooms" should be translated to "Gruppenräume"

the term "breakout rooms" translates in German to "Gruppenräume"

Dokumentdetails
⚠ Bearbeiten Sie diesen Abschnitt nicht. Er ist für die Verknüpfung von docs.microsoft.com zum GitHub-Artikel erforderlich.

ID: d5323da5-6ed3-248c-ee0c-018e7ea29b26
Version Independent ID: d9a3fcb1-2acd-598b-be74-628f0506484d
Content: Verwenden von Halteräumen in Teams - Microsoft Teams
Content Source: Teams/using-breakout-rooms.md
Service: msteams
GitHub Login: @ricardo-msft
Microsoft Alias: riwilki

@garelli99 thank you for reporting this issue.  You are totally correct, Gruppenräume is the correct term.  It appears to be an issue with our machine translation.  I sent the article to be human translated and hopefully it will be fixed within a week.

@garelli99 the article has now been human translated for German and the correct term is being used.   Please close if it looks ok to you now.  https://docs.microsoft.com/de-de/microsoftteams/using-breakout-rooms  Thanks again for telling us about the issue and let us know if you notice any other problems with the German Teams content.


This repo should be configured to require scanned commits

Since this repo is being included in the CI system for veracruz-project/veracruz, this repo should have stricter restrictions on commits.
Suggestions:

require PRs for merges to main
restrict pushes directly to main
require signed commits

Fixed.
Should we deploy a CI just to make sure the code builds and and runs (standalone, i.e. native and/or WASM outside Veracruz)?

Done in #4


Publish on PyPI?

@alexander0042 Not sure if this is something you want to do but I could publish this library to PyPI if you'd like. I already have an account setup on PyPI and I setup the GitHub action on my forecastio fork so it should be pretty straightforward for me to publish this.

@alexander0042 I know this isn't super urgent but if you'd like the project to be published on PyPI I can continue the setup I started in this branch: https://github.com/Pirate-Weather/pirate-weather-python/tree/pypi. There are some lint errors but it mainly seems to be missing docstrings which we'll need to fix before publishing.
The name will also need to be changed as there is already a library on pypi with the same name so it'll need to be changed.
Not a huge deal if you'd prefer to not publish this on PyPI though as I'll just delete the branch I was working on.

I love this idea in the medium term! The code is already there, so very doable, although we'd have to figure out how to go about getting on there,
Name is a little irritating, but probably just "pirateweather" would be best! Not sure if it has to be the same name as the repo, but hopefully not

I love this idea in the medium term! The code is already there, so very doable, although we'd have to figure out how to go about getting on there,

It's not too complicated to setup. I basically followed this guide to get the GitHub action workflow to work for my fork. I didn't bother setting up testpypi on my fork but if you feel it might be useful then feel free.

Name is a little irritating, but probably just "pirateweather" would be best! Not sure if it has to be the same name as the repo, but hopefully not

Nope, it can be different. All that matters is that the name in setup.py and the name on PyPI are the same. My branch is called python-pirate-weather on GitHub but is caleld python-pirateweather on PyPI.

I setup the workflow but it's having permission issues. I'll see if I can figure anything out.


Added scroll-to-top button feature

Hey @avincodes , I have added a scroll-to-top button feature snippet in your repository.  So, kindly check it and review it also please accept/merge my pull request.
Thank you.

Please add a readme file wth some details of your snippet and a screenshot of it.

Good to go!

Hey @avincodes , will you please assign me the label of hacktoberfest 2022 .

@DEV-Dhruva sure, I forgot, im sorry!

Thank you @avincodes


Active Requests tab shows team names without naming convention

Not sure if this is by design or not but I think it is more consistent to show the team display name with naming convention everywhere. Thanks.

Thanks for the heads up on this one @shuenSL, I have fixed it in this linked PR 😀


Meteor installation required for running .exe

General description
Does meteor need to be installed when you want to run the generated .exe?
Because when I run the exe on another windows pc which does not have meteor installed. The following error occurs (runs fine on the pc that packaged it):
Error: ENOENT: no such file or directory, open 'C:\Users\...\Appdata\Local\.meteor\meteor.bat'

If this is the case then why is meteor bundled in the generation process?
Generation process

Removed ./.electrify folder
Started meteor app
Set name in ./.electrify/package.json
Restarted app
Ran 'Electrify.app.package()' in 'meteor shell' using new command line

The resulting executable is for win32 and ia32
Test method

Zipped the folder in .dist
Copied to another windowd pc
Ran the .exe

Both the generation and testing was performed on a windows 10 x64 pc.

Hi @ericdepotter, Meteor isn't needed.
I'm gonna check this.
In this meanwhile, I've just released a new version some mins ago, with a complete revamp of the project.
Can you please update and let me know if this problems still persists?
Tks

Hi,
I just tested to run my app with the new version of Electrify, but now I get this message:
electrify:meteor:index@server: cannot initialize connection. Did you `npm install -g electrify`?
I did not install electrify with npm and this worked fine in the previous version. Is this required now and if so how do you install with npm on Windows?

Yes, electrify npm package is mandatory now.
You can install it like this:
npm install -g electrify

Ok, I installed electrify and packaged the app succesful, however when running the app on another computer wihout Meteor installed, the same error came up.

Can't see how this can be happening.
You're packaging the app like electrify package?
And then opening it by double-clicking the .exe file inside the .dist folder?

I am getting the same error here, same conditions. First it was because I tried to deploy only the .exe (can see the shortcomings of this now) to 3rd party user Windows machine. Now it is throwing the same JS error when it is run from the .dist output. It runs perfectly fine on Win10 64x dev machine and breaks on Win8 64x user machine despite being the exact same folder. Same js error pops up on run.

Thanks for the feedbacks, I'll give it a deeper look.

Here are the detailed steps, I did to test this:

Installed electrify using npm.
Ran electrify in the app's base folder.
Changed the name of the app in package.json in the folder ./.electrify.
Packaged the app by running electrify package.
Tested the app by running the .exe in ./.electrify/.dist/$name-of-app$-win32-x64.
Zipped the map in the .dist folder.
Moved the zip to another computer.
Extracted and ran the .exe in the extracted folder.

Should be fixed in 2.0.1, please update and let me know if worked as expected.
Tks for reporting.

Thank you Arboleya. Now when I run 'electrify package' it returns the below:

Oh snap, I'll check it.

I have the same error when I run electrify in the app's map.

Now I believe it's fixed, in version 2.0.2.
Can you guys please update and try again?

Thank you. This time it got further, ran for ~4 minutes working on it, and threw this:

@rogerkirkness This has nothing to do with the previous error, actually seems like a permission problem in window's filesystem. Error rises when Electrify attempts to move the bundled meteor app dir inside the .dist folder.
I myself had lots of problems with Windows filesystem, for many times I've have to completely delete my app, clone it again and restart. It worked many times, but in worse cases I've to restart the machine.
Can you test some things around it? Have in mind it's a filesystem permission problem. In my case, windows always thought my dir was in use so it can't move forward.
Please let me know how it went.

Sure. I guess the only difference was it didn't do this before, but as you
say it could be some kind of lingering file system issue. I will try
cloning/deleting and moving it into root and stuff and get back to you.
On Mon, Nov 9, 2015 at 5:28 PM, Anderson Arboleya<EMAIL_ADDRESS>wrote:

@rogerkirkness https://github.com/rogerkirkness This has nothing to do
with the previous error, actually seems like a permission problem in
window's filesystem. Error rises when Electrify attempts to move the
bundled meteor app dir inside the .dist folder.
I myself had lots of problems with Windows filesystem, for many times
I've have to completely delete my app, clone it again and restart. It
worked many times, but in worse cases I've to restart the machine.
Can you test some things around it? Have in mind it's a filesystem
permission problem. In my case, windows always thought my dir was in use so
it can't move forward.
Please let me know how it went.
—
Reply to this email directly or view it on GitHub
https://github.com/arboleya/electrify/issues/21#issuecomment-155219030.

Got it working on dev machine after reboot. Will confirm when it is working on client.

It is working! Thank you for your work on this, and such quick turn around. I tried it on one machine so far but will be trying it on two more soon.

Glad to hear it, closing the :)

It also works for me, thanks @arboleya for your fast fix.

I am still getting this original issue on 2.0.2

Did you delete the .electrify folder and then re-package it? If so, then I
am not sure what to suggest. It is working on several different client
devices for me right now.
On Tue, Nov 24, 2015 at 5:11 PM, Connor Hallett<EMAIL_ADDRESS>wrote:

I am still getting this original issue on 2.0.2
—
Reply to this email directly or view it on GitHub
https://github.com/arboleya/electrify/issues/21#issuecomment-159422269.

@rogerkirkness Removing the folder fixed the issue.  Thank you


Fix not working anchor links

Fix not working anchor links (Back To Top) in README.

Thank you very much!


Added Support for web (html, css, js, vue, svelte, tw) & php (php, hack)

Added support as mentioned in the title.
Also willing to add linters etc... if wished!
maybe the implementation should look like this in the module.fnl
(web +lint +format) ; the tubes

Thanks for this great project.

Wonderful. I'll add listing support through https://github.com/mfussenegger/nvim-lint, and probably split the lsp module into a tools.lsp module and an editor.diagnostics module. After that it should be straghtforward to add the listing configs as well

(web +lint +format) ; the tubes

For now, sadly we can only do lang.web, I haven't added support for module flags yet, though its coming in the future!

I added support for linting under the tools.diagnostics module. Theres also support for formatting through formatter.nvim (in the editor.format module) so feel free to take a look at https://github.com/mhartington/formatter.nvim/tree/master/lua/formatter/filetypes and add formatting support for the languages you'd like

I think you've got everything, but feel free to look through https://github.com/shaunsingh/nyoom.nvim/blob/main/docs/modules.md if you'd like.

Note that the module syntax slightly changed to allow for module flags, feel free to gate additional functionality behind flags

Hey @shaunsingh,
Currently i can't work on it caused by
https://github.com/shaunsingh/oxocarbon.nvim/issues/9
Do you have any plans what might could resolve this?

Not sure if you meant to close this but I moved the colorscheme back to lua/fennel in the main branch so everything should be good to go now


Merge two TTX/TTF files into one TTC file

I don't understand quite how TTC files work, so this might not be possible. I figured I'd ask the experts regardless.
I was able to convert a TTC file into two TTX files by using the -y 0/1 command argument. Now I'd like to merge them back into a TTC file. Is this possible?

Sorry, this is not supported yet. For now you can use this script in the Adobe FDK tools:
https://github.com/adobe-type-tools/afdko/blob/master/FDK/Tools/SharedData/FDKScripts/otf2otc.py
Closing as duplicate of https://github.com/behdad/fonttools/issues/17


Detect Ubuntu packages already installed

Avoid installing them again when it is not required.
Set up an extra job that uses Travis addon 'apt'
to pre-install the required dependencies.

Document that concurrent downloads are not possible.

I think I'd like to support concurrent downloads. What trouble did you experience?

Sorry, I removed the documentation changes regarding concurrent jobs, as I found it does work quite reliably.  I forgot to remove it from the commit message.

Answering the query "Do we need the nearly-empty entry in the matrix or can we get by with just one?" here, so it isnt lost hidden in comments on a stale commit...
When we add only one entry in matrix: include:, often a valid yml (such as the current yml in this repo), does not have enough explicit settings in the root level, and only one job is created merging the root and single matrix: include: entry together.
If only the root addons: apt: and matrix entry addons: apt: differ, only one job is created.
In order to make the root level definition a separate job, we need to add either <language>: <version> or env: <name>=<var>, or perhaps some other settings, to the root level.
e.g. setting <language>: <version> in the root level settings. See https://travis-ci.org/jayvdb/travis-oracle/builds/119464639
..
ruby: 1.9

addons:
  apt:
    packages:
      - ..

matrix:
  include:
    - env: APT_ADDON=0
      addons:
        apt: false

e.g. setting env: in the root level settings.
..
addons:
  apt:
    packages:
      - ..

env:
  - APT_ADDON=1
  global:
    - ..

matrix:
  include:
    - env: APT_ADDON=0
      addons:
        apt: false

Alternatively, we can use the more explicit env: matrix: <name>=<var> to force one or more jobs using only the root level definition.
e.g. Use env: matrix:  to describe the one using the root level settings , and matrix: include: to define others. see https://travis-ci.org/jayvdb/travis-oracle/builds/119467553 .
addons:
  apt:
    packages:
      - ...

env:
  global:
    - ...
  matrix:
    - APT_ADDON=1

matrix:
  include:
    - env: APT_ADDON=0
      addons:
        apt: false

(fwiw, env: matrix:  and <language>: <version> can be used together also, with predictable results afaics.)
Specifically for this repo, .travis.yml acts as both our build configuration and an example build configuration for others to copy.  It will take a lot of documentation, or an extremely complicated .travis.yml, to prevent potential users trying to copy the .travis.yml from this repo.
So if possible, we should make it as easy as possible for people to copy the right bits, and discard the bits that are only relevant for our build configuration.
As a result, I prefer to add addons: apt: at the root level (as it should be copied), and not complicate env: global: by adding anything there.  It is nice that env: only contains env: global: that needs to be copied.
If you agree with that, then our options are

explicitly define two matrix: include: entries, both defining an env: (my preference)
use a ruby matrix setting that does force an extra job, like ruby: <version>

Looking at the second option, it appears that the settings we can play with are defined in https://docs.travis-ci.com/user/languages/ruby#Build-Matrix , and I guess ruby: x is synonymous with rvm: x.
Here is what they look like:

ruby: <version>: https://travis-ci.org/jayvdb/travis-oracle/builds/119464639 (not very nice if we only pick a single version, but quite helpful if we want to test against multiple ruby versions)
gemfile:: https://travis-ci.org/jayvdb/travis-oracle/builds/119478926 (looks ugly with the gemfile misplaced, but that may be a bug in travis that we can fix)
jvm: https://travis-ci.org/jayvdb/travis-oracle/builds/119480745 (the jvm variable is unused as jruby isnt being used, but it does split the build into two jobs \o/)

Note there are issues raised regarding this 'extra job', with others expecting that the root definition should not be a job when matrix: include: is present. e.g. travis-ci issue 4681 .  However there is also a silent majority happy with the extra job created. ;-)
While there are viable options to avoid two entries in matrix: include: , I think it is the best option, especially if we merge #11 which will already add multiple entries to matrix: include: , and in that case there is no alternative.

Fixed in 19c3924fc54584df83ecf7ad2d7e83d92186f3d3.


Feature: Add function that reverses column mapping.

Feature Details
e.g. reverts column names in status_site to column names in ctms_site
Example Code

Possible Implementation

Additional Comments

@samussiah @mattroumaya Is there a specific use case for this? Closing for now, but we can re-open and prioritize if you still think it's needed.


fix(model): model decorator API bug 3

:tada: This PR is included in version 2.15.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


✨ Enable Scorecard badge

Summary

Enables the beta version of Scorecard badges.

It's signed off already (or atleast the latest commit since I repushed)?


Fixed the default test, added the project_short_description field

A working version with the following fixes:

A fix for the test path
project_short_description field needed by some licenses

@cuihantao Thanks.

The short description is required if GPL-3 is chosen. I added back the field to let it proceed.


add MAGA logo and to mc.tokenlist.json

Hello, please remove the token listing commit from this PR. Your token does not meet the requirements for listing as there is less than $1K USD in a LP on our DEX.
WE can merge the logo commit once the listing merge is removed. Please ensure sufficient liquidity is an a LP before re-submitting for listing