Different underlying models used in benchmarks skew results

The benchmarks use underlying models that are fundamentally different. The models used by fast_jsonapi in the benchmarks are plain Ruby classes, whereas the models used in the ams parts of the benchmarks inherit from ActiveModelSerializers::Model.
This difference skews the benchmarks significantly in favor of fast_jsonapi, after updating the models for the fast_jsonapi parts of the benchmark to also inherit from ActiveModelSerializers::Model several of the benchmark specs fail:
Failures:

  1) FastJsonapi::ObjectSerializer when comparing with AMS 0.10.x and with includes and meta should serialize 25 records atleast 25 times faster than AMS
     Failure/Error: expect { our_serializer.serialized_json }.to perform_faster_than { ams_serializer.to_json }.at_least(speed_factor).times
       expected given block to perform faster than comparison block by at_least 25 times, but performed faster by 14.87 times
     # ./spec/lib/object_serializer_performance_spec.rb:105:in `block (4 levels) in <top (required)>'

  2) FastJsonapi::ObjectSerializer when comparing with AMS 0.10.x and with includes and meta should serialize 250 records atleast 25 times faster than AMS
     Failure/Error: expect { our_serializer.serialized_json }.to perform_faster_than { ams_serializer.to_json }.at_least(speed_factor).times
       expected given block to perform faster than comparison block by at_least 25 times, but performed faster by 14.78 times
     # ./spec/lib/object_serializer_performance_spec.rb:105:in `block (4 levels) in <top (required)>'

  3) FastJsonapi::ObjectSerializer when comparing with AMS 0.10.x and with includes and meta should serialize 1000 records atleast 25 times faster than AMS
     Failure/Error: expect { our_serializer.serialized_json }.to perform_faster_than { ams_serializer.to_json }.at_least(speed_factor).times
       expected given block to perform faster than comparison block by at_least 25 times, but performed by the same time
     # ./spec/lib/object_serializer_performance_spec.rb:105:in `block (4 levels) in <top (required)>'

Classes used in benchmarks:
AMS benchmarks:
class AMSActor < ActiveModelSerializers::Model
  attr_accessor :id, :name, :email
end

fast_jsonapi benchmarks:
class Actor
  attr_accessor :id, :name, :email
end

@aarongough Hmm.  If I understand correctly, I'm not sure I agree.  You cannot pass Actor into an AMS serializer and have it work.  AMS requires the model to be a descendant of ActiveModelSerializers::Model (or IIRC, at the very least have a read_attribute_for_serialization method), and this is what AMS recommends.
It would not be fair to penalize fast_jsonapi by adding extra baggage that is required by the other serializer.  If it can work with plain old Ruby objects, isn't that an advantage that causes a real-world performance improvement?

@christophersansone I don't disagree at all that being able to serialize other objects is an advantage, but my impression is that the main use-case for fast_jsonapi is serializing ActiveRecord objects, so the benchmarks should represent that.
Also, if the speed gain comes from a place other than the library under test itself that should still be isolated and removed when we're specifically trying to benchmark the library...

@aarongough We may need to clean up and remove the json string serialization performance tests altogether or make them information only. The gem controls only the ruby hash creation time, after that its just multi json and the chosen engine.
We could use the same models to ensure that we are doing a fairer comparison. Do you mind creating a separate rspec just for this?
Here's a write up about the performance methodology in case you are curious about how we ended up getting the performance gain. https://github.com/Netflix/fast_jsonapi/blob/master/performance_methodology.md

I don't have a strong opinion one way or the other, as unfortunately I will not be able to use fast_jsonapi for the project that I was evaluating it for due to the structure of responses we need...
However I do think that it's important that benchmarks are apples-to-apples as much as possible, especially in cases like this where a big part of the performance gain is coming from outside the code under test! In this case at least the fix is easy, here is a patch to make it a fairer comparison:
diff --git spec/shared/contexts/movie_context.rb spec/shared/contexts/movie_context.rb
index 8a64881..4e04f41 100644
--- spec/shared/contexts/movie_context.rb
+++ spec/shared/contexts/movie_context.rb
@@ -3,7 +3,7 @@ RSpec.shared_context 'movie class' do
   # Movie, Actor Classes and serializers
   before(:context) do
     # models
-    class Movie
+    class Movie < ActiveModelSerializers::Model
       attr_accessor :id, :name, :release_year, :actor_ids, :owner_id, :movie_type_id

       def actors
@@ -28,11 +28,11 @@ RSpec.shared_context 'movie class' do
       end
     end

-    class Actor
+    class Actor < ActiveModelSerializers::Model
       attr_accessor :id, :name, :email
     end

-    class MovieType
+    class MovieType < ActiveModelSerializers::Model
       attr_accessor :id, :name
     end

@aarongough But ActiveModelSerializers::Model != ActiveRecord::Base.
If we want to test performance of ActiveRecord models, they should descend from ActiveRecord::Base.  In theory, then we wouldn't even need different model classes... we could use the same model instances and pass them through each serializer.

@christophersansone ultimately it doesn't matter what the underlying model is, as long as it's the same across all benchmarks, that's the important thing.

While I dont think that it is causing huge discrepancies in performance numbers. I agree with the above comment of @aarongough. In order to get the same underlying model for all tests we should refactor the movie context and ams_movie context files so they are defining serializers to one set of underlying classes.


Text in term info is not copyable

Description of the problem
Text in TermInfo is not copyable.  It really, really should be.
Browser

[ ] All of them
[x] Safari
[x] Chrome
[ ] Firefox
[ ] Internet Explorer

OS

[ ] All of them
[ ] Windows
[x] macOS
[ ] Linux
[ ] Android
[ ] iOS

This is working for me now on firefox and chrome


Make commits last month and last year more accurate

I want to see how many I commited in the last month (30 days) and the last year (365 days). The stats only give's me since the 1st day of this month for the monthly contributions and since January 1st of this year for the yearly contributions.

@LordDashMe Would be useful...


Fix bugs in real world app and add docs

We need to figure out default setup for mutation observer, will it be disabled without flags?

I would say that the user should have to specify what to observe as there are so many possibilities and you'd want to minimise the observations. It throws an error if you don't specify anything doesn't it? So default should be nothing.

@BryanCrotaz thank you for contribution!


Create conda package for CODA with python

Create packages for conda for CODA with HDF4 and HDF5 enabled and with the Python interfaces enabled. This is especially useful for using the CODA python interfaces on Windows.
The approach should probably match this tutorial

Conda packages are now maintained in a separate conda-recipes repository


Create Sorting: Comparator.py

Description
Please include a summary of the change and which issue is fixed. List any dependencies that are required for this change.
Fixes #(issue_no)
Replace issue_no with the issue number which is fixed in this PR
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Documentation Update

Checklist:

[x] My code follows the style guidelines(Clean Code) of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have created a helpful and easy to understand README.md
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests/screenshots(if any) that prove my fix is effective or that my feature works

@ananya123-gif change the program name from Create Sorting: Comparator.py this to this Create Sorting Comparator.py

Sorry ananya i am closing this PRs


Readonly attribute

Codecov Report

Merging #52 (9b8926f) into main (227a6cc) will increase coverage by 0.04%.
The diff coverage is 79.66%.

:exclamation: Current head 9b8926f differs from pull request most recent head 297fa64. Consider uploading reports for the commit 297fa64 to get more accurate results

@@            Coverage Diff             @@
##             main      #52      +/-   ##
==========================================
+ Coverage   71.94%   71.99%   +0.04%
==========================================
  Files         135      135
  Lines        2513     2542      +29
  Branches      200      202       +2
==========================================
+ Hits         1808     1830      +22
- Misses        705      712       +7

Impacted Files
Coverage Δ

...Models/Attributes/BooleanAttributeConfiguration.cs
15.62% <0.00%> (ø)

...ttributes/EntityReferenceAttributeConfiguration.cs
12.50% <0.00%> (ø)

...odels/Attributes/HtmlTextAttributeConfiguration.cs
0.00% <0.00%> (ø)

...n/Models/Attributes/ImageAttributeConfiguration.cs
23.80% <0.00%> (ø)

CloudFabric.EAV.Service/EAVService.cs
85.81% <57.14%> (-1.11%)
:arrow_down:

...Fabric.EAV.Domain/Models/AttributeConfiguration.cs
58.26% <80.00%> (+0.98%)
:arrow_up:

...uration/Attribute/AttributeConfigurationCreated.cs
100.00% <100.00%> (ø)

...n/Models/Attributes/ArrayAttributeConfiguration.cs
72.22% <100.00%> (ø)

...dels/Attributes/DateRangeAttributeConfiguration.cs
57.14% <100.00%> (ø)

.../Attributes/LocalizedTextAttributeConfiguration.cs
68.75% <100.00%> (ø)

... and 11 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


[Feature] Support for WindowsAppSDK 1.0.0.-experimental1

Currently the package references Project Reunion 0.8.
I would like to port my application to WindowsAppSDK 1.0.0.-experimental1, and because of this, I would need that the NuGet package references it instead of Project Reunion.

Is there any ETA?

There will be no 1.0.0-experimental1, but we just pushed a new 1.0.0-preview1:
https://www.nuget.org/packages/Microsoft.Xaml.Behaviors.WinUI.Managed/2.0.5

Super, thank you!


Add cache condition in header_rewrite plugin for lookup results

By adding CACHE condition to the header_rewrite plugin, the headers will know where the requested data was generated from using cache lookup values. (ie. if the condition returns hit-fresh, the requested data was found fresh in that server's cache)

[approve ci]

Needs documentation and a better description for the PR

[approve ci]

@serrislew you need to run "make clang-format" on the branch to get the clang-format step happy.

[approve ci]

Could this new condition be tested in an Au test?

[approve ci]

[approve ci]

@SolidWallOfCode is going to look at this

@SolidWallOfCode before you review, I would like to add an example use case of this cache condition in the docs

[approve ci]

[approve ci]

This is a new feature, and I don't think we should merge this into a 9.1.x patch release. Rather, lets defer this for 9.2.x, which we will branch soon.


moved range of slot compound from global definition into a slot_usage on SolutionComponent

Moved the  any_of: usage from where we assert the range of Slot: compound to the Class:SolutionComponent definition as a slot_usage. As per @sujaypatil96 suggestion in https://github.com/microbiomedata/nmdc-schema/issues/1666#issuecomment-1915214482
But it had no change on the testdoc generation. The range of Slot: compound still comes up as a string instead of the Enum's we require.

Thansk for trying this

@anastasiyaprymolenna are you sure you're using the latest linkml? I really thought @sujaypatil96 had been working on showing the any_of ranges. Maybe that's in a newer release than you are using?

This is what I ahve now, but I don't know if the poetry.lock requires the versions to be this high yet.
linkml                     1.7.5           Linked Open Data Modeling Language
linkml-runtime             1.7.2           Runtime environment for LinkML, ...

I just made testdoc in main
here's the slot definition:
  compound:
    domain: SolutionComponent
    any_of:
      - range: CompoundEnum
      - range: ProteolyticEnzymeEnum
    description: A substance that consists of more than one atom or ion. Includes solvents and solutes. Can be combined into solutions.
    required: true

and here's the resulting documentation, which I agree is incorrect!

@sujaypatil96 this issue was closed. Was it intended to address cases like this?

https://github.com/linkml/linkml/issues/1851

Thank you for confirming Mark. Yes, the testdoc generation issue persists with the latest version of LinkML (the version I am using is the same as you have listed above). I like your suggestion to "work on some modeling that combines the two enums". If we cannot resolve the documentation generation bug, we might have to find alternate methods of representing the range of the slot altogether.

@anastasiyaprymolenna my apologies for the premature guidance in https://github.com/microbiomedata/nmdc-schema/issues/1666#issuecomment-1915214482, I responded without looking through the use case/schema thoroughly myself. I apologize for that.
@turbomam is right, there have been recent updates to linkml where we've added support for appropriately rendering documentation when the slot range is a union composed using any_of but the reason you're not seeing that applied to the generated web documentation is because those updates are not in the latest release of linkml just yet. As soon as the next release of linkml is out, we will update the poetry.lock file in the berkeley schema repository to use that release, and there will be a GitHub Action that will update the docs available at https://microbiomedata.github.io/berkeley-schema-fy24/ to appropriately render the ranges for slots using any_of.


fixed wrong dns server

fixed wrong DNS Server

<IP_ADDRESS> is nor a wrong dns server

https://www.quad9.net/


Added to reproduction logs

MacOS 15.1
Maven 3.9.9
Java 21
Everything worked for me!

@zdann15 please fix conflicts?

Resolved!


Optimized macOS desktop image

Here's something that really, really bothered me for a long time 😁: the desktop icon for Material skin used by an "appified" Chrome instance is too big.

According to [Apple style guides[(https://developer.apple.com/design/human-interface-guidelines/macos/icons-and-images/app-icon/) you should have some whitespace (gutter?) around your icon. I'd therefore suggest you replace the existing icon with my copy of it (which I created based on your svg file):

The first icon is yours, second is my modified version, next to other popular circular icons.

Thanks, but the circle is now smaller than safari and chrome. Can you resize so that it is the same? I'd do this myself but I don't have a mac. I think its about 4px (so 2px either side) smaller.

Wow... is it? I'll give it another try. Damned pixel peeper 😁!

Yeah, sorry - I can be a real pain in the proverbial!

Did you actually measure the screenshot, or did you spot this like that?

Looks better now. I did notice that it looked slightly smaller by eye, and then I placed another window over the screenshot to detect the height.


Support provider default_tags propagation

Is your request related to a problem? Please describe.
No
Describe the solution you'd like.
The AWS provider's default_tags are not propagated to the resources created by the module. Other modules have implemented changes to better support the propagation of default_tags. Please can you consider implementing these features in this module?
Describe alternatives you've considered.
Workarounds include merge() but this causes tag churn on apply.

default_tags should work as is based on the provider - there shouldn't be additional changes required by modules to support them. In the past when we have tried to "add better support" for them it has created numerous issues

Thanks @bryantbiggs
You are right. I had incorrectly specified a few tags which were already specified in the provider default_tags which caused churn on every apply. Removing duplicates has solved the problem. Apologies for the confusion, but hopefully this steers someone in the right direction in future!

thank you!


WIP support ACL's x-amz-acl via resource_kwargs (apply on s3's BufferedOutputBase close)

support ACL's x-amz-acl via resource_kwargs (apply on s3's BufferedOutputBase close)
Motivation
We often need to support uploading files to S3 buckets from different accounts.
In order for the S3 object to be visible from the account that owns the bucket the ACL needs to be set. A quick way is to use the built in: x-amz-acl
In this PR I overload the resource_kwargs used within s3.py so that we can pass x-amz-acl which is then applied during the close for BufferedOutputBase objects.
Tests
Let me know what tests you would like me to write for it. Keep in mind that the upload doesn't fail unless the owner of the bucket refuses the object creation (may point to whether or not the close is the right place). So a test would require 2 accounts an upload afterwards download from a separate account.
Work in progress
Flagged as WIP pending comments on testing.
Checklist
Before you create the PR, please make sure you have:

[X] Picked a concise, informative and complete title
[X] Clearly explained the motivation behind the PR
[ ] Linked to any existing issues that your PR will be solving
[ ] Included tests for any new functionality
[ ] Checked that all unit tests pass

Thank you for your comments. However that kind of defeats the purpose of using smart_open.
Currently we use boto3 and detect the usage of S3 within user given URIs. Within the intended CLI applications, URIs are for the local file systems or S3.
The goal of moving to smart_open was to be able to handle local file systems and S3 without having to do different code paths in the applications. This is why using smart_open.open(URI,...) was great for us.
However the transport is what makes the behavior differently. Since the behavior is transport specific I figured the s3.py file was the best place for this. On top of that, this is an option that doesn't affect everybody (that's why I used the .pop as it is also used in other places in the code)
I liked how smart_open can use transport specific options that are ignored if not needed for the specific transport affecting the current URI. If I have to detect the transport and handle the differences within the application then what would be the purpose of using smart_open?
@mpenkov  Am I missing something? Maybe I'm using it wrong ;-)

The goal of moving to smart_open was to be able to handle local file systems and S3 without having to do different code paths in the applications. This is why using smart_open.open(URI,...) was great for us.

I think you're conflating the goals of smart_open with their consequences.
The mission of smart_open is simple (from README.md):

smart_open is a Python 2 & Python 3 library for efficient streaming of very large files from/to storages such as S3, HDFS, WebHDFS, HTTP, HTTPS, SFTP, or local filesystem.

The emphasis is on "efficient streaming". To achieve that, we use an abstraction familiar to most Python users: the file object, which gets opened by the open function. That function takes in a bunch of additional arguments that are strictly necessary in order for the opening to work. Everything else (e.g. permissions setting) happens elsewhere.
Consider the built-in io.open function. Does it allow you to specify a mask so it can automatically chmod the file after creating it? Does it allow you to specify the user and group who owns the file?

However the transport is what makes the behavior differently. Since the behavior is transport specific I figured the s3.py file was the best place for this. On top of that, this is an option that doesn't affect everybody (that's why I used the .pop as it is also used in other places in the code)

This isn't what resource_kwargs is for. Hijacking it to satisfy your particular use case is a bad idea.

I liked how smart_open can use transport specific options that are ignored if not needed for the specific transport affecting the current URI. If I have to detect the transport and handle the differences within the application then what would be the purpose of using smart_open?

Presumably, so you can open the remote location and write to it as a stream using the familiar construct:
with open(some_url, 'w') as fout:
    fout.write(data)

That's what smart_open is good at. Doing the same thing using boto3 would be more involved. Plus, once you've written the stream using boto3, you'd still have to do the work to apply the ACL (as I've suggested in the original comment).
If you want to do other things to the object after you've written it, e.g.

Change file permissions using chmod (Local filesystem under Windows and *nix)
Assign owners, groups, etc using chown (Local filesystem under *nix only)
Apply an ACL (S3 only)
Apply other boto3 magic (S3 only)
Anything else not necessary for streaming the remote file object

Then that is application logic, and is the responsibility of your application. Application logic does not belong in a library.

If it is out of scope for smart_open let's go ahead and close the PR.
However, I will say that we should not generalize the behavior of what is the responsibility of application vs. library based on this PR. When a library abstracts away the transport and provides a mechanism for transport specific options but then we state that transport behavior is 100% the responsibility of the application it creates a conflict.
I understand this specific use case doesn't belong in this library, but it should not be taken as a generalization.
Thanks for looking into it.


How to collect metrics emitted by zuul2 in a text file?

We want to collect all the metrics that zuul emits such as zuul.timings.request.total, etc. We want to make use of our own tools to display these metrics.
Please give a code example of how to collect at least one metric. So that we get an idea on how it should be done.
Thanks in advance :)

You can take a look at https://github.com/Netflix/spectator which is what Zuul uses for metrics.  I believe there is file-exporter plugin built in.

I found a MetricPoller class in Zuul-core(2.1.5) that polls few metrics. I think this covers just the servo metrics.
I have 2 questions:

Are Servo and Spectator collecting different set of metrics?
Can I have just one Poller to poll all the metrics provided by zuul?
Can I have this poller running from the Bootstrap class so that it runs as long as the server is running?

Also, metrics such as zuul.timings.request.* have 0 value when I log their values at BasicRequestMetricsPublisher where the values are getting recorded

Servo is the previous generation of Spectator.  Spectator is what should be preferred.  You can have just one poller which reads from the shared registry.  I am not sure about zuul.timings metric, they are recorded properly when I checked our running instances.

Could you tell me which class should be referred, to poll spectator metrics?

What we did 1. spectator-reg-micrometer . 2 create our own implementation of  BasicRequestMetricsPublisher, and report data with Micrometer.
totalRequestTime in BasicRequestMetricsPublisher is 0 because timing is not started. you need have a way to start it.   requestPoxy and origin data are fine.

@johnliucn925, What do you mean by starting the timing?

https://github.com/Netflix/zuul/blob/master/zuul-core/src/main/java/com/netflix/zuul/stats/Timing.java#L41


Translate Loans into java

Branched from AntonAndell:Loan-Contract-Rewrite

Found some issue

@simusud thanks, Did you deploy a new loans to testnet och upgrade something existing?

@simusud thanks, Did you deploy a new loans to testnet och upgrade something existing?

I updated  java contract on top of python version.

Do you have them on a public network? if so please link it and ill take a look as soon as possible

@simusud Do you have them on a public network? if so please link it and ill take a look as soon as possible

these are the contract addresses on berlin testnet:
{'loans': 'cxe453c7fde3bb13708aa1c7f489f72555576cc0c5',
'staking': 'cxed3be999a956fe29e9b69897a4e006fa93617105',
'dividends': 'cx2eefd77f58b5f91c8864bcbe4d8f8499dbd695eb',
'reserve': 'cxd0a38c0f504df38eafebabb615782748ee987748',
'daofund': 'cxa2fd38bd859bba1312e2005e8424f4beef881403',
'rewards': 'cxd1715065020ad9bde938b419c08a4f841b4938a3',
'dex': 'cx74d3d46a451d9586bed3c75ff31073e8041c0945',
'rebalancing': 'cxa7d725d78735f342e566a139250b1ba4adc88578',
'governance': 'cxab2a2dbc4c934bf91bb0315b725167e232602f30',
'oracle': 'cx75c55b7a155a031c31e11b8026b4f4a669a6f3a6',
'router': 'cxb37bb889c69f59a34c04823e6042a833cbe59434',
'feehandler': 'cxc93c53978369da866b0da7ce643a1a182ca4b901',
'sicx': 'cxf023d6c162a0f8d73a79c1bab5a337171a43d648',
'bnUSD': 'cxfe33ce942aa9932ed84c7bb260e6b6e93438b88c',
'baln': 'cx95665c74a56ddd019ea9c3c929901cbf87ab3939',
'bwt': 'cxfcba1108911ae36aa425e2183d35bea0ecb66b30'}

@simusud Do you have them on a public network? if so please link it and ill take a look as soon as possible

these are the contract addresses in berlin testnet: {'loans': 'cxe453c7fde3bb13708aa1c7f489f72555576cc0c5', 'staking': 'cxed3be999a956fe29e9b69897a4e006fa93617105', 'dividends': 'cx2eefd77f58b5f91c8864bcbe4d8f8499dbd695eb', 'reserve': 'cxd0a38c0f504df38eafebabb615782748ee987748', 'daofund': 'cxa2fd38bd859bba1312e2005e8424f4beef881403', 'rewards': 'cxd1715065020ad9bde938b419c08a4f841b4938a3', 'dex': 'cx74d3d46a451d9586bed3c75ff31073e8041c0945', 'rebalancing': 'cxa7d725d78735f342e566a139250b1ba4adc88578', 'governance': 'cxab2a2dbc4c934bf91bb0315b725167e232602f30', 'oracle': 'cx75c55b7a155a031c31e11b8026b4f4a669a6f3a6', 'router': 'cxb37bb889c69f59a34c04823e6042a833cbe59434', 'feehandler': 'cxc93c53978369da866b0da7ce643a1a182ca4b901', 'sicx': 'cxf023d6c162a0f8d73a79c1bab5a337171a43d648', 'bnUSD': 'cxfe33ce942aa9932ed84c7bb260e6b6e93438b88c', 'baln': 'cx95665c74a56ddd019ea9c3c929901cbf87ab3939', 'bwt': 'cxfcba1108911ae36aa425e2183d35bea0ecb66b30'}

@simusud Do you have them on a public network? if so please link it and ill take a look as soon as possible

these are the contract addresses in berlin testnet:
{'loans': 'cxe453c7fde3bb13708aa1c7f489f72555576cc0c5', 'staking': 'cxed3be999a956fe29e9b69897a4e006fa93617105', 'dividends': 'cx2eefd77f58b5f91c8864bcbe4d8f8499dbd695eb', 'reserve': 'cxd0a38c0f504df38eafebabb615782748ee987748', 'daofund': 'cxa2fd38bd859bba1312e2005e8424f4beef881403', 'rewards': 'cxd1715065020ad9bde938b419c08a4f841b4938a3', 'dex': 'cx74d3d46a451d9586bed3c75ff31073e8041c0945', 'rebalancing': 'cxa7d725d78735f342e566a139250b1ba4adc88578', 'governance': 'cxab2a2dbc4c934bf91bb0315b725167e232602f30', 'oracle': 'cx75c55b7a155a031c31e11b8026b4f4a669a6f3a6', 'router': 'cxb37bb889c69f59a34c04823e6042a833cbe59434', 'feehandler': 'cxc93c53978369da866b0da7ce643a1a182ca4b901', 'sicx': 'cxf023d6c162a0f8d73a79c1bab5a337171a43d648', 'bnUSD': 'cxfe33ce942aa9932ed84c7bb260e6b6e93438b88c', 'baln': 'cx95665c74a56ddd019ea9c3c929901cbf87ab3939', 'bwt': 'cxfcba1108911ae36aa425e2183d35bea0ecb66b30'}

Posting SS of all the working readOnly methods:

@nightowl121 LoansContract seem to be missing good error messages in handling future snapshots and fetching non existing positions. Do we want to try and improve on this or ignore it for now?


Patch 104

Purpose
Update links on osf.io/institutions/temple
Changes
Update links
QA Notes
n/a
Documentation

Side Effects
n/a
Ticket
n/a
(zendesk #882)

Cherry-picked in as https://github.com/CenterForOpenScience/osf.io/commit/2ab79831b375b9f51bdc6be3157aa2d7f8ed3bee after fixing string, consider this merged :octocat:


Update README.md (added config for service file)

Thanks for the contribution! Would love to use this, but we'll move node setup info to a wiki so we can add it there instead. Closing for now.


Markdownlint integration with VS Code

As we've got some custom Markdownlint rules, it would be nice to be able to see those rules applied to challenge markdown as we work on it.  Do we want to provide support for this (create a VS Code workspace, basically)?

@ojeytonwilliams, do you mean a plugin for vs code?

@jonathan-grah well, Markdownlint has a VSCode extension which highlights parts of your markdown break linting rules.
What I'm proposing is we configure VSCode workspace settings (and add that to the repo), so that anyone who uses that extension will have the custom linting rules applied correctly.

Since we're moving to mdx, this will no longer be needed.


Allow non-minification of copyright/licenses

Currently only the CSS minifier has a mechanism for leaving copyright
comments untouched. I'd prefer to remove this option from the CSS min and
create an easy way to leave arbitrary content (usually comments) unmodified.

Option 1: Give unrecognized file extensions an empty minifier by default.
The user would then move license/copyright comments to .txt files and add
them to the file lists. I like this because it actually simplifies/removes
 Minify code while making the task straightforward for the user.

Option 2: Have Minify_Javascript / Minify_Html sniff & strip out license
comments and add them back after using minification. Creates tons of
options and worries about how to determine which comments to keep, etc.

This also raises the issue: are licenses even necessary if the source files
(w/ license) are on the server (but not linked)? Would it be
better/acceptable to merge all client code licenses into a file and point
to it in a comment?

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 2 May 2008 at 5:13

Of option 1 and 2, I would prefer option 1. Option 2 feels too likely to break.

Could the license text be added in the PHP code instead of external .txt files?
This
would seem cleaner to me, each license is just a few lines long, and could just
be
another option field in the file settings array?

I would advocate keeping the copyright statement together with the original
work, for
2 reasons:
1) If the user saves the webpage and moves it, then any non-linked resources
would be
lost.
2) Several licenses require that the copyright notice must be left intact, as
one
example the modern BSD license says "Redistributions of source code must retain
the
above copyright notice, this list of conditions and the following disclaimer."

Original comment by<EMAIL_ADDRESS>on 2 May 2008 at 6:53

Option 3 looks good to me. :-)

Original comment by<EMAIL_ADDRESS>on 2 May 2008 at 10:01

Minify_Javascript now has the "preserveComments" option, and, by default,
preserves
multi-line comments that begin with "/*!".

Original comment by<EMAIL_ADDRESS>on 14 May 2008 at 4:18

Changed state: Fixed

Outputting content before calling Minify::serve() will generally not work since
serve() sends headers and encodes content (so you'd have mixed encoding
garbage).

If you *really* want to keep the comments in the PHP code, you can use a
Minify_Source and directly give it the content:

new Minify_Source(array(
  'id' => 'jsComments' // arbitrary, but required
  ,'content' => '/* put comments here */'
  ,'minifier' => ''
  ,'lastModified' => filemtime(__FILE__) // allows caching
))

Option 3: An option to prepend a multi-line comment that lists the files
compressed:

/* This file contains compressed versions of these source files:
http://example.com/js/jquery.js
http://example.com/js/dojo.js
http://example.com/js/user.js
Please see the above files for copyright/license information. */

I'm still not crazy about it. I think this should be manually done via Option 2,
rather than a bunch more Minify code.

Original comment by<EMAIL_ADDRESS>on 2 May 2008 at 8:17

Taking cue from the YUI Compressor, I've added a "preserveComments" option
(default
true) to Minify_Javascript in r79. This preserves multi-line comments that
begin with
"/*!".

This requires minimal user modification to the sources, and is a pretty simple
system
with predictable output.

TODO: revise Minify_CSS to have the same option instead of sniffing for
"copyright".

Original comment by<EMAIL_ADDRESS>on 7 May 2008 at 8:21

Changed state: Started


play several video in the same controller

how i can play several video in the same table like facebook while scrolling

This question is outside the scope of XCDYouTubeKit, please ask it on Stack Overflow.


Auto Generate API Client possible?

Hello all,
I asked myself if it is possible to not just do a
framework:schema

but to auto generate a whole client from the schema json or directly from the shopware project since the open api standard supports this. I know some routes are generated automatically so I assume it is not possible to include all routes in an api client automatically.
Does someone has an idea or probably already did it?
Thank you very much and best regards,
Stefan

Hello Stefan,
our open api schema currently doesn't cover all possibilities provided by the API, the action routes are missing right now.
Basically the open api schema currently just covers the CRUD operation for all entities in the system and these are the routes that are automatically generated.
But for the CRUD operation you should be able to generate an api client by one of these tools out there.
I personally don't have any experience  on how good and usable these auto generated clients are.
But my personal opinion is to not use auto-generated clients, as you depend on your once generated clients and it can get really complicated if the API evolves and changes.
Kind regards
Jonas

What a pitty.
Thank you very much,
Stefan


Programmatic api for vue-cli-service build/serve that accepts custom webpack config

What problem does this feature solve?
For a new version of vue-cli-plugin-electron-builder I need to be able to modify the webpack config only if my build command is called, not for the regular build. I need to customize the config to work with electron, but then it won't work in browser. Being able to api.build(config) is necessary for my plugin. api.serve(config) is not necessary, but would be quite nice. I could possibly add this myself and submit a PR, but I want to make sure this is wanted as a feature.
This kinda relates to this comment.
What does the proposed API look like?
Some other features I would like:

events for recompiling on serve command
being able to get info such as hosted port, compile errors, and other info like that provided by webpack()
bundle data is still shown in UI page

essentially  a api similar to that of webpack(), but that includes the extra steps of vue-cli-service build/serve (because webpack(api.resolveWebpackConfig()) throws errors).

 The build by vue-cli includes some extra steps that prevent theses errors from happening.

I think you will have to better explain the exact API you need. It's pretty vague right now.

I created a pr for the build command. The api.service.run('serve') works just fine for this plugin.

Closing as Author closed his own PR.

@nklayman is there any way I can invoke serve and launch an Electron instance after dev server starts without writing any complicated Vue plugin level stuff? I've read through your source but still can't figure out. Even posted a question here.

@nklayman is there any way I can invoke serve and launch an Electron instance after dev server starts without writing any complicated Vue plugin level stuff? I've read through your source but still can't figure out. Even posted a question here.

@m4heshd See my comment on StackOverflow

@m4heshd See my comment on StackOverflow

@nklayman thank you for taking time to look through my issue. I actually went through the vue-cli source and ended up doing this which exactly does what I need to.
const vueService = require('@vue/cli-service');
const {info, done, error} = require('@vue/cli-shared-utils');
const service = new vueService(process.cwd());

service.init("development");
service.run('serve').then(({server, url}) => {
    info('Launching Electron...');

    let electron = spawn(path.join('node_modules', '.bin', process.platform === 'win32' ? 'electron.cmd' : 'electron'), ['electron-main.js'], {stdio: 'inherit'});

    electron.on('exit', function (code) {
        process.exit();
    });
})

I wish this stuff were documented. I loved your plugin but after few weeks I just got extremely frustrated, mostly with webpack and completely gave up on the project I was working on to do more research. Went down this rabbit hole of research and ended up creating my own simplistic, fast & effective boilerplate for Vue + Electron now I'm super comfortable with 😊. Your plugin and the community around it really helped me with understanding most of Vue internals and I'm really grateful for that.

@nklayman thank you for taking time to look through my issue. I actually went through the vue-cli source and ended up doing this which exactly does what I need to.
const vueService = require('@vue/cli-service');
const {info, done, error} = require('@vue/cli-shared-utils');
const service = new vueService(process.cwd());

service.init("development");
service.run('serve').then(({server, url}) => {
    info('Launching Electron...');

    let electron = spawn(path.join('node_modules', '.bin', process.platform === 'win32' ? 'electron.cmd' : 'electron'), ['electron-main.js'], {stdio: 'inherit'});

    electron.on('exit', function (code) {
        process.exit();
    });
})

I wish this stuff were documented. I loved your plugin but after few weeks I just got extremely frustrated, mostly with webpack and completely gave up on the project I was working on to do more research. Went down this rabbit hole of research and ended up creating my own simplistic, fast & effective boilerplate for Vue + Electron now I'm super comfortable with 😊. Your plugin and the community around it really helped me with understanding most of Vue internals and I'm really grateful for that.


Added try/catch with logging in doctrine subscriber to prevent errors bubbling up

Fix for issue #13

Added catch_log_exceptions configuration that enables try/catch (+logging).
Logging is now done only if logger service available.
Configuration can now be done directly within config yaml file (from there it's possible to load parameters.yml values) instead of parameters, this allows easy overriding per environment (different account for tests for instance).
Updated readme.

@chriwup Thanks for you help


\pdfinterwordspaceon incompatible with MikTex

Using \pdfinterwordspaceon in WindForS.sty causes MikTex to not compile.
Issues:

What is the role of \pdfinterwordspaceon?
Is there a need for it?

Fixed in release 1.3

\pdfinterwordspaceon is for accessibility and proper copy-pasting of text from the PDF:
By its original intention, LaTeX places letters at the correct positions on a white page (good for layout, but bad for semantics and accessibility), - so LaTeX does not set whitespace (like spaces between the words). So if you copy some text from the PDF, you would get one big line ("Wurst" as we say) of words, without the spaces.
\pdfinterwordspaceon tells LaTeX to also typeset the spaces as characters, so that you can properly copy-paste the text from the pdf. This also has a HUGE impact on accessibility - think of a screen reader program having to cope with pages of text that has no spaces between the words!
(Btw. It's a pitty that LaTeX is so poor at accessiblity (sadly, currently MS W**d is much better actually). Improvements coming slowly - which means that LaTeX might die one day due to lack of accessiblity where it is legally required to offer texts in accessible way - like all universities in Europe, afaik.)
Thus, commening out this line is not optimal - we should try to motivate the LaTeX guys to fix the underlying error. It is actually a font problem that only happens on Windows.
See also https://tex.stackexchange.com/questions/318425/use-pdfinterwordspaceon-with-pdflatex-from-miktex-on-windows

FYI: I just got the info that this was fixed in MikTeX today - https://github.com/MiKTeX/miktex-packaging/issues/71

As of my understanding, the underlying issue in MikTex was fixed completely by evocedoly at MikTex (within a few hours after I had reported it, wow!). I should be able to test it next week (not using MikTex personally).
Thus, you should be able to just go back to your original implementation, maybe after a few days (or weeks) to allow everyone to get the update.
https://github.com/MiKTeX/miktex-packaging/issues/71
I agree it is very preferable to have the best-possible accessibility by default.

Ok, I understand that MikTex has been updated. I've had issues on a Mac with this as well though and I'd like to see if the update you mention applies / helps there, too.Watch this space... Ich melde mich. On 4 Dec 2018 11:05, Philipp<EMAIL_ADDRESS>wrote:As of my understanding, the underlying issue in MikTex was fixed completely by evocedoly at MikTex (within a few hours after I had reported it, wow!). I should be able to test it next week (not using MikTex personally).
Thus, you should be able to just go back to your original implementation, maybe after a few days (or weeks) to allow everyone to get the update.
MiKTeX/miktex-packaging#71
I agree it is very preferable to have the best-possible accessibility by default.
—You are receiving this because you modified the open/close state.Reply to this email directly, view it on GitHub, or mute the thread.


Add visual indicators that boxer is evaluating

Currently, if boxer is in the middle of evaluating it can be stopped with the top menu or Ctrl-. however, there isn't a way to really tell if a line is evaluating unless it is updating obvious boxes/graphics on screen.

We have the toolbar icons now for this, and may add other specific items in the future.


CAD-650 trace block forge time

Issue

measure and trace block forge time

This PR does not result in breaking changes to upstream dependencies.

Checklist

[ ] This PR contains all the work required to resolve the linked issue.

[ ] The work contained has sufficient documentation to describe what it does and how to do it.

[ ] The work has sufficient tests and/or testing.

[ ] I have committed clear and descriptive commits. Be considerate as somebody else will have to read these.

[ ] I have added the appropriate labels to this PR.

we now get the right outcome:
{"at":"2020-03-10T07:52:16.00Z","env":"1.7.0:0fb3b",
"ns":["cardano.node.ForgeTime"],
"data":{"kind":"OutcomeTraceForgeEvent","difftime":130287000,"slot":2,"mempoolbytes":6754,"mempoolnumtx":22},
"app":[],"msg":"","pid":"2692","loc":null,"host":"nixos19","sev":"Info","thread":"41"}

depends on merging upstream PR https://github.com/input-output-hk/iohk-monitoring-framework/pull/531 into master.

bors r+


Level 8 Captive Position Bug

At Level 8 you start right on top of the ticking captive
(Captive on 5/0)
(Warrior on 5/0)
Either the warrior or the captive should be on 0/0 (i think the warrior should be there)

Thanks!


#211 pull-was-merged details are not sufficient

Added counting of comments in details
Closes #211

@Yegorov please review

@Yegorov fixed, thanks!

@yegor256 Merge https://github.com/zerocracy/fbe/pull/71 PR before

@yegor256 please check

@rultor merge

@rultor merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@yegor256 Done! FYI, the full log is here (took me 25min)

@Yegorov Great job on the review! 🌟 Your effort has earned you +9 points: +10 base, +9 for reviewing 497 hits-of-code (max +10), and -10 due to only 3 comments (policy requires 6+). Remember, more detailed feedback can boost your points next time! Your updated balance is now +392. Keep up the good work!

@yegor256 Great job on the review! 🌟 You've earned 24 points: 10 base + 9 for reviewing 468 hits-of-code + 5 for 10 insightful comments. Your dedication is impressive! Current balance: -235. Keep up the excellent work!

@Suban05 Thank you for your contribution! You've earned +21 points for this code submission: +15 as the base reward, and +6 for the 61 hits-of-code you wrote. This aligns with our team's policy of rewarding code contributions. Your current balance stands at +422. Keep up the good work and remember to maintain a balance between speed and quality in your future contributions.


Pushing a manifest list from a layout fails with unexpected media type

This can be reproduced as follows:
$ irel layout add scratch/layout busybox:1.28
added docker.io/library/busybox:1.28 with digest sha256:141c253bc4c3fd0a201d32dc1f493bcf3fff003b6df416dea4f41046e0f37d47 to OCI image layout at scratch/layout
$ irel layout push scratch/layout sha256:141c253bc4c3fd0a201d32dc1f493bcf3fff003b6df416dea4f41046e0f37d47 glyn/busyboxcopy:1@sha256:141c253bc4c3fd0a201d32dc1f493bcf3fff003b6df416dea4f41046e0f37d47
2019/09/19 10:59:42 push failed: unexpected media type for sha256:141c253bc4c3fd0a201d32dc1f493bcf3fff003b6df416dea4f41046e0f37d47: application/vnd.docker.distribution.manifest.list.v2+json

We've reproduced this error, albeit at a higher-level: When (re-)publishing a bundle via Porter via use of this library.
Coincidentally, the sole application image of an example bundle that hit this issue was busybox, as used in the description above.  When the bundle is supplied in the form of an archive, Porter extracts this archive and uses this library's OCI Layout parsing functionality to parse and push the image(s) with updated image name(s).
In doing so, we encountered the same unexpected mediat type error above.  Use of another library image, alpine resulted in the same, leading me to believe it may center around DockerHub library images and their use of this "unexpected" media type (application/vnd.docker.distribution.manifest.list.v2+json)?
The two relevant methods in the google/go-containerregistry library that this repo uses appear to be Image(h v1.Hash) and ImageIndex(h v1.Hash) as seen here.  No doubt @glyn is already very familiar with these :)  I'm still very new to this code, but it appears with the example of this library busybox image, we may need to utilize the latter ImageIndex variant and yet somehow still end up with an actual image in the end (as opposed to an imageIndex) for pushing.
For the aforementioned example bundle, we've switched to use of a re-tagged busybox image in a repo we own (deislabs/busybox) which avoids this error.  However, it would be preferable to support republishing all types of images in a bundle, hence interest in this issue and hopefully eventual fix!

https://github.com/google/go-containerregistry/pull/570 needs to land as part of the fix.

I'm still very new to this code, but it appears with the example of this library busybox image, we may need to utilize the latter ImageIndex(..) variant and yet somehow still end up with an actual image in the end (as opposed to an imageIndex) for pushing.

We actually want to end up pushing an image index. I'll push a draft fix soon.

Thanks @glyn !  The Draft PR looks great; I had done a similar mod and also ran into the push failed: MANIFEST_INVALID: manifest invalid; map[] issue and that's where I stopped.  Appreciate your persistence in filing the upstream issue.


APT source whitelist request for openjdk-r/ppa

ppa:openjdk-r/ppa

While you provide a JDK8 VM image, I actually need to install JDK8 inside a Node VM image. I'm developing DoppioJVM, a Java 8-compatible JVM in JavaScript, which needs to test against a native Java 8 JVM. Currently, I cannot use the container-based infrastructure, as I need to install JDK8, which is not in the Ubuntu repository.

Two cases here:

The travis container infrastructure hasn't been updated in ages with a new oraclejdk8 version (https://github.com/travis-ci/travis-ci/issues/3259), and now at least for me the oracle-java8-installer workaround fails because oracle blocks downloads for some reason.
We use selenium in our Node.JS based projects, and need a Java 8 JVM there as well (Selenium 3 requires Java 8)

@ankon Have you tried the trusty distribution (beta)? It's not container-based but that'd at least buy you time.


115210: Omit excess persons from contractor rep

You must add AB#123456 in description to connect PR to PBI.

AB#115210


[WIP][BEAM-12163] Revert to httplib2 <0.18.0

Checking if reverting to httplib2 <0.18.0 resolves flakiness in GHA checks
Post-Commit Tests Status (on master branch)

Lang
SDK
ULR
Dataflow
Flink
Samza
Spark
Twister2

Go

---

---

---

Java

Python

---

---

---

XLang

---

---

---

Pre-Commit Tests Status (on master branch)

---
Java
Python
Go
Website
Whitespace
Typescript

Non-portable

Portable
---

---
---
---

See .test-infra/jenkins/README for trigger phrase, status and link of all Jenkins jobs.
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Reverting httplib2 upgrade didn't improve flakes


implicitly 'any' type error despite no circularity in assignment and being assigned a template literal

Bug Report

🔎 Search Terms

7022
directly or indirectly in its own initializer

🕗 Version & Regression Information
This changed between versions 4.3.5 and 4.4.2
⏯ Playground Link
Playground link with relevant code
💻 Code
function uniqueID (id: string | undefined, seenIDs: { [key: string]: string }): string {
    if (id === undefined) {
        id = '1'
    }
    if (!(id in seenIDs)) {
        return id
    }
    for (let i = 1; i < Number.MAX_VALUE; i++) {
        const newID = `${id}-${i}`      // ERROR 7022, despite no apparent circularity, despite template literal
        if (!(newID in seenIDs)) {
            return newID
        }
    }
    throw Error('heat death of the universe')
}

🙁 Actual behavior
const newID = `${id}-${i}` yields error: 'newID' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.(7022)
🙂 Expected behavior
const newID = `${id}-${i}` has no error and newID has inferred type string:

there is no circular reference that i can fathom
even if there was, the template literal it is assigned has type string. See anyToString proof in playground link and code below.

🤔 Some Analysis
Alternate versions to help isolate the bug
// removed possible undefined from `id` type
function uniqueID_sans_undefined (id: string, seenIDs: { [key: string]: string }): string {
    if (!(id in seenIDs)) {
        return id
    }
    for (let i = 1; i < Number.MAX_VALUE; i++) {
        const newID = `${id}-${i}`      // inferred as string as expected
        if (!(newID in seenIDs)) {
            return newID
        }
    }
    throw Error('heat death of the universe')
}

// newID initialized outside of the loop
function uniqueID_init_outside_loop (id: string | undefined, seenIDs: { [key: string]: string }): string {
    if (id === undefined) {
        id = '1'
    }
    if (!(id in seenIDs)) {
        return id
    }
    let newID                           // any
    for (let i = 1; i < Number.MAX_VALUE; i++) {
        newID = `${id}-${i}`            // narrowed to string as expected
        if (!(newID in seenIDs)) {
            return newID
        }
    }
    throw Error('heat death of the universe')
 }

// remove use of template literal to show possibility of two disinct bugs
function uniqueID_init_sans_template (id: string | undefined, seenIDs: { [key: string]: string }): string {
    if (id === undefined) {
        id = '1'
    }
    if (!(id in seenIDs)) {
        return id
    }
    for (let i = 1; i < Number.MAX_VALUE; i++) {
        const newID = id                // ERROR 7022, despite no apparent circularity
        if (!(newID in seenIDs)) {
            return 'not a unique id just demonstrating type inferrence bug'
        }
    }
    throw Error('heat death of the universe')
}

// prove template literal has type string
// even if embedded expression has type any
function anyToString (x: any) {  // inferred return type string
    const y = `${x}`             // inferred type string
    return y
}

🧬 Possibly Related Bugs / Duplicates
Three other open issues i found have similar behavior:

error 7022
no error if undefined or null removed from type
no error if initialization does not happen in a loop

Two of them have different "blame" changes. The third may have been introduced by the same change, but it makes some addition claims, and does not show the issue with template literals this issue does.

issue
when introduced

#33191
before 3.3.3333 (oldest version in Playground)

#45638
between 4.3.5 and 4.4.2

this issue
between 4.3.5 and 4.4.2

#48708
after 4.6.4

Possible red herrings removed:
function uniqueID (id: string | number, seenIDs: object) {
    id = 'a';
    for (let i = 1; i < 3; i++) {
        const newID = `${id}`;
        if (newID in seenIDs) { }
    }
}

Can be simplified even further:
function uniqueID (id: string | number, seenIDs: object) {
    id = 'a';
    for (let i = 1; i < 3; i++) {
        const newID = id;
        if (newID in seenIDs) { }
    }
}

I'm not sure how easy this is going to be to fix. It looks like the circularity is as follows, using @Andarist 's example:

What is the type of newID ?
What is the type of id ?
It's either 'a', or possibly the result of an assignment which might occur later in the for loop, if the loop-back edge of the loop is reachable. Is it reachable?
Depends on whether there are any unconditionally-reached exits of the loop. Is the if statement considered unconditional?
It depends on whether or not newID has a value we think is always in seenIDs. What's the type of newID ?
Circularity reached, 💥

This is the same issue as the mentioned https://github.com/microsoft/TypeScript/issues/48708 . This manifestation here is somewhat easy to get fixed (see my PR here) but that other one (and likely many others like it) are not as simple. My fix is somewhat targeted and a more general fix could just fix all issues at once but I don't know how to prepare a more general fix and the proposed one still feels like an improvement from the usability point of view 😉

@Andarist good to see the PR that fixes this. I have a question from curiosity, a desire to understand. Answer only if it's easy and you can spare a minute.
Since the loop has no other assignment to newID other than a value of type string, why does reachability of the "loop-back edge" even matter? Why would the in condition even matter. All the in condition could possibly do is narrow the type to something even narrower than string, right?

@Andarist good to see the PR that fixes this. I have a question from curiosity, a desire to understand. Answer only if it's easy and you can spare a minute.
Since the loop has no other assignment to newID other than a value of type string, why does reachability of the "loop-back edge" even matter? Why would the in condition even matter. All the in condition could possibly do is narrow the type to something even narrower than string, right?
Likewise I don't understand why declaring newId with type any outside the loop somehow fixes it (See uniqueID_sans_undefined under Analysis). That make no sense! Or why removing undefined from its starting type in uniqueID_sans_undefined's function signature matters, when on the first line of the function it is narrowed to string. Confused, but that could be my aging brain.


Tick generator: NumericManual should have a complimentary DateTimeManaul

Presently this works but it uses the "ToOADate" hack
ScottPlot.TickGenerators.NumericManual tickGenX = new();
tickGenX.AddMajor(myDateTime.ToOADate(), $"{dt1}");

Related, Axes.SetLimits() should have overloads that accept DateTime


axis x disappears when toggling chart view

I have a chart inside of a parent DIV, and the DIV is controlled by a button for showing/hiding the chart view. Since the chart is dynamic generated with ajax calls, if the parent element is hidden (display: none), the width of the chart could be wrong. Setting visibility on the parent element with hidden attribute (instead of display to be none) looks like is a solution. But when I toggled again (hide and then show), the axis x disappeared.
I tested under 0.4.10 and 0.4.11-RC, both have the same problem, the difference is when i reset the .c3-axis-x to visibility: visible. The axis shows again. I am using it as a temporary solution

Hi,
The issue queue is to be used for reporting defects and problems with C3.js, in addition to feature requests and ideas.
It is not a catch-all support forum.
For general support enquiries, please use the Google Group at https://groups.google.com/forum/#!forum/c3js.
All questions involving the interplay between C3.js and any other library (such as AngularJS) should be posted there first!
Thank you!


Use cffi's new out-of-line mode for faster CPython

CFFI 1.0 introduced a new out-of-line mode to reduce the overhead when running on CPython.
See:

http://morepypy.blogspot.com/2015/05/cffi-101-released.html
https://cffi.readthedocs.org/en/latest/overview.html#out-of-line-example-abi-level-out-of-line

(Wishlist item rather than bug.)

cool. not sure I fully grok this, but faster is good. is it just import times that are improved?

I had thought it had an effect on runtimes under CPython, but looks like it is just import time. More info here: http://morepypy.blogspot.com/2015/05/cffi-10-beta-1.html

ok. still, seems like ti could be useful, and potentially make the install easier.


FileUploadInputElement hide All Files option

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
I want to implement a file picker that would only upload image filetypes and hide the options button where the user can select All Files which can upload other file types.
Expected results
In MDN docs, when uploading a file, we cannot see the options button.

Actual results
Options button is visible where the user can select all files.

Code sample
Code sample
InputElement uploadInput = FileUploadInputElement();
uploadInput.accept = 'image/*'
uploadInput.click();

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
Flutter version 3.7.7 on channel stable
Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2ad6cd72c0 (7 weeks ago), 2023-03-08 09:41:59 -0800
    • Engine revision 1837b5be5f
    • Dart version 2.19.4
    • DevTools version 2.20.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK
    • Platform android-33, build-tools 32.1.0-rc1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13F100
    • CocoaPods version 1.12.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] VS Code (version 1.77.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.62.0

[✓] Connected device (3 available)
    • iPhone 13 (mobile) • 5243B63D-5CE1-4523-8183-55188BC9833D • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-5 (simulator)
    • macOS (desktop)    • macos                                • darwin-arm64   • macOS 12.4 21F79 darwin-arm64
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 112.0.5615.137

[✓] HTTP Host Availability
    • All required HTTP hosts are available

Thanks for the report. Using the complete code sample below, seeing the same behavior as reported.

 runnable code sample

import 'dart:html';

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      theme: ThemeData.dark(),
      home: Home(),
    );
  }
}

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  late String fileType='';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Material App Bar'),
      ),
      body: Center(
        child: Container(
          child: Text(fileType ?? ""),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {
          FileUploadInputElement uploadInput = FileUploadInputElement();
          uploadInput.accept = 'image/*';
          uploadInput.click();

          uploadInput.onChange.listen((e) {
            // read file content as dataURL
            final files = uploadInput.files;
            if (files?.length == 1) {
              final file = files?[0];
              FileReader reader = FileReader();

              reader.onLoadEnd.listen((event) {
                print(event.timeStamp);
                setState(() {
                  fileType = event.toString();
                });
              });

              reader.onError.listen((fileEvent) {
                print(fileEvent.type);
                setState(() {
                  // fileType = fileEvent.type;
                });
              });

              reader.readAsArrayBuffer(file!);
            }
          });
        },
      ),
    );
  }
}

 stable, master flutter doctor -v
[!] Flutter (Channel stable, 3.7.12, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 3.7.12 on channel stable at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4d9e56e694 (3 days ago), 2023-04-17 21:47:46 -0400
    • Engine revision 1a65d409c7
    • Dart version 2.19.6
    • DevTools version 2.20.1
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.10.0-16.0.pre.23, on macOS 12.2.1 21D62
    darwin-x64, locale en-GB)
    • Flutter version 3.10.0-16.0.pre.23 on channel master at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 55c988fb45 (4 hours ago), 2023-04-27 20:32:55 -0400
    • Engine revision 1d25906b4c
    • Dart version 3.1.0 (build 3.1.0-49.0.dev)
    • DevTools version 2.23.1
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/dhs/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for
      more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13C100
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 65.1.4
    • Dart plugin version 213.7228

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.29.0

[✓] Connected device (3 available)
    • Darshan's iphone (mobile) • 21150b119064aecc249dfcfe05e259197461ce23 • ios
      • iOS 15.3.1 19D52
    • macOS (desktop)           • macos                                    •
      darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)              • chrome                                   •
      web-javascript • Google Chrome 109.0.5414.119

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

This looks like a dart:html issue. As a workaround, you can try calling the browser API directly via JS-interop.

On the web, you typically need an <input> element, some solutions to open a file browser from JS can be found on StackOverflow.

@john-regalado-novade Can you elaborate on which example from the MDN docs actually hides the options button? When I open the example for limiting the file types I still see the options button but the specified type of files is the selected option initially.

@nshahan the first example in the MDN docs has no options button (see my first screenshot)

@john-regalado-novade Oh interesting, it looks like this might be showing a difference in browser behavior. I tried looking at the first MDN example on my Mac. Chrome and Firefox both set the default restricting to only images but still show the options and allow you to select "All Files" manually if you want. Safari does not show the options when viewing the same example.
I see the exact same results on each browser when viewing this simple example created with dart:html:
https://dartpad.dev/?id=daa72a7bedf9edcc6fcd4489ba5afa6e
The spec for the html input element says

User agents should prevent the user from selecting files that are not accepted by one (or more) of these tokens."

There are numerous issues filed in the chrome bug tracker for this problem regarding various file types:

.zip https://bugs.chromium.org/p/chromium/issues/detail?id=646941
audio/* https://bugs.chromium.org/p/chromium/issues/detail?id=1246263
text/* https://bugs.chromium.org/p/chromium/issues/detail?id=1230525

Because of this I don't believe there is any issue with the implementation in dart:html and the behavior is out of our control.


Allow to continue testing when jobStatus is back to created

/packit test --labels smoke

/packit test --labels smoke

/packit test --labels smoke


Consider UI on smaller displays

The Manifest Editor is a content creation tool and does not need to be designed for very small displays like phones.
But it does need to work well on smallish displays, tablets and the like.
The old version got very cramped.
There needs to be a clear relationship between the (form-like) capture UI and the currently selected resource. There is no need to try to make everything editable all the time. What's editable is highly contextual.
We need to figure out what that means. How do you navigate around?
The PowerPoint analogy works well for Canvases within a manifest, but the IIIF Presentation model is more complicated than that. How best to make editable things selectable and show just the contextual UI (driven by that resource's capture model)?
What navigable representation of structure is available beyond the list of canvases? E.g., ranges...

Maybe this issue can be widened to include web accessibility standards. Thinking e.g. about adding support for keyboard navigation.

As someone without access to a large monitor, I should still be able to use the manifest editor.
As someone using a keyboard only, I should still be able to use the manifest editor.
The manifest editor might be better on a bigger monitor - more room to see IIIF content, thumbnails, browse other collections (#5)
But its UI should not require a very high resolution.
What's our minimum resolution?

The ability to do this on a phone or at least a small tablet could be good to allow users to create content groups or manifests on the fly as they walked through a collection - useful for exhibition planning, creation of educational tours, etc.
I do not think this is a key or high priority use case at this stage, but it would be good to consider it as a possible future use case?
It might be that this functionality could fit in a separate piece of software that could then generate a list of resources for the editor work with ....


Replace babel with swc

Related plugins

[X] plugin-vue

[ ] plugin-vue-jsx

Description
Since Vite 4 prefers SWC https://swc.rs/ instead of Babel, how about replacing it for this plugin too? (instead of having a separate plugin with SWC)
Suggested solution
Replace babel with swc in next major version
Alternative
No response
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Since Vite 4 prefers SWC swc.rs instead of Babel

It's not true. Babel & SWC have different tradeoffs.

plugin-vue also doesn't depend on Babel.

It's not true. Babel & SWC have different tradeoffs.

Thanks for clarification.

plugin-vue also doesn't depend on Babel

I see these:
https://github.com/vitejs/vite-plugin-vue/blob/f8fb8f6e103ea54b2fbd6f7f7412392098357e5b/package.json#L34
https://github.com/vitejs/vite-plugin-vue/blob/f8fb8f6e103ea54b2fbd6f7f7412392098357e5b/package.json#L37


parallel=True causes TypingError

The following code fails when I set parallel=True
import numpy as np
from numba import jit, njit, prange, typed, types

from tqdm import tqdm

@njit
def _neighbors(indptr, indices, node):
    return indices[indptr[node] : indptr[node + 1]].astype(np.uint64)

@njit  # (parallel=True)
def _BFS(indptr, indices, query_src, query_dsts, limit, distances, a, b):
    k = query_dsts.shape[1]

    for q in prange(a, b):
        src = query_src[q]
        dsts = {}
        for i in range(k):
            dsts[query_dsts[q, i]] = np.uint64(i)
        lvl = {src}
        visited = set()
        d = 0
        while len(dsts) and len(lvl) and len(visited) < limit:
            newlvl = set()
            for node in lvl:
                visited.add(node)
                if node in dsts:
                    distances[q, dsts[node]] = d
                    del dsts[node]

                for v in _neighbors(indptr, indices, node):
                    if v not in visited:
                        newlvl.add(v)

            lvl = newlvl
            d += 1

def BFS(indptr, indices, query_src, query_dsts, limit=100):
    distances = np.full_like(query_dsts, -1, dtype=np.int64)

    c = 0

    batch_size = 10000

    for a in tqdm(range(0, len(query_src), batch_size)):
        _BFS(
            indptr,
            indices,
            query_src,
            query_dsts,
            limit,
            distances,
            a,
            min(len(query_src), a + batch_size),
        )

    return distances

if __name__ == "__main__":
    import numba

    print(numba.config.NUMBA_DEFAULT_NUM_THREADS)

    print(
        BFS(
            np.arange(100, dtype=np.int32),
            np.arange(100, dtype=np.int32),
            np.full(10_000_000, 0, dtype=np.uint64),
            np.full(50_000_000, 5, dtype=np.uint64).reshape(10_000_000, 5),
        )
    )
    BFS.inspect_types()

The error is
Failed in nopython mode pipeline (step: nopython frontend)
Type of variable '$196.4' cannot be determined, operation: unary(fn=<built-in function not_>, value=$196.4), location: bfs.py (33)

File "bfs.py", line 33:
def _BFS(indptr, indices, query_src, query_dsts, limit, distances, a, b):
    <source elided>
                for v in _neighbors(indptr, indices, node):
                    if v not in visited:
                    ^

[1] During: lowering "id=0[LoopNest(index_variable = parfor_index.16, range = (a, b, 1))]{96: <ir.Block at bfs.py (24)>, 194: <ir.Block at bfs.py (32)>, 196: <ir.Block at bfs.py (32)>, 104: <ir.Block at bfs.py (24)>, 136: <ir.Block at bfs.py (26)>, 138: <ir.Block at bfs.py (26)>, 76: <ir.Block at bfs.py (20)>, 238: <ir.Block at bfs.py (34)>, 206: <ir.Block at bfs.py (33)>, 112: <ir.Block at bfs.py (24)>, 48: <ir.Block at bfs.py (19)>, 242: <ir.Block at bfs.py (37)>, 50: <ir.Block at bfs.py (19)>, 180: <ir.Block at bfs.py (30)>, 24: <ir.Block at bfs.py (16)>, 218: <ir.Block at bfs.py (32)>, 158: <ir.Block at bfs.py (28)>, 124: <ir.Block at bfs.py (24)>, 222: <ir.Block at bfs.py (34)>}Var(parfor_index.16, bfs.py (16))" at bfs.py (16)

A temporary fix is to use
if not bool(v in visited):

This error doesn't make any sense!
I'm sorry that I don't have the time to produce a minimal example, but I thought making the bug known is more important!

Thanks for the report, think this is due to conditionals not being interpreted correctly as predicates, https://github.com/numba/numba/pull/3901 fixes but needs at least this https://github.com/numba/numba/pull/4445 and quite possibly this https://github.com/numba/numba/pull/3757 for convenience.

This doesn't reproduce on mainline for Numba 0.55. Closing assumed fix. Please do reopen if the issue persists in 0.55+. Thanks.


[PG15] Added integer conversion in toBoolean functions

Implemented explicit integer conversion to boolean in both toBoolean and toBooleanList functions. Also made corresponding changes to regression tests.
This PR makes the toBoolean() and toBooleanList() functions convert integers to boolean, as occurs in Neo4j.

@WendelLana Please fix the optional extended description


Update dart-internal bots to Mac-13

Type of Request
infra task
Infrastructure Environment
Devicelab
What is happening?
There are still some Mac-12 bots in luci.dart-internal.flutter pool that need to be upgraded.
Please verify with Flutter Release team that they're okay to upgrade before doing.
luci.flutter.try, luci.flutter.staging, and luci.flutter.prod are all upgraded to Mac-13 and all flutter/engine, flutter/flutter, and flutter/packages tests are running on Mac-13.
Steps to reproduce
No response
Expected results
No response

@CaseyHillers @godofredoc , are we ok to upgrade remaining macOS 12 bots to macOS 13 in dart-internal?

SGTM

upgrade request b/328462346

all mac have been upgraded.


Does polib compile into mo wihout "msgfmt"?

Do I understand your code correct, that when compiling po to mo usig polib that "msgfmt" is not involved?
Polib does the compilation by itself without using external tools or packages?

Polib is a pure python library, of course compiling into MO files is done
in python
Le dim. 19 nov. 2023, 21:47, buhtz @.***> a écrit :

Do I understand your code
https://github.com/izimobil/polib/blob/8adc7f9b252eb6653304f8b6f364b119b277e205/polib.py#L550
correct, that when compiling po to mo usig polib that "msgfmt" is not
involved?
Polib does the compilation by itself without using external tools or
packages?
—
Reply to this email directly, view it on GitHub
https://github.com/izimobil/polib/issues/149, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAJ7GA7AWVFHCH5PZGXVKTYFJV77AVCNFSM6AAAAAA7R7RF3KVHI2DSMVQWIX3LMV43ASLTON2WKOZSGAYDCMBSHEZTGNQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

By the way please use stackoverflow or what you want for these kind of
questions but not the bug tracker! :)
Le dim. 19 nov. 2023, 23:00, David JL @.***> a écrit :

Polib is a pure python library, of course compiling into MO files is done
in python
Le dim. 19 nov. 2023, 21:47, buhtz @.***> a écrit :

Do I understand your code
https://github.com/izimobil/polib/blob/8adc7f9b252eb6653304f8b6f364b119b277e205/polib.py#L550
correct, that when compiling po to mo usig polib that "msgfmt" is not
involved?
Polib does the compilation by itself without using external tools or
packages?
—
Reply to this email directly, view it on GitHub
https://github.com/izimobil/polib/issues/149, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAJ7GA7AWVFHCH5PZGXVKTYFJV77AVCNFSM6AAAAAA7R7RF3KVHI2DSMVQWIX3LMV43ASLTON2WKOZSGAYDCMBSHEZTGNQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

By the way please use stackoverflow or what you want
It is a maintainer related question. The bug tracker seems to be the only channel you offering. Direct email is not an option of course.

Maybe you can activate the "Discussion" section here at Microsoft GitHub or create a mailing list (e.g. at python.org).

No time for that, a simple look at the source code would have answered your
question, regards!
Le dim. 19 nov. 2023, 23:08, buhtz @.***> a écrit :

Closed #149 https://github.com/izimobil/polib/issues/149 as completed.
—
Reply to this email directly, view it on GitHub
https://github.com/izimobil/polib/issues/149#event-11004711460, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAJ7GFUEPBJJQVICYLIT33YFJ7M5AVCNFSM6AAAAAA7R7RF3KVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJRGAYDINZRGE2DMMA
.
You are receiving this because you commented.Message ID:
@.***>

No time for that, a simple look at the source code would have answered your question

My initial post might not be concrete enough. But in my understanding I indicated that I have read your code. I formulated that in my first sentence and also posted a link to the exact method I was looking into.
But it is foreign code and I was not sure if my interpretation is correct.
I just wanted to confirm my results by a yes or no of the maintainer. That's all.

No problem, sorry if I sounded a bit harsh, that was not my intention, thanks.


Error on extra cli arguments

I spent 1 hour to find this one
closes #459

Curious why black pre-commit failed in CI. Pushing a fix anyway :)


[FLINK-3955] [tableAPI] Rename Table.toSink() to Table.writeToSink().

Renames Table.toSink() to Table.writeToSink().
Table.toSink() indicates that the Table is converted into a sink which is not the case.

[X] General
[X] Documentation
[X] Tests & Build

Will merge this later today, unless somebody objects.

+1 looks good!

Thx @vasia!

merging


Request relay fan control

Please some one can make plugin for control ceiling fan. Using raspberry pi and relay.

homebridge-gpio-onoff

Not only for on and off but speed to. I want connect relay to fan remote control


[video_player] controller.value.position seems to not correct with real video

Hi
I'm making a app which has automatically changing video when video finishes.
I used controller.value.position to check whether video is finished or not.
When video finishes, it seems to the last frame of video stays for 0.4~0.7 seconds.
It might not be correct, but I discovered that controller.value.position is not correct with real video.
Though it cannot be "exactly" correct with real video, but gap between two value have to be shorten.

@seokhyeonSong
Can you provide flutter doctor -v and a complete minimal reproducible code sample` that shows this issue ?
Thanks.

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


feat(dapp-console-api): track deployment rebate wallet balance

#316  👈
main

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

Join @tremarkley and the rest of your teammates on  Graphite


auto-scalarsets

Once we have symmetry reduction support, it seems logical to implement auto-detection of range types that could be converted to scalarsets and do this by default.

C􏰈 Norris Ip and David L􏰈 Dill discuss this in "Better Verification Through Symmetry." I think the only way we could have this as the default would be if we detected any loops that broke symmetry properties (something CMurphi does not do).


addedd code for working with different  networkx version

I added tests for which version of NetworkX is installed and based on that changed some parts of the code to reflect the API changes which happend in NetworkX in version 2.

Thanks David ! 👍 Sorry about the delay, busy at work ! I'm merging your modification !


Get higher resolution iTunes image

On Resources page

@agarrharr It said on the README that the API key was the only thing needed to run the project but I'm runningi into issues when running npm run deploy to check my work.

There is no deploy script. Try npm run develop or npm run build && Gatsby serve.

Looks like it needs an access token @agarrharr

Meant to say npm run develop**

Figured it out. Haha sorry!

@agarrharr nah, the .env file i made was misspelled and caused a auth issue when running npm run develop. Silly mistake by me haha


Get response method (Using Formik)

I am using this module with Nextjs (ssr) and it is the only one that works well. Thanks for that!
I'm combining it with Formik, and I'm needing the grecaptcha.getResponse() method, because the onVerify callback does not fit my need.
Is there any technical reason why it is not implemented?

@tojacob It is not implemented because you have the response already provided in the onVerify callback: onVerify={(response) => {}}. I don't see any reason why would you need the getResponse method?

My problem is the way in which Formik runs.
I am using the invisible version of recaptcha, I run it on the validate hook of Formik.
After validate, if there are no errors, the handleSubmit is immediately executed. I can not find a way to pass the captcha result to the handleSubmit, because the handleSubmit would have to wait until the user makes the captcha.
Anyway I'll keep looking for a way to fix it, maybe I'm not doing it correctly or I'm missing something.

Hello again. It is already solved.
Formik provides some very useful methods that can be used from the component.
Use some of them in the onVerify callback, as follows:
onVerify={(res) => {
    props.setFieldValue ('recaptcha', res, false) // Add a value imperatively
    props.submitForm (); // send the form imperatively
}}

In the handleSubmit make the following validation before submitting the form:
if (! values.recaptcha) {
    await this.recaptchaInstance.execute ();
    return;
}

This way you will continue with the submitting only when you receive the value of the recaptcha.
I leave it here in case some clueless like me should need it.

@tojacob Thanks for the solution!
After giving it a thought I guess it would be a good idea to add a getResponse method to expose the full Recaptcha API. So I'll keep this issue to remember about it for later :smile:

@tojacob I found even better option for your problem:
<Reaptcha
    onVerify={token => {
        setFieldValue('token', token);
        submitForm();
    }
/>
...
<button
    type="submit"
    onClick={() => {
        setSubmitting(true);
        captcha.execute();
    }}
>
Submit
</button>

In this scenario you don't have to do the if statement in your handleSubmit. The handleSubmit will only run when the captcha verifies successfully.

@sarneeh I see that it is easier to understand. Thank you.


Unable to print body of application/json post request

I need to print the json body of my POST request.
But as of now I am only getting "body":"" in my logs
My header type is "headers":{"accept":["application/json, text/plain, /"]
I tried setting the logbook.servlet.form-request: OFF to PARAMETER, BODY and OFF, but still no change
I am using version 1.9.0 of logbook-spring-boot-starter
I read a few posts but I am still not able to fix the issue.
Please help me immediately thank you.

Are you talking about incoming requests? Are you using the servlet integration?

Yes I am talking about incoming POST requests. I am getting body: in my zalando logs.
No I am not talking about servlet integration.
When I post using a form on the front end, I face this issue.

My content type is multipart/form-data. Please help me with the fix for this issue. I need to log my raw request.

multipart/* content types are skipped by default. See
https://github.com/zalando/logbook/blob/936deddc73ef6e82908a5db137480cbd6f952ee8/logbook-core/src/main/java/org/zalando/logbook/BodyReplacers.java#L32
You should actually see "<multipart>". You can play around and register a custom RawRequestFilter.

Is there anyway I can turn off this BodyReplacer in my java code?

I understand that I have to create a custom RawRequestFilter.
Can you please give me a starting point of how to go about that? I have a Spring Boot project.

You can take a look how the default is constructed. Just start at the raw request filter class which should have a default value method.


【404】vue init project get an error and network is well

information above~

vue init webpack vue-project
it works well


Add skeleton for CI System models

Introduce a skeleton for a class for the System CI model. The class is
specialized into models for Jenkins and Zuul systems.

@cescgina Thinking about it, maybe we do want to add empty classes for Job and Pipeline. Probably better than having broken CI. What do you think?

Makes sense, I'll add them


Render React Element in Styleguide

Not sure if this is something that's intended, but I got a React Element rendering in the Styleguide. Not sure what the whole class that wasn't rendering a React Element business was.

sorry, I should have added a comment. Yes we have react there, we even have the other loaders, but with the class example you can see that babel is not running for this entry file and all others included. That's a problem, because then we could not import any component written in ES2015.


Specify all the secret format we support

Summary
We supported more and more secret formats before recently introducing One secret format to rule them all, namely the MIME one.
We need to make sure that we document and specify all the formats that we are officially supporting.
We need to document the migration path/what happens when we start mixing the formats.
When e.g. we add a new key-value to a plain text secret.
Conversion and conditions for it should be explicated.
In particular we need to document what happens if the setting mime is set to false.
And how we can switch from one format to another (maybe add a re-encrypt command that would make sure all secrets are in the right format and encrypted for the right recipients and all? This might also be useful to help people re-encrypt the secrets that used to be for just a few recipients now that this was dropped.)

Yes, indeed. We need to make sure all formats are properly documented. I will try to write something down.
What is your concern with mime being set to false? This mode is indeed a bit hacky, but what's the point you're trying to make there?
Switching to the new format is easy, we have a command for that: gopass fsck --decrypt (this should likely be documented, I guess). But I did never test the other direction (i.e. gopass config mime false; gopass fsck --decrypt).

What if I edit a secret in Mime format with mime being set to false?
Should it revert to another format? If so, which one?
What if I insert a key-value to a secret which is not in Mime format when mime is not set?
And so on.
Nice, I didn't know about gopass fsck --decrypt  actually xD

The implementation is very naive: https://github.com/gopasspw/gopass/blob/master/pkg/gopass/secret/mime.go#L93
If you edit a secret with mime set to false this method is used to write the output in the pass-compatible KV format (which we should certainly specify). The same applies if you insert a key.
The default now is always the new native MIME format. The mime = false setting just provides an escape hatch.
It was never meant to be a fully featured and supported use case, just a compromise for users who really need it.

This issue is much bigger than I anticipated, e.g. #1594, #1600, #1601, #1602, #1607, #1612.
When working on the MIME format I tried to come up with a format that has a well defined machine readable syntax and feels familiar to the average user (read: myself).
The problem is: Not everyone is familiar with text-based network protocols like SMTP, HTTP or MIME.
And apparently there are endless ways to populate your secrets - where I only ever use the (new) Key-Value format:

Some people only want a dictonary-style key value mapping, i.e. map[string]string
Others expect to be able to use the same key multiple times, map[string][]string
Some people want to use advanced YAML features
Others are confused by how YAML interprets unquoted numbers (e.g. foo: 0123 -> foo: 83 [octal!])
While some people just want their secrets to be left alone entirely (e.g. #1612)
Or they want to use the Key-Value features but still preserve their custom secrets format (i.e. parsing only for querying. I'm not sure how these users would expect mutating operations to work)

The idea with the MIME format was to enforce a uniform container layout and then allow using any kind of content inside nested multipart MIME messages. But then we'd have to teach our users to write multipart MIME headers. That's not going to work.
Actually I'm not entirely sure how to proceed on this one.
I have some ideas to mitigate the situation, but I'll need more input to come up with a good long term solution.

I'll need to refactor the secrets implementation to make it more flexible and explicitly handle some corner cases which are currently unhandled. These are dormant bugs that might be noticed anytime. Then we could introduce options to disable secrets parsing in parts or even entirely.
We need to define how the currently implemented formats are supposed to behave and try to get input how they should behave.

What if I edit a secret in Mime format with mime being set to false?
Should it revert to another format? If so, which one?

Why not just treat it as a dumb file, as pass does? (Or, I guess you could say that's text/plain?)

The problem is: Not everyone is familiar with text-based network protocols like SMTP, HTTP or MIME.

I'm relatively familiar, but we must be using (go)pass extremely differently!

So MIME is gone now :sweat_smile:
Why do we need structured data? Well, at some point we introduced getter for getting keys from secrets and slowy expanded on that. I like that feature and apparently other do like it as well.
Do we need it? I think that depends who you ask. I'd say yes.

So MIME is gone now :sweat_smile:
Why do we need structured data? Well, at some point we introduced getter for getting keys from secrets and slowy expanded on that. I like that feature and apparently other do like it as well.
Do we need it? I think that depends who you ask. I'd say yes.

On my side I'm using key-values (and sometimes YAML secrets) mostly to store my credentials:
s3cr3tpassword
url: website.com
username: Anomalroil

And then I'm exploiting it with a Rofi prompt to easily auto-type my website's credentials whenever I need them with a key-binding thanks to this:
https://github.com/gopasspw/gopass/blob/master/docs/setup.md#dmenu--rofi-support
Notice how the username key if called here:
gopass ls --flat | dmenu | xargs --no-run-if-empty -- bash -c 'gopass show -f $0 username' | head -n 1 | xdotool type --clearmodifiers --file -

So I'm also in favour of keeping the parsing at least for the KV type. But since the YAML type isn't too expansive and isn't adding too much complexity, if you ask me, I guess we could keep the 3 formats:

plain
key-value (we need to fix #1576 and support key-valueS, plural, at some point. I'm on it.)
YAML (we've increase the documentation already in the latest release: https://github.com/gopasspw/gopass/blob/master/docs/commands/show.md#parsing-and-secrets)

On my side I'm using key-values (and sometimes YAML secrets) mostly to store my credentials:
s3cr3tpassword
url: website.com
username: Anomalroil

And then I'm exploiting it with a Rofi prompt to easily auto-type my website's credentials whenever I need them with a key-binding thanks to this:
https://github.com/gopasspw/gopass/blob/master/docs/setup.md#dmenu--rofi-support
Notice how the username key if called here:
gopass ls --flat | dmenu | xargs --no-run-if-empty -- bash -c 'gopass show -f $0 username' | head -n 1 | xdotool type --clearmodifiers --file -

So I'm also in favour of keeping the parsing at least for the KV type. But since the YAML type isn't too expansive and isn't adding too much complexity, if you ask me, I guess we could keep the 3 formats:

plain
key-value (we need to fix #1576 and support key-valueS, plural, at some point. I'm on it.)
YAML (we've increase the documentation already in the latest release: https://github.com/gopasspw/gopass/blob/master/docs/commands/show.md#parsing-and-secrets)

I believe that's what we have today and that we my understanding of what we wanted to have already.
So, yes. Let's settle on supporting: plain, key-value and yaml, where key-value would be my most and yaml my least favourite one.

I believe that's what we have today and that we my understanding of what we wanted to have already.
So, yes. Let's settle on supporting: plain, key-value and yaml, where key-value would be my most and yaml my least favourite one.

So we've settled on key-value (default), yaml (for gopass backwards compatibility) as well as plain (for pass compatibility).
They all have some documentation in the code, but should move/copy that to markdown.

So we've settled on key-value (default), yaml (for gopass backwards compatibility) as well as plain (for pass compatibility).
They all have some documentation in the code, but should move/copy that to markdown.