#1920 Fix empty comments in digest emails

What does this pull request aim to achieve? 💯
Resolves #1920 (empty comment in digest email)

[x] I have checked that no one else is working on similar changes.
[x] I have read the latest README and understand the development workflow.
[x] The name of this branch is: feature/<branch_name>, or hotfix/<branch_name> if this is a hotfix, where <branch_name> briefly describes the issue(s) resolved and is prefixed with the issue number(s) (e.g. 1127-1130-update-git-branching-model). The branch is created in a cloned version of this repo, not a forked repo.
[x] This branch is rebased/merged with the latest staging (or the latest production if it is a hotfix).
[x] There are no merge conflicts.
[x] There are no console warnings and errors.
[x] On the right hand side of this PR, I have linked the appropriate issue(s) under "Issues" and added a project progress under "Projects".
[x] The title describes the issue(s) being addressed using format: <issue_numbers> - <brief_issue_description> (e.g. #1127/#1130 - Update Git Branching Model)

Since this affects every review build, this can be tested on the review build that was created as part of my other PR: https://featureuse-npm-ci.fightpandemics.xyz
I have shared this post, and I expect the post author to receive a digest email tomorrow evening. I will not add another comment to this post so I would expect the email to appear correctly, without the empty comment in the email.

Yeah, so I made this fix after the daily email digest was sent today (it's always at 2am UTC). So we need to wait till tomorrow to verify.

Actually I just realized I could just force the daily digest to run. I was able to verify that it now shows up correctly. I think we can just merge this into staging so that QA can verify tomorrow 11/26 after 2am UTC.

Actually I just realized I could just force the sync to happen. I now notice a new issue (the email is basically empty). I will fix this.

Actually I just realized I could just force the sync to happen. I now notice a new issue (the email is basically empty). I will fix this.

Sure @mannykary we can. Thanks

Okay! This looks better. It shows the post activity, but if there were likes/shares and no comments since the last digest, it won't show the "empty" comment text, just the the count of likes and shares as a link:

Okay! This looks better. It shows the post activity, but if there were likes/shares and no comments since the last digest, it won't show the "empty" comment text, just the the count of likes and shares as a link:

Although technically, they can't actually see shares 🤔 . @Zaydme @nfranklin9 @ddveloper @CamilaArias - should only show the link if there are only like and comment activities? I don't think it makes sense for the user to click on "View 2 share(s)" when they can't even see the shares on the post. On a related note, if the activities since the last digest are only shares, we probably shouldn't include that post in the digest.

@mannykary imo
Only show the link for likes and comments
If only shares, don't show post

@mannykary imo
Only show the link for likes and comments
If only shares, don't show post

Alright, I updated the behavior so that a post is shown in the digest only if it has likes and comments on them since the last digest. If the post only had shares since the last digest, it is not shown. Also, the link should no longer show the share count.


cant run on replit

go to your replit.nix file , make sure it looks like this { pkgs }: {   deps = [     pkgs.libGL   ]; }


Supervision "exclude" does not properly update "root" health

I just added a HealthIndicator I know will often be DOWN, and want to exclude it from normal monitoring.
When querying http://localhost:8080/blossom/public/status?exclude=myHealthThatsAlwaysDownAnyway, I get:
{
  "status": "DOWN",
  "details": {
    "diskSpace": {
      "status": "UP"
    },
    "db": {
      "status": "UP"
    },
    "mail": {
      "status": "UP"
    },
    "elasticsearch": {
      "status": "UP"
    }
  }
}

See PR156


ModelChoiceField widget doesn't respect required attribute

When ModelChoiceField's fields are required a form should not submit and also render a native required prompt under the input.
This is actually an elm-select issue raising issue there.

https://github.com/Confidenceman02/elm-select/issues/176


Feat S3 adapter

@eldadfux We don't have tests for Upload and Move methods, I have tested them locally manually with a script, seems fine.
Still issue with how to run tests on CI, do I push test without credentials (This will fail the tests of course)?

@eldadfux We don't have tests for Upload and Move methods, I have tested them locally manually with a script, seems fine.
Still issue with how to run tests on CI, do I push test without credentials (This will fail the tests of course)?

@eldadfux We don't have tests for Upload and Move methods, I have tested them locally manually with a script, seems fine.
Still issue with how to run tests on CI, do I push test without credentials (This will fail the tests of course)?

Yes. Push the tests without credentials. In the tests take the credentials from env variables and I'll make sure to pass them with Travis later.

@eldadfux We don't have tests for Upload and Move methods, I have tested them locally manually with a script, seems fine.
Still issue with how to run tests on CI, do I push test without credentials (This will fail the tests of course)?

Yes. Push the tests without credentials. In the tests take the credentials from env variables and I'll make sure to pass them with Travis later.


Unmarshal Exception message mentions optional fields

Hello,
I am getting the following UnmarshalException in a Java 1.8.0_191 program running on Windows 10, that uses classes generated using the jaxb2 Maven plugin version 2.5.0 :

JAXB unmarshalling exception; nested exception is javax.xml.bind.UnmarshalException

with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 622; cvc-complex-type.2.4.a : Contenu non valide trouvé à partir de l'élément 'MotifCommande'. L'une des valeurs '{AliasCde, RefExterneCde, DateDepot}' est attendue.]

In English:
Invalid content found starting with the MotifCommand item. One of the items '{AliasCd, RefExterneCde, DateDepot}' is expected.]
Strangely enough, the AliasCd and RefExterneCde are optional. Why are they at all mentioned in the exception message?
Furthermore, why does the message state that the content is invalid starting with the MotifCommande tag, which appears to be after the (mandatory) DateDepot tag, in the XSD?
Please find enclosed the XSDs and a sample SOAP request.
github.zip

This is a JAXB issue, not related to the maven-jaxb2-plugin.

Hi Alexey,
how do you report a JAXB issue?
Best regards,
Phiroc
----- Mail original -----
De: "Alexey Valikov"<EMAIL_ADDRESS>À: "highsource/maven-jaxb2-plugin"<EMAIL_ADDRESS>Cc: "Phiroc"<EMAIL_ADDRESS>"Author"<EMAIL_ADDRESS>Envoyé: Mardi 26 Novembre 2019 17:23:44
Objet: Re: [highsource/maven-jaxb2-plugin] Unmarshal Exception message mentions optional fields (#185)
This is a JAXB issue, not related to the maven-jaxb2-plugin .
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub , or unsubscribe .

@Phiroc I do not think this is a bug/problem in JAXB/JAXB RI. More probably this is a normal development issue. As in "probably you're doing something wrong".
So on your place I'd first build a MCVE (which you're probably quite close to) and ask on StackOverflow.


feature: server-side rendering with user state from cookies

Description
"User state" is persisted in cookies client-side and read before rendering client-side (but not server-side). This leads to the initial HTML being slightly different than what the client renders and leads to visiable delayed updates on initial app load (or browser refreshes).
Naturally, cookies are also sent to the server with every request so this PR enables using the cookie values on the server as well via the request data.
Impacted Areas in Application
Server-side rendering and initial display of number of searches.
Steps to Test or Reproduce

Search (see number of searches go to > 0)
Refresh page

Old version you see first "0", then the number a bit delayed.

PR Checklist:

[x] My code follows the style guidelines of this project and I have double check my own code
[ ] I have made corresponding changes to the documentation, if any
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have run npm run test and be sure all test pass
[ ] I have run npm run build:dev and be sure no error blovk the build
[x] I have test locally that everything run as expected
[x] I have properly fill in the PR template
[x] I have ask for reviews

Yes, moving all the cookie-related code that you suggested into one place (cookies helper) could improve code organization. Why not. Can do it when time permits.

Yes, moving all the cookie-related code that you suggested into one place (cookies helper) could improve code organization. Why not. Can do it when time permits.

You mean you would like to do it on a separate PR?

As you wish, both makes sense to me.

We can start to merge, I trust you will update it later ;)


Cost per resource instance

There is a situation where I will have to obtain the cost for running each resource instance. The report apis available provides cost incurred at resource level. Is there any resource instance level reports that can be generated?

You're correct that the reports do not include the usage cost (and the corresponding charge) at the resource instance level. There are probably multiple ways to do that, including:

additions to the aggregator and rating services to 'aggregate' usage and cost at the resource instance level (I've put 'aggregate' in quotes here as resource instances being the smallest entity we can get usage for, this wouldn't actually be an 'aggregation');

or

the addition of rating on accumulated usage at the resource instance level, before aggregation, and of an API returning that accumulated usage as well as the corresponding cost and charge for a given resource instance;

We could discuss the details of these designs here if you'd like to try to add these capabilities.
Also note that (independent of which design you pick) AIUI the computed costs and charges would probably only be approximations, as factors like prorating, clip rating, overage fees or discounts for example would usually not participate in the calculation of the cost of usage at the level of individual resource instances. My understanding is that these kinds of adjustments typically apply to a total usage summary instead.
That leads me to a related question, just to make sure... Do you really need the cost at the resource instance level or just the usage?

In my case, I need the cost for running each resource instance. We can have a discussion and I can try implementing them.
As of the two ways that you mentioned and more ways that could possibly arise, should there be a way for a user to pick a strategy of the multiple strategies to accumulate/aggregate/rate the usage?

OK sounds good.
With respect to allowing the user (i.e. a resource provider) to select a strategy for accumulation, aggregation and rating, there's already a lot of flexibility as the resource provider can define whatever meter, accumulate, aggregate etc functions for each resource. I'm not sure what else would be needed on top of that.

In my case, I need the cost for running each resource instance.

OK, I was asking because if you only needed the accumulated usage without the cost, that would be much simpler to implement for you as that accumulated usage (without the cost) is already there in the accumulated usage db.
FWIW, the implementation of an API to get the usage from that db would just have to do a simple db range query to get the latest accumulated usage doc before a selected time.

For now I am trying to retrieve the resource instance level usage per day. When I checked the databases I see that the abacus-accumulated-usage-0-0 database contains resource instance level accumulations. However I see that the accumulation happens forever and no new records are created for different time periods. Is this the intended behavior?

Yes until time window based accumulation is implemented. See my response to #54.


Add pre- and post- version processing which aids yarn publish of plugin to npm

This adds a couple things seen while trying to release to npm
Basically takes a lightweight approach to what is in @GMOD/bam

It does not run the build step during yarn publish, so now preversion: runs yarn build
It does a clean using rimraf
It does clean with prebuild step
With postversion it pushes back to github, also what is in @gmod/bam

Note that without these, running yarn publish would not even run a build from my experience

Moved build to postversion so the correct version is encoded into the binary (xref #4 )


Rollup Calculating on more records than it should

I have a rollup summary that is summing information from a child object to the Opportunity.  I'm seeing a lot of errors in the error log for opportunities that have no records in the child object used in the rollup.  Why would these opportunities even attempt to be referenced?  Thanks! Kim

It depends on how you have configured the tool and a current limitation. Basically if your using the realtime mode, you should not see these since calculations are only triggered when child records are edited/inserted/deleted. Likewise if your using the incremetnal schedule mode. However if your using the full schedule calc mode it will likely be passing over all records (depending on your filter criteria). https://github.com/afawcett/declarative-lookup-rollup-summaries/wiki/What-you-need-to-know-about-Scheduling-Rollups. Does this help?

I will close this for now. But we can keep discussing for sure. Happy to re-open. Thanks. 😄


create new account Error 3050003 comparison of assets with different symbols is not allowed

I am in JUNGLE testnet,
I try to create new account , But it is error with the response
This is my requets:
{
  "compression": "none",
  "transaction": {
    "expiration": "2019-10-28T08:32:10",
    "ref_block_num": 57092067,
    "ref_block_prefix":<PHONE_NUMBER>,
    "net_usage_words": 0,
    "max_cpu_usage_ms": 0,
    "delay_sec": 0,
    "context_free_actions": [],
    "actions": [
      {
        "account": "eosio",
        "name": "newaccount",
        "authorization": [
          {
            "actor": "chenzhijun45",
            "permission": "active"
          }
        ],
        "data": "50c8d4cfb53f5543402964534136a9eb0100000001000361b53e25ffb801ccd41df3606e54b2754ccfc3498c1201419f1137c6cf9077ae010000000100000001000361b53e25ffb801ccd41df3606e54b2754ccfc3498c1201419f1137c6cf9077ae01000000"
      },
      {
        "account": "eosio",
        "name": "buyrambytes",
        "authorization": [
          {
            "actor": "chenzhijun45",
            "permission": "active"
          }
        ],
        "data": "50c8d4cfb53f5543402964534136a9eb00100000"
      },
      {
        "account": "eosio",
        "name": "delegatebw",
        "authorization": [
          {
            "actor": "chenzhijun45",
            "permission": "active"
          }
        ],
        "data": "50c8d4cfb53f5543402964534136a9ebe80300000000000004454f53000000008813000000000000044530530000000001"
      }
    ],
    "transaction_extensions": []
  },
  "signatures": [
    "SIG_K1_KBAxscotXrJSjJrUnDGbtzAZKTUoB5xB1nfGPPA956NaF24EjRGWEhY1NreAgdPFRqPgjJPAuLceQeMUZkJHryqkNN4fhh"
  ]
}

This is my response:
{
  "code": "500",
  "error": {
    "code": "3050003",
    "details": [
      {
        "file": "wasm_interface.cpp",
        "lineNumber": 964,
        "message": "assertion failure with message: comparison of assets with different symbols is not allowed",
        "method": "eosio_assert"
      },
      {
        "file": "apply_context.cpp",
        "lineNumber": 113,
        "message": "pending console output: ",
        "method": "exec_one"
      }
    ],
    "name": "eosio_assert_message_exception",
    "what": "eosio_assert_message assertion failure"
  },
  "message": "Internal Service Error"
}

My creator is enough RAM and RESOURCE.
My symbol is EOS, it is right.
Most of the time, the creation fails.  Occasionally created successfully.
In the mainnet , have the same problem.
I do not know the reason of failure. Who can help me?

The precision of the quantity of the token must match precisely the precision at which the token was issued.  For Mainnet, this is four places after the decimal.  10.0000 EOS is a valid amount while 10.00 EOS is not.  For Jungle testnet it is also four decimal places.

The precision of the quantity of the token must match precisely the precision at which the token was issued. For Mainnet, this is four places after the decimal. 10.0000 EOS is a valid amount while 10.00 EOS is not. For Jungle testnet it is also four decimal places.

Thank you for your answer.
It is right.


"Buffer is not defined" when calling schema.messageBox.messages

simple schema version 0.3.1, meteor 1.5
this throws a "Buffer is not defined" error on the client:
schema.messageBox.messages({
    en: {
      required: 'This field is required',
    },
  });

this should have been fixed in 0.3.1: https://github.com/aldeed/node-simple-schema/issues/134 but its not.

OK, yeah, looks like message-box package still uses deep-extend. Will need to do the same change there and update the dependency version in SS.


Check user manual on build script naming recommendation

We should not recommend that people change the name of the build script file.
see #13158

I’ve checked the user manual and I haven’t found any mentions on how to name build scripts. The only mention in #13158 was deleted in https://github.com/gradle/gradle/commit/3e0293820cd1866ec373756eef9c12e136b27961#diff-7771f539d485064cec758b4da165c48aL54.


VFS-760 Zkprovider

This PR provides a provider for Zookeeper.

This change is

@ecki or anyone, anything we can do to get this moving?

@ecki or anyone, anything we can do to get this moving?

Calm down. Sometimes we need to wait for months or even years for them to consider about the pr s.

I would prefer it if the changes are squashed, but in any case I currently dont have the time to merge it. Maybe ask on commons-dev mailing list?

I can certainly squash / rebase and push.
If you are comfortable with a +1 here, maybe @garydgregory can merge it?  I just wanted to make sure there isn't more work to do.

Hi @ottobackwards
Please remove this whitepace:
/temp/85.patch:369: trailing whitespace.
      </plugin>
/temp/85.patch:382: trailing whitespace.
      </plugin>
/temp/85.patch:455: trailing whitespace.

Also please make commons-vfs2-zookeeper/src/test/resources/test-data/read-tests/empty.txt a binary file.

@garydgregory As I mentioned in slack, I do not see the spaces in the source, in vim, with : set list on, only in the diff.
I did see them earlier and removed them, but they are always in the diff.
I am not sure what else to do.

I don't know how to set a .txt file to be a binary file.

ok, tried by adding .gitattributes in that directory

@ottobackwards
May you rebase on git master to see if we can get a green build?

I'm actually going to close this for now


opencost:  tls failed to verify certificate x509 certificate signed by unknown authority

I encounter a problem with the configuration of opencost with the configuration of a prometheus external which is exposed in http or https, I tried with http but there is a redirection to https which is done automatically.
  prometheus:
    external:
      # -- Use external Prometheus (eg. Grafana Cloud)
      enabled: true
      # -- External Prometheus url
      url: "http://prometheus.....com"
    internal:
      enabled: false

Error:
tls: failed to verify certificate: x509: certificate signed by unknown authority'
The only solution is to have the possibility to put InsecureSkipVerify in input as an environment variable since for the moment the values cannot be overloaded.

Do you have a proposed solution you'd like to see in the Helm chart? I'm sure we'd merge a proper PR.

Please note that I am new to kubernetes so I dont know if there are side effects to this possile solution
For me it got solved when I deleted prometheus-grafana-kube-pr-admission validating webhook config. Of course it might be a different webhook in your case.

We are also experiencing a problem with this. We are using a custom signed certificate in openshift (where prometheus is exposed via a openshift route), there is a way to inject the CA into a pod/container but the problem is that the helm chart seems to only have the variable extraVolumes, opencost.exporter.extraVolumeMounts and opencost.ui.extraVolumeMounts, thus, no way to add volume mounts for the opencost container specifically.

@joyartoun I'm not sure I follow, do you have a fix for the initial issue that just requires better documentation of an existing variable?


Link G2P evidence to G2P gene-disease page

Currently G2P evidence strings link to the G2P search page using the gene symbol, which is not very relevant. The issue is that the G2P gene-disease pages use some sort of internal number in the url (example), so some mapping would be needed.

Email sent to Sarah Hunt asking about it (she is away until 19th October)

This is not supported at the moment but it will be in the updated gene2phenotype system that is expected to be ready later this year according to Sarah.

In the rewrite, we are linking to the gene-panel, which is the best we can do for the moment.
Once gene2phenotype updates their system we can trigger an action on our side.
Closing this ticket until then

In the rewrite, we are linking to the gene-panel, which is the best we can do for the moment.
Once gene2phenotype updates their system we can trigger an action on our side.
Closing this ticket until then


Initial install not working Hyundai/Canada

Trying to set up integration in UI not working,
Login using bluelinky or bluelink web app works.
Message is:  Unknown error occurred

3 reboots later, got it working

I have the same issue but reboot don't fix the problem, can you help me?


Dask trimesh support

As mentioned in #540, Dask dataframes are supported for aggregating points and partially for lines, but not for trimesh grids.  As grids can be very large and suitable for distributed computation, it would be very helpful to support Dask for trimesh as well.

Done in #696


Define behaviours for round etc. for odd float values

Technically this is a new "feature" because the behaviour of these functions aren't defined for these extreme values yet. 😳
round, floor, and ceil are supposed to convert floats to ints. The Python branch uses the built-in analogous functions, but they raise a runtime error for some float values.
Here's how round deals with various float values in Python.
>>> inf = 1 / 5e-324
>>> nan = inf - inf
>>> round(inf)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: cannot convert float infinity to integer
>>> round(nan)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: cannot convert float NaN to integer
>>> round(-inf)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: cannot convert float infinity to integer
>>> round(-0.0)
0
>>> round(1.7976931348623157e+308)
179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368

Here's how JS converts them to integers, using various methods.

I propose we convert the infinities and NaN to 0. What do you think?

I do agree with this sentiment


New version: Liberica JDK21-Full <IP_ADDRESS>

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[x] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.6 schema?

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

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

2024-04-23T11:10:31.0492744Z ##[error]Manifest Validation Failed
2024-04-23T11:10:36.0998470Z ##[section]Finishing: Validate Manifest

(Automated response - build 877.)


remove favicon.ico by default

Angular starterkit uses the following code for favicon. https://github.com/angular/universal-starter/blob/master/src/index.html
  <link rel="icon" href="data:;base64,iVBORw0KGgo=">

It would be good if create-react-app did the same. favicon.ico can also be supported specially for those who want to have custom favicon files that they want to publish.

This sounds reasonable but we currently don't have a way to copy arbitrary files into the compiled folder. So favicon is treated "specially" and this is why we don't allow removing it.
If we remove it we would also need to introduce a way to add static assets outside the src directory. I think we'll have to do it anyway but it's a separate (existing) issue that warrants more discussion.

We could probably detect if a favicon.ico file exists from the webpack config and set the HTMLWebpackPlugin flag accordingly, which might be the nicest option. Then it works if you have a favicon.ico, but it also works if you don't have one?

If it didn't come bundled, how would you guess that putting favicon.ico in project root magically works? You would probably try to add a link tag yourself, and you would think that you can reference any other file like this (like custom iOS home icons). But surprisingly that won't work.

That's actually true, hmm…

I want to address this. But not as a separate feature. It should be solved at the same time with #28.

What's the downside of the status quo - you just don't like having a favicon.ico file around if you don't want a favicon for your project? It doesn't seem too bad to just use the default one in that case.

I would think most projects should have a favicon.ico file at their root.  We could perhaps integrate with/recommend http://realfavicongenerator.net/ to people to make it easier for people to get set up with a decent favicon?

We probably won’t do this unless this is commonly requested. (It doesn’t seem to be so far.)

Would be good if html-webpack-plugin could allow to require files from template:
<link rel="icon" require:href="./src/favicon.ico">

Or something like that.

Yea, this is pretty much how I’d like it to work. Is it definitely not supported? Maybe we’re just doing it some wrong way.

Looking at the sources of html-webpack-plugin it seems it is not. Child compiler should be run in a loader instead and require:{href,src,...} — parsed and compiled to require(..) calls.

There's html-loader which does a similar thing, wondering if it can be used along with html-webpack-plugin.

This is why I asked: I sort of assumed HtmlWebpackPlugin would use html-loader.

If you already have a template loader, you can use it to parse the template. Please note that this will also happen if you specifiy the html-loader and use .html file as template.

Worth trying?


make a minimal server-side retrieval example

This adds a minimal example wherein a GET call is used to retrieve datoms from the server and add them to the re-posh/datascript DB.
Not sure if you want this but this is related to issue #17.

Hi @zachcp . Sorry for reviewing it so late. Looks like I can't query /upload endpoint. Have you tested it?

This works on my end. I did not test via REST/curl. But if you click the button you inject the extra entries.
cd examples/todomvc/
lein run

# navigate to http://<IP_ADDRESS>:5000/ and click

@zachcp  I've seen this PR as having learning purpose.  I wanna keep this todo-mvc example as simple as possible. It's better to create the new one with backend and everything around. But if you achieve your goal maybe I can close this one? What do you think?

Indeed. I would agree with that. Thanks for your help. Zcp


Update compare-options-for-a-free-trial.md

Broken Fwd link for Roadmap fixed

@JoanneHendrickson Can I merge this?

@IrenePasternack
This is yours, can you approve?


Run formatter on project

This PR runs go fmt ./... on the project to correct some unformatted code.

Is there some way to have this run on saving a file?

Is there some way to have this run on saving a file?

Yes. That depends on your editor.


exporting ORTModelForVision2Seq doesn't work correctly on Pytorch 1.11

System Info
* optimum==1.20.0
* on docker image `nvidia/cuda:11.7.0-devel-ubuntu20.04`
* torch==1.11.0+cpu
* transformers==4.41.2
* Python 3.8.10

Who can help?
@michaelbenayoun
Information

[X] The official example scripts
[ ] My own modified scripts

Tasks

[ ] An officially supported task in the examples folder (such as GLUE/SQuAD, ...)
[X] My own task or dataset (give details below)

Reproduction (minimal, reproducible, runnable)
Install Pytorch 1.11 (on >= 1.12 this bug is resolved by pytorch)
and run https://huggingface.co/docs/optimum/v1.20.0/en/onnxruntime/package_reference/modeling_ort#optimum.onnxruntime.ORTModelForVision2Seq.forward.example
from transformers import AutoImageProcessor, AutoTokenizer
from optimum.onnxruntime import ORTModelForVision2Seq
from PIL import Image
import requests

processor = AutoImageProcessor.from_pretrained("nlpconnect/vit-gpt2-image-captioning")
tokenizer = AutoTokenizer.from_pretrained("nlpconnect/vit-gpt2-image-captioning")
model = ORTModelForVision2Seq.from_pretrained("nlpconnect/vit-gpt2-image-captioning", export=True)

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(image, return_tensors="pt")

gen_tokens = model.generate(**inputs)
outputs = tokenizer.batch_decode(gen_tokens, skip_special_tokens=True)

It raises the error:
Traceback (most recent call last):
  File "convert.py", line 9, in <module>
    model = ORTModelForVision2Seq.from_pretrained("nlpconnect/vit-gpt2-image-captioning", export=True)
  File "/usr/local/lib/python3.8/dist-packages/optimum/onnxruntime/modeling_ort.py", line 669, in from_pretrained
    return super().from_pretrained(
  File "/usr/local/lib/python3.8/dist-packages/optimum/modeling_base.py", line 402, in from_pretrained
    return from_pretrained_method(
  File "/usr/local/lib/python3.8/dist-packages/optimum/onnxruntime/modeling_seq2seq.py", line 1056, in _from_transformers
    main_export(
  File "/usr/local/lib/python3.8/dist-packages/optimum/exporters/onnx/__main__.py", line 352, in main_export
    onnx_export_from_model(
  File "/usr/local/lib/python3.8/dist-packages/optimum/exporters/onnx/convert.py", line 1170, in onnx_export_from_model
    _, onnx_outputs = export_models(
  File "/usr/local/lib/python3.8/dist-packages/optimum/exporters/onnx/convert.py", line 776, in export_models
    export(
  File "/usr/local/lib/python3.8/dist-packages/optimum/exporters/onnx/convert.py", line 881, in export
    export_output = export_pytorch(
  File "/usr/local/lib/python3.8/dist-packages/optimum/exporters/onnx/convert.py", line 577, in export_pytorch
    onnx_export(
  File "/usr/local/lib/python3.8/dist-packages/torch/onnx/__init__.py", line 305, in export
    return utils.export(model, args, f, export_params, verbose, training,
  File "/usr/local/lib/python3.8/dist-packages/torch/onnx/utils.py", line 118, in export
    _export(model, args, f, export_params, verbose, training, input_names, output_names,
  File "/usr/local/lib/python3.8/dist-packages/torch/onnx/utils.py", line 720, in _export
    _model_to_graph(model, args, verbose, input_names,
  File "/usr/local/lib/python3.8/dist-packages/torch/onnx/utils.py", line 500, in _model_to_graph
    graph, params, torch_out, module = _create_jit_graph(model, args)
  File "/usr/local/lib/python3.8/dist-packages/torch/onnx/utils.py", line 441, in _create_jit_graph
    graph, torch_out = _trace_and_get_graph_from_model(model, args)
  File "/usr/local/lib/python3.8/dist-packages/torch/onnx/utils.py", line 392, in _trace_and_get_graph_from_model
    torch.jit._get_trace_graph(model, args, strict=False, _force_outplace=False, _return_inputs_states=True)
  File "/usr/local/lib/python3.8/dist-packages/torch/jit/_trace.py", line 1166, in _get_trace_graph
    outs = ONNXTracedModule(f, strict, _force_outplace, return_inputs, _return_inputs_states)(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/torch/nn/modules/module.py", line 1110, in _call_impl
    return forward_call(*input, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/torch/jit/_trace.py", line 127, in forward
    graph, out = torch._C._create_graph_by_tracing(
  File "/usr/local/lib/python3.8/dist-packages/torch/jit/_trace.py", line 118, in wrapper
    outs.append(self.inner(*trace_inputs))
  File "/usr/local/lib/python3.8/dist-packages/torch/nn/modules/module.py", line 1110, in _call_impl
    return forward_call(*input, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/torch/nn/modules/module.py", line 1098, in _slow_forward
    result = self.forward(*input, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/optimum/exporters/onnx/model_patcher.py", line 231, in patched_forward
    outputs = self.orig_forward(*args, **kwargs)
TypeError: forward() takes from 1 to 12 positional arguments but 13 were given

Expected behavior
The models are converted correctly.
I think this bug is related to https://github.com/pytorch/pytorch/issues/110439 , because ORTModelForVision2Seq tries to convert VisionEncoderDecoderModel, which contains **kwargs in forward().

Hi @Yosshi999, thank you for the report. PyTorch 1.11 is more than 2 years old, do you face the same issue with a more recent version of pytorch?

Hi @Yosshi999, thank you for the report. PyTorch 1.11 is more than 2 years old, do you face the same issue with a more recent version of pytorch?

no. only 1.11.

Thank you, is updating to torch==1.13 or torch>=2.0 an option to you?

Yes. I switched to 1.13 and this error no longer occurs. This issue is just to let you know the problem on 1.11, which is supported by optimum.
And sometimes older Jetson environments will require pytorch==1.11 so I think some users will be caught by this problem.


Wrong Assignee report on Pull Request Assigned Webhook if there are more than 1 assignee

Version:
1.16.0+dev-265-ga4bfef265
Also tested on:
1.14.4
Can you reproduce the bug at https://try.gitea.io
Yes
Description:
When assigning a user the Pull Request Assigned webhook reports the wrong user in the JSON assignee field if there are more than 1 assignee.
Configuration:

Gitea webhook
Custom events marked.
Pull Request Assigned marked.

How to reproduce

Open A repo.
Use Gitea webhooks.
Add custom events.
Add assignee event.
Open a pull request.
Set assignee.
Set a different assignee.
You can see in the latest assignee hook that in the "assignee" field there is the wrong user.

I can't reproduce this error. I created a PR and set the assignee in the creation form. The webhook contains that user. Then I assigned a second user and the webhook assignee is the first user (not changed) and assignees contains both users.

The assignees field contain them all.
but The assignee field contain another user. (Not the assigned one)

BTW from github docs

assignee
object
The optional user who was assigned or unassigned from the issue.

I also tested it and there are 2 assignee fields 1 under pull request and the other on not.
The one outside of pull request does state the assigned/unassigned user.
Like I quoted from the documentation
"Every pull request is an issue, but not every issue is a pull request. For this reason, "shared" actions for both features, like manipulating assignees, labels and milestones, are provided within the Issues API."

@KN4CK3R I also wanted this feature as well, as I want to send message to multiple users in Slack notifying they been assigned or unassigned to which issue or pull request. Currently I have to rethink about how it should work.


test-libs: ignore build/deploy pods in ct_os_get_pod_status

Since ct_os_get_pod_status only returns the status of the first pod it finds it might return the status of a build/deploy pod instead of the actual pod being deployed (since they all share the same prefix).
@omron93 @hhorak ptal

LGTM.


Make rust-wasm docker image smaller

Can you add comments so that information is not lost about which things depends on what package? e.g. the dw1 stuff is only needed by kcov, should that be removed.


bin/docgen expands curly braces, even if they are marked as code

Syntax in recipe docs like this
`{{static_content_locales}}`

gets converted by bin/docgen to this for the docs
`[static_content_locales](/docs/recipe/magento2.md#static_content_locales)`

Maybe it could make sense to only expand curly braces, if they are not marked as code.
This is already the case, if text is part of a code block.

Makes sense.


Always use windows-style newlines in .load-order files

I'm using delvewheel as part of https://github.com/jvolkman/repairwheel. One of my goals is bit-for-bit reproducibility of repaired wheels regardless of the host platform.
With this change, the .load-order file uses the same windows-style line endings even if it's generated on linux or macos.

To maintain consistency with https://github.com/adang1345/delvewheel/commit/cc93cf8127de0d9f86894235a57022de37e1d69d and https://github.com/adang1345/delvewheel/commit/0e94791deabddf1e92bfedc7b1cce9538415981d, I think it's better to use Unix-style line endings instead. I've submitted https://github.com/adang1345/delvewheel/commit/2ca7f37dd35725a1ba55df39ee8033af1172b680.


Test-Path returns $true for ' ' on Windows and returns $false for '\ ' and '.\ ' on Linux

Steps to reproduce
Test-Path ' '
Test-Path '\ '
Test-Path '.\ '

Expected behavior
NB: Because the .Net Core method Directory.Exists states in the docs here that trailing whitespaces are removed, the expectation of the last 2 spaces is true.
False
True
True

Actual behavior
On Windows:
True
True
True

On Linux (WSL):
False
False
False

Environment data
Reproes on the latest daily build of PowerShell Core (December 19, 2017) and Windows PowerShell 5.1
> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      6.1.0-preview.519
PSEdition                      Core
GitCommitId                    v6.1.0-preview.519
OS                             Microsoft Windows 6.3.9600
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Ubuntu 17 VM
Name                           Value
----                           -----
PSVersion                      6.0.0-rc.2
PSEdition                      Core
GitCommitId                    v6.0.0-rc.2
OS                             Linux 4.10.0-42-generic #46-Ubuntu SMP Mon Dec 4 14:38:01 UTC 2017
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

The WSL Linux system
Name                           Value
----                           -----
PSVersion                      6.0.0-rc.2
PSEdition                      Core
GitCommitId                    v6.0.0-rc.2
OS                             Linux 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

In case anyone wonders how I discovered this:
I was debugging someone else's script today whereby one parameter was expected to be an invalid file path, hence I just used a space but found that not everything was working locally as expected, which I could boil down to an if statement making the wrong decision because of this.

I was able to repro.  These also return true:
Test-Path '\ '
Test-Path '.\ '

Thanks, I've updated title and repro steps with those cases as well.

Just in case:
[System.IO.Directory]::Exists(' ')
[System.IO.Directory]::Exists('\ ')
[System.IO.Directory]::Exists('.\ ')

Output:
False
True
True

@nightroman Thanks for the hint. The source code of the Directoy.Exists .Net Core method is here, but the documentation here already states that

Trailing spaces are removed from the end of the path parameter before checking whether the directory exists.

Therefore I will change the bug title back to be only about the case whereby the -Path parameter is just one or multiple space characters

@markekraus I raised a separate issue for your 2 test cases on Linux in the corefx repo here

You could use the notation '[ ]' if you want leading or trailing spaces in paths and file names.


[WIP] Peertube package (opening for collaboration+help)

Motivation for this change
@Izorkin I think I fixed the import from derivation problem that is not allowed in nixpkgs.
nix --option allow-import-from-derivation false build -L .#peertube
(Edit: Removed outdated information)
https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/javascript.section.md are some docs that helped.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

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

[ ] Fits CONTRIBUTING.md.

@mohe2015 to use nodejs v16_x needed add nodejs = pkgs.nodejs-16_x;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 69c104b89aa..eba82840809 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -26874,7 +26874,9 @@ with pkgs;

   peek = callPackage ../applications/video/peek { };

-  peertube = callPackage ../servers/peertube { };
+  peertube = callPackage ../servers/peertube {
+    nodejs = pkgs.nodejs-16_x;
+  };

   pflask = callPackage ../os-specific/linux/pflask {};

The package error building after this commit - https://github.com/Chocobozzz/PeerTube/commit/134006b0d4528c07f0022c6e75257bf9fedbfebb
The esbuild module is not installed correctly:
Generating browser application bundles (phase: building).../build/peertube-3.4.0/client/node_modules/esbuild/bin/esbuild:2
throw new Error(`esbuild: Failed to install correctly
^

Error: esbuild: Failed to install correctly

Make sure you don't have "ignore-scripts" set to true. You can check this with
"npm config get ignore-scripts". If that returns true you can reset it back to
false using "npm config set ignore-scripts false" and then reinstall esbuild.

If you're using npm v7, make sure your package-lock.json file contains either
"lockfileVersion": 1 or the code "hasInstallScript": true. If it doesn't have
either of those, then it is likely the case that a known bug in npm v7 has
corrupted your package-lock.json file. Regenerating your package-lock.json file
should fix this issue.

    at Object.<anonymous> (/build/peertube-3.4.0/client/node_modules/esbuild/bin/esbuild:2:7)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
    at internal/main/run_main_module.js:17:47

The esbuild package is already in nixpkgs, but I was unable to add it - not found esbuild binary on build.

Let's see what ofborg has to say about this...

I assume the files are too large to be included here but as far as I know this is the only "real" possibility without import-from-derivation-like features.

Well https://github.com/NixOS/nixpkgs/pull/128749 would be a possibility

What a coincidence, I was just working on this today.
I opened an issue upstream to document the fact that angular/cli is not into their package.json
https://github.com/Chocobozzz/PeerTube/issues/4393
I also had problems building on the server, I added an issue here
https://github.com/Chocobozzz/PeerTube/issues/4394
I had a couple of fixes for this that I am testing right now on this PR

Just a thought, but if we could upstream the changes that were needed to make the package.json file work, then we wouldn't need to commit those lockfiles, just the yarn.nix.
Could we try to open an issue upstream with the problems in their package.json ?
(happy to do it myself if you tell me how the package.json files have been modified)

I have an idea of how not to fetch the lock files and package.json to nixpkgs. We would still need to commid the yarn.nix, but at least we can divide the size by 2.
the idea is as follows.

make a PR upstream with the updates to the package.json and yarn.lock files that you require
use fetchpatch to get the patch resulting from the PR.

This would have 2 advantages.

let upstream know what changes need to be made to their package.json and lock (they can accept or refuse, but at least they know)
we don't need to commit the patched files, we can just get the source, and patch it with the patch from the PR.

Let me know what you think.

@happysalada Actually I just had messed up my original commits and importer the root files in the client derivation. As far as I know the current state in here actually works.

Just a thought, but if we could upstream the changes that were needed to make the package.json file work, then we wouldn't need to commit those lockfiles, just the yarn.nix.
Could we try to open an issue upstream with the problems in their package.json ?
(happy to do it myself if you tell me how the package.json files have been modified)

They're actually unmodified I don't fully understand how yarn2nix works and other examples used all three files. But maybe then this would work without them.

The first attempt here didn't work so I retried and changed as little as possible from the original derivation. Feel free to push the fixes here but otherwise I would probably look into it in ~3 hours or so

https://github.com/NixOS/nixpkgs/pull/119110 should now contain the necessary changes.


Receiver with Ketama Algorithm fails to start internal server when amount of endpoints needs to be larger than replication factor

Thanos, Prometheus and Golang version used:
Thanos Version - 0.32.5

What happened:

I use thanos receiver controller to update my hashring config depending on the statefulsets of thanos receiver. So hashring config is dynamically created.
I am testing ketama algorithm for production use. During test I observed that ketama algorithm has a check on number of endpoints which must be higher than replication factor. As below -
https://github.com/thanos-io/thanos/blob/main/pkg/receive/hashring.go#L139C1-L145C3

func newKetamaHashring(endpoints []Endpoint, sectionsPerNode int, replicationFactor uint64) (*ketamaHashring, error) {
	numSections := len(endpoints) * sectionsPerNode

	if len(endpoints) < int(replicationFactor) {
		return nil, errors.New("ketama: amount of endpoints needs to be larger than replication factor")

	}

Real problem starts when I use dynamic generation of hashring config. Receive controller will create a hashring config with empty endpoint list at very first. Now this file is loaded on each receiver replica. When receiver replica is initialized it checks this file and there itself condition fails and receiver service show error message. Since receiver is not in ready state receive controller will not add endpoint and hashring will not be updated. So in all next restarts of receiver same error will be thrown and situation goes into interdependency deadlock.
My receiver configuraiton:
--receive.hashrings-algorithm=ketama
--receive.replication-factor=3
--receive.hashrings-file=/var/thanos/receive/hashring/thanos-receive-hashring.json

What you expected to happen:
I am not sure why number of endpoints need to be checked in ketama algorithm. If we could remove this validation then issue will be resolved.
How to reproduce it (as minimally and precisely as possible):

Run observatorium/thanos-receive-controller to manage hashring config
Load this config to receiver statefulsets with below configs

--receive.hashrings-algorithm=ketama
--receive.replication-factor=3
--receive.hashrings-file=/var/thanos/receive/hashring/thanos-receive-hashring.json

Full logs to relevant components:
 {"caller":"main.go:161","err":"ketama: amount of endpoints needs to be larger than replication factor\n
github.com/thanos-io/thanos/pkg/receive.newKetamaHashring\n\t/app/pkg/receive/hashring.go:129\n
github.com/thanos-io/thanos/pkg/receive.newHashring\n\t/app/pkg/receive/hashring.go:310\ngithub.com/thanos-io/thanos/pkg/receive.NewMultiHashring\n\t
/app/pkg/receive/hashring.go:288\nmain.setupHashring.func5\n\t/app/cmd/thanos/receive.go:530\ngithub.com/oklog/run.(*Group).Run.func1\n\t
/go/pkg/mod/github.com/oklog/run@v1.1.0/group.go:38\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1650\n
unable to create new hashring from config\nmain.setupHashring.func5\n\t
/app/cmd/thanos/receive.go:532\ngithub.com/oklog/run.(*Group).Run.func1\n\t/go/pkg/mod/github.com/oklog/run@v1.1.0/group.go:38\n
runtime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1650\nreceive command failed\nmain.main\n\t/app/cmd/thanos/main.go:161\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:267\n
runtime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1650","level":"error","ts":"2024-01-13T00:02:04.325882767Z"}

Anything else we need to know:

Just as a note, we need to check endpoints because otherwise we just busyloop to find enough replicas in the current implementation at least.

Consider the scenario under k8s,
First replica of receiver is coming up and during initialization only receiver making checks with replication factor lets say 1. At this stage pod is not in ready state so endpoint is not yet updated by receiver controller and hashring config has null endpoints. Now receiver will error out and goes into continuous crashloop back.
How would we resolve this conflict ? I am not understanding how replication factor check against endpoint helps and what scenario it helps ? If you could help me to understand please,

Any thought on above ?

I made the same observation when I first setup Thanos Receive.
Most of my issues where resolved when I switched to the Router + Ingestor architecture that's defined here.
The downside is that you kinda double the number of Thanos Receive (and costs associated to that).
The upsides are many:

You decouple the hashring/replication and the multi-tenant writes
The "ingestor" can scale up independently, and the Thanos Receive Controller can update the hashring file based on those and the "router" will route to them when they are ready.
Stuff like node pool upgrade, rollout updates don't break the quorum

I suggest you take a look at kube-thanos for an example.
If you use the Bitnami Helm Chart, you can enable the Thanos Receive Router via receiveDistributor.enabled.
An example of values using the Helm chart (the Thanos Receive Controller needs to be installed separately):
receive:
  enabled: true
  mode: dual-mode
  existingConfigmap: thanos-receive-controller-tenants-generated
  replicaLabel: receive_replica
  updateStrategy:
    type: RollingUpdate
  minReadySeconds: 60
  podSecurityContext:
    fsGroupChangePolicy: OnRootMismatch
  service:
    type: LoadBalancer
    annotations:
      external-dns.alpha.kubernetes.io/hostname: thanos-receive.example.com
    additionalHeadless: true
  statefulsetLabels:
    controller.receive.thanos.io: thanos-receive-controller
    controller.receive.thanos.io/hashring: default
  pdb:
    create: true
    minAvailable: ""
    maxUnavailable: 1
receiveDistributor:
  enabled: true
  replicationFactor: 2
  extraEnvVars:
    - name: GODEBUG
      value: gcshrinkstackoff=1
  extraFlags:
    - --receive.hashrings-algorithm=ketama
    - --receive.hashrings-file-refresh-interval=1m
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 0
      maxUnavailable: 1
  pdb:
    create: true
    minAvailable: ""
    maxUnavailable: 1
query:
  replicaLabel:
    - receive_replica

I made the same observation when I first setup Thanos Receive.
Most of my issues where resolved when I switched to the Router + Ingestor architecture that's defined here.
The downside is that you kinda double the number of Thanos Receive (and costs associated to that).
The upsides are many:

You decouple the hashring/replication and the multi-tenant writes
The "ingestor" can scale up independently, and the Thanos Receive Controller can update the hashring file based on those and the "router" will route to them when they are ready.
Stuff like node pool upgrade, rollout updates don't break the quorum

I suggest you take a look at kube-thanos for an example.
If you use the Bitnami Helm Chart, you can enable the Thanos Receive Router via receiveDistributor.enabled.
An example of values using the Helm chart (the Thanos Receive Controller needs to be installed separately):
receive:
  enabled: true
  mode: dual-mode
  existingConfigmap: thanos-receive-controller-tenants-generated
  replicaLabel: receive_replica
  updateStrategy:
    type: RollingUpdate
  minReadySeconds: 60
  podSecurityContext:
    fsGroupChangePolicy: OnRootMismatch
  service:
    type: LoadBalancer
    annotations:
      external-dns.alpha.kubernetes.io/hostname: thanos-receive.example.com
    additionalHeadless: true
  statefulsetLabels:
    controller.receive.thanos.io: thanos-receive-controller
    controller.receive.thanos.io/hashring: default
  pdb:
    create: true
    minAvailable: ""
    maxUnavailable: 1
receiveDistributor:
  enabled: true
  replicationFactor: 2
  extraEnvVars:
    - name: GODEBUG
      value: gcshrinkstackoff=1
  extraFlags:
    - --receive.hashrings-algorithm=ketama
    - --receive.hashrings-file-refresh-interval=1m
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 0
      maxUnavailable: 1
  pdb:
    create: true
    minAvailable: ""
    maxUnavailable: 1
query:
  replicaLabel:
    - receive_replica

Interesting.
But how does it work with replicationFactor set to 2 and receive/distributor replicas set to 1?
I'm trying to configure my setup with autoscaling enabled and it's been quite difficult... No success so far.


Support ios

https://stackoverflow.com/questions/23820570/ios-launching-messages-app-with-multiple-recipients

https://www.twilio.com/blog/2018/07/sending-text-messages-from-your-ios-app-in-swift-using-mfmessagecomposeviewcontroller.html


Refactor compose and readcoda's optional compositional column name arg

Addresses #13.
Changes default compositional column name to :coda.
A custom compositional column name may be set using a Pair{NTuple, Symbol}  (for example ; codanames=(colnames) => :customname).
As a Julia newbie, I may be unfamiliar with conventions and best practices using julia Pair types and type checking; improvement suggestions are welcome!

Thanks! I think I can help with this one. Let me give it a try now...

Solved by #15


Currently unable to build on windows

Heyo!
I'm new to buck and buckaroo so bear with me.
Starting by following the instructions for building buckaroo on your homepage I get the following result:
BUILD FAILED: Must specify at least one build target
Reading over the BUCK file I realize I can try again and specify //:buckaroo-cli. Great stuff starts happening but then quickly fails with the following error:
C:\projects\buckaroo>..\buck\bin\buck build //:buckaroo-cli
[-] PARSING BUCK FILES...FINISHED 0.0s

C:\projects\buckaroo\buck-out\gen\jgit-jar-fixed__srcs>cp buck-out/gen/jgit-jar/jgit-4.5.0.jar C:\projects\buckaroo\buck-out\gen\jgit-jar-fixed\jgit-4.5.0-fixed.jar   && zip -d C:\projects\buckaroo\buck-out\gen\jgit-jar-fixed\jgit-4.5.0-fixed.jar META-INF/*.RSA META-INF/*.SF META-INF/*.MF

'cp' is not recognized as an internal or external command,
operable program or batch file.

BUILD FAILED: //:jgit-jar-fixed failed with exit code 1:
genrule
stderr: 'cp' is not recognized as an internal or external command,
operable program or batch file.

[-] BUILDING...FINISHED 0.5s [100%] (24/27 JOBS, 1 UPDATED, 1 [3.7%] CACHE MISS)
[-] DOWNLOADING... (0.00 B/S AVG, TOTAL: 0.00 B, 0 Artifacts)

Ah, that is definitely a bug on our end!
It looks like we wrote part of the build script for macOS / Linux using cp but didn't write the version for Windows cmd.
I will take a look.

In the meantime, you might find it helpful to look at this example of Buck on Windows: https://github.com/ilya-klyuchnikov/buck-windows-cxx.
This should be enough to get up and running with Buck while we fix Buckaroo.

If you are using Git Bash on Windows, then the current install procedure should work:
buck build :buckaroo-cli
java -jar ./buck-out/gen/buckaroo-cli.jar

The latest commit should fix things for PowerShell.
Let me know how you get on!

Running it now, it can't find the zip command. Tried to run from powershell but I get the error that I haven't enabled running scripts... I'll look into that now. This marks the first time I've bothered to even run powershell haha.

In PowerShell try:
choco install zip
(Assuming you have Chocolatey installed from when you installed Buck)
On 6 Jun 2017, at 20:44, Chip Collier <notifications<EMAIL_ADDRESS>wrote:
Running it now, it can't find the zip command. Tried to run from powershell but I get the error that I haven't enabled running scripts... I'll look into that now. This marks the first time I've bothered to even run powershell haha.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHubhttps://github.com/LoopPerfect/buckaroo/issues/67#issuecomment-306596186, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABgSO0WucoVuYC9_6odkjlHeq8x3CImVks5sBawogaJpZM4Nxvpi.

Right on! Worked from a normal dev shell even. :)
Thanks for the assistance!

Great!
The packages are not well tested on Windows, so if you run into any problems, please create an issue here: https://github.com/LoopPerfect/buckaroo-recipes


cups-toshiba-estudio: init at 7.51

Motivation for this change
There was no driver for the toshiba-estudio series of printers. This is a generic driver that supports many
printers (see comment in the default.nix).
Things done

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

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested function of the printer driver (I've used it at work for a few weeks now)
[x] Fits CONTRIBUTING.md.

About testing: I've first built it as an independant package and I manually selected the PPD when installing the printer with CUPS. Then, I forked and cloned nixpkgs locally and added the package (this commit). I added the printer driver in driver in printing.drivers list in my configuration.nix. I reinstalled the printer, checked it was now available in the cups menu and tested printing again.


Resume download

This adds resume to download function, and a validate function with md5 or sha256, from pytorch/pytorch#24915.
Following this, it was tested using:
    def test_download_url(self):

        url = "http://www.patentsview.org/data/20171226/botanic.tsv.zip"
        hash_url = "94c642405619b20ecaf657b30e84bab787320649e751ed6ac629c0be613ded44"

        download_folder = "."
        download_url(url, download_folder)
        validate_download_url(url, download_folder, hash_url)

Do we have a url we can use to test? I'm leaning toward not having a test like this that would ping a url with every batch of test.
See

another example.
using keep alive

For reference: sample code that opens a gzip url and decode on-the-fly.

Yes, in an ideal world our tests do not depend on the internet. But it's hard to test a function that operates on URLs without URLs. I guess we could use a file:// type URLs? This might be a bit harder to test rigorously within the CI.

Until we define torchdata we'll likely copy-paste functions like this. Although download has the potential of living within core pytorch since it's also required by torchhub.

Bonus points for a multithreaded stream_urls function that accepts a list of urls and yields the results URL by URL (or alternatively as_completed). For this you can create a buffer that you fill up with chunks concurrently and can whose size be specified by the user. My main worry here would be a timeout, since the URL chunks will be streamed sequentially. Presumably you can simply read ahead. Maybe this can be achieved by a generic Buffer function :)
You can use concurrent ThreadPoolExecutor for that. Based on https://python3statement.org/ PyTorch will drop Python2.7 support in 2020. So it's ok to have features that will not work with Python2.7 at this point, as long as we still guard against them not being available.

If the goal is to get an iterator over multiple files, then we can wrap download_url by simply applying it to a list of urls.
If instead we want to add parallel at the at the stream_url level, then we'd need a buffer also to make the download parallel. This is more specialized in its application though. Thoughts?

Should we merge this?

Bonus points for a multithreaded stream_urls function that accepts a list of urls and yields the results URL by URL (or alternatively as_completed). For this you can create a buffer that you fill up with chunks concurrently and can whose size be specified by the user. My main worry here would be a timeout, since the URL chunks will be streamed sequentially. Presumably you can simply read ahead. Maybe this can be achieved by a generic Buffer function :)
You can use concurrent ThreadPoolExecutor for that. Based on https://python3statement.org/ PyTorch will drop Python2.7 support in 2020. So it's ok to have features that will not work with Python2.7 at this point, as long as we still guard against them not being available.

Indeed, see here :D

Should we merge this?

Rebased. Ready when you are :)

I think it's worthwhile standardizing on file-like objects and create convenience wrapper functions for objects that can be referenced to via a file path.


Use string comparison instead of int comparison

Currently if the architecture is defined differently (such
as 'amd64' used in NetBSD), this comparison fails with:
[: amd64: bad number

This appears elsewhere for Debian and Linux, it might be worth fixing those too, in case someone wants to build for architectures other than Intel ones.

Hi, thanks for your contribution!
If you haven't already done so, could you please make sure you sign our CLA (https://jitsi.org/icla for individuals and https://jitsi.org/ccla for corporations)? We would unfortunately be unable to merge your patch unless we have that piece :(.

Done


[Bug]: The distributed binaries contains bazel BUILD files

Bug Description
The whl files are packaged with bazel BUILD files. This makes it not usable in a bazel environment.
Version
0.10.3
Steps to Reproduce

Add llama_index_core to bazel project using latest rules_python
Execute bazel run @pypi_llama_index_core//:rules_python_wheel_entry_point_llamaindex-cli

Relevant Logs/Tracbacks
...
Traceback (most recent call last):
  File "/private/var/tmp/_bazel_cheathman/700c4324c20fb32fe2727a1ee50af11d/execroot/benchsci/bazel-out/darwin-fastbuild/bin/external/py_deps_llama_index_core/rules_python_wheel_entry_point_llamaindex-cli.runfiles/py_deps_llama_index_core/rules_python_wheel_entry_point_llamaindex-cli.py", line 3, in <module>
    from llama_index.core.command_line.command_line import main
ModuleNotFoundError: No module named 'llama_index.core'

The issue is that the py_library does a glob and ingores all the source code because of the presence of a BUILD file
py_library(
    name = "_pkg",
    srcs = glob(
        ["site-packages/**/*.py"],
        exclude=[],
        # Empty sources are allowed to support wheels that don't have any
        # pure-Python code, e.g. pymssql, which is written in Cython.
        allow_empty = True,
    ),
    data = [] + glob(
        ["site-packages/**/*"],
        exclude=["**/* *", "**/*.py", "**/*.pyc", "**/*.pyc.*", "**/*.dist-info/RECORD"],
    ),

@ewianda Can you suggest a fix for this? I'm not actually sure how to fix this. Probably something in the github publish action?

Adding exclude = ["**/BUILD"]  to pyproject.toml solves the problem.
Noot sure how all the packages are built together, but seems all the pyproject.toml files will need to be updated

@ewianda thanks for the tip! We have a script to update and edit pyproject files and publish for every package.
Will try running this tomorrow 🙏🏻

Hi @logan-markewich any progress on this


Latitude and Longitude of Device

Is there a way to get the latitude and longitude of a connected device to my server?

From my understanding, you need to measure the rssi fingerprint of a desired long/lattitude.

Using the API (https://www.internalpositioning.com/doc/api.md) you should be able to get the location of a located device using the get-call "GET /api/v1/location_basic/FAMILY/DEVICE".


fix duplicate image entries from private registry

fixes #148

@rqc - any particular reason for merging this branch?

@soninob not sure I follow. Was there a problem with it?


[SPARK-31787][K8S][TESTS][2.4] Fix Minikube.getIfNewMinikubeStatus to understand 1.5+

What changes were proposed in this pull request?
This PR aims to fix the testing infra to support Minikube 1.5+ in K8s IT.
Also, note that this is a subset of #26488 with the same ownership.
Why are the changes needed?
This helps us testing master/3.0/2.4 in the same Minikube version.
Does this PR introduce any user-facing change?
No.
How was this patch tested?

Pass the Jenkins K8s IT with Minikube v0.34.1.
Manually, test with Minikube 1.5.x.

Test build #122942 has started for PR 28599 at commit 4a2ac39.

Test build #122942 has finished for PR 28599 at commit 4a2ac39.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/122942/
Test PASSed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/27584/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/27584/

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/27584/
Test PASSed.

Could you review this PR, @dbtsai and @holdenk ?

Thanks. LGTM.

Merged to branch-2.4.


Package Name Change: pytimetk

Looks like timetk is taken on PyPi. pytimetk looks open.

Well I guess it will be like pyjanitor then. 🤪

😂😂😂


Add MacAddress to NodeInfo CRD

Reason for Change:
Add MacAddressList to NodeInfo CRD for Device Plugin implementation
Issue Fixed:

Requirements:

[ ] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[x] relevant PR labels added

Notes:

/azp run Azure Container Networking PR


slow down trackpad zoom?

With my pretty high resolution image, the two-finger scroll on trackpad to zoom on my macbook... goes really really fast. Like in less movement than you can easily control with your muscles, it's zoomed in our out a disorienting amount.
Is there any way to slow this down?  Actual scroll-wheel on a mouse seems to work okay; the amount of zoom for the clickable 'zoom in' and 'zoom out' buttons is decent. It's just the two-finger-scroll-on-mac-trackpad that is disorientingly fast.

For a project I recently did, I ended up setting the zoomPerScroll to 1.1 (instead of the default 1.2). Maybe it's time to make that the new default? It may make zooming a bit slow for some people, but I think too slow is probably better than too fast.

The problem I have is that the current zooming speed is about right for an actual scroll wheel on a mouse (at least the ones I've tried), but way too fast for touch actions on a Mac trackpad.  But the same parameter effects both. So I don't know if I'd want to slow down the scroll wheel mouse thing, unless I had reason to think a lot more users were using a touch pad on a mac than a scroll wheel, and I have no idea.

Fair enough. The challenge is detecting the difference between the two.

I'm wondering if there is anything we can learn from what they do in this plugin?
https://github.com/jquery/jquery-mousewheel

To summarize this issue, it seems like the two possible approaches are to add an extra layer like @jaronkk did, or to do more to try to figure out how to detect the difference between different devices and browsers.
I’m concerned about adding the extra layer, as it has implications for all mouse event handling in the viewer (as the new layer would capture all mouse events and they would have to be routed properly). This includes figuring out how to make sure we still get scroll events when over overlays, yet the overlays get appropriate mouse events as well. I’m also concerned we might not be able to fully hide the scroll bars that would come up (at least in some systems).
The challenge with going with detection is that it’s a constant battle, and that some things just may not be detectable.
A possible third option would be some sort of hybrid with the extra layer where we use it to detect at first, but then get rid of it. We’d still have the eventing issues until we get rid of the layer (which might be never, if the user doesn’t use the scroll wheel), so that’s probably no better than the straight extra layer approach.

I believe this has now been fixed by #754!


enable swift-testing on Windows

We need to get swift-testing enabled on Windows, porting and/or correcting any issues in the build and ensure that it passes the test suite.

The changes required to build swift-testing and test swift-testing on Windows are mostly merged.  There are the executable tests that are currently prevented from currently running due to SPM limitations (though there is now an idea on how to lift that restriction).  In the mean time, this should be considered complete as it now builds and passes the test suite that can be built.


navigator not working with nvim-lsp-installer

Hello, I can't seem to make navigator work with nvim-lsp-installer.
Here's my config:
require('nvm-lsp-installer').setup()

local capabilities = require('cmp_nvm_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())

require('navigator').setup({
  on_attach = function(client, bufnr)
    require('illuminate').on_attach(client)
    nmap_buf(bufnr, 'ca', '<cmd>CodeActionMenu<cr>')
  end,

  lsp_installer = true,

  lsp = {
    capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()),
  },
})

I have plenty of LSP servers installed via nvim-lsp-installer, but none are loaded when I open the corresponding filetype.
I looked into the code that loads the installed servers, and there's a line here:
local has_lspint, lspinst = pcall(require, 'lsp_installer')

if has_lspinst then
-- look at installed servers, setup lspconfig
end

I don't have the module lsp_installer, I verified this by trying to run the statement with :lua. Should this string not be nvim-lsp-installer?
Not sure if I'm missing some $PATH setup here or something.

Nevermind I'm blind, missed the rest of the steps

lsp-installer re-factor its folders structures and the setup no longer works.
It is obviously that all lsp-installer moved to nvim-lsp-installer. I also received a PR that go.nvim need to update for lsp-installer.
I need run some tests and get a better understanding of how the API was chagnged.

Did the issue solve?

I think I have the same issue, I am just migrating from vim, so I only tried with lua-language-server so far.
I tried everything I could think of, find on the internet to set the path myself in navigator's setup function, nothing worked. At the end, I simply created a lua-language-server executable in my path pointing to the nvim-lsp-installer actual lua-language-server location, and everything seems to be working fine now.
I still wonder why I could not change the lsp.sumneko_lua.cmd in the config file to the full path of nvim-lsp-installer executable.
Thank you for your time.

I still wonder why I could not change the lsp.sumneko_lua.cmd in the config file to the full path of nvim-lsp-installer executable.

Sorry, my mistake I used shorthand path with ~/ instead of full absolute path. Pointing to the server as suggested in the README does work.


'NoneType' object has no attribute 'nominalWidthX' for empty glyph in FontBuilder

Discussed in https://github.com/fonttools/fonttools/discussions/3231

Originally posted by NightFurySL2001 July 30, 2023
Is it normal for FontBuilder to throw a 'NoneType' object has no attribute 'nominalWidthX' error when calculating bounds of an empty glyph?
(E.g. passing an empty SVG to SVGPen and then use the charstring generated from it.)
The code in relation is this which is given in the FontBuilder example:
# calculat lsb
lsb = {gn: cs.calcBounds(None)[0] for gn, cs in glyphs.items()}

This raises TypeError: 'NoneType' object is not subscriptable, so when I try to isolate the issue it comes down to cs.calcBounds(None) gives 'NoneType' object has no attribute 'nominalWidthX' for cs of empty glyph.
I'm building with OpenType/CFF. Slightly related to #1558 .

It seems like when building a CFF table in FontBuilder, doing charString.calcBounds(None) on an empty glyph raise an error of 'NoneType' object has no attribute 'nominalWidthX'. As pointed out by @TakWolf the empty glyph is equivalent to the following command:
pen = T2CharStringPen(600, None)
pen.closePath()

or
<CharString name="uni0020">
  endchar
</CharString>

which as stated in the CFF Type 2 Charstring Format spec is a valid operation, where nominalWidthX might not be present if the glyph should use the value of defaultWidthX in CFF data.

TTF:
pen = TTGlyphPen()
pen.closePath()

This will cause:
  File "/Users/takwolf/Develop/Python/pixel-font-builder/venv/lib/python3.11/site-packages/fontTools/pens/ttGlyphPen.py", line 244, in closePath
    if self.points[startPt] == self.points[endPt]:
       ~~~~~~~~~~~^^^^^^^^^
IndexError: list index out of range

OTF:
pen = T2CharStringPen(width, None)
pen.closePath()

this will cause error on get lsb:
lsb = glyphs[glyph_name].calcBounds(None)[0]

TypeError: 'NoneType' object is not subscriptable

https://learn.microsoft.com/en-us/typography/opentype/spec/cff2charstr#42-finishing-a-charstring-outline-definition

The smallest valid CharString is simply an empty byte string.

The bounds are None for empty glyph indeed.
Try:
diff --git a/Lib/fontTools/fontBuilder.py b/Lib/fontTools/fontBuilder.py
index dd57a0507..9d06680af 100644
--- a/Lib/fontTools/fontBuilder.py
+++ b/Lib/fontTools/fontBuilder.py
@@ -117,6 +117,7 @@ charStrings = {
 }
 fb.setupCFF(nameStrings["psName"], {"FullName": nameStrings["psName"]}, charStrings, {})
 lsb = {gn: cs.calcBounds(None)[0] for gn, cs in charStrings.items()}
+lsb = {gn: l if l is not None else 0 for gn, l in lsb.items()}
 metrics = {}
 for gn, advanceWidth in advanceWidths.items():
     metrics[gn] = (advanceWidth, lsb[gn])

I might suggest to fix it as such:
fb.setupCFF(nameStrings["psName"], {"FullName": nameStrings["psName"]}, charStrings, {})
lsb = {gn: cs.calcBounds(None)[0] if cs.calcBounds(None) is not None else 0 for gn, cs in charStrings.items()}
metrics = {}
for gn, advanceWidth in advanceWidths.items():
    metrics[gn] = (advanceWidth, lsb[gn])

or
fb.setupCFF(nameStrings["psName"], {"FullName": nameStrings["psName"]}, charStrings, {})
lsb = {}
for gn, cs in charStrings.items():
    lsb[gn] = cs.calcBounds(None)[0] if cs.calcBounds(None) is not None else 0
metrics = {}
for gn, advanceWidth in advanceWidths.items():
    metrics[gn] = (advanceWidth, lsb[gn])

since subscripting None in cs.calcBounds(None)[0] caused the error mentioned above.


feat: #2160 card new with barcode

What

Add the detected barcode on the "New product" scan card
Screenshot

Fixes bug(s)
#2160

Thank you very much @cli1005 👍


Use the shared Prettier config

It was added in #585 but .prettierrc was not removed. Unfortunately, that's the config being used at the moment.
Once PRs quiet down a bit, remove .prettierrc, run npm run lint:fix and push the changes.

Fixed in https://github.com/eik-lib/service/commit/48768dfa6d3b6c9fa182771675e54fb30a4d6b34


Automatically rebuild cache after changes in css files

It will be good improvement, when the cache can automatically rebuild after the css file(s) was changed.
For example, when we write in sass/less + using gulp to compile files, after compile the new css should be cached.

I think too. But rebuild needs to trigger only if the class name changed..

As a v1, you could add the optional setting "automaticallyRebuildOnChage": false with an explanation that it rebuilds cache on any css change. I'd prefer having this compared to not having it at all. :)
Thanks!


Clarification on Calculating Excess Returns in Non-US Markets with Different Currencies

Could you provide a detailed explanation to the documentation that elaborates on how excess returns are calculated for non-US markets in currencies other than USD? I am particularly interested in any adjustments or considerations made to account for currency differences. I would like to understand the assumptions for the risk-free rate when calculating excess returns in other currencies?

Hello @kurucan !
I'm not the maintainer, but I have checked the code. Excess returns are defined as returns minus risk free rate. By default the package doesn't define a risk free rate, thus not defining the excess returns.
You should set the risk free rate to the one of the currency that you are denominating the returns/your portfolio in. So if you have your portfolio denominated in EUR and have the returns of a stock in EUR, then you should use the risk free rate "set" by the ECB, in order to calculate the excess returns. If you have a stock in EUR, but you measure your performance in USD (since this is the base currency for you), then you should convert the returns into USD returns and then use the risk free rate of the FED.
As for how currency differences are handled, all currencies must be the same to ensure accurate results, as noted in the models controller: https://github.com/JerBouma/FinanceToolkit/blob/5be9ddd31f60e9da6f7fbf91adbd2fd7544b6998/financetoolkit/models/models_controller.py#L319
Automatic conversion is only done in the financial statements: https://github.com/JerBouma/FinanceToolkit/blob/5be9ddd31f60e9da6f7fbf91adbd2fd7544b6998/README.md?plain=1#L290
So for now you have to convert all the returns into one currency and then do the calculations.
I hope that this helps!

Thanks for the remarks @northern-64bit but it's good to note that by default the risk free rate is set to the 10 year US Government Bond rate. Whether that makes sense for companies listed in e.g. Euro is up to you.

Thanks for clarifying.


adjust noelle extend param default

https://discord.com/channels/845087716541595668/1034835649762689105

no longer assumes max extension/c6 extension bug by default

Breaking change for all noelle sims that currently do not explicitly specify the extend param on burst.
I think it's worth it, because the max extension via c6 bug is probably not reasonable to assume for noelle sims since it depends on the rotation whether it can be achieved or not.

closed following discussion here https://discord.com/channels/845087716541595668/983391844631212112/1136729431671578715


Node names longer than 1 character

New feature suggested here: https://groups.google.com/d/topic/wavedrom/YoOgYJnEC4g

Hello,
I know to hide nodename by using uppercase alphabet.
But how could i do whether i have more than 26 nodes ? (in my case > 100 nodes).
Thanks and best regards!
Nguyen.
URL: https://groups.google.com/d/topic/wavedrom/Q6uixhhtiZI/discussion

Ideas are welcome.

Summary of the discussed proposal:
signal[].node property may have multiple elements separated by space(s).
First element behave as the template containing dots (.) or one of the markers:
No text markers
#   no mark
|   vertical mark
-   horizontal mark
+   cross mark (sum of them)
*   bold circle mark

Text markers
$   centered text (no mark)
] [ right/left aligned text and vertical mark
> < right/left aligned text and horizontal mark
} { right/left aligned text and cross mark
) ( right/left aligned text and bold circle mark

example:
{ signal: [
  { name: 'A', wave: '01..0..',  node: '.a..e..' },
  { name: 'B', wave: '0.1..0.',  node: '..$..#. toBe notToBe' }
],
  edge: ['toBe-|a t1', 'e|->notToBe t6']
}

Hi,
I finally found a solution for my project. I use the unicode for note the Nodenames.
Example :
{ signal: [
{ name: 'A', wave: '01........0....',  node: '.\u01A2........\u0191' },
{ name: 'B', wave: '0.1.......0.1..',  node: '..\u01A0.......\u0193' },
{ name: 'C', wave: '0..1....0...1..',  node: '...\u019F....\u0194..' },
{ name: 'D', wave: '0...1..0.....1.',  node: '....\u019D..\u0196...' },
{ name: 'E', wave: '0....10.......1',  node: '.....\u019C\u0198....' }
],
edge: ['\u01A2~\u01A0 t1', '\u019F-~\u019D t2', '\u0198-~>\u0196 time 3', '\u0194~-\u0193', '\u0191~>\u0193' ]
}
My team collected about 130 symbols (latin capital) for this problem:
https://www.dropbox.com/s/ekp69x9vztue7l8/Symbol_node.txt?dl=0
Once again, a grand Merci for your fantastic tool !
Nguyen.

Hi,
Thanks for the advise on this work around, I had been manually removing nodes from images until I found this.
Just for the next person reading this, the unicode characters above provide a way to have invisible node names (as well as more than 26 options).
I still like the idea of specifying the mark, as outlined above, as a possible future feature.
Thanks,
Andrew

How about just prefixing a signal group name with the node letter?
Then you can use the same format as before keeping the goodness of single character alignment, but just use "groupname_nodeLetter" in the rendered image.
If you need more nodes, just create a new group and you can restart from "a".

@hummuslover great idea. And it would be easier to label nodes if one can reuse letters over multiple lanes. Only I would use dot notation instead of underscore: group.subgroup.signal.letter reference.

@drom:
In one of my application, I require >100 nodes. I divided signals into groups to re-use a single character in different nodes. I tried to reference node in edge using group.subgroup.signal.letter but it's not working. I copied the example. Can you please guide me on how to fix this?
Code :
{signal: [
{    name: 'clk',   wave: 'p..Pp..P'},
['Master',
['ctrl',
{name: 'addr', wave: 'x=|..x..', node: '.p...t', data: 'a0'}, {}, {name: 'ack', wave: '0.|1...0..', node: '...o'},
]],
['Slave',
['ctrl1',
{name: 'data', wave: 'x.|=', node: '...a', data: 'd0'},
{name: 'dasd', wave: '0.|1...0..', node: '...c'},
]],
],
edge: ['Master.ctrl.addr.p ~->Master.ctrl.ack.o [2:5]', 'a-c']
}
Wavefrom:

Thanks in advance,
Dharm

Hi I have tried some characters from Character Map and it is working. These unique characters may be useful for those who need >26 nodes


Model composition in @param

Is your feature request related to a problem? Please describe.
I am trying to use the model composition for a @param tag.
Describe the solution you'd like
It would be great to be able to do model composition for the @param as it is done in the @success.
Describe alternatives you've considered
Using swaggertype tag in the model structure. Sadly this is a generated structure and I cannot update the attributes.
Additional context
Here is what I would be able to do in my comments:
// @Param request body Ctx{extended_data_interface=object} true "Document template to create"
// @Success 201 {object} Ctx{extended_data_interface=object} "Document template created"

But I get the error:
ParseComment error in file api/routes/document/template/create.go :can not find schema type: "doctemplate.Ctx{extended_data_interface=object}"

try branch refactored

When being on this branch, swag dies while creating the models. It says:
2020/04/30 16:00:23 Generating doctemplate.Ctx
2020/04/30 16:00:23 Generating models.DocumentsTemplate
2020/04/30 16:00:23 ParseComment error in file api/routes/document/template/create.go :cannot find package path of type: Uint64

The doctemplate.Ctx struct is like this:
type Ctx struct {
	models.DocumentsTemplate
	DocumentData []string `json:"document_data"`
}

And models.DocumentsTemplate:
type DocumentsTemplate struct {
	ID                    uint64      `boil:"id" json:"id" toml:"id" yaml:"id"`
	CreatorUUID           null.Uint64 `boil:"creator_uuid" json:"creator_uuid,omitempty" toml:"creator_uuid" yaml:"creator_uuid,omitempty"`
	Name                  string      `boil:"name" json:"name" toml:"name" yaml:"name"`
	ExtendedDataInterface types.JSON  `boil:"extended_data_interface" json:"extended_data_interface" toml:"extended_data_interface" yaml:"extended_data_interface"`
	Description           null.String `boil:"description" json:"description,omitempty" toml:"description" yaml:"description,omitempty"`

	R *documentsTemplateR `boil:"-" json:"-" toml:"-" yaml:"-"`
	L documentsTemplateL  `boil:"-" json:"-" toml:"-" yaml:"-"`
}

This structure was parsed well when being in the @success tag on branch master.

@Dot-H
package null have not been parsed.
when running swag init, -d can be set multiple dirs.
another way, import package null in your main.go, and set --parseDependency when running swag init.

I have tried both of your recommendations and it still does not work.

pull and try again

Thanks for the update. I have tried to pull and run it again. It dies a bit further.
The error is:
2020/05/01 07:51:01 Generating models.DocumentsTemplate
2020/05/01 07:51:01 Generating null.Uint64
2020/05/01 07:51:01 Generating types.JSON
2020/05/01 07:51:01 ParseComment error in file api/routes/document/template/create.go :cannot find package path of type: RawMessage

Which is defined as
import (
	"encoding/json"
)

type JSON json.RawMessage

and is the actual type of types.JSON from DocumentsTemplate.
I used the --parseDependency with

	_ "encoding/json"

	_ "github.com/volatiletech/null"
	_ "github.com/volatiletech/sqlboiler"

package types being at github.com/volatiletech/sqlboiler/types, adding or removing it from the import did not change anything.

—parseDependency ignored internal package by others’ PR long time ago

That's a bummer. So I have tried passing the package containing the RawMessage definition to the command but it seems that, even though the parsing is done, RawMessage is not found.
The command I used is:
swag init --parseDependency --dir './,/usr/local/go/src/encoding/json/'

And the logs:
2020/05/01 08:19:17 Generate swagger docs....
2020/05/01 08:19:17 Generate general API Info, search dir: ./
2020/05/01 08:19:18 Generate general API Info, search dir: /usr/local/go/src/encoding/json/
2020/05/01 08:19:41 Generating doctemplate.Ctx
2020/05/01 08:19:41 Generating models.DocumentsTemplate
2020/05/01 08:19:41 Generating null.Uint64
2020/05/01 08:19:41 Generating types.JSON
2020/05/01 08:19:41 ParseComment error in file api/routes/document/template/get.go :cannot find package path of type: RawMessage

I see json.RawMessage is marshaled as raw byte array.
Maybe you can use tag swaggertype as bellow:
type Sample struct{
       RawMsg json.RawMessage `swaggertype:"array,integer"`
}

A new update,swag init --parseDependency --dir './,/usr/local/go/src/encoding/json/'  works

Working like a charm :+1:
I am now able to do // @Param request body Ctx{extended_data_interface=object} true "Document template to create"
Thanks a lot for your time and reactivity :slightly_smiling_face:
Do you think it is safe to use this branch to build a documentation ? Or should I stick to a specific commit ?

As you like.
You can use it to regenerate your swagger docs and compare with old ones.
I think master branch is in such a mass and need to be refactored,  so I have made a lot of changes in branch refactored.  But I am not the owner of this repository, and code review may cost lots of time, so there may be a certain long time waiting for members in swaggo team's permission to review and merge .

Mokay. I think I will stick to the current commit on refactored. Thanks again !


bug: Is this problem relevant to the mismatch of the firmware between ot2 robot and the heatershaker module

Overview
Issues with the control of HeaterShaker module.
I try to write a protocol to test the heater shaker. It can successfully trigger the shaker function at the setting speed, but it can not stop it at the setting time. But I could control it successfully by using the opentrons app.
Heatershaker moduleGen1: V1.0.4, HSV012023040409
OT2:OT2 CEP20220901R07
Robot Firmware version: V1.1.0-25e5cea
Steps to reproduce
The coding is like this:
from opentrons import protocol_api
import opentrons.execute# Metadata
metadata = {
    'protocolName': 'Heater-Shaker Basic Usage',
    'author': 'Your Name',
    'description': 'A simple protocol to demonstrate Heater-Shaker usage with the Opentrons robot.',
    'apiLevel': '2.13'
}
protocol = opentrons.execute.get_protocol_api('2.15')
def run():
    global protocol
    # Load Heater-Shaker module
    heater_shaker = protocol.load_module('heaterShakerModuleV1', '1')
    heater_shaker_plate = heater_shaker.load_labware('opentrons_96_deep_well_adapter_nest_wellplate_2ml_deep')    # Set Heater-Shaker module parameters
    print(heater_shaker.serial_number)
    print(heater_shaker.type)
    heater_shaker.close_labware_latch()
    heater_shaker.set_and_wait_for_shake_speed(500)
protocol.delay(minutes=0.5)
heater_shaker.deactivate_shaker()
   heater_shaker.deactivate_heater()
Current behavior

It can successfully give the module type and serial number of the heatershaker module.

But it can not stop the shaker , and gaive an 'MS S500' error and M105 or M123 subsequently.

Expected behavior
I want to write my own protocol to control the heatershaker module and then combine it with the liquid handling task.
Operating system
Windows
System and robot setup or anything else?
App version: 7.5.0
Robot server: 7.5.0

This is expected behavior when controlling modules in Jupyter notebook. You need to stop the robot server to avoid the module receiving conflicting commands, which cause this sort of error.

Hope this email finds you well.
Many thanks for your help. It is my mistake that I have not read the api carefully.
Best regards,
Yuan

From: Ed Cormany @.>
Sent: 27 August 2024 21:58
To: Opentrons/opentrons @.>
Cc: Li, Yuan [yuanlee] @.>; Author @.>
Subject: Re: [Opentrons/opentrons] bug: Is this problem relevant to the mismatch of the firmware between ot2 robot and the heatershaker module (Issue #16137)
Caution: This email originated from outside of the University. Do not click links or open attachments unless you recognise the source of this email and know the content is safe. Check sender address, hover over URLs and don't open suspicious email attachments.
This is expected behavior when controlling modules in Jupyter notebook. You need to stop the robot serverhttps://docs.opentrons.com/v2/new_advanced_running.html#using-modules to avoid the module receiving conflicting commands, which cause this sort of error.
—
Reply to this email directly, view it on GitHubhttps://github.com/Opentrons/opentrons/issues/16137#issuecomment-2313525302, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BFZHTMZE7JIHCY7VZD7Y42LZTTR7DAVCNFSM6AAAAABNF5IMN2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMJTGUZDKMZQGI.
You are receiving this because you authored the thread.Message ID: @.***>

No worries! You can reopen this issue or contact Opentrons Support if you're still having problems.


The option to change companion name stopped functioning

The button that I used to be able to press and change companion name no longer functions. Nothing happens when it is pressed.

Have a fix, look for in 1.5.1 or come to discord and try it out in experimental preview


refactor: remove ignoreLevelMVarDepth option

Instead, we generalize the type class universe parameters together with the out-params.
See comment at https://github.com/leanprover/lean4/issues/1829#issuecomment-1315611785
Fixes #1951.
(Mutually exclusive) alternative to #1953.

One unexpected thing that breaks here:
def foo (α) : Except String α := throw "foo"

It's not that finding an instance of MonadExcept String (Except String) would require us to assign a universe metavariable.  But during TC search we try to apply the instance MonadError.toMonadExceptOf which would force α : Type.  So TC search aborts right there since the instance may apply after assigning the level of α.

Closed in favor of #1953.


Two missing bundles

Hi,
i've found when trying to access the jasper server via web browser at
http://localhost:8080/login.html
there are two missing request that makes the browser stop. The two XHR request are:
/rest_v2/bundles/AttributeBundle
/rest_v2/bundles/CommonBundle
I've attached output from docker-compose logs
log.txt
Should i download those bundles manually?
Regards.

Hi @grange74,
you're right.. recreating the containers solved the problem. Thank you!


High load when trying to fetch image

Describe the bug
When trying to fetch an image, the fetch_buffer method runs in an infinite loop without threaded sleeps.
Expected behavior
The method fetch_buffer should use proper events to synchronize with the acquisition thread. Or rather use a queue.Queue for fetching ready buffers.
Desktop (please complete the following information):

OS: N/A
Python: 3.6 (doesn't matter)
Harvester: 1.0.3
GenTL Producer: N/A
Camera: N/A

Additional context
Related source code lines:
https://github.com/genicam/harvesters/blob/master/src/harvesters/core.py#L2074 (this is where the cpu-hungry loop starts)
https://github.com/genicam/harvesters/blob/master/src/harvesters/core.py#L1976 (this is where the synchronization must happen)
https://github.com/genicam/harvesters/blob/master/src/harvesters/core.py#L1574 (maybe use queue.Queue here)

@voegtlel Hi, thank you for your valuable feedback. Okay, I will review the design and try to improve it. /Kazunari

JFYI: Working on it. It seems to be promising.

@voegtlel Hi. I have just committed a changeset that resolves this issue to the following branch:
https://github.com/genicam/harvesters/tree/_issue_120
Could you try that out when you can, please? I need your feedback to judge if I should merge this or not. You can manually install Harvester with the following command in the working copy:
$ git clone https://github.com/genicam/harvesters.git && cd harvesters && git checkout origin/_issue_120 && python setup.py install

Note that perhaps you should uninstall Harvester in advance if you have already installed it:
$ pip uninstall harvesters

Thanks,
Kazunari

@voegtlel The 2nd prototype has been available.

@voegtlel Please note that I would not be able to merge the branch without your confirmation. ;-)

Oh I'm sorry, I was on vacation, and now I'm in quarantine, so I don't have the hardware to verify your changes :(
I checked your commits though, and they basically look fine. I only see one issue: If you specify a very long waiting time for fetch_buffer, you cannot exit that method. I usually solve this by enqueuing None as a special "exit" value. But I guess looping with a small timeout should also work fine.


2 direct steams at the same time gives ERROR "detected lost partitions"

I have a driver program that consumes from eventhubs via 2.0.4-SNAPSHOT.
two different hubs in the same namespace with different policies via EventHubsUtils.createDirectStreams test good independently.
but when started in the same driver program with the same ssc give
[JobGenerator] ERROR o.a.s.s.e.EventHubDirectDStream - detected lost partitions List(camera-partition-0, camera-partition-1, camera-partition-2, camera-partition-3)

Which ever stream I start first will show up in the partition error.  If I comment out one, the other works fine.
Should multiple eventhubs be usable via a single ssc?
ps: building 2.0.4 for the new isLocal check on the progress_dir hdfs/adl enforcement and hoping to use wasbs.

can you provide the parameters you pass to createDirectDStreams?

basically, each DirectDStream can only map to a single namespace, if you have two eventhubs within the same namespace, you can only build a single EventHubsDirectDStream instance

Thanks @CodingCat.  I was able to process once I recreated my second eventhub in another namespace.