"object ? is not a member of package cats" after import "cats._" on Windows

I run Ammonite on Windows with cmder by this instruction: https://github.com/lihaoyi/Ammonite/issues/119#issuecomment-317468917
After I import "cats._" any of the following commands lead to "Compilation Failed" error.
Welcome to the Ammonite Repl 1.0.2
(Scala 2.12.3 Java 1.8.0_144)
If you like Ammonite, please support our development at www.patreon.com/lihaoyi
@ import $ivy.`org.typelevel::cats-core:1.0.0-MF`
import $ivy.$

@ import cats._
import cats._

@ exit
cmd2.sc:63: object ? is not a member of package cats
import _root_.cats.{
       ^
Compilation Failed

Could you post this on the https://github.com/lihaoyi/Ammonite/issues/119 issue? Let's keep all the windows related effort and issues in one place, and this does seem like a windows-only problem (it works fine on my mac)

Here you are: https://github.com/lihaoyi/Ammonite/issues/119#issuecomment-330241928


(feat) reduced complexity when adding n additional packages

Thought this was a good idea to prevent piles of this.addPackageBundles() in project.config.ts

@mgechev Weird, I'm checkin out.


Introduction of SEP005

Initial version of a SEP005 on a unified format for timeseries as discussed in #15

For the record, prior discussion was made here:
https://github.com/sdypy/sdypy/issues/15

I will now merge this. @klemengit, @domengorjup , @itomac and others, please contribute and add your name if you feel you have contributed. Prepare a PR


[Doc] Docker image build instructions update

Search before asking

[X] I searched in the issues and found nothing similar.

What issue do you find in Pulsar docs?
The commands:
mvn clean install -DskipTests
mvn package -Pdocker,-main -am -pl docker/pulsar-all -DskipTests

failes due to the fact, that now tagging is done by the maven-docker-plugin. To build the image, the parameter needs to be set first.
What is your suggestion?
Update the command to:
gitrev=$(git rev-parse HEAD | colrm 10)
mvn clean install -DskipTests -Dgit.commit.id.abbrev=${gitrev}
mvn package -Pdocker,-main -am -pl docker/pulsar-all -DskipTests -Dgit.commit.id.abbrev=${gitrev}

Any reference?
No response
Are you willing to submit a PR?

[X] I'm willing to submit a PR!

Do you mind improving the multi-arch building as well?  :)

@mattisonchao
Woud it be just adding  -Ddocker.platforms=linux/amd64,linux/arm64 like:
gitrev=$(git rev-parse HEAD | colrm 10)
mvn clean install -DskipTests -Dgit.commit.id.abbrev=${gitrev}
mvn package -Pdocker,-main -am -pl docker/pulsar-all -DskipTests -Dgit.commit.id.abbrev=${gitrev} -Ddocker.platforms=linux/amd64,linux/arm64


OLS-1233: Integration tests for runners

Description
OLS-1233: Integration tests for runners
Type of change

[ ] Refactor
[ ] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library
[ ] Bump-up library or tool used for development (does not change the final image)
[ ] CI configuration change
[ ] Konflux configuration change
[x] Integration tests

Related Tickets & Documents

Related Issue #OLS-1233

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 93.48%. Comparing base (010acff) to head (8a90ad4).
Report is 13 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #1959      +/-   ##
==========================================
- Coverage   96.84%   93.48%   -3.37%
==========================================
  Files          69       69
  Lines        2883     2884       +1
==========================================
- Hits         2792     2696      -96
- Misses         91      188      +97

see 8 files with indirect coverage changes

/test unit
/test verify

/test verify

/test 4.17-e2e-ols-cluster

/lgtm

/approve
/override "Red Hat Konflux / ols-enterprise-contract / lightspeed-service"

/test 4.16-e2e-ols-cluster

/test 4.17-e2e-ols-cluster

/test 4.16-e2e-ols-cluster
/test 4.17-e2e-ols-cluster

/test 4.16-e2e-ols-cluster

/test 4.17-e2e-ols-cluster

/test 4.15-e2e-ols-cluster

/test 4.15-e2e-ols-cluster


Count number of uploads and return those.

Hi,
Uploading an excel works great! I have number of objects in the excel and I go through and do whatever I desire.
The question is while having the excel I am ought to check whether a particular object already exists, if so increment the $rejected variable otherwise create and increment the $uploaded variable. As a result I would like to return the results: how many uploaded and how many rejected? Whats the best way to do as such? It is obvious I can't access those variables inside the function. What's the best practice here?
        $rejected = 0;
        $uploaded = 0;
Excel::load($file, function ($reader){

        foreach ($reader->toArray() as $row)
        {
            $plateExist = Plate::where('serial_number', $row['plate_serial_number'])->exists();

            if ($plateExist) {
                $rejected += 1;continue;
            }

            $supplier          = Supplier::firstOrCreate(['name' => $row['supplier_name']]);
            $statusName        = EquipmentStatusCode::firstOrCreate(['name' => $row['status_name']]);
            $plateType         = PlateType::firstOrCreate(['name' => $row['plate_type_name']]);
            $process           = Process::firstOrCreate(['name' => $row['process_name']]);
            $project           = Project::firstOrCreate(['name' => $row['project_name']]);
            $plateQuality      = PlateQuality::firstOrCreate(['name' => $row['plate_quality']]);
            $wafer             = Wafer::firstOrCreate(['serial_number' => $row['wafer_serial_number']]);

            $data = [
                'serial_number'            => $row['plate_serial_number'],
                'crc_code'                 => $row['crc_code'],
                'supplier_id'              => $supplier['id'],
                'equipment_status_code_id' => $statusName['id'],
                'plate_type_id'            => $plateType['id'],
                'process_id'               => $process['id'],
                'project_id'               => $project['id'],
                'plate_quality_id'         => $plateQuality['id'],
                'wafer_id'                 => $wafer['id'],
                'created_by'               => Auth::user()->id,
            ];

            if($data)
            {
              Plate::create($data);
              $uploaded += 1;
            }
          }
      });
 return [ 'uploaded' => $uploaded, 'rejected' => $rejected ];

Solved by using 'use' method


Search configuration option

Now, by default, when I search my 120,000 track library, the search uses "contains" for its search method. With a library this large that is not optimal. I can go to Advanced Search and with a field's dropdown select "Begins with" which works as expected, for example, with Title. It would be advantageous if I could tell the UI that I'd like searches to use a specific option like 'Begins With" or "Contains." rather than having to go into Advanced Search every time to select such an option.
Thanks

Sorry, but Material is just using the search function provided by Lyrion. This does not have the controls you are looking for. I suggest you file a feature request with Lyrion.


Add command reference to the website

Feature Request
There are docs for the config file format, but there aren't docs for the CLI commands on the website.
Use Case:
In order to see which options exist you need to actually run the application, and that's not always convenient.
Proposed Change:
Generate docs or write minimal docs for each command including which flags exist etc.
Who Benefits From The Change(s)?
Everyone
Alternative Approaches

Added in v1.18.0
Cheers ✌🏻


fix #578 change version to 0.3.1-SNAPSHOT

Ⅰ. Describe what this PR did
change version to 0.3.1-SNAPSHOT
Ⅱ. Does this pull request fix one issue?
fix #578 change version to 0.3.1-SNAPSHOT
Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #579 into develop will decrease coverage by <.01%.
The diff coverage is 0%.

@@              Coverage Diff              @@
##             develop     #579      +/-   ##
=============================================
- Coverage      31.79%   31.79%   -0.01%
  Complexity       768      768
=============================================
  Files            200      200
  Lines           7916     7917       +1
  Branches         937      938       +1
=============================================
  Hits            2517     2517
  Misses          5141     5141
- Partials         258      259       +1

Impacted Files
Coverage Δ
Complexity Δ

...va/com/alibaba/fescar/core/rpc/ChannelManager.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

...escar/rm/datasource/sql/struct/TableMetaCache.java
50.34% <ø> (ø)
9 <0> (ø)
:arrow_down:

...ar/spring/annotation/GlobalTransactionScanner.java
42.85% <ø> (ø)
9 <0> (ø)
:arrow_down:

...java/com/alibaba/fescar/core/protocol/Version.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

...libaba/fescar/rm/datasource/ConnectionContext.java
12.76% <ø> (ø)
3 <0> (ø)
:arrow_down:

...ar/discovery/registry/FileRegistryServiceImpl.java
64% <ø> (ø)
7 <0> (ø)
:arrow_down:

.../rm/datasource/exec/BaseTransactionalExecutor.java
31.74% <ø> (ø)
6 <0> (ø)
:arrow_down:

...n/java/com/alibaba/fescar/common/util/NetUtil.java
56.52% <0%> (-0.84%)
14 <0> (ø)

Continue to review full report at Codecov.

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


Lightspeed overwriting neogit shortcuts

Greetings
I have a problem with lightspeed, when I try to use neogit and I try to stage the changes that I've made in my project lightspeed gets activated.
For example, I execute in neovim :Neogit then a new buffer opens, when I press 's' to stage the changes the editor activates lightspeed, like if I was trying to navigate into the text, which is not the case.
So I would like to know if it is possible to disable lightspeed when using another plugin such as neogit. I don't know if it can be done in Packer or if there is an option in neovim to achieve that

We could trigger an autocommand when entering a neogit buffer, with calls like api.nvim_buf_set_keymap('n', 's', 's') etc., to restore the defaults, but how do we know that we've entered a neogit buffer...

We could trigger an autocommand when entering a neogit buffer, with calls like api.nvim_buf_set_keymap('n', 's', 's') etc., to restore the defaults (for that buffer only), but how do we know that we've entered a neogit buffer... (I'm not familiar with the plugin, unfortunately, it would be a good idea to ask them too.)

I'm not following, do you mean overwriting neogit shortcuts when entering the buffer?

What about simply remapping neogit's s to something else?


Correction for raw affiliation GREThA - UMR CNRS 5113, Bordeaux IV University, Bordeaux, France

Correction needed for raw affiliation GREThA - UMR CNRS 5113, Bordeaux IV University, Bordeaux, France
raw_affiliation_name: GREThA - UMR CNRS 5113, Bordeaux IV University, Bordeaux, France
new_rors: 05h5wna09;0086zww50;02feahw73
previous_rors: 057qpr032;0086zww50;02feahw73
works_examples: W1991857133
contact: 87d3ea20163c2f49f740efcf8a1c10d0:863e07b51cbdc3ea04ab98 @ free.fr

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.


write tutorial on how to use simdjson

Currently all we have in terms of documentation are the comments in the code and the README:
https://github.com/lemire/simdjson#navigating-the-parsed-document
We need an actual tutorial.
cc @davidglavas

Related issue: https://github.com/lemire/simdjson/issues/293
Help needed.

In order for people to start using simdjson asap it would be useful to have a short document with for example the following structure:

how to set up simdjson (the "Usage: easy single-header version" section in the readme is good)
present a simple json document on which operations that simdjson offers will be executed
use get_corpus
use build_parsed_json (or alternatives)
use is_valid
show how to navigate the parsed json document (eg. extract values at different levels)
... (apply other operations simdjson supports to the example json document)

I agree.

For an example, if I have this JSON Array, how can I navigate and iterate the array?
[{
      "Date": "28.12.2012",
      "User": "Mr.X",
      "Height": 170,
      "Age": 50,
      "Hobby": "Reading"
    },
    {
      "Date": "02.10.2013",
      "User": "Mr.Y",
      "Height": 180,
      "Age": 40,
      "Hobby": "Tennis"
    }
]

Is it possible to access the elements such as cout<< pj.get(0).getValue("User")<<endl`?

Actually, I just checked in a new iteration interface you can use for that.
Preamble
Assume this preamble:
#include "simdjson.h"
using namespace simdjson;
int main(void) {
  document::parser parser;
  parser.allocate_capacity(1024);
  document people = parser.parse(get_corpus("people.json"));
  // insert usage code here
}

Iteration and Indexing
To print all users:
for (document::object person : people.as_array()) {
  cout << string(person["User"]) << endl;
}

To get just the first one:
document::object person = *people.as_array().begin();
cout << string(person["User"]) << endl;

Iterating Objects
If you want to print out every key/value pair of each person, you can iterate that too:
for (document::object person in people.as_array() {
  cout << string(person["User"]) << ":" << endl;
  // Read all key/value pairs in the person. key is std::string_view, value is document::element
  for (auto [key, value] : person) {
    cout << "  " << key << ": ";
    if (value.is_string()) { cout << string(value); }
    else if (value.is_uint64_t()) { cout << uint64_t(value); }
    cout << endl;
  }
}

Other Thoughts
This does make me think we should have a direct << for elements and results, since it's super common and the string(...) is annoying to read. But until then, a tutorial should do what is possible, not what is desired :)
NOTE: We haven't added a direct array indexer because people would get the wrong idea about its performance (it's not constant time and we shouldn't pretend it is :)). However, it's a standard iterator, so advance() will work to get (for example) people[1]:
document people = document::parse(get_corpus("people.json"));
auto person = people.as_array().begin();
std::advance(person, 1);
cout << (*person)["User"] << endl;

Thanks @jkeiser, since I would like to integrate the single header one, I found out that document::object is not declared neither in the header simdjson.h nor simdjson.cpp. I can find it only in include/simdjson/document.h and its cpp file.
Is it intentionally that the document::object doesn't included?

Hmm, that probably needs to be updated in master. Run make amalgamate and use the files from singleheader.

I feel this is done, at least well enough for 0.3, here. Let's file further issues for improvements or changes we want to make.


adopt ssb-uri

Just do it!
Meaning I know where still discussing it in this message (and that the previous link is not using it) but I should just be able to adopt it and use both.

Changed using ssb-custom-uri which is a variation.


Does the associative scan really work?

In both Mamba and Mamba2, model used associative scan or similar concepts. The reason associative scan can speed up 1-D scan is that recurrent data dependency do harms to parallelism. While both the operands in SSM and SSD are not 1-D which means we can explore parallism in other dimensions, such as head dimension or d_state. Also associative scan introduces additional FLOPs because the additional multiplication in the binary operation. Are there any results can demonstrate the effectiveness of associative scan?

You can also do linear scan if you have enough parallelism in other dimensions (batch, heads). It's an empirical question, you can implement both and see which one is faster. It also depends on the hardware, e.g. on TPU there's less parallelism and the Google DM folks found linear scan to be just as fast (https://arxiv.org/abs/2402.19427).


Unable to click on first post

Bot is not able to click on the first post once the target (account/tagname) has been opened.

classname for the div container has changed. Xpath updated in the function.


Add Nonstrict engineering blog to blogs.json

Made aware by Mr. SwiftLee himself that this awesome directory is here. Would be awesome to add our Swift Engineering blog to the directory.

Thank you!


Fix issue #2867: Honor the default unit from the nutrient taxonomy

Description
A first Iteration of our suggested solution in the discussion under #2867 .
For this one we focused on the logic managing binding each nutrient with a default value and this saved statically in a map.
A smal test is also included that checks if the map still binds the true default values for some 4 cherry-picked nutrients.
Related issues
#2867. This solves the issue fully, but another variant is also possible. The two variants are:

Use a static map to bind (like in this first iteration)

Have to be maintained (Should be in the future new nutrients to be considered).
More efficient considering offline usage of the app.

Use OFF JSON data to get the default value of each nutrient

Gets maintained on the server side.
Less efficient considering calls etc.

We would be interested to hear the opinion of the community+maintainer(s)…
Link to the automatically generated build APK

@machiav3lli tests are failing

@VaiTon yeah, I've forgotten the import

@machiav3lli could you fix it so that tests work?

@machiav3lli could you fix it so that tests work?

I've already fixed before I wrote the note about the missing import and it builds just fine on my side. The UnitTest that is failing is:
openfoodfacts.github.scrachx.openfood.network.ProductsAPITest > productByAdditive_e301_productsFound
@Test
    fun productByAdditive_e301_productsFound() {
        val fieldsToFetchFacets = "brands,product_name,image_small_url,quantity,nutrition_grades_tags"
        val response = prodClient.getProductsByAdditive("e301-sodium-ascorbate", fieldsToFetchFacets).blockingGet() as Search
        assertThat(response).hasFoundProducts()
    }

I guess it could be an error/change on the server side.
Lint OFF seems also to be failing, but all the mentioned errors doesn't relate to the classes touched by this PR in anyway and for the most part are (string) formatting issues.
Please check those and tell me if we should try to fix those or if it's maybe someone else's responsibility (server for UnitTest, OFF-maintainer for string formats).


u-turn env addition

Hi @eleurent,
Sharing with you my implementation of a U-Turn driving scenario. Hope this environment contribution is considered under scope of this project. Also, reason for hard-cording vehicle positions were to study trade-offs between overtaking and lane cruising behavior. Here, I am attaching below a sample video from one of my test runs for reference.
Thanks
Ashish Rana
https://user-images.githubusercontent.com/19948632/107861172-fa022c80-6e69-11eb-84ae-db8426475447.mp4

Hi @ashishrana160796,
Thank you for this very nice contribution!
I have a few comments:

the controlled vehicle temporarily leaves the road, which does not look great. I think this could be addressed in two ways:

increase the lateral/steering control gains
(better) add a penalty for offroad driving in the reward function, which should incentivize the agent to slow down before the u-turn

the collision between those two vehicles is quite suspicious, they don't seem to be overlapping so there is probably something wrong with the rectangle intersection code... I'll investigate

Sure @eleurent,
Adding penalty for off-road driving in the reward function looks good to me. I'll add the suggested changes by EOD. Thanks for the review.
Also, actually I wanted to simulate vehicle collisions in the different environments as well. But, I encountered a relatively unpredictable behavior like the one shown in above. Which essentially has kept my collision experimentation on hold.

Adding penalty for off-road driving in the reward function looks good to me. I'll add the suggested changes by EOD. Thanks for the review.

To that end, you can use self.vehicle.on_road

Also, actually I wanted to simulate vehicle collisions in the different environments as well. But, I encountered a relatively unpredictable behavior like the one shown in above. Which essentially has kept my collision experimentation on hold.

I will see if I can reproduce and fix the problem.

So, i have added the on_road constraint into the reward function based on your shared inputs. Thanks!!

Thanks a lot!

I did some minor modifications, and the environment is now quite nice!
Here are two episodes with the OPD planner
https://user-images.githubusercontent.com/1706935/108052263-28d7f880-704c-11eb-9b64-ab87b41f944f.mp4
https://user-images.githubusercontent.com/1706935/108052282-2ecdd980-704c-11eb-908a-647958b6c36c.mp4

Thanks, for all the refactoring effort!! Can't believe there were so many typos 🤦🏽 from my end.
& Yea, the output actually looks better now. Thanks again!!


ReactiveKit Compile Times

After moving to Swift 2.3 and Xcode 8 I have began experiencing horrendous build times. Investigated by profiling xcodebuild according to this guide: http://irace.me/swift-profiling, and I found ReactiveKit to be the largest culprit. Specifically:
2870.1ms  Pods/ReactiveKit/Sources/CollectionProperty.swift:81:15 public func filter(previousIndexMap: [Int : Int], include: Collection.Generator.Element -> Bool) -> ([Int : Int], CollectionChangeset<Array<Self.Collection.Generator.Element>>?)
2590.3ms  Pods/ReactiveKit/Sources/CollectionProperty.swift:81:15 public func filter(previousIndexMap: [Int : Int], include: Collection.Generator.Element -> Bool) -> ([Int : Int], CollectionChangeset<Array<Self.Collection.Generator.Element>>?)
881.7ms Pods/ReactiveUIKit/Sources/UICollectionView.swift:54:15 public func bindTo(collectionView: UICollectionView, animated: Bool = default, createCell: (NSIndexPath, Element.Collection, UICollectionView) -> UICollectionViewCell) -> Disposable
877.3ms Pods/ReactiveUIKit/Sources/UICollectionView.swift:85:39 (closure)
743.6ms Pods/ReactiveUIKit/Sources/UICollectionView.swift:54:15 public func bindTo(collectionView: UICollectionView, animated: Bool = default, createCell: (NSIndexPath, Element.Collection, UICollectionView) -> UICollectionViewCell) -> Disposable
738.9ms Pods/ReactiveUIKit/Sources/UICollectionView.swift:85:39 (closure)`
716.2ms Pods/ReactiveUIKit/Sources/UITableView.swift:54:15  public func bindTo(tableView: UITableView, animated: Bool = default, createCell: (NSIndexPath, Element.Collection, UITableView) -> UITableViewCell) -> Disposable
715.3ms Pods/ReactiveUIKit/Sources/UITableView.swift:54:15  public func bindTo(tableView: UITableView, animated: Bool = default, createCell: (NSIndexPath, Element.Collection, UITableView) -> UITableViewCell) -> Disposable
712.6ms Pods/ReactiveUIKit/Sources/UITableView.swift:85:39  (closure)
711.8ms Pods/ReactiveUIKit/Sources/UITableView.swift:85:39  (closure)
I will see if I can come up with a fix.

Currently all efforts are on ReactiveKit 3 (+Bond 5) and Swift 3.
My guess is that it was caused by extensive use of generics. Implementation of v3 has been considerably simplified. Whole library now compiles in few seconds.

That sounds reasonable, I'll wait for ReactiveKit 3.

ReactiveKit has been significantly refactored in v3 and compilation is much improved since the library is now very lightweight (~2k LOC).


I added trees, here is a screenshot and the code!

Some things to note is that, I wasn't satisfied with how you made stepping noises, so I made a block type dictionary (self.bd).
I also used a second Perlin Noise algorithm to make tree generation faster, less bugged, and re-creatable.
def gen_tree(self, px, py, pz, minHeight, maxHeight, leafValue, adult):
    height = randint(minHeight, maxHeight)
    leafOffset = floor(leafValue * 0.5)
    chance = 1
    if adult == True:
        for x in range(2):
            for y in range(height):
                for z in range(2):
                    if self.td.get((px + x - 1, py + y, pz + z - 1)) != 't':
                        self.gen_block(px + x - 1, py + y, pz + z - 1, blockType = 'log', built = True)
    else:
        for i in range(height):
            if self.td.get((px, py + i, pz)) != 't':
                self.gen_block(px, py + i, pz, blockType = 'log', built = True)
    for x in range(leafValue):
        for y in range(leafValue):
            for z in range(leafValue):
                if self.td.get((px + x - leafOffset, py + height + y - leafOffset, pz + z - leafOffset)) != 't':
                    self.gen_block(px + x - leafOffset, py + height + y - leafOffset, pz + z - leafOffset, blockType = 'leaves', built = True)

THIS IS AWESOME!!!!!


QuakeMapNode destroys non-Qodot child nodes on map update

This is destructive, and should be filtered by node class.

I've fixed this in the latest commit, but it required compatibility-breaking changes to the entity spawning system.
On the upside, custom entity spawning is now completely segregated from the main tree population code and lives inside QodotEntityMap. Entity nodes created by QodotMap (previously known as QuakeMapNode) now derive from QodotEntity, and store their map file properties in a string-keyed dictionary for easy viewing.
This means that the top-level entity nodes are now Qodot owned and managed for their whole lifecycle, allowing QodotMap to clean them up by script class instead of blowing away its entire child list.
Going forward, any custom entities like players and monsters will be spawned separately and attached to their parent QodotEntity, which confers the additional benefit of the map's initial state always being known regardless of dynamic gameplay iteration.


Identifier conflict for nested queries

Version: 1.2.1-SNAPSHOT
Module: quill-sql
Database: any
Expected behavior
It should be possible to use columns from different tables with the same name when the query is nested
Actual behavior
Colum name conflict
Steps to reproduce the behavior
https://scalafiddle.io/sf/2CF7rPX/0
Workaround
I'm not sure there's a workaround.
@getquill/maintainers

Probably related to https://github.com/getquill/quill/issues/91

fixed by https://github.com/getquill/quill/issues/91


Feature/ support asynchronous uploads

Context
It takes a long time to process an upload. This PR addresses that by breaking it up into an "upload" and a "processing" step. Once this is in we can augment this with progress bars, if we like, and do similar for downloads.
BEFORE: within request cycle, process uploads file & same process processes it (and often crashes).
AFTER: first process uploads file and writes to disk. Second process collects file from disk, processes it.
⚠ THIS PR IS NOT READY TO GO until the associated infrastructure (queue, worker) exists and REDIS_URL is populated out of it into deployed envs.
Changes proposed in this pull request

introduce django-rq and django-redis
write files to disk upon upload and redirect immediately
introduce a job which wraps the upload_consultation routine using only queue-serializable arguments (i.e. strings)
introduce honcho to run a worker process alongside the server process

No tests needed to change (apart from config), because integration tests covered this journey.
Sentry does not need to change either, because Sentry automatically includes the relevant modules
NOT INCLUDED

uploading to S3 (we don't currently need to do this as we only have one server and we control when uploads take place, but it should be possible to drop this straight in as a default_storage using django-storages)
write-then-redirect-while-processing-from-queue is actually slightly worse UX than what happened before, because errors will get stuck in the queue and not make it back to the user, but the common case is that uploads fail because they're slow, not because they're malformed — we don't currently show feedback through the frontend for this. Sentry will tell us if it happens in the meantime.

Guidance to review
See commits and test locally.
For details on OBJC_DISABLE_INITIALIZE_FORK_SAFETY, see https://stackoverflow.com/a/73738232. This command only runs in local devs — servers will never execute honcho.
Link to JIRA ticket
N/A?
Things to check

[ ] I have added any new ENV vars in all deployed environments and updated the .env.example and .env.test files in the repo

I've just realised this will require S3 as the worker and web aren't the same machine! Will fix


fix fix reserve nested column when filter array column

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall


folder not created for mobile browser like desktop_chrome

I am using Perfecto cloud for my testing.
When I run my scripts, I am able to create/see folders like desktop_chrome or desktop_firefox where it stores reference and actual screenshots.
Now I am trying to test on Android mobile on Perfecto cloud.
ISSUE: It is not creating the folders but storing the screenshots directly under reference/actual folder. How can I make it create another folder just like desktop_firefox.
P.S - I am not using Appium.
Capabilities in wdio.conf.js:
// FF
    {
      maxInstances: 5,
      platformName: 'Mac',
      platformVersion: 'macOS Mojave',
      browserName: 'Firefox',
      browserVersion: '76',
      resolution: '1920x1080',
},

//Android Mobile browser
{
        maxInstances: 1,
        platformName: 'Android',       //iOS or Android
        platformVersion: 'latest',
        browserName: 'MobileOS',
        model: 'Pixel',
        orientation: 'PORTRAIT',
        openDeviceTimeout: 3
}

Same here with Browserstack - tested with Google Pixel and iPhone 8.

@amitAutoS and @smichaelsen
This is because of this line of code https://github.com/wswebcreation/webdriver-image-comparison/blob/cce70cb4174b8b3b94e4e8d17771a26ae8d90914/lib/helpers/utils.ts#L17
It will only be stored in a separate folder if the deviceName is present in the capabilities, which is not the case based on the provided capabilities.
I can take a look at optimising this, can you do me a favour and post the outcome of the following line of code if you run this during the execution
console.log('capabilities = ', browser.capabilities)
Then I can see what both vendors are giving back and maybe I can then enhance the module in providing the correct data

[0-0] capabilities =  {
  webStorageEnabled: false,
  locationContextEnabled: false,
  browserName: 'safari',
  platform: 'MAC',
  javascriptEnabled: true,
  databaseEnabled: false,
  takesScreenshot: true,
  networkConnectionEnabled: false,
  platformVersion: '12.1',
  useXctestrunFile: true,
  bootstrapPath: '/usr/local/.browserstack/config/wda_derived_data_29d7f376ebaf29d0ed70291cb4519e5fe8a0712c_1.16.0/Build/Products',
  orientation: 'PORTRAIT',
  'browserstack.isTargetBased': 'true',
  udid: '29d7f376ebaf29d0ed70291cb4519e5fe8a0712c',
  device: 'iphone',
  os_version: '13',
  real_mobile: true,
  'browserstack.appium_version': '1.16.0',
  acceptSslCerts: true,
  'browserstack.video': 'false',
  acceptSslCert: true,
  detected_language: 'webdriver/6.1.4',
  new_bucketing: true,
  osVersion: '13',
  deviceName: 'iPhone 8',
  'browserstack.appiumVersion': '1.16.0',
  buildName: 'Local: 13.05.2020, 10:22',
  projectName: 'XXX My Project Name XXX',
  'browserstack.debug': 'false',
  'browserstack.tunnelIdentifier': '',
  browser: 'iphone',
  'browserstack.appiumLogs': 'true',
  version: '',
  mobile: { browser: 'mobile', version: 'iPhone 8-13.2' },
  orig_os: 'ios',
  '64bit': false,
  proxy_type: 'node',
  realMobile: 'true',
  appium_port: 8086,
  automationName: 'XCUITest',
  safariInitialUrl: 'http://mobile-internet-check.browserstack.com',
  webkitResponseTimeout: 20000,
  deviceOrientation: 'portrait',
  'browserstack.ie.noFlash': 'false',
  platformName: 'iOS',
  autoAcceptAlerts: true,
  newCommandTimeout: 300,
  safariIgnoreFraudWarning: true,
  noReset: true,
  wda_port: '28406'
}

When I run on Chrome/FF on Perfecto, I still don't see deviceName coming in capabilities but it does create the folder like desktop_chrome, here's the output:
capabilities =  {
reportPdfUrl: 'https://nab.app.perfectomobile.com/export/api/v1/test-executions/pdf?externalId[0]=192E7E0AFB2B82C8078D421509BE9287--@@<IP_ADDRESS>@@1589359382763',
networkConnectionEnabled: false,
videoStartTime:<PHONE_NUMBER>345,
testGridReportUrl: 'https://nab.app.perfectomobile.com/reporting/library?externalId[0]=192E7E0AFB2B82C8078D421509BE9287--@@<IP_ADDRESS>@@1589359382763',
browserActualVersion: '81',
pageLoadStrategy: 'normal',
streamInfo: '{\n' +
'  "url": "https://nab.web.au.perfectomobile.com/fast/view/?sessionId\u003d192E7E0AFB2B82C8078D421509BE9287--@@<IP_ADDRESS>@@1589359382763@971341d9-b04d-47a9-99ea-7a7df14b5515",\n' +
'  "type": "JS_STREAM",\n' +
'  "authenticationType": "PERFECTO_HEADER"\n' +
'}',
deviceId: '2_35A1F2CA-B0C4-45A9-B8C3-4FD2F04901E6',
resolution: '1920x1080',
version: '81',
platform: 'MAC',
executionId: '192E7E0AFB2B82C8078D421509BE9287--@@<IP_ADDRESS>@@1589359382763',
videoUrl: 'https://nab.vod-download-01.perfectomobile.com/nab/9b1a6d14a5a9b292d6ea9aa9d8dbdb757c6a05914b3284eb12d4f218a48977a2/26120886241d9eb580110814cf8ed95e4048644c2188ae7d14b06ae0f1daf8ef.mp4',
'webdriver.remote.sessionid': '192E7E0AFB2B82C8078D421509BE9287--@@<IP_ADDRESS>@@1589359382763',
browserVersion: '81',
platformVersion: 'macOS Mojave',
browserName: 'Chrome',
takesScreenshot: true,
javascriptEnabled: true,
location: 'APAC-AUS-SYD',
platformName: 'Mac',
cssSelectorsEnabled: true
}
When I run on Mobile browser on Perfecto, I see deviceName coming in capabilities BUT it does not create the folder, here's the output:
[0-0] capabilities =  {
assert_javascript_enabled: true,
browserName: 'MobileOS',
deviceName: 'FA6AF0302631',
deviceSessionId<EMAIL_ADDRESS>entityType: 'remote_web_driver',
executionId<EMAIL_ADDRESS>host: 'nab.perfectomobile.com',
model: 'Pixel',
openDeviceTimeout: 3,
orientation: 'PORTRAIT',
password: '',
platformName: 'android',
platformVersion: 'latest',
reportPdfUrl<EMAIL_ADDRESS>scriptName: 'RemoteWebDriver',
securityToken: '',
serverConnector: '',
streamInfo: '{"url":"https://fast-image-ap-southeast-2.aws-prod.perfectomobile.com/stream/61282a53-1d22-4f90-b993-199eedff3901/","type":"FAST_IMAGE_STREAM","httpMethod":null,"authenticationType":null}',
testGridReportUrl<EMAIL_ADDRESS>user: '',
'webdriver.remote.sessionid': 'b772e291-3619-4963-b7f9-5c1416e489ee'
}

@amitAutoS
deviceName is something for mobile devices, officially it is a mandatory field for Appium. Cloud vendors tend to work around that one.
The module looks at how YOU determine the deviceName in the capabilities, not in how the vendor is giving them back. The reason for asking you to log it was for me to understand how I solve this in the future

    iPhone8: {
        device: 'iPhone 8',
        deviceName: 'iPhone 8',
        os_version: '13',
        real_mobile: 'true',
    },

With this capabilities the correct folder is created, which is great. 👍
I do screenshots with Chrome in 2 resolutions. I'd also like to separate folders for them. However settings something like deviceName: 'Chome XL', does not work, because BrowserStack evaluates this property and doesn't know that browser.
How about introducing a new property like folderName?

@smichaelsen
Yeah, that would be an option, need to think of it, but if you have a solution feel free to come up with a PR for https://github.com/wswebcreation/webdriver-image-comparison

Has there been any update on this? Its still an issue for browserstack users

Any update on this issue? Its still a problem when using browserstack as the above suggestion doesn't resolve the folder creation issue

No, not yet, any help would be appreciated

This is at least solved for Browserstack


[BUG] Make zoo dataset list table horizontally scrollable

It would be nice if the output of fiftyone zoo list in the docs on file:///Users/Brian/dev/fiftyone/docs/build/html/user_guide/dataset_creation/zoo.html would be horizontally scrollable rather than line-wrapping. With the latter, it is hard to read...

The table was getting out-of-hand, so I just deleted it altogether.


Fix haskellCompilerName version.

This matters for callCabal2nix, when the cabal file has something like if impl(ghc >= 7.7)
Motivation for this change
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

@Ericson2314 Does this match the intended semantics of this field?

I was surprised it wasn't this to begin with. @bgamari what do you say?

Looks reasonable to me.

Thanks. @peti can you merge this?


Contact!

老哥你的测试模型失效了，能重新共享一下吗

Hi, I have update my checkpoints. Let me know if you have any other questions


[FEATURE] Gemini's Gambit 2

Proposal
Gemini's Gambit 2 is a new stack manipulation pattern that takes an integer and any iota then returns that many copies of an iota.
But why?
This pattern would be extremely useful to utilize in combination with Thoth's Gambit to create functions that take a variable input.
This would also synergize well with the new abacus item added in 0.7.0.
Examples
Imagine you want a tree chopping spell.
In the current version, you have to use a focus in your offhand or hard-code a list size inside the spell. This is because thoth's requires two lists to execute, and is currently the only iterating spell.
If you want your Hex to work by pointing at the bottom of the tree and apply a list of offset vectors to break along, how do you get that list? You either hard-code it, or you use Scribe's Reflection and use some other trinkets to affect the focus containing the dummy list.
With this new pattern, you can work out the list size dynamically using the power of math, if need be.
In the tree chopping case, you can run a function that outputs a list of offset vectors given a number input.
There are many math and logistical patterns that can be used to determine how many times a function can be executed, saving you the offhand slot.
Being able to load a number from the abacus is also powerful and fun, too.

The code is in there rn but there's no pattern to actuate it. It'll be in 0.8.0 ... i'll close this when I impl it

Coming in 0.8!


Look into Plop for generating mdx files

This might also be helpful for generating Stories files

No longer relevant since we are moving away from using MDX


release v0.1 issue: include user selection of spatial extent and counterfactual

the pipeline should allow A) jurisidiction (e.g. WA) and B) counterfactual (e.g. PM2.5 reduced to 5 or below as per WHO guidelines 2021)

Done, set in global variable state (jurisdiction) and counterfactual controlled in do_env_counterfactual function.


Update Configuration team for gitstream automations

@bot-gradle test and merge

I've triggered a build for you. Click here to see all failures if there's any.


Fixes for ChunkedFileStore

This pull requests fixes usage of ChunkedFileStore as a default store in Ledger and brings some fixes to make it work in plenum

Need to make some more checks


Why I can only save the report in "Documents" library

When Running the "Shared with external users" Why can't the user chose another library but only "Documents"?
Also, Why can't we have who shared the file/ folder with the external user and when it happened.
These are very important pieces of information

thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


Build(deps-dev): Bump @testing-library/jest-dom from 5.16.4 to 5.16.5 (#3840)

Pull request opened by the merge tool on behalf of #3840

Merged in 45593aa9b8f08597390418b54da6189a4731e5bc


Fix initial aspect ratio for image cropping to 2:3

@maxf Can you review and sign off? Thanks

looks good to me


Replace data backend and increase flexibility.

This PR migrate the data backend for Depthcharge from HDF5 to Apache Arrow-based formats, and updates the API in the process.
Overall this PR simplifies the code base and allows for more flexibility in data parsing and usage for advanced users. Please note that I'm still adding documentation, but the code itself is ready for review.

@jspaezp, on second thought, I'll update the docs in a separate PR. This one is large enough 😅


SSDPDiscoveryProvider: fix matching required services of a device

The DLNA device description XML can have nested <device> tags (with corresponding services). This pull request makes sure the SSDPDiscoveryProvider scans the whole device hierarchy for required services, and all attributes are populated from the matching device instead of the root one.
Fixes ConnectSDK/Connect-SDK-iOS#115 and ConnectSDK/Connect-SDK-iOS#116

https://github.com/eunikolsky/Connect-SDK-iOS-Core/commit/897f8a1b9e10be9fdfa0195a56b49d04239054e6
Issue still exists when there is Netcast is present in device discovery filters

@iadnan, thanks! I've fixed a bug in the device matching code. Commit 1112fbbe13531a8e0a344ba40a5097cf63eb4395


Nxo auth config

Thank you for your contribution to PayPal.

Before submitting this PR, note that we cannot accept language translation PRs. We have a dedicated localization team to provide the translations. If there is an error in a specific translation, you may open an issue and we will escalate it to the localization team.

Summary of changes

Creating the auth config for android for merchant passed email

Checklist

[ ] Added a changelog entry

Authors

List GitHub usernames for everyone who contributed to this pull request.

I don't have write access to Kevin's fork. We can wait until he's back from PTO to push the changes.
If we end up releasing before he gets back, I'll open a separate PR for these changes. Thanks!

Closing as duplicate of #216


[etlas] Incorrect classpath to package library in the package executable launch script

When you install a package which has a library and a executable, the launch script of the latter seems to have a incorrect path for its lib when you executes the global copy in $ETLAS_DIR/bin (f.e. with etlas exec exec-name instead etlas run)
The nix script generated contains:
$ETA_JAVA_CMD $JAVA_ARGS $JAVA_OPTS $ETA_JAVA_ARGS -classpath "$DIR\wai-servlet-jetty-example.jar;$DIR/../HSwai-servlet-handler-jetty-<IP_ADDRESS>-DMCQsc8EeUMHtnbzY4tt1c.jar;other_deps;$ETA_CLASSPATH" eta.main "$@"

The package lib jar (HSwai-servlet-handler-jetty-<IP_ADDRESS>-DMCQsc8EeUMHtnbzY4tt1c.jar) is not there for the script copied in $ETLAS_DIR/bin (although it works for the script placed in $project/dist/... )
Same for windows in the MANIFEST.MF of the launcher.jar

I think we could change the path of the lib to point to the etlas database in the nix script or windows launcher.jar in the dist dir of the project to copy that version to etlas/bin, when doing etlas install .
Cause each etlas build or install regenerates de dist dir it would point alway to the correct version of the lib (the project local copy with build and the global lib with install).
Do you know what data in the LocalBuildInfo or ComponentLocalBuildInfo tells us if the command is build or install?

At what point in the execution do you need to determine whether it's a build or install?

I think the ideal point would be the libPaths subexpression of getDependencyClassPaths function in Eta.hs


feat(calendar): add yearselect

Add a year and month selector to the calendar component. This is important for usecases such as entry of birthdates, as users would otherwise need to click a lot on the arrows.

I have decided to replace the buttons with this PR, however, due to this reason, I believe that this PR is WIP and I welcome any feedback.

An issue that I have and am not able to fix is the select for the year taking up the whole screen, as seen below. I have attempted to fix this with max-h in multiple components including the base Select component, however, to no avail.

You could also look at using the captionLayout, fromYear and toYear in the underlying component, with some new CSS rules
            <Calendar
                  mode="single"
                  selected={date}
                  onSelect={setDate}
                  className="rounded-md border"
                  captionLayout="dropdown-buttons"
                  fromYear={2015} toYear={2025}

            />

The dropdown layout seems cool, and thanks for that - didn't notice it! The issue with it is that it doesn't allow for taking the values that the dropdown itself should display without accessing the internal props of the child elements - which seems relatively hacky for this. Not sure if there is a way to go around that. Checked both the DropdownProps and the DayPickerContext itself.

I don't understand the issue, did you try my example?
fromYear and toYear are props.
This is what I did to make a year select

Yes, I do understand that. The react-day-picker component itself however doesn't allow for customization of the select element with the use of our selects, which I believe is relatively important here to make the the UI seem the same as with other usages of select components. My previous comment was about attempting to style those, which is not possible without taking the internal props as those are not provided.

@oof2win2 I think we're going to go with https://github.com/shadcn-ui/ui/pull/1680 which has the most recent updates. But appreciate you starting the work on this. Thank you.

Sorry, completely forgot about this. Happy that I could have helped even at least a bit 👍


Remove version restriction from Pillow in TVM codebase

@kparzysz-quic states: There are 3 security vulnerabilities in Pillow < 9.0.0. They are all considered critical.
CVE-2022-22815 2
CVE-2022-22816
CVE-2022-22817
apps/microtvm/ethosu/requirements.txt lists Pillow==8.3.2.
@areusch : note this was originally listed in the docs install script as a hard version limit, but it's since gone. i suspect the task here is to just remove it from the various places in the codebase which mention it.
https://github.com/apache/tvm/search?q=Pillow

cc : @grant-arm

Me and @grant-arm did some investigation in this and we found out that the fixed/safe versions of Pillow don't release for Python 3.6 anymore.
So this is one more reason for us to update our Docker images and CI, because this will certainly be trend that libraries stop releasing Python 3.6.


access field fd of FileDescriptor in ProcessImplForWin32 by reflection for portability

What is the purpose of the pull request
Current implementation relies on sun.misc.JavaIOFileDescriptorAccess
which is only accessible on oraclejdk8.
Basically the demand is getting & setting fd field of FileDescriptor,
so we can directly do that with reflection.
Though, I suspect the necessity we introduce ProcessImplForWin32. Maybe
we could have a better way to support worker server to run bat script.
Brief change log
Replace JavaIOFileDescriptorAccess with reflections to FileDescriptor.
Verify this pull request
This pull request is already covered by existing tests, such as

ProcessImplForWin32Test

Codecov Report

:exclamation: No coverage uploaded for pull request base (dev@0e1dd8d). Click here to learn what that means.
The diff coverage is 13.04%.

@@          Coverage Diff           @@
##             dev    #2113   +/-   ##
======================================
  Coverage       ?   29.64%
  Complexity     ?     1607
======================================
  Files          ?      336
  Lines          ?    17833
  Branches       ?     2250
======================================
  Hits           ?     5287
  Misses         ?    11990
  Partials       ?      556

Impacted Files
Coverage Δ
Complexity Δ

...uler/common/utils/process/ProcessImplForWin32.java
1.66% <13.04%> (ø)
1 <1> (?)

Continue to review full report at Codecov.

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

This PR contains only refactor changes, I don't think any further tests can be added. Please take a look.

@liwenhe1993 could you share the error message and check that it is running with this patch? I cannot reproduce and it seems our ci system doesn't complain about it or report something helps.

[ERROR] 2020-03-08 16:59:27.524 org.apache.dolphinscheduler.common.utils.process.ProcessBuilderForWin32Test:[53] - Can not set int field java.io.FileDescriptor.fd to java.lang.Long
[ERROR] 2020-03-08 16:59:27.570 org.apache.dolphinscheduler.common.utils.process.ProcessBuilderForWin32Test:[66] - Can not set int field java.io.FileDescriptor.fd to java.lang.Long

@liwenhe1993 thanks for your information. It seems I misspell the field name in the patch. Could you please verify the latest patch?

Yeah, I will do, but UT run failed.
Tests in error:
  ShellTaskTest.testHandleForWindows:179 NullPointer

Maybe ocurred error by:
static {
    try {
        FD_HANDLE = FileDescriptor.class.getDeclaredField("pid");
        FD_HANDLE.setAccessible(true);
    } catch (NoSuchFieldException e) {
        throw new RuntimeException(e);
    }
}

So, UT should be updated.

@liwenhe1993 Thanks for your updated. I don't have a debug environment now. It is hard to debug with single NPE message, could you checkout the patch and fix the issue? The reflection direction looks viable and I think the authority of the patch could then belong to you :-)

org.apache.dolphinscheduler.server.worker.task.shell.ShellTaskTest file should be updated.
Code:
    /**
     * Method: handle() for Windows
     */
    @Test
    public void testHandleForWindows() throws Exception {
        try {
            PowerMockito.when(OSUtils.isWindows()).thenReturn(true);
            shellTask.handle();
            Assert.assertTrue(true);
        } catch (Error | Exception e) {
            // if (!e.getMessage().contains("process error . exitCode is :  -1")) {
                logger.error(e.getMessage());
            // }
        }
    }

UT can run successfully when you updated this file.

good  job
thanks for your contribution, looking forward to your next contribution


Fix #676 Handle @SuppressWarnings on each method for CountInLoop

@kylekatarnls I did a first check, can you add test for this?

Done.


[Feature] Update challenge service to generate plot data from the OC DB

What product(s) is this feature for?
OpenChallenges
Description
The OC challenge service is currently returning static data that @rrchai generated using TS code. The goal of this ticket is the update the challenge service so that the data are generated directly based on the content of the OC DB.
There are two ways of achieving this as described in #2019:

Using methods provided by JPA
Using methods provided by HibernateSearch, which we use to perform complex searches with Elasticsearch

Anything else?
This is a good task for @rrchai to continue getting familiar with the development of the OC backend components.
Code of Conduct

[X] I agree to follow this project's Code of Conduct

try first with JPA

Added to Sprint 23.10

Update 2023-11-08
I am currently utilizing JPA as the initial approach; the work is still ongoing.

@rrchai I want us to spend the rest of November and December to harden the OC web app. For now this backend-related task will return to the backend.


Get ready for ABSL providing a VLOG() implementation.

In the unreleased head of absl, a
VLOG() implementation is available now.
Make sure we can compile with the current and future absl.

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

Comparison is base (4f5d869) 92.95% compared to head (8592f38) 92.95%.

Files
Patch %
Lines

common/util/init_command_line.cc
75.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2055      +/-   ##
==========================================
- Coverage   92.95%   92.95%   -0.01%
==========================================
  Files         357      357
  Lines       26411    26412       +1
==========================================
  Hits        24550    24550
- Misses       1861     1862       +1

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


Route 301 redirect loop

At times, my broker won't load any page within the application because of a 301 redirect loop. I have noticed that sometimes I can fix the issue by visiting the "/" route first and then visiting the "/login" route, but this can even prove unsuccessful.
This is what my laravel-sso.php config file looks like on the broker:
<?php

return [

    'type' => 'broker',
    'serverUrl' => env('SSO_SERVER_URL', null),
    'brokerName' => env('SSO_BROKER_NAME', null),
    'brokerSecret' => env('SSO_BROKER_SECRET', null),

];

This is what my LoginController looks like:
private $broker;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/dashboard';

    /**
     * Create a new controller instance.
     *
     * @param LaravelSSOBroker $broker
     * @return void
     */
    public function __construct(LaravelSSOBroker $broker)
    {
        $this->middleware('guest')->except('logout');
        $this->broker = new $broker;
    }

    protected function attemptLogin(Request $request)
    {
        $broker = new LaravelSSOBroker;

        $credentials = $this->credentials($request);
        return $broker->login($credentials[$this->username()], $credentials['password']);
    }

    public function logout(Request $request)
    {
        $broker = new LaravelSSOBroker;

        $broker->logout();

        $this->guard()->logout();

        $request->session()->invalidate();

        return redirect('/');
    }

I have also added the necessary environment variables to the .env file.

When I can get the page to load, I cannot login. After stepping through the code within the debugger, the error that I am seeing is "Invalid session id."


If you have a empty data() {} in the component, it crashes vue when routing.

Version
2.7.0
Reproduction link
http://jsfiddle.net/o5q632d0/
Steps to reproduce
Put a data() {} in your component, when navigating between routes you will get a error which will completly crash vue and the only way to fix it that ive found is to refresh the browser.
The error looks like this:
TypeError: Cannot read property '__ob__' of undefined
    at VueComponent.Vue.$destroy (npmcdn.com/vue@2.4.4/dist/vue.js:2511)
    at destroy (npmcdn.com/vue@2.4.4/dist/vue.js:3606)
    at invokeDestroyHook (npmcdn.com/vue@2.4.4/dist/vue.js:5330)
    at removeVnodes (npmcdn.com/vue@2.4.4/dist/vue.js:5346)
    at updateChildren (npmcdn.com/vue@2.4.4/dist/vue.js:5454)
    at patchVnode (npmcdn.com/vue@2.4.4/dist/vue.js:5508)
    at Vue$3.patch [as __patch__] (npmcdn.com/vue@2.4.4/dist/vue.js:5657)
    at Vue$3.Vue._update (npmcdn.com/vue@2.4.4/dist/vue.js:2464)
    at Vue$3.updateComponent (npmcdn.com/vue@2.4.4/dist/vue.js:2578)
    at Watcher.get (npmcdn.com/vue@2.4.4/dist/vue.js:2919)
handleError @ npmcdn.com/vue@2.4.4/dist/vue.js:569
10:20:25.621

Related to https://github.com/vuejs/vue-router/issues/1728
What is expected?
Navigation should continue and discard the component.
What is actually happening?
The component crashes upon discarding and crashes vue as a result.

This might not be a bug, but its really bad for the component to crash if the data is empty, it took me a very long time to find this error's cause.

Well, the data function is supposed to return an object. Not returning one is simply wrong usage.

Then vue-router should report that in a sane way.

That it something that would have to be fixed in Vue, not vue-router.

This message only appears if the development mode is set.

That's right.
I would assume that such a bug would be easy enough to be catched in development that it can't happen in production.
So while the error message in production could be more helpful, it's not a "necessary" improvement because it should not happen in production in the first place.
We'll see what we can do....

I'm also experiencing this issue...it gives me a blank page..but when i reload the component it then loads the component properly

You just need to return an empty object or remove the data property altogether. It is also unrelated to vue-router. Locking as the thread has been resolved and it's old


Any benchmark values for especially inference time?

Are there any measurements for the inference time? Should I expect real-time or close to real-time? It'd be great too see some values.

@erogol
I test the inference on a P40 GPU with the default configuration(i.e., n_layers=16, mu_quantization=256, sampling_rate=16000, implementation=PERSISTENT).
It takes about 3 to 5 seconds to synthesis a 9 seconds long audio.
So I think nv-wavenet is real-time at least for these parameters.

@nanma thx for the values.


fix(userspace/libscap): fixed cgroups v2 support in scap_proc_fill_cgroups()

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area build

/area driver-kmod

/area driver-ebpf

/area libscap

/area libsinsp

/area tests

/area proposals

What this PR does / why we need it:
This PR fixes a bug in scap procs initialization: running containers before Falco booted, were ignored until a new process spawned on them; instead, their running process were thought to be running on the host.
Basically, cgroups v2 uses the "Unified hierarchy" for subsystems, thus the subsys list string is always empty in /proc/pid/cgroup file.
Workaround this by forcing a default set of subsystems <cpu,cpuset,memory>.
For cgroups v1 instead everything is kept the same.
See cgroups man:

              5:cpuacct,cpu,cpuset:/daemons

          The colon-separated fields are, from left to right:

          1. For cgroups version 1 hierarchies, this field contains
             a unique hierarchy ID number that can be matched to a
             hierarchy ID in /proc/cgroups.  For the cgroups version
             2 hierarchy, this field contains the value 0.

          2. For cgroups version 1 hierarchies, this field contains
             a comma-separated list of the controllers bound to the
             hierarchy.  For the cgroups version 2 hierarchy, this
             field is empty.

          3. This field contains the pathname of the control group
             in the hierarchy to which the process belongs.  This
             pathname is relative to the mount point of the
             hierarchy.

Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

fix(userspace/libscap): containers running prior to Falco boot are now correctly populated upon Falco start.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@FedeDP: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

build-libs
ab4d4e3a093ca56dd302ddb74f256e757e51f677
link
true
/test build-libs

Full PR test history. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

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

/test build-libs

LGTM label has been added.  Git tree hash: e3b75438296ebec9f23e41da0cdcc395d61dc56a

The changes look right to me. Just curious, which container runtimes use cgroups v2 by default?

I tested with both docker and podman on my system (archlinux).
See my podman info output:
podman info
host:
arch: amd64
buildahVersion: 1.23.1
cgroupControllers:
- memory
- pids
cgroupManager: systemd
cgroupVersion: v2

Same goes for docker:
Cgroup Driver: systemd
Cgroup Version: 2

Do they detect whether v2 is supported and use them when supported? Or is it still a configurable thing at the container runtime level?

I think they use the one used by the system because they both do not support mixing cgroup versions.
To switch back to cgroup v1 (with systemd), you shall set the following kernel param:
systemd.unified_cgroup_hierarchy=0 and reboot.


Chainflip hangs indefinitely when attempting to sign a transaction

https://jam.dev/c/f2fe9c1b-42e7-44ab-98db-543223a2bd04
Repro steps:

connect Phantom with ledger
Get a quote for SOL into USDC on SOL
confirm
attempt to sign and it never populates.

I just attempted this with Rabby (ETH into SOL) and had the same experience

Hello @0xean  A support ticket has been opened for you. Kindly Talk to Support on the Live support page so that your issue can be looked into. CLICK HERE

@0xean closing as this has been fixed in develop by https://github.com/shapeshift/web/pull/8309


Increase DA timeout

In reponse to the latest comment  at https://issues.redhat.com/browse/TC-1067 Finally I have also increased the default timeout in the Openshift routes to 3 minutes.
We will also need to increase the timeout to 3 minutes as i verified our staging environment is still having 504 error

It seems by default reqwest use 30 seconds as a timeout:
https://github.com/seanmonstar/reqwest/blob/6904889488cd1385a6973e8ebbd25168e4f50e56/src/blocking/client.rs#L1168-L1173

I made a quick test:
 axios
      .post(
        "https://api.staging.trustification.dev/api/v1/analyze/report",
        value,
        {
          timeout: 60_000 * 3,
          headers: {
            Authorization: `Bearer ${token}`,
          },
        }
      )
      .then((e) => {
        console.log("Success", e);
      })
      .catch((e) => {
        console.error(e);
      });

The result is that although the Client (browser) has a timeout of 3 minutes, the backend (API) cuts the request after 30 seconds.
This current PR increases the timeout of the DA report only on the backend.

https://github.com/trustification/trustification/assets/2582866/71d5d513-07f8-459d-98f2-9c650095c5af


onerror default image with 2.x

Is there any way to load default image on error with 2.x version ? it was possible with 1.x version through setting error listener like following.
on("error", function() {
$self.attr("src","/resources/image/error.jpg");
})
how can i do that using div or img element with 2.x version ?

I am also really needing this feature, still trying to figure out a solution here.

I have updated the code to be able to handle loading a default image on error:
https://github.com/brianwozeniak/jquery_lazyload/blob/2.x/lazyload.js
So for example:
<img src="default.jpg" data-src="imageToLoad.jpg" data-srcset="imageToLoad.jpg 1x, imageToLoadRetina.jpg 2x">

If the image in data-src or data-srcset fail to load, then it will change back to the default src value. It does this by creating a data-original attribute when trying to load the other images.
I also created a pull request to have this merged in. I also re-factored some duplicate code.


Add new cmdline option to denote implicit returns

Description of the Change
Coffeescript automatically returns the result of the last expression (implicit return).
The change made to deprecate suites returning a value causes a warning for every describe. This adds a cmdline option which can disable the deprecation warning.
Alternate Designs
Simplest and most expedient solution.
Why should this be in core?
NA - already in core
Benefits
Allows CoffeeScript users to upgrade.
Possible Drawbacks
None
Applicable issues
Fixes #3744
semver-patch

This is quick patch only. Not married to option name, not sure which group it belongs in either.
But it does fix the problem.

Coverage increased (+0.006%) to 91.728% when pulling 76fa998f9fc55197f48c9592b0cc329ec1bf8f28 on plroebuck/suppress-deprecation-for-coffeescript into 00f2ed9488564172c81a888c81f69ef39abf21c8 on master.

recommend this be closed


feat: build linux binary

Added a docker-compose file to be able to build a node-pre-gyp binary for linux.

Pull Request Test Coverage Report for Build 15

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 14:
0.0%

Covered Lines:
1

Relevant Lines:
1

💛  - Coveralls


Update support to PHP 8.1

HI,
We have already started using PHP 8.1 here at the company
Hope this helps

@brunoconte3 Thanks so much for this. Unfortunately I don't want to restrict it to only PHP 8 at this time, so I'm going to close this issue.  If you experience issues using the package with 8.1, please open a new issue. Thanks again!


Unable to start AirSonos server

Problem/Motivation
The add-on is unable to start AirSonos server
Expected behavior
Being able to start the AirSonos server
Actual behavior
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 00-banner.sh: executing...
-----------------------------------------------------------
 Hass.io Add-on: AirSonos v0.5.0
 AirPlay capabilities for your Sonos (and UPnP) devices.
 From: Community Hass.io Add-ons
 By: Franck Nijhof<EMAIL_ADDRESS>-----------------------------------------------------------
[cont-init.d] 00-banner.sh: exited 0.
[cont-init.d] 01-log-level.sh: executing...
Log level is set to INFO
[cont-init.d] 01-log-level.sh: exited 0.
[cont-init.d] 02-updates.sh: executing...
INFO: You are running the latest version of this add-on
[cont-init.d] 02-updates.sh: exited 0.
[cont-init.d] 50-airsonos.sh: executing...
[cont-init.d] 50-airsonos.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
INFO: Starting the AirSonos server
[12:51:42.596382] main:1205 Starting airupnp version: v<IP_ADDRESS> (May  8 2018 @ 20:15:31)
[12:51:42.596795] main:1213 no config file, using defaults
[12:51:42.602357] Start:953 UPnP init failed: -203
[12:51:42.602423] main:1246 Cannot start
INFO: Starting the AirSonos server
[12:51:43.561776] main:1205 Starting airupnp version: v<IP_ADDRESS> (May  8 2018 @ 20:15:31)
[12:51:43.562151] main:1213 no config file, using defaults
[12:51:43.566563] Start:953 UPnP init failed: -203
[12:51:43.566624] main:1246 Cannot start
INFO: Starting the AirSonos server
[12:51:44.401456] main:1205 Starting airupnp version: v<IP_ADDRESS> (May  8 2018 @ 20:15:31)
[12:51:44.401671] main:1213 no config file, using defaults
[12:51:44.404561] Start:953 UPnP init failed: -203
[12:51:44.404606] main:1246 Cannot start
INFO: Starting the AirSonos server
[12:51:45.964347] main:1205 Starting airupnp version: v<IP_ADDRESS> (May  8 2018 @ 20:15:31)
[12:51:45.964726] main:1213 no config file, using defaults
[12:51:45.970636] Start:953 UPnP init failed: -203
[12:51:45.970704] main:1246 Cannot start
INFO: Starting the AirSonos server
[12:51:47.473609] main:1205 Starting airupnp version: v<IP_ADDRESS> (May  8 2018 @ 20:15:31)
[12:51:47.473974] main:1213 no config file, using defaults
[12:51:47.481896] Start:953 UPnP init failed: -203
[12:51:47.481960] main:1246 Cannot start
INFO: Starting the AirSonos server

Steps to reproduce
Install add-on version 0.5.0 on RPi3

Hi @magnusoverli,
Like you've seen on stream, this things just works on my setup (Tested on a Raspberry Pi 3).
I've send you a link to test it with AirConnect locally on your computer, to see if this is an add-on issues or not. (Might be your network as well.).
Please let me know if that works.

@frenck I see the same exact error message.
additional background:

I have 2 Sonos ONE
tried the "address" config empty AND with either of the 2 Sonos (just to make sure I was not messing up with master in the group)

Alex


HLL Union toString is not pure and can trigger a rebuild

Hello,
The toString method of Union can mutate the object if a rebuild is necessary.
This make some test fail when running in debug (as some IDE will render object value automatically).
Not a major issue, but surely unexpected to have toString() mutate the object.
Thanks !

Thank you!  Excellent fix!


Split the travis Build in different Build and Test Stage

Split the travis Build to different logical stages so that it's easy to understand what went wrong in CI

each commit has to be signed .. :-)

@mikebrow Thanks, signed off all my commits

This feature is really cool!
Is there any limit to the number of stages? Could we split the test into 4 stages?
  include:
     - stage: Static Check
       script:
         - make .gitvalidation
         - make verify
     - stage: Build
       script:
         - make binaries
     - state: Unit Test
       script:
         - make test
     - state: Integration Test
       script:
         - make test-cri

@Random-Liu : As Integration test depends on the output of 'make binaries' so we cannot split integration test and build, maximum we can split UT in different stage

@asifdxtreme Hm, so these stage can't access result generated by last stage?

@Random-Liu No, the stages are the way to seperate out the each step, anyhow I have made changes for 4 stages, please have a look at it

@asifdxtreme Thanks for explaining. Yeah, you are right:
It is important to note that jobs do not share storage, as each job runs in a fresh VM or container. If your jobs need to share files (e.g., using build artifacts from the “Test” stage for deployment in the subsequent “Deploy” stage), you need to use an external storage mechanism such as S3 and a remote scp server.

@asifdxtreme If so, this seems less useful then. :(
It's time consuming to install dependencies for each VM.

@Random-Liu but this will make your CI more stringent because this will ensure each and every step is carried out in isolation and no other steps interfere or effect the output of others, moreover its easy for new users to interpret what is happening in CI

@Random-Liu yes this makes sense to reduce into 2 steps, I will make the changes now

@Random-Liu the changes has been done as per suggestion and you can see the build time has reduced considerably to 11mins from 18mins

LGTM

@Random-Liu missed the part about changing which go versions we are testing against.

@Random-Liu yes currently we are testing it against 1.8, Currently stages are difficult to run with multiple versions of any language, for example if run test against go 1.8 and tip then it will use around 4 containers and in return double the time of build.

@asifdxtreme  We used two scripts in each stage to run the two golang versions in parallel.


fix: Migrate to React 18 APIs

:tada: This PR is included in version 3.22.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Why doesn't it support Intel CPUs with 10 or more generations

Why doesn't it support Intel CPUs above 10th generation? What should we do for those who use black Apple systems? It is recommended not to check the Intel CPU version number

We don't check the CPU model because we want to set an artificial limitation; we do it because there are real compatibility issues preventing it from working. See https://github.com/orbstack/orbstack/issues/1207#issuecomment-2137177737

We don't check the CPU model because we want to set an artificial limitation; we do it because there are real compatibility issues preventing it from working. See #1207 (comment)

Dude, the orbstack you created is really amazing. But you just need to state that there is no service guarantee for higher CPU. You can completely choose not to fix issues with no support CPU. However, the strict limitation on CPU is not good for you or the users. if the software can't even open, how can they buy for you?


paratime support for mainnet

follows #156
On mainnet there will be different paratime IDs for Cipher and Emerald. Let's add support for different networks (testnet/mainnet) to have different known runtime IDs and enter the mainnet ones (when available, if not yet).

we may need a type or something else to make a diff between cipher and emera . now there have no idea to deal different id and different action

we have since adjusted the config to have different paratime IDs between testnet and mainnet


[BREAKING] JSDoc: Fail build when jsdoc command failed

JIRA: CPOUI5FOUNDATION-530

Coverage decreased (-0.003%) to 94.703% when pulling 2eb3a89e04655e17101f81cc9b49938fd2eaec69 on jsdoc-handle-exit-code into 62a1425a2a5f324311a50ea2ad6278eaeb2ada08 on main.


Add color modes?

Reference: https://getbootstrap.com/docs/5.3/customize/color-modes/

Update to 5.3


ORA1635 Investigate testing out normalized regret calculation for a single regret

Not able to test, see task for more info


Add elasticsearch  support when generating a database service

Thank you

We have a lot of work in the backlog.  A PR from the community would be greatly appreciated.  We will leave this open for a month.  If there's not a champion by that point, we may have to close it until somebody reopens it to work on it.

I might get to it at one point. @jciolek has been doing great work and it should be included.


Fix arabic translation repo link & add Secondary Maintainers section

Hey ! I don't know about the old URL. When to add the line?


Transactions History view doesn't refresh properly

Describe the bug
The Transactions History page doesn't refresh on pull down for new payments received.
To Reproduce
Steps to reproduce the behavior:

Open the app to the Transactions History page in the app
Send a payment outside the app (e.g. via api directly)
Pull down from top on the Transactions History page, see no change
Go back to home screen and pull down, see new payment come in in little Transactions window
Go back to Transactions History page and see new payment now show up.

Expected behavior
New transactions should appear on refresh from the Transactions History view.
Smartphone

Device: OnePlus9
OS: Android

This should have been addressed with the last version of the app


inlineCSS option

I need to enable CSS inlining programmatically.

FWIW, I didn't realize you were the same author ... I was thinking that gulp-vulcanize might enable it using a hack.  Esp. since I need support for 0.5.

The option is named inlineCss. https://github.com/Polymer/vulcanize#using-vulcanize-programmatically


Fix tests not working with a different CARGO_TARGET_DIR.

Fixes #8980

r? @alexcrichton
(rust-highfive has picked a reviewer for you, use r? to override)

@bors: r+

:pushpin: Commit 0ac41f00510ea3735d50deea6c1359bdfa407e08 has been approved by alexcrichton

:hourglass: Testing commit 0ac41f00510ea3735d50deea6c1359bdfa407e08 with merge 4f0adaeb68c824aff7398a70b7df738b0c2fa83d...

:sunny: Test successful - checks-actions
Approved by: alexcrichton
Pushing 4f0adaeb68c824aff7398a70b7df738b0c2fa83d to master...


hide_useless_buttons set to false permanently hides add buttons when at max

Using the following configuration, all add buttons permanently disappear upon hitting the max number of elements, even after deleting elements.
$('.collection').collection({
    hide_useless_buttons: false,
    min: 1,
    max: 4
});

It appears dumpCollectionActions will first set the add button's display to 'none' or '' only if hide_useless_buttons is set to false, but then sets the display of all add buttons to 'none' if the max number of elements is hit regardless of the hide_useless_buttons setting.
I've replicated this on the demo site as well upon hitting the default 100 element max.

👍

Thanks for the quick response!
It looks like now if you use the following configuration, it inadvertently keeps showing the "rescue add" button upon hitting the max number of elements.
$('.collection').collection({
    hide_useless_buttons: false,
    add_at_the_end: true,
    max: 4
});

Hi,
This is how it looks on my screen, I see nothing buggy here.
You can still see the rescue button because you explicitly disabled "hide useless buttons" (which mean, keep showing buttons even if they don't work anymore).
Thanks,

That makes sense. Perhaps then the ".*-action-disabled" class could be added to the button in this situation.

Sure.
Can you create a new issue for this?
Cheers,


[BEAM-10962] Add Multiple PubSub reader to Python SDK

As discussed over Dev mail, a very common use case in Dataflow / Beam is reading from multiple PubSub topics/subscriptions and flatten them out.
The PR adds the PTransform to do so.
It takes two parameters:

source_list: List of topics/subscriptions.
with_context: option to return a key-value pair of the form (source, actual message)

Other options from ReadFromPubSub can also be included as kwargs except topic or subscription.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

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

R: @chamikaramj
Adding you as reviewer since you replied in the email thread. Thanks a lot!
Let me know if there's something I should change.

R: @boyuanzz
Passing to Boyuan who is working on updating PubSub source/sink for Dataflow.

I was discussing this PR with Pablo and maybe it would be better to add it within the ReadFromPubSub itself rather than with a different PTransform. I see advantages in both approaches:
Modifying ReadFromPubSub

Just one PTransfrom that does both things
Less documentation needed

New PTransform

Easier to mantain, since MultipleReadFromPubSub would only expand from ReadFromPubSub, all modifications from ReadFromPubSub would directly be added.
Easier on different runners: if I'm not mistaken, Dataflow performs some overrides to ReadFromPubSub, so using MultipleReadFromPubSub would not be affected by this (since it expands it). Considering Dataflow is probably the main runner for this operation, we should consider this.
Less overhead: Having ReadFromPubSub take both list of topics/subscriptions and single topics/subscriptions may be a bit too much

It should not be hard to move this PR from a different PTransform to inside ReadFromPubSub. So please let me know what do you think about it.
Thanks!

The usual pattern for sources is.
(1) A transform that reads from a given source config
(2) A "ReadAll" transform that reads a PCollection of configs.
Given that PubSub is a native transform for Dataflow though, we cannot really implement (2).
I'm not really sure a composite that just wraps a Flatten adds much value since pipeline authors can easily do that themselves (we can do that for every other transform as well but that will just clutter the API in my opinion).
(2) above will be more useful and will enable new use-cases. But we cannot really do that for Dataflow.

The usual pattern for sources is.
(1) A transform that reads from a given source config
(2) A "ReadAll" transform that reads a PCollection of configs.
Given that PubSub is a native transform for Dataflow though, we cannot really implement (2).
I'm not really sure a composite that just wraps a Flatten adds much value since pipeline authors can easily do that themselves (we can do that for every other transform as well but that will just clutter the API in my opinion).
(2) above will be more useful and will enable new use-cases. But we cannot really do that for Dataflow.

I agree with you that adding a similar concept for all IOs would clutter the API. The main idea here is that this use case is widely shared and a lot of users are doing it themselves. This PTransform would speedup a lot their code and it would help organizing the sources better (rather than a wide pipeline graph, the sources are separated by topic/subs and by project).
Anyhow, I do understand your concern, let me know if I should proceed (by fixing the errors) or close the PR.
Thanks again!

Expect what Cham has mentioned, another thing is current implementation of MultipleReadFromPubSub only can configure multiple ReadFromPubSub with the same attribute, like the same with_attributes, timestamp_label, id_label, which is not ideal. Given that ReadPubSub is a native transform for Dataflow, having MultipleReadFromPubSub seems like the only solution for now. I'm thinking we could create a PubSubSourceDescriptor which includes topic, subscription and other attributes. And we expose add API from MultipleReadFromPubSub to allow end users to add a new Read.

Run Python PreCommit

Run Python tests / Python Unit Tests (windows-latest, 3.7, py37) (pull_request)

Run Python tests

retest this please

@boyuanzz , I am not aware on how to retry the 3 failing tests, they were successful in the previous commit, but with the new one (that only adds the line to disable Pylint in a block) they failed. Any idea?
Thanks!

Run Python PreCommit

Run Python PreCommit

The Python Unit tests is not triggered by Run Python PreCommit. You can click Details and there is a re-run all tasks button to rerun these tests.

Run Python_PVR_Flink PreCommit

Run Python_PVR_Flink PreCommit

Run Python_PVR_Flink PreCommit

Please address the conflicting files. @InigoSJ

Run Python_PVR_Flink PreCommit


conn.writeCoroutine() Timer not reset

https://github.com/9b9387/zero/blob/587198b68c4a0e65ec45355d89dad25ba98610fd/conn.go#L86-L89
Need to add a line of code here to reset the hbTimer like this:
c.hbTimer.Reset(c.hbInterval)

you are right. I write hbTimer.Reset in readCoroutine method. your way is better.