"property 'window' is a read-only and non-configurable data property " error in first test ran

Sorry, filing an issue is not the best for this, but unsure where else to post. I tried adding this in a repository that has some acceptances, integration/rendering tests, and unit tests. My first (acceptance) test fails with this error.
‣
TypeError: 'get' on proxy: property 'window' is a read-only and non-configurable data property on the proxy target but the proxy did not return its actual value (expected '#<Window>' but got '[object Object]')
    at isWindow (http://localhost:7357/assets/vendor.js:12508:37)
    at isArrayLike (http://localhost:7357/assets/vendor.js:12915:28)
    at Function.makeArray (http://localhost:7357/assets/vendor.js:12804:9)
    at new jQuery.fn.init (http://localhost:7357/assets/vendor.js:15430:17)
    at jQuery (http://localhost:7357/assets/vendor.js:12562:10)
    at Class.init (http://localhost:7357/assets/webapp.js:64113:7)
    at Class.superWrapper [as init] (http://localhost:7357/assets/vendor.js:65580:28)
    at Class.CoreObject (http://localhost:7357/assets/vendor.js:63012:27)
    at Class.EmberObject (http://localhost:7357/assets/vendor.js:63395:75)
    at Class (http://localhost:7357/assets/vendor.js:63074:72)

how can i resolve this? thx!
I'm open to making a PR to add documention to the README with the resolution of this, if applicable.

ember 3.4.7
"ember-mocha": "^0.14.0"

For setting up my acceptance tests, I tried variations of
import { setupWindowMock, reset as resetWindow } from 'ember-window-mock';

export const runBeforeHooks = () => {
  // see https://github.com/kaliber5/ember-window-mock#resetting-the-state-in-tests
  resetWindow();
  // setupWindowMock();
  setupRouter();
};

export const setupApplicationTest = function (testContext) {
  const hooks = mochaSetupApplicationTest();

  setupWindowMock(hooks);
  hooks.beforeEach(runBeforeHooks);

  return hooks;
};

Don't think this is related to test setup, but rather something in the mocked window itself goes wrong. Can you please post how your app code uses this addon? In the stack trace above it seems this is the place where you own code does something:
at Class.init (http://localhost:7357/assets/webapp.js:64113:7)

@simonihmig Thanks! Unfortunately ember tests don't provide clickable stack traces, so I had to scroll to line 64113 of my webapp.js to find the line. This was the problematic instance:
    $(window).on('beforeunload', () => {
      this.event('leavepage', { _external: true });
    });

Not using the mock here fixed the test. Do you know why this would be an issue?

Separately, when would I use setupWindowMock vs reset before a test?

So jQuery is accessing window.window here, which the mock has replaced with another Proxy. This seems to be not allowed for read-only and non-configurable properties, hence the TypeError. So this can be seen as a bug here, and should be fixed! Thanks for reporting!

Separately, when would I use setupWindowMock vs reset before a test?

I would recommend to always use setupWindowMock, as long as you use the new testing APIs with support for hooks!

@simonihmig any plans to solve this? Or this is a bug in jQuery in your opinion?

Fixed in #452, confirmed in #454


can any one help me 3 anchors and 1 tag program. what are changes i need to do in program

Step 1: What do you want?

Report an issue.
Improve code (and need help).
Suggest a new feature.
Present a new hardware adapter board or wiring.
Want to report my experience or measurement. (Please also add them to the wiki!)

Step 2: Describe your environment

Arduino IDE version or Toolchain: _____
dw1000 Library version: _____
Arduino device: _____
Used adapter board: _____

Step 3: Describe the problem
Affected file(s) or example(s):

Filename 1
Filename 2

Steps to reproduce:

Observed Results:

What happened?  This could be a description, log output, etc.

Expected Results:

What did you expect to happen?

Relevant Code:
  // TODO(you): code here to reproduce the problem

Nothing, Just upload 3 dwm1000Ranging_Anchor and 1 dwm1000Ranging_Tag. And If you want them to not be random address all time, just use different address and add new parameter 'false' in the start as function.
You can view my repository at https://github.com/wahajmurtaza/Indoor-Positioning-and-Navigation-using-Reinforcement-Learning

tq bro i will test. if i stuck any where i will ask. please help

Also, see other projects in Github.
A good refactor of thotro's library and web based RTLS infrastructure is F-Army

tq somuch bro

bro i am getting this is the output printing on serial monitor i think so this is wrong

Did you change the baudrate and print format? and Did you replace the library?
Because there was no code for device address printing and "final_string".
Try 9600 baudrate, I increased the baudrate and my device kept restarting.

Discuss it on my repository, Its not an issue here.

Did you change the baudrate and print format? and Did you replace the library?
Because there was no code for device address printing and "final_string".
Try 9600 baudrate, I increased the baudrate and my device kept restarting.

Hi bro, I used your code but shows "no such file or directory". can I ask is there anything wrong?


Add orthographic profile

As per https://github.com/lexibank/leekoreanic/issues/1

I had some doubts about the fortis and j, but it seemed clear enough from cognates in Standard Korean. Still, it would help to have a native speaker check -- maybe Joo could do it, even though he is not at MPI anymore?
Anyway, feel free to merge. :)


Updates to incorportate mobile styles.

Needed to add mobile styles for the showcase gallery!
These gallery styles for a .-quartet will need to be reconciled somehow with the Neue styles. For this particular version, on small/medium devices we want it to go 2 items per row and 4 per row at desktop. Not sure what the ideal alternative would be.
@DoSomething/front-end

This might be a new gallery style? Something like .quartet-extra?
(You're better at naming than me. :wink:)

:+1: to merge, but definitely something to patternize!

Cool. Will do when moved to Neue!


Increase Specification Of build-azure-win2022-x64-1 to Windows Standard

Currently the machine build-azure-win2022-x64-1 ( <IP_ADDRESS> ) only has 2 vCPUs and 4 Gb of RAM, the standard spec for a build machine is 4 vCPUs and 16Gb RAM.
This lower spec is causing builds to hang and take > 7 hours as per this build, https://ci.adoptium.net/job/build-scripts/job/jobs/job/jdk20u/job/jdk20u-windows-x64-temurin/36/console
This machine should be resized from type B2s to type B4ms to match the 2nd Windows 2022 build machine

Machine has been resized, test build has completed successfully.


feat(FN-1549): refactor utilisation report report period

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

Comparison is base (fbe7ec4) 22.57% compared to head (6579ff5) 1.46%.
Report is 25 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #2782       +/-   ##
==========================================
- Coverage   22.57%   1.46%   -21.12%
==========================================
  Files        1136     179      -957
  Lines       27255    2534    -24721
  Branches     4486     503     -3983
==========================================
- Hits         6153      37     -6116
+ Misses      18388    2201    -16187
+ Partials     2714     296     -2418

Flag
Coverage Δ

api-test
0.48% <ø> (ø)

ui-test
?

unit-test
2.77% <ø> (-1.87%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

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


Delete iOS debug app when quitting resident runner

Branching off from https://github.com/flutter/flutter/issues/62518. Since a JIT remnant on a non-simulator iOS 14 device will be unusable after disconnecting the debugger and can only trigger an error, delete it when the resident runner is being quit.

This would preclude us from ever figuring out how to re-use the existing application on a repeat flutter run. I'm also not sure how it would interact with --no-resident/flutter attach. I think provided the app does not exit, a user could still reconnect right? @jmagman

I guess we could worry about that later though

This would preclude us from ever figuring out how to re-use the existing application on a repeat flutter run

Us fixing the VM would be bundled with a Flutter commit that can fix the tooling I'm thinking right?

I'm also not sure how it would interact with --no-resident

It wouldn't

flutter attach. I think provided the app does not exit, a user could still reconnect right

Ya, I'm proposing that we only do this on quit (q). Not detach (d) from either flutter run or flutter attach. Once you quit, it's final and that app will never work again without a host.

Makes sense to me

Thanks!

The way I would do this: make stopApp in the iOS device (not the simulator device) try and do an uninstall. Mark the iOS device as not supporting flutter exit so stopApp is always called instead of the service extension.

I think it could lead to additional problems.
To launch an application signed with a free personal account certificate, you must set the developer as trusted in
general settings->device management.
But this value is reset as soon as the last application from this developer is removed from the device.
The proposed behavior will lead to the fact that developers using free accounts will have to build the application for ios twice each time they start the debug, unless they have their other applications installed.

@2ZeroSix That's a very good point.  The profile being removed every time would drive me nuts.

@jmagman can we test to see if this is universally true? If so, let's not implement this.

Let's close this based on @2ZeroSix's good point.


[Help] ES6 syntax

I'm trying to figure out how to compose titles using variables defined in data, but I don't seem to find the proper way of making this work. I always get this error: TypeError: Cannot read property 'editing' of undefined.
head: {
    title: () => {
      return {
        inner: this.editing ? 'Edit Participant' : 'Create Participant',
      };
    },
  },
  data() {
    return {
      editing: false,
    }
  },

I've also tried like this, but no luck:
data: () => {
  return {
    editing: false
  }
}

Hello @gazpachu
Try this way to see if it works.
head: {
  title () {
    return {
      inner: this.editing ? 'Edit Participant' : 'Create Participant',
    }
  }
},

data () {
  return {
    editing: false
  }
}

Thanks @ktquez, something like that seemed to work.


Environment variable PAGER=/bin/cat

Hi!
I was wondering why bat wasn't paging in the terminals (kitty) opened by the workspace plugin while it works in terminals launched by rofi.
Turns out there was an environment variable set by pyprland, PAGER=/bin/cat.
Overwriting that in my .zshrc works, however other people might run into this issue.

Thank you!

Hi!
There is no such thing, you can use grep on the code if you like... :)
I don't know your setup, but I guess your environment variable is set after or out of the context of this setting... you can set environment variables in hyprland config too if you are running pyprland from it. It's common to have different environment in Hyprland and the shells you start.
To confirm what I'm saying, since environment is inherited (if not overridden):

try to launch the pypr (daemon) from a shell which have your PAGER set to your liking, and test the behavior.

Hope it helps!


Some properties of ring 112 (the quotient of free Q-algebra on 2 elements by square of generator)

[ ] ✔ anti-automorphic (+involutive). The map reverses the order of monomials.
[x] :x: fully semiprime. $R/(a) = \Bbb Q[b]$ is not fully semiprime.
[ ] ✔ prime. If $c,d\not = 0$, then $cbd$ is also not $0$ (the pair of the longest words in $c$ and $d$ can't cancel with anything else).
[ ] ✔ semiprimitive. $1 + brb$ is never invertible unless $r = 0$.
[ ] :x: stable range 1. $b + y(1-b^2)$ is never invertible.
[ ] ✔ ACC annihilator. An element of form $q + ra + sb$ ($q \in \Bbb Q$, $r,s \in R$) can be a left zero divisor only if $q$, $s$ are zero (consider the longest and the shortest words). Then its right annihilator is $aR$.
[ ] :x: Noetherian. $aR \subset aR + baR \subset aR + baR + b^2 aR \ldots$
[ ] :x: Bezout. $aR + baR$ is not cyclic.
[ ] ✔ Ikeda-Nakayama. A left annihilator can be either $0, Ra$, or $R$.
[x] :x: Ore ring. $aS \cap bR = 0$ (even $aR \cap bR = 0	$).
[ ] :x: cohopfian. $b$ is neither a unit nor a zero divisor.
[ ] :x: distributive. $K = (I + J) \cap K \not = I \cap K + J \cap K = 0$, where $I = (a+b)R$, $J = (a-b)R$, $K = aR$.
[ ] :x: uniform. See Ore ring.

Comments
Why is $R_{112}$ semiprime (property 11)? The database contains no explanation, and neither it does for the Armendariz condition. Maybe these are trivial (but not enough trivial for me).
Is allprops.svg generated using an automated tool? If yes, could you please update it (it does not contain a few recently added properties)?

Nevermind about the "unexplained" properties, I must be blind.

The graphs are, at present, modified by hand.  They do need to be updated.  It would be really awesome to get that completely automated, but it presents some challenges.  https://github.com/rschwiebert/RingApp/issues/59

We need to look into a contradiction above.  I found the reason that it is not right or left uniform plausible; however when I supplied that, it was deduced that it is NOT Ikeda-Nakayama.  The logic recorded said
Logic (rings) 458: \(NOT "CS" on the left\) <=== \(NOT "uniform" on the left\) AND \( "strongly connected" \).
Logic (rings) 157: \(NOT "quasi-continuous" on the left\) <=== \(NOT "CS" on the left\).
Logic (rings) 158: \(NOT "Ikeda-Nakayama" on the left\) <=== \(NOT "quasi-continuous" on the left\).


Question: How to deal with inconsistent document structures with EmbedMany/EmbedOne

I appreciate this is probably a little bit of an odd use-case, but its something I'm struggling with and would love it if someone had an idea which might help.
The issue I have is that I'm trying to integrate ODM on top of a legacy system which has documents stored where the embedded document can be either an object (in the case where there was only one) or an array (in the case where there was many).  For reasons I won't go in to, migrating or altering the legacy system which creates these documents is not an option.
I've got a document set up as so:
class Competition
{
    /**
     * @MongoDB\EmbedMany(targetDocument="TeamStanding", name="TeamStandings")
     */
    private $teamStandings = [];

    /**
     * @MongoDB\EmbedOne(targetDocument="TeamStanding", name="TeamStandings")
     */
    private $teamStanding;

Because these are both linked to the same json node TeamStandings, only one takes effect.  For reference the document structure looks something like:
{
  "TeamStandings": {
      // team standing
  }
}

or
{
  "TeamStandings": [
    {
      // team standing 1
    },
    {
      // team standing 2
    }
}

It seems like I need something like an "EmbedManyOrOne" annotation!  All and any suggestions are appreciated.

If it's possible for you to lazily migrate you could try altering what's coming from database with preLoad event/lifecycle callback:
/**
 * @MongoDB\Document
 * @MongoDB\HasLifecycleCallbacks
 */
class Competition
{
    /**
     * @MongoDB\EmbedMany(targetDocument="TeamStanding", name="TeamStandings")
     */
    private $teamStandings = [];

    /** @PreLoad */
    public function fixTeamStandings(\Doctrine\ODM\MongoDB\Event\PreLoadEventArgs $eventArgs)
    {
        $data =& $eventArgs->getData();
        if (isset($data['TeamStandings'][0]) {
            return; // looks like a list, do nothing
        }
        $data['TeamStandings'] = [ $data['TeamStandings'] ];
    }
}

Please note however that preLoad's signature is different in 1.0.x and dev-master (see #1222 for reasoning) so for this I'd advise you to use dev-master and switch to 1.1 as soon as we tag it.

@malarzm - that was exactly what I was looking for.  Thanks so much for the insight and speedy response.


add fixes for cluster-defaults setting

https://github.com/rancher/rancher/issues/15256
requires https://github.com/rancher/types/pull/561

LGTM


Remove Pipfile.lock from the top directory

you ran pipenv install in the top directory. it shouldn't be there

Done


putFile, res.resume()?

I prefer the putFile syntax, however I just am not sure what the docs mean by always do something with res or at least call res.resume().  I'm checking the data within res, but is there a method I should call to end or what exactly does res.resume() do?
Thank you

Indeed @knox/owners Is there an api of sorts or documentation on what the res looks like? What events it emits and under what circumstances?
For example, I'm trying to catch the case where a putFile operation actually failed to store the file. If I naiively say if (res) res.resume() my application reports the file saved successfully instead of issuing an error.

There seems to be no documentation on res.resume(). We're asked to call this function, without any explanation. That means it's not really possible to make an informed decision as to when to call this method.
Can somebody please improve the documentation on this function

after that message I ended up inspecting the response manually. @mrjackdavis it's an object with many fields. I encourage you to take several minutes and try to understand mostly what's in it. I ended up simply checking the res.statusCode field if it's 200 everything went fine. Else through an error https://github.com/keystonejs/keystone/pull/1052/files Also it might be useful to read http://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html

That should help people who are having issues with res. But the real problem is the lack of documentation. We should not have to inspect objects to infer the API.
It would be amazing if it was properly documented

@mrjackdavis indeed. There's a wiki here https://github.com/LearnBoost/knox/wiki like to take a shot given the aws docs? The material isn't fresh in my mind like yours ;)

It's just the standard Node.js/io.js http response object. The docs don't belong here; they already exist in io.js.

@domenic that's good to know. I didn't see that information in the readme though

Yeah, it's kind of assumed that people working in Node.js environments know how the Node.js HTTP response class works. I guess we could link to it but I mean should we also link to the docs for Number in case people get confused what the type of statusCode is?

I doubt people will need to know what the type of statusCode is. But really, res might not be a HTTP response class, it could be some sort of custom S3 response. How are they to know?

@domenic if 3 persons have had confusion and bothered to actually participate on this issue I believe a link to the docs for the res object are warranted. What's most important to a new knox user is to understand that the response is from AWS and that they should peruse those docs to understand how to interact with AWS. Yes the onus lies on Knox.

Lets add all these confused people on that list: https://github.com/LearnBoost/knox/issues/198
It would be really nice to have some boilerplate code that handles some of the use cases.

In other words: http.IncomingMessage which implements stream.Readable and there it has a resume.
https://nodejs.org/api/stream.html#stream_readable_resume

The readable.resume() method causes an explicitly paused Readable stream to resume emitting 'data' events, switching the stream into flowing mode.
The readable.resume() method can be used to fully consume the data from a stream without actually processing any of that data as illustrated in the following example:

getReadableStreamSomehow()
  .resume();
  .on('end', () => {
    console.log('Reached the end, but did not read anything.');
  });


Remove unused classes

Description
These internal classes are not used anymore and can be safely removed.
Check List

[ ] New functionality includes testing.

[x] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.
Signed-off-by: Rabi Panda<EMAIL_ADDRESS>

#4881

I can see that some of the classes are public and are not marked as opensearch.internal. Should we call this out within the breaking changes?

I can see that some of the classes are public and are not marked as opensearch.internal. Should we call this out within the breaking changes?

Sure, which one is not marked as opensearch.internal ?

I can see that some of the classes are public and are not marked as opensearch.internal. Should we call this out within the breaking changes?

Sure, which one is not marked as opensearch.internal ?

My bad. I was looking at the header docs instead of class documentation.


Native metadata storage

Currently the v3 core protocol spec assumes that array and group metadata documents will be encoded in some way (default JSON) prior to storage. This allows use of stores like file systems or cloud object stores, because they don't need to be able to do anything other than store and retrieve a sequence of bytes.
However, some stores might be able to store metadata natively, i.e., without encoding. For example, a MongoDB store would be able to store the metadata documents natively. Similarly, an SQLite store might choose to store metadata natively, making use of the JSON1 extension.
There are several potential advantages to using these native storage capabilities for metadata. For example, both MongoDB and SQLite could manage concurrent modification to the user attributes on a zarr array or group. These storage engines could also support efficient queries across all metadata in a zarr hierarchy.
How should we deal with this in the v3 core protocol spec? I.e., how do we accommodate stores with native support for metadata storage, as well as stores that require metadata to be encoded?

Hi @joshmoore, just tagging you in here to say I thought I'd raise this issue as a place to continue some of the conversations we had on the community call yesterday.

Regarding a potential MongoDB store, here's a few interesting points.
There is a MongoDB store currently implemented in zarr-python, developed by @jhamman and @nbren12. It's nice and simple and works well AFAIK. However, it doesn't have any awareness of what it's storing. I.e., it treats chunks and metadata documents all the same. For example, here's the implementation of __setitem__:
def __setitem__(self, key, value):
    value = ensure_bytes(value)
    self.collection.replace_one({'key': key},
                                {'key': key, 'value': value},
                                upsert=True)

In other words, this implementation stores everything in MongoDB as a single collection of documents, where each document is like {'key': 'foo', value: 'some_bytes'}. The value could be an encoded metadata document, or an encoded chunk, the store doesn't care.
It would be possible to consider a slightly different implementation, where the store was aware of whether it was storing metadata or chunk data, and used different storage strategies for each.
For example, it could store metadata and chunk data in separate mongo collections. It could also store metadata natively. (And it could use gridfs for storing chunk data, but that's a tangential point.)
When storing metadata, the natural thing to do would be to have a collection of metadata documents, and use the storage key as the value of the '_id' field. E.g., if I had a zarr v3 hierarchy with the following metadata on the file system:
$ tree test.zr3/meta
test.zr3/meta
└── root
    ├── arthur
    │   └── dent.array
    └── tricia
        └── mcmillan.group

...then in mongo I could store two metadata documents in a metadata collection, like:
[
{
    "_id": "meta/root/arthur/dent.array",
    "shape": [
        5,
        10
    ],
    "data_type": "<i4",
    "chunk_grid": {
        "type": "regular",
        "chunk_shape": [
            2,
            5
        ]
    },
    "chunk_memory_layout": "C",
    "compressor": {
        "codec": "https://purl.org/zarr/spec/codec/gzip/1.0",
        "configuration": {
            "level": 1
        }
    },
    "fill_value": null,
    "extensions": [],
    "attributes": {
        "question": "life",
        "answer": 42
    }
},
{
    "_id": "meta/root/tricia/mcmillan.group",
    "attributes": {
        "heart": "gold",
        "improbability": "infinite",
        "friends": ["Arthur Dent"]
    }
}
]

To retrieve a metadata document using pymongo, I could then do:
db.metadata_collection.find_one({'_id': 'meta/root/tricia/mcmillan.group'})

To modify a field within a metadata document, I could do something like:
db.metadata_collection.update_one(
    {'_id': 'meta/root/tricia/mcmillan.group'},
    {'$push': {'attributes.friends': 'Zaphod Beeblebrox'}},
    upsert=True
)

To query across all metadata documents, I could do something like:
db.metadata_collection.find({'attributes.friends': 'Arthur Dent'})

These advanced metadata update and query operations are not something you would necessarily want to expose as part of the standard Store API, but these are functionalities you could expose on a MongoDB store, or by accessing pymongo directly.
This is just meant to illustrate some possibilities. It is also meant to illustrate why I don't think the name clash problem that @joshmoore raised would occur, because here you are storing a collection of metadata documents, one for each node in the array, indexed on the storage key.

I don't think there is much in the protocol that need to change, though implementation might want to be extra careful about what API they expose to make sure concurrent mutation are possible nad non conflicting.
I think that like we discussed yesterday that is one of the difference between a Storage Backend and an Access Backend.

I strongly support the idea that encoding a native dict into json (or other encoded format) should be optional for a store, if the store has a built-in understanding of key-value documents. DynamoDB is another example.
What is needed is a mechanism for a store to declare whether it wants metadata documents to be encoded as bytes or not.

I think this could be handled as an implementation detail without a need for anything in the spec, since currently the spec does not describe any specific stores.  However, if there is a desire to describe in the spec certain store formats, such as SQLite, then the spec for that store could also state that metadata documents should be stored in a certain way.

The spec for that store could also state that metadata documents should be stored in a certain way.

+1 from my side, see the current store specs: https://zarr-specs.readthedocs.io/en/latest/stores.html

then the spec for that store could also state that metadata documents should be stored in a certain way.

I'd almost say SHOULD if not MUST. And that would be an extension, which implementations can choose to implement or not. However there's an interesting bootstrapping problem, since if the name of the extension is in the metadata, then the implementation still needs to know how to load that in order to know the specification of how the metadata will be laid out.

The key issue here is the interface between the store layer and whatever sits above it in the stack. What sort of objects is a store allowed to send and receive. Up until now, it has generally been assumed (if not stated explicitly) that values of the store's key/value system are always raw bytes, and the encoding / decoding is handled by the higher layer.
If we are not sending raw bytes to the store, then what are we sending? Abandoning the idea that stores always just deal in raw bytes creates a potentially leaky abstraction. Python dicts are a language-specific thing (although most languages have an equivalent data structure). Can we frame this is a way that is not specific to Python?
There is also the edge case of zarr.json, which, according to the spec, must be JSON.


/storage/xfer-external/upload: targetPath should include the filename

From https://firecrest-api.cscs.ch/#/Storage/post_storage_xfer_external_upload, it is not really clear that the filename of the uploaded path is actually taken from sourcePath: https://github.com/eth-cscs/firecrest/blob/1db855268bb485212c7cb9a5d5ea3528d2c8b62c/src/storage/storage.py#L219
(the method of getting the filename on this line also assumes that the sourcePath is POSIX)
I would suggest that actually it should be taken from targetPath, which should be the full path, not just directory.
sourcePath should really not even be required since it works perfectly fine without, if you don't need the curl command.
As an example, using pyfirecrest and aiohttp:
filename = "filename.txt"
file_bytes = b"hallo world"

up_obj = client.external_upload(
    client_row.machine_name, filename, "/path/on/remote"
)
params = up_obj.object_storage_data["parameters"]
async with aiohttp.ClientSession() as session:
    form = aiohttp.FormData()
    form.add_field("file", file_bytes, filename=filename)
    for key, value in params["data"].items():
        form.add_field(key, value)
    async with session.post(
        params["url"],
        data=form,
        headers=params["headers"],
        params=params["params"],
    ) as resp:
        return await resp.text()

Here, I never actually have a file on disk.

Hi @chrisjsewell, thanks, we'll address it

Hi @chrisjsewell, this should be fixed now in the our newest release https://github.com/eth-cscs/firecrest/releases/tag/v1.13.0.
Let us know if this fixes your issue,
Cheers

Hi @chrisjsewell since I don't have a confirmation from you, I will closed this issue, and if you think we still need to work on it, please feel free to re-open it.
Thanks,
Cheers


Question: How to run the pipelines/controller for sync-ing a FHIR Server to another FHIR Server? I saw that it is possible in the pipelines/batch

https://github.com/google/fhir-data-pipes/wiki/Get-Started-with-FHIR-Data-Pipes-Pipelines#hapi-fhir-jdbc-to-a-fhir-server
That is the example command to execute for instructing the nonexecutable JAR batch-bundled to sync data from a FHIR Server using FHIR Search API to another FHIR server, right?
In the case of pipelines/controller, I cannot find for example fhirSinkPath config property in the application config.

https://github.com/google/fhir-data-pipes/blob/master/pipelines/controller/config/application.yaml
https://github.com/google/fhir-data-pipes/blob/master/pipelines/controller/src/main/java/com/google/fhir/analytics/DataProperties.java#L53C4-L53C4
https://github.com/google/fhir-data-pipes/tree/master/pipelines/controller#run-the-fhir-pipelines-controller

I see, thank you. I was and still experimenting around federated architecture of FHIR servers, and currently trying to make use the fhir-data-pipes capability of syncing from one FHIR server to another
Specifically:

Sync FHIR servers of district-level organizational entities to the central FHIR server in the district
Sync the central FHIR server in the district to the central FHIR server in the nation, for example.

https://docs.google.com/presentation/d/1U0ypgBSO9JVe_7aJzM-mliEEVE5OL3AJTCRwQ9uWPCY/edit#slide=id.g297fea6dee9_0_2

https://github.com/GoogleCloudPlatform/functions-framework-java/issues/254
I am trying to run pipelines/batch uber JAR in Google Cloud Functions, I am wondering maybe need some modifications first somewhere before using the uber JAR in Google Cloud Functions?

Maybe Cloud Run fits better...

Thanks @muhammad-levi for the updates. For the federation scenario, it is probably best to try to add it to the controller and incremental pipelines as well. Otherwise you need to manage incremental updates yourself. A few notes about your comments/experiments:

In general, if you are trying the pipeline for production use, please consider using FlinkRunner as described here.
Running the pipeline on Cloud Run or Cloud Functions is probably not a great idea. The pipelines are designed to process large batches of data and their start-up time and size may not be ideal for environments like Cloud Run and Cloud Functions. We might be able to optimize the code for such scenarios though but that has not been a focus so far.

Thank you @bashir2 for the kind explanation. I see, I blindly thought the "incremental sync" behaviour is configurable in the pipelines/batch as arguments or something. So if I understand correctly from your explanation, "incremental sync" is one of the features of pipelines/controller?

Basically what the controller does is to automate the process of running the pipelines (including the incremental ones). So you can manually run the "batch" pipeline in the incremental mode using the --since feature and then run the Merger pipeline. The controller take care of these details and error handling.

@mozzy11 and @muhammad-levi, I thought it is best to continue the discussion re. this comment here in the issue (instead of the PR) for better visibility. Can you both please provide your input? I want to better understand your FHIR-to-FHIR sync scenario and whether you care about the Parquet files in the DWH or not.
BTW, I have also added this to the agenda for the dev. call tomorrow; it would be nice if you can attend too.

Thanks @bashir2 .
In our case
1). we want to Sync from facility-level point-of-care systems ie OpenMRS , OpenELIS to a centralized FHIR store . in this case we don't need Parquet files .
2. We can then  get data from the centralized FHIR store to a Parquest DWH .
in general a FHIR sink and Parquet DWH should all be optional


Authorization Code Flow with PKCE

For increased security, the code from the initial authorize call should be verified and sent in the user info call.
More info: https://auth0.com/docs/api/authentication?http#authorization-code-flow-with-pkce

This has been resolved together with the refresh token.


Add ability for organization administrators to link to community rules in-Zulip

For an open community that's using Zulip, it'd be awesome if we had a way for the organization administrator to post realm-level instructions associated with their Zulip organization.
The simplest possible implementation of this would be to just support the realm administrator entering a link, and that being displayed with a heading like "Community rules" somewhere in the UI.
This differs from the existing TERMS_OF_SERVICE (ToS) feature, because ToS is the agreement with the company that is hosting the server, which is not always the same people as whoever is running a particular Zulip organization/realm.
A fancier version would require users to accept them similar to the server's ToS, or display them super prominently the moment a user joins just after the tutorial, or something; I'm not sure what's best here.  Also, feedback appreciated on what we should call this feature (or maybe we should have them give both a title and URL?).

@timabbott I think we can close this, a new ticket has been created for this. zulip-chat-discussion

Yep, sounds good, closing this.  Thanks for getting this to be a concrete implementation (though next time, I'd probably just add the concrete notes on the existing issue, so the motivation and implementation details are in the same place).

Looks like the new issue is #4379.


New Routes are 404ing

Hey! This is a cool project, I haven't used this stack before and wanted to try it out.
started off by trying to extend passport to also have facebook login, followed this tutorial, and every time I try to hit /facebook i get a 404. not sure what's going on. RoutesExplorer shows the route being mapped, so I'm not sure what's going on.
also, do i always have to run rm -rf client/dist && docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build -V --force-recreate to start the project, or is there a shorter command? (first time using docker as well 😄)

import { Controller, Request, Get, Post, UseGuards, HttpStatus, Req, Logger } from '@nestjs/common';
import { LocalAuthGuard } from './auth/local-auth.guard';
import { AuthService } from './auth/auth.service';
import { AppService } from './app.service';
import { AuthGuard } from "@nestjs/passport";

@Controller("app")
export class AppController {
  constructor(
    private readonly authService: AuthService,
    private readonly appService: AppService,
  ) {}

  @Post('auth/login')
  @UseGuards(LocalAuthGuard)
  async login(@Request() req) {
    return this.authService.login(req.user);
  }

  @Get()
  getHello(): string {
    return 'Hello World!';
  }

  @Get('/api/migrate')
  async migrateUp(): Promise<string> {
    return await this.appService.migrateUp('up', {});
  }

  @Get("auth/facebook")
  @UseGuards(AuthGuard("facebook"))
  async facebookLogin(): Promise<any> {
    return HttpStatus.OK;
  }

  @Get('auth/facebook/callback')
  @UseGuards(AuthGuard("facebook"))
  async facebookLoginRedirect(@Request() req): Promise<any> {
    return {
      statusCode: HttpStatus.OK,
      data: req.user,
    };
  }
}

this is the code i have in app.controller.ts

no errors are being throw, just 404

figured this out: server is at localhost:8000, client is at localhost:8080


Add regexp/sort-flags rule

Thank you for your review!
I removed the option.

@ota-meshi I have a question: Do we have to worry about non-standard flags? v8 recently added an l flag. A standard JS parser will refuse to parse regexes with non-standard flags but a parser like Babel might just accept them.

@RunDevelopment Thank you for the question!
I don't think the rule needs to handle and check non-standard flags, but I want to avoid the rule crashing due to non-standard flags.
There is a test case to check it.
https://github.com/ota-meshi/eslint-plugin-regexp/blob/master/tests/lib/rules-with-unknown-flag.ts
The typescript-eslint parser accepts any unknown flags.

Thank you for the answer.
I wonder if we should make a rule to disallow non-standard flags. Will such a rule be helpful?

Sounds good! I think it helpful for TypeScript users!

Alright, I'll add it :)


versions

there's an assay version field within the config file that needs updating with every update.
dias_batch currently breaks if the config file is not exactly named as egg4_config.py, meaning that it cannot have the version in the filename, until dias_batch is updated (https://github.com/eastgenomics/dias_batch_running/blob/master/dias.py#L147).

fixed in #26


added best of luck in line 10

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #XXXXX

Hey @akhil888binoy
Thank you for opening this pull request.
This is a standard message notifying you that we've reviewed your pull request and have decided not to merge it. We would welcome future pull requests from you.
Thank you and happy coding.

yeah thanks.


Prevent koji build failures on unsupported arches

The libguestfs package is not available for power64 arches
but it is required by testcloud which is causing failures.
Make sure tmt is not built in koji on these architectures.
See also https://bugzilla.redhat.com/show_bug.cgi?id=1946532

@frantisekz, perhaps, have a look as well.


Cannot get past the permissions pop up

I am unable to get past the permissions window, I can't seem to be able to slide the permission slider. Any idea how to fix that?
Any help appreciated, thanks!

I also have the same situation
Any help, thanks!


Unknown Transaction ID with latest Pulsar Plus firmware 5.7.18

Describe the bug
Logger: custom_components.ocpp
Source: custom_components/ocpp/api.py:1051
Integration: Open Charge Point Protocol (OCPP) (documentation, issues)
First occurred: 10:07:22 AM (255 occurrences)
Last logged: 7:00:00 PM

Unknown transaction detected with id=1936029036
Unknown transaction detected with id=1652017320

To Reproduce
Steps to reproduce the behavior:

Install Pulsar Plus firmware 5.7.18
Restart HA
Restart Pulsar Plus
Wait for HA to connect

Expected behavior
Charging sessions should start and stop without errors.  Instead, these "Unknown Transaction ID" errors occur every 15 minutes until a charging session starts.  Then the charger behaves normally, but as soon as the charging session stops, the same errors start happening again, every 15 minutes with each set of Meter Values sent by the charger.
Screenshots
Here is an excerpt from the Log File showing exactly what happens...
2022-05-11 18:45:14 DEBUG (MainThread) [websockets.server] < TEXT '[2,"532646386","MeterValues",\n{\n"meterValue":...tionId":<PHONE_NUMBER>\n}]' [305 bytes]
2022-05-11 18:45:14 INFO (MainThread) [ocpp] : receive message [2,"532646386","MeterValues",
{
"meterValue": [
{
"timestamp": "2022-05-10T09:44:59Z",
"sampledValue": [
{
"format": "Raw",
"location": "Outlet",
"context": "Sample.Clock",
"measurand": "Energy.Active.Import.Register",
"unit": "Wh",
"value": "0"
}
]
}
],
"connectorId": 0,
"transactionId":<PHONE_NUMBER>
}]
2022-05-11 18:45:14 WARNING (MainThread) [custom_components.ocpp] Unknown transaction detected with id=1936029036
Desktop (please complete the following information):

OS: Windows
Browser Chrome
Version 100

Additional context
This problem occurs with both the latest version of OCPP integration v0.4.31 and also v0.4.29

Now it's almost a week later and this issue seems to have disappeared for the past several days.  I haven't changed anything so can't explain why.
Best I close this issue, at least for now.

Sadly, this issue is back...
Unknown transaction detected with id=1936029036
10:06:27 AM – (WARNING) Open Charge Point Protocol (OCPP) (custom integration) - message first occurred at May 19, 2022, 9:29:20 AM and shows up 82 times
This morning, my Pulsar Plus stopped communicating with OCPP early in the morning.  It needed to be rebooted before OCPP reconnected.  This is the second time it's happened.  Here is a log excerpt showing the sequence of events...
2022-05-20 04:39:02 DEBUG (MainThread) [websockets.server] > PING 35 e9 7d e6 [binary, 4 bytes]
2022-05-20 04:39:02 DEBUG (MainThread) [websockets.server] < PONG 35 e9 7d e6 [binary, 4 bytes]
2022-05-20 04:39:22 DEBUG (MainThread) [websockets.server] > PING f4 8f 9f c0 [binary, 4 bytes]
2022-05-20 04:40:02 DEBUG (MainThread) [websockets.server] > PING d9 93 cb c2 [binary, 4 bytes]
2022-05-20 04:40:42 DEBUG (MainThread) [websockets.server] > PING ac c9 51 bf [binary, 4 bytes]
2022-05-20 04:41:02 DEBUG (MainThread) [websockets.server] = connection is CLOSING
2022-05-20 04:41:02 DEBUG (MainThread) [websockets.server] > CLOSE 1000 (OK) [2 bytes]
2022-05-20 04:41:12 DEBUG (MainThread) [websockets.server] x half-closing TCP connection
2022-05-20 04:41:22 DEBUG (MainThread) [websockets.server] ! timed out waiting for TCP close
2022-05-20 04:41:22 DEBUG (MainThread) [websockets.server] x closing TCP connection
2022-05-20 04:41:22 DEBUG (MainThread) [websockets.server] = connection is CLOSED
2022-05-20 04:41:22 INFO (MainThread) [websockets.server] connection closed
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] = connection is CONNECTING
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] < GET / HTTP/1.1
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] < Connection: Upgrade
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] < Host: <IP_ADDRESS>:9000
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] < Sec-WebSocket-Key: 6RMnLxWhj0BL9VO3ZFsAxw==
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] < Sec-WebSocket-Protocol: ocpp1.6
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] < Sec-WebSocket-Version: 13
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] < Upgrade: websocket
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] < User-Agent: WebSocket++/0.8.2
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] > HTTP/1.1 101 Switching Protocols
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] > Upgrade: websocket
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] > Connection: Upgrade
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] > Sec-WebSocket-Accept: EGwY3Go11ZgpPRlag16JikYVWcQ=
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] > Sec-WebSocket-Protocol: ocpp1.6
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] > Date: Thu, 19 May 2022 22:05:39 GMT
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] > Server: Python/3.9 websockets/10.2
2022-05-20 10:05:39 INFO (MainThread) [websockets.server] connection open
2022-05-20 10:05:39 DEBUG (MainThread) [websockets.server] = connection is OPEN
Not sure how long I can continue using this integration if this issue persists.  I really don't want to have to reboot my charger each morning before I can use it.  Obviously the charger still has a cloud connection because restarting via the Wallbox app works.  It's just the OCPP connection which dies.

I also have this issue:

"measurand": "Energy.Active.Import.Register",
"unit": "Wh",
"value": "37645"
}
]
}
],
"connectorId": 1,
"transactionId":<PHONE_NUMBER>
}]
2022-05-21 08:12:28 WARNING (MainThread) [custom_components.ocpp] Unknown transaction detected with id=1936029036
2022-05-21 08:12:28 INFO (MainThread) [ocpp] WallboxPulsar: send [3,"37487770",{}]
2022-05-21 08:12:28 INFO (MainThread) [ocpp] WallboxPulsar: receive message [2,"1745790417","MeterValues",
{
"meterValue": [
{
"timestamp": "2022-05-19T03:59:59Z",
"sampledValue": [
{
"format": "Raw",
"location": "Outlet",
"context": "Sample.Clock",
"measurand": "Energy.Active.Import.Register",
"unit": "Wh",
"value": "37645"
}
]
}
],

Interesting that your Transaction ID is exactly the same as mine.  Due to this issue, as well as ongoing problems with frequent reconnects, I'm experimenting with another HA integration for Pulsar Plus which doesn't use OCPP...
https://github.com/hesselonline/wallbox
So far, so good.  Comms to the Wallbox Portal seems to be more reliable than OCPP, and if you install the custom components directly through HACS, you gain access to a Pause/Resume function (available when car is plugged in).  This is exactly what I've wanted from the beginning as it will allow me to suspend charging when insufficient solar power is available.

Oh thanks for this tip.
I'd spotted the identical transaction IDs too, but I haven't read the OCPP spec and didn't know whether they supposed to uniquely identify an instance of a transaction or identify a type of transaction.

Yeah, I don't know what that particular transaction ID relates to.  What I do know is that this particular error never appeared until I started using version 5.7.18 of the Pulsar Plus firmware.
Searching on Google for problems with this version pointed me to the forum for the Wallbox Portal integration here...
https://community.home-assistant.io/t/wallbox-pulsar-plus-integration/200339/238
Others are using this updated firmware with good results, apart from the indicated Charging Power sometimes dropping to zero, even though it doesn't really.  I don't know if you've noticed it, but the Wallbox App sometimes does the same.  It seems a small price to pay for all the other benefits of that alternative integration.  Time I joined up with their forum and maybe continue this discussion over there.
Many thanks to Lbbrhzn and Drc38 for their help during the time I've spent here.

Generally a purpose built integration/api for a charger will perform better and have more features than ocpp. Also unfortunately charger manufacturers continue to tweak firmware to change their ocpp messaging, often without a changelog as to what has been changed and why to help with updating the codebase. Thanks for your input @GrantKeymer

I'm having the same issue as described here. Next to that I'm experiencing frequent disconnects of OCPP with my Wallbox Pulsar Plus. However, I can still ping the device.
Logger: custom_components.ocpp
Source: custom_components/ocpp/api.py:1051
Integration: Open Charge Point Protocol (OCPP) ([documentation](https://github.com/lbbrhzn/ocpp/blob/main/README.md), [issues](https://github.com/lbbrhzn/ocpp/issues))
First occurred: 21 mei 2022 14:35:21 (413 occurrences)
Last logged: 20:12:01

    Unknown transaction detected with id=1653107553
    Unknown transaction detected with id=1936029036

I know the other integration mentioned in this thread, however be aware that this is not using local communications but rather relies on the Wallbox Cloud. Where OCPP is all local.

I'm having the same issue as described here. Next to that I'm experiencing frequent disconnects of OCPP with my Wallbox Pulsar Plus. However, I can still ping the device.

And that is exactly what I found.  Here is my history chart showing reconnects...

The red part at the end where it says '2020' is after I upgraded the Pulsar Plus firmware to v5.7.18.  For many hours, the reconnects sat at 0, but for some unexplained reason they returned for a few hours at a time and eventually were as bad as ever.  I worked out a complicated sequence to restart HA, disable OCPP, restart Pulsar Plus, then re-enable OCPP and was able to restore reconnects to almost zero for a day or so, but then something would change and I'd be back to square one.
It all got too much in the end so I thought I'd give the alternate integration a try.  Here is my charger status now...

Since I started using this integration on May 21, there has been one short period showing 'Disconnected' for about 23 minutes, but apart from that, it just shows Paused or Charging.  That is what I've been looking for 😄

I know the other integration mentioned in this thread, however be aware that this is not using local communications but rather relies on the Wallbox Cloud. Where OCPP is all local.

Yes I know it relies on the Wallbox Cloud.  However, the bizarre thing is that Wallbox Cloud is far more reliable than local OCPP!
If all else fails, I can revert to Bluetooth and the Wallbox App for emergencies.

@lbbrhzn  any ideas on what's going on with the latest Wallbox firmware?

I'm running 5.7.18 and it works fine. At most one reconnect per day.

When you say reconnect do you mean you have to manually restart the charger
via Bluetooth? Or does it reconnect automatically?
I can only reconnect it by removing power or rebooting via the app
connected via Bluetooth
Op za 4 jun. 2022 21:25 schreef lbbrhzn @.***>:

I'm running 5.7.18 and it works fine. At most one reconnect per day.
—
Reply to this email directly, view it on GitHub
https://github.com/lbbrhzn/ocpp/issues/511#issuecomment-1146672902, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AEDLMD77QVNW2UHT2DF4SWTVNOURZANCNFSM5VT4HY4Q
.
You are receiving this because you commented.Message ID:
@.***>


[skipruntime] Garbage collector and subscribe callbacks

@beauby, do you think the compiler test failures look like just stale expected results for compiler errors after your change to add full paths to source locations?


"Invalid address to set" error while importing an advanced MongoDB cluster

I get the following error when trying to import an advanced MongoDB Atlas cluster. This is using latest versions.
The code:
        var multiCluster = new Mongodbatlas.AdvancedCluster("testplm", new Mongodbatlas.AdvancedClusterArgs
        {
            ClusterType = "REPLICASET",
            MongoDbMajorVersion = "5.0",
            ProjectId = projectId,
            BackupEnabled = true,
            ReplicationSpecs =  new AdvancedClusterReplicationSpecArgs
            {
                RegionConfigs = new AdvancedClusterReplicationSpecRegionConfigArgs
                {
                    ElectableSpecs = new AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs
                    {
                        InstanceSize = "M10",
                        NodeCount = 3
                    },
                    Priority = 7,
                    ProviderName = "AZURE",
                    RegionName = "eastus"
                }
            }
        }, new CustomResourceOptions { ImportId = "cluster_id_taken_from_mongo_atlas" });

The error:
mongodbatlas:index:AdvancedCluster (testplm):
    error: Preview failed: refreshing urn:pulumi:testplm::mongo-atlas::mongodbatlas:index/advancedCluster:AdvancedCluster::testplm: 1 error occurred:
        * error setting `replication_specs` for MongoDB ClusterAdvanced (testplm-2e5eac8): Invalid address to set: []string{"replication_specs", "0", "id"}

Hey @plmaheu, thanks for reporting! I've moved this over to the repository for the provider, and the team there should be able to help.

hi @plmaheu  - I believe this is a duplicate of #126. Please feel free to re-open if this is not the case. Thank you for reporting!


setuptools 42.0.0 breaks with allow-hosts set globally

The error message is:
distutils.errors.DistutilsError: the allow-hosts option is not supported when using pip to install requirements.
However, it's not even pip being used:
python3 setup.py sdist bdist_wheel --universal
(see my next comment for why strikethrough)

I have been told that setuptools now always use pip. Though it was not clear from the message...
The issue is a non-issue, but please make sure the error reads more like "you always have pip now".

It would be nice if this could be made a little more backward-compatible though. Some users may have a single ~/.pydistutils.cfg but be using a variety of different setuptools versions on the same system (e.g. in virtualenvs), and so want an easy_install.allow_hosts entry in place for older setuptools but then set global.trusted-host to the same value in pip.conf as well.

Maybe ignore (instead of failing on) allow-hosts (possibly raising a warning) when trusted-host is set?

That would break the security afforded by using trusted-host in the first place.

I meant allow-host, and the pip trusted-host option is really not the same.

Also note the check is only done when there's a need for fetching an egg for a missing setup_requires/tests_require requirement.

So just to clarify, the use case we have (and where this is breaking for us) is a CI system where we keep local non-transparent caches of PyPI and prebuilt wheelhouses in close proximity to where builds are occurring. To accomplish this we install configuration so that various versions of both setuptools and pip will go to the nearest cache instead of going directly to PyPI. We have very minimal control over what versions of pip and setuptools get installed by the jobs run there, and can at best just instruct our users to either alter the configuration put in place by the CI system, or pin to setuptools<42, or simply try to avoid calling into setuptools at all.

So you are breaking dependency links, why even set allow_hosts?

Just to be clear, this how it works, from what I understand (feel free to correct me if I'm wrong):

pip: trusted-host can be used to allow non-HTTPS connection to a host (including if certificate validation fails). Prior to 19.0, opt-in dependency links support (using --process-dependency-links), no support for PEP 508 direct URLs. Starting with 19.0, no support for dependency links, PEP 508 direct URLs are supported for non-PyPI packages only.
setuptools: dependency links are supported, HTTPS is not enforced, all connections are validated against allow_hosts: a page won't be analyzed for valid dependency links if not whitelisted by allow_hosts, and if it is, links that are found will themselves be checked against allow_hosts. allow_hosts default is basically *.

So I don't think you should set allow_hosts, (as you could be breaking some setup.py using dependency links pointing to package versions that are not present on your mirror), and probably not set trusted-host either if you have HTTPS correctly configured on you mirror.

The use of allow_hosts was a solution for situations where we saw easy_install falling back to connecting to PyPI. We want job nodes to only connect to the mirrors and never to PyPI, though this also dates back to when we were relying on it to intentionally prevent dependency-links from working.
The use of trusted-host with pip is to deal with the fact that the mirrors we're operating in at least some locations are not (yet) providing HTTPS.
At any rate, I think the degree of complexity here has convinced us it's time to simply stop trying to support easy_install at all, and recommend our users ferret any accidental or lingering calls to it out of their dependency chains entirely.

At any rate, I think the degree of complexity here has convinced us it's time to simply stop trying to support easy_install at all, and recommend our users ferret any accidental or lingering calls to it out of their dependency chains entirely.

This is definitely for the best. One of the only things I liked about my old job's MITM proxy was the fact that I didn't configure easy_install to work with it, which meant that any time I hit a path that used easy_install, I would get a hard error, so I could root out the problem.

There are also configurations setting allow_hosts = None to prevent automatic download of dependencies altogether. It looks as though this use case is also broken.

There are also configurations setting allow_hosts = None to prevent automatic download of dependencies altogether. It looks as though this use case is also broken.

Yes, this was our use case... :(

There are also configurations setting allow_hosts = None to prevent automatic download of dependencies altogether. It looks as though this use case is also broken.

Indeed, this is our use case as well.
Also note that the pip docs still include this approach for this use case, see
https://pip.pypa.io/en/stable/reference/pip_install/#controlling-setup-requires

To have the dependency located from a local directory and not crawl PyPI, add this:
[easy_install]
allow_hosts = ''
find_links = file:///path/to/local/archives/

related: https://github.com/pypa/pip/issues/410

Anyway, for this use case (hard-failing if setuptools tries to access PyPI), this still works:
[easy_install]
index_url = ''
find_links = ''


add param bench to CI test

Summary: add param bench to CI test
Differential Revision: D30207221

https://github.com/openucx/ucc/pull/287 might solve the problem with UCX version, please wait for this PR to merge and try again, with AlltoAll as well

@kingchc why not close this PR and stick with PR 29?

@kingchc why not close this PR and stick with PR 29?

sounds good, let me close this one and go with #29


Suspected memory leak in 0.10.3 and above

Background of issue
When updgrading to version 0.10.3 a few weeks ago, we've experienced extreme memory leaks in our Node application using this library. We've verified it's this exact version of mixpanel that causes the issue. More specifically we believe it's the updrade of the dependency https-proxy-agent to 3.0.0 was the root cause, i.e. this commit
Temporary workaround
We've solved this temporarily by locking mixpanel to 0.10.2 and solving the https-proxy-agent security vulnerability by resolving it to a secure version in our package.json:point_down:
  {
   "mixpanel": "0.10.2",
  },
  "resolutions": {
    "https-proxy-agent": "^2.2.3"
  }

Questions
Can someone confirm whether our suspicions about a memory leak existing in version 0.10.3 of this library are correct? If yes, is there a maintainer that can get out  patch for this?

Thanks, we'll take a look. Out of curiosity, are you actually using a proxy (via the HTTPS_PROXY environment variable) or is it just the fact of importing https-proxy-agent that triggers the memory leak?

Thanks for your reply!
It seems now that the memory leak has returned after a few days regardless of the workaround I stated about. Something is fishy here and I think we'll have to do some further intestigation. Will come back with more information in a couple of days!

After some more tests, we suspect the problem must lie somewhere else. Will close this now.


Submit the link to the rendered webpage for grading

[x] Ensure the document is well-structured and provides a clear explanation of the thought process and function usage
[x] Submit the link to the rendered webpage for grading
[x] Develop a narrative throughout the document, including an introduction, discussion of methods, and examples

Done.


Integrate TypeScript in the backend

This will be a very lightweight integration of TypeScript, with strict mode disabled, which will give us many of the fundamental benefits of TypeScript, with very little overhead for developers :slightly_smiling_face:

Implemented in #162 :white_check_mark:


[FEATURE] The user can customize his tool and initialize it using AiServices, but not only use @Tool

Is your feature request related to a problem? Please describe.
when use a spring bean object as a tool, I can't use the AiServices.tools method, because it always relied to @Tool
Describe the solution you'd like
In class AiServices， add a new method to let user defind tools without @Tool method, just like bellow:
public AiServices tools(Map<String, ToolSpecification> toolSpecifications, Map<String, ToolExecutor> toolExecutors)
Describe alternatives you've considered
No, I need the spring bean and inject many object.
Additional context
I just try to add a method:
public AiServices<T> tools(Map<String, ToolSpecification> toolSpecifications, Map<String, ToolExecutor> toolExecutors) {
    context.toolSpecifications = new ArrayList<>();
    context.toolExecutors = new HashMap<>();

    for (Map.Entry<String, ToolSpecification> entry: toolSpecifications.entrySet()) {
        context.toolSpecifications.add(entry.getValue());
        context.toolExecutors.put(entry.getKey(), toolExecutors.get(entry.getKey()));
    }
    return this;
}

Hi @DarkDance is it still required?

No, use the @tool is ok, thanks

define a class:
public abstract class AiMethodTool {
    //none, just mark as a method tool
}

extends the class:
@Component
public class AiTools extends AiMethodTool {
     @Tool
    public Bar someMethod1(@P Foo foo) {
       // some logic
    }
     @Tool
    public Bar someMethod2(@P Foo foo) {
       // some logic
    }
}

then use spring methon to inject and use the AiServices.tools(aiTools.toArray())
@Resource
private List<AiMethodTool> aiTools;


Automatically create labels in the docs repository

Issue #124
Sync labels from file to repository

@bgrant0607, In line with discussion in https://github.com/kubernetes/kubernetes.github.io/issues/968, this would create the LGTM label as well here in the docs repository. The list is identical to the one in https://github.com/kubernetes/contrib/pull/1473

Thanks! LGTM


Document, improve Zipkin-UI routing rules

The README is available at https://github.com/openzipkin/zipkin/blob/zipkin-ui-routing/zipkin-ui/README.md
Before merging:

[x] Merge #1049, this PR is based off of that
[x] Add reasoning on the packaging format choice to README. Maybe @eirslett could explain it best?
[x] Verify zipkin-query serves index.html; I can't compile it locally ATM

Hosting methods
Initially this PR described four ways of hosting Zipkin-UI assets:

Programatically read index-routes.json and set up explicit routes based on it. Example: zipkin-web.
Pro: serves index.html for exactly the right routes. Con: needs active server component. Suggested method when
embedding in a server application.
Match all unknown paths, and instead of returning 404, route them back to index.html. Example: zipkin-query.
Pro: never need to touch the routing rules again. Con: no 404, may interfere with other route definitions.
Suggested method for static webservers.
A variation on the above: only serve index.html for paths where the last /-separated
segment doesn't have a . in it. Pros: never need to touch the routing rules again; has 404 for paths with an extension.
Con: the heuristic is not very robust.
Manually hard-code all the routes that need to serve index.html. Example: zipkin-java
Pro: doesn't interfere with other route definitions, correct 404s. Con: needs updating when new UI endpoints are
added to Zipkin-UI.

After discussion (see in-line comments), the conclusion is that we're

Dropping 1, because let's embrace that we're a single-page app.
Dropping 2, because it's an inferior version of 3 (option 3 is directly supported, for example, by Finatra)
Dropping 4, because it's a temporary hack in zipkin-java that'll go away, let's not propagate it.

verified everything works in this repo!

closed via e01f942f7b3df548f65b272582cbf5470580bb14
nice job


resolve topic: Add is:resolved search keyword / filtering support

Now that we have #11154 (resolving a topic) implemented, it'd be nice to be able to limit a view to just unresolved topics.  Probably as part of this, we'll want to add a is:resolved search keyword (one can also do -is:resolved).
So if you wanted to look at unresolved topics in a stream, you'd search for stream:foo -is:resolved.
I think for managing resolved topics to really be nice, we'll want to add some custom code to also have topics shown in the left sidebar also be affected by the keyword (or possibly some other UI approach).  But this issue should be used to track just the work for extending the message search backend and UI.
Tagging as a priority, since this is a new feature that we'd like to complete while the "resolve topic" feature has momentum.

@zulipbot claim


[Enhancement] Cancel queries when BE is crashed

What type of PR is this：

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Closes #11309.
Problem Summary(Required) ：

When BE#1 is crashed, there will be two possible situations as follows:

Query will be cancelled soon, if another BE#2 sends packages to BE#1.
Query will be blocked until timeout, if no one sends packages to BE#1 and another BE#2 wait to receive data from BE#1.

We could add a timer scheduler to check whether a BE becomes dead, and cancel queries related to it.
Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] I have added user document for my new feature or new function

run starrocks_admit_test

run starrocks_fe_unittest

run starrocks_fe_unittest

run starrocks_fe_unittest

[FE PR Coverage Check]
:disappointed: fail : 15 / 56 (26.79%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/CoordinatorScheduler.java
0
33
00.00%
[30, 33, 39, 40, 41, 42, 45, 50, 52, 54, 57, 58, 59, 61, 63, 64, 66, 67, 68, 69, 70, 71, 74, 76, 77, 78, 79, 80, 81, 82, 84, 86, 87]

:large_blue_circle:
com/starrocks/qe/QeProcessorImpl.java
0
3
00.00%
[69, 70, 71]

:large_blue_circle:
com/starrocks/StarRocksFE.java
0
1
00.00%
[145]

:large_blue_circle:
com/starrocks/qe/Coordinator.java
13
17
76.47%
[422, 1724, 1867, 3266]

:large_blue_circle:
com/starrocks/qe/HDFSBackendSelector.java
2
2
100.00%
[]

[FE PR Coverage Check]
:heart_eyes: pass : 45 / 56 (80.36%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/QeProcessorImpl.java
0
3
00.00%
[69, 70, 71]

:large_blue_circle:
com/starrocks/StarRocksFE.java
0
1
00.00%
[145]

:large_blue_circle:
com/starrocks/qe/Coordinator.java
13
17
76.47%
[422, 1724, 1867, 3266]

:large_blue_circle:
com/starrocks/qe/CoordinatorScheduler.java
29
32
90.62%
[61, 62, 63]

:large_blue_circle:
com/starrocks/system/ComputeNode.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/qe/HDFSBackendSelector.java
2
2
100.00%
[]

run starrocks_fe_unittest

[FE PR Coverage Check]
:heart_eyes: pass : 45 / 56 (80.36%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/QeProcessorImpl.java
0
3
00.00%
[69, 70, 71]

:large_blue_circle:
com/starrocks/StarRocksFE.java
0
1
00.00%
[145]

:large_blue_circle:
com/starrocks/qe/Coordinator.java
13
17
76.47%
[422, 1724, 1867, 3266]

:large_blue_circle:
com/starrocks/qe/CoordinatorMonitor.java
29
32
90.62%
[61, 62, 63]

:large_blue_circle:
com/starrocks/system/ComputeNode.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/qe/HDFSBackendSelector.java
2
2
100.00%
[]

[FE PR Coverage Check]
:heart_eyes: pass : 48 / 59 (81.36%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/QeProcessorImpl.java
0
3
00.00%
[69, 70, 71]

:large_blue_circle:
com/starrocks/StarRocksFE.java
0
1
00.00%
[145]

:large_blue_circle:
com/starrocks/qe/Coordinator.java
14
18
77.78%
[422, 1725, 1868, 3267]

:large_blue_circle:
com/starrocks/qe/CoordinatorMonitor.java
29
32
90.62%
[61, 62, 63]

:large_blue_circle:
com/starrocks/common/Status.java
2
2
100.00%
[]

:large_blue_circle:
com/starrocks/system/ComputeNode.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/qe/HDFSBackendSelector.java
2
2
100.00%
[]

run starrocks_fe_unittest

[FE PR Coverage Check]
:heart_eyes: pass : 49 / 60 (81.67%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/QeProcessorImpl.java
0
3
00.00%
[69, 70, 71]

:large_blue_circle:
com/starrocks/StarRocksFE.java
0
1
00.00%
[145]

:large_blue_circle:
com/starrocks/qe/Coordinator.java
14
18
77.78%
[422, 1725, 1868, 3267]

:large_blue_circle:
com/starrocks/qe/CoordinatorMonitor.java
30
33
90.91%
[61, 62, 63]

:large_blue_circle:
com/starrocks/common/Status.java
2
2
100.00%
[]

:large_blue_circle:
com/starrocks/system/ComputeNode.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/qe/HDFSBackendSelector.java
2
2
100.00%
[]

run starrocks_admit_test


GridFactory should be reusable

Description
Sometimes we need to change some grid handling during creation and it can be reached by DataGrid attribute and its great.
And you can define your own factory in this attribute and its great too.
BUT
I would like to change some small part of your basic \Spiral\DataGrid\GridFactory and I would like to extend it and override only create method
BUT AGAIN
In you GridFactory you work in methods only with private properties and I should duplicate whole class for my factory
AND IT IS BAD APPROACH
If your class is not finalized and it can works as parent class why did you use private access?
Could you change it to protected?
It can be actual for any not-finalized classes by OOP...

As it was discussed in chat it would be good to fix ability to use custom factory by fixing makeFactory method:
if (!empty($schema['factory']) && $this->container->has($schema['factory'])) {
   $factory = $this->container->get($schema['factory']);
   if ($factory instanceof GridFactoryInterface) {
      return $factory;
   }
}

$this->container->has can return false for non defined strictly CustomGrid class

Already removed $this-container->has(...):
In the old version of Cycle Bridge:
https://github.com/spiral/cycle-bridge/pull/49
In the DataGrid Bridge for SF 3.0:
https://github.com/spiral/data-grid-bridge/pull/12


Mix index files.

Hello everyone, during the mixing of two pth models, is it feasible to combine two index files also or what is the deal?

It blends the features. So if one has noise and the other has a hum, you would hear a slightly noise hum. If you have voices with heavy audio filters and blend them with the index of a normal voice, the audio filter would carry over. This lets you apply affects or change accents, etc.


unit test on HttpLayer at proxy.py

HttpLayer is one of the core of microProxy.
So write unit test on it is important and we should work on it as soon as possible.
Relative work on it should have:

write the unit test code
refactor for more testability

tornado iostream has a parameter  called is_partial, which may be useful.

Just curious, is it possible to change the callback style into the yielding style in HTTPLayer.

We could try, but we should consider that in yielding style, could we set up expired time, and how we handle the timeout event in yielding style.

And one more things is that we should separate the HTTPLayer from proxy.py into other files or just put it in http.py.

Where the class should be defined, and how to name it is very important.
If we put HTTPLayer into http.py, should we also put TLSLayer into http.py?
And HTTPLayer, TLSLayer, DirectServer had same method and all is used to handle the streaming from client(browser), why some named Layer, some named Server? Is their any diifferent?

I have no idea about this, just provide my concern and we could discuss about this!

HTTPLayer, TLSLayer, DirectServer had same method and all is used to handle the streaming from client(browser), why some named Layer, some named Server? Is their any diifferent?

Good question. Basically, the above three class are doing the same things, at least for now.
The reason I named HTTPLayer and TLSLayer with a layer behind is that if we need to support tls protocol, he TLSLayer may need to  sit under HTTPLayer. This is basically how mitmproxy handle this part.
| SocksHander| --> stream --> | TLSLayer (decrypt) | --> data --> HTTPLayer (parser http)
So, if we are going to refactor the HTTPLayer, we need to consider that in the future we may have to add TLS support and the new design should be able to apply this change without any big effort.
I do believe that the above three class should follow the same name or inherit the same base class though.

As for the yielding part, we can handle the connection timeout exception by using try and catch.
The real question is  the connection timeout period.
Currently, the connection timeout period is using the system default, which is a very long period.  I will start survey how to change the connection timeout period when I have freetime.

Find a solution. Using tornado.gen.with_timeout.
Example can be as follow,
yield tornado.gen.with_timeout(timedelta(seconds=10),  dest_stream.connect(addr_info))

http://www.tornadoweb.org/en/stable/gen.html
http://stackoverflow.com/questions/30574012/tornado-future-result-after-timeout

got it, I think there is no problem on timeout control! Thanks!


Linked editing not working for qualified names

Let me know if I misunderstood this bullet point but I do not think linked editing is working for qualified names.
https://user-images.githubusercontent.com/26030610/234368542-5030060f-f5cb-41af-9aa9-293fd87d20fd.mov
Testing #180769

It looks like that tag has already been closed What if you remove the /?

yep that was the reason, looks good now thanks!


pmdb/23441: Information tooltip added for Icon field on configuration screen.

Descriptions:
Information tooltip added for Icon field on configuration screen
Screenshot:

Moved icon field selection after picklist items on config screen.
Screenshot:


RegisterTaskOnAccept is ignored

Using the code below, when the user tries to save the task, they do NOT get prompted for user id & password.  No Author property is set for the task, and the created task is set to 'Run only when user is loggen on'.  What could be causing the library to ignore the editorForm.RegisterTaskOnAccept = True ?
Dim editorForm As New TaskEditDialog()
editorForm.Title = "Create New Task"
editorForm.Editable = True
editorForm.RegisterTaskOnAccept = True
editorForm.Initialize(ts)
editorForm.ShowDialog()

Originally posted: 2015-12-28T12:02:13

That should work. Try the following and let me know if this changes anything:
Dim regTask As Task = Nothing
Dim editorForm As New TaskEditDialog(ts, Nothing, True, True) With {.Title = "Create New Task"}
If editorForm.ShowDialog() = Windows.Forms.DialogResult.OK Then
regTask = editorForm.Task
End If
Originally posted: 2015-12-29T12:50:31

Same exact behavior using the alternative code you provided above.
I suspect the dialog is not recognizing that the radio button for 'Run whether user is logged or not' was selected.
Originally posted: 2015-12-29T15:14:31

I see now what you were asking. I found the bug and it will be corrected in the next release (2.5.10). Until then, you can use this as a work around:
Dim regTask As Task = Nothing
Dim td As TaskDefinition = ts.NewTask()
td.Principal.LogonType = LogonType.InteractiveToken
Dim editorForm As New TaskEditDialog(ts, td, True, True) With {.Title = "Create New Task"}
If editorForm.ShowDialog() = Windows.Forms.DialogResult.OK Then
regTask = editorForm.Task
End If
Originally posted: 2015-12-30T00:38:14

The workaround works if you:
a) change TaskEditDialog(ts, td, True, True) to TaskEditDialog(ts, td, True, False)
b) take care of changing the logon type (to 'Password'), prompting the user for logon info, and registering the task.
New Problem: that process works but the library reports a blank td.RegistrationInfo.Author even though the editor shows author information.
I've seen that happen with other scenarios.  Something is wrong with td.RegistrationInfo.Author for library-created tasks.
Originally posted: 2015-12-30T07:27:41

Version 2.5.10 indeed fixes the lack of registration issue.
The Author info is still reported as blank.
Originally posted: 2015-12-30T10:17:23


yara: 4.1.3 -> 4.2.0-rc1

Motivation for this change
https://nvd.nist.gov/vuln/detail/CVE-2021-45429
Fixes #160720
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 161127 run on x86_64-linux 1

21 packages built:

apkid
arch-install-scripts
bash-preexec
bats
dgoss
python310Packages.karton-autoit-ripper
python310Packages.karton-config-extractor
python310Packages.karton-yaramatcher
python310Packages.malduck
python310Packages.yara-python
python39Packages.karton-autoit-ripper
python39Packages.karton-config-extractor
python39Packages.karton-yaramatcher
python39Packages.malduck
python39Packages.yara-python
shunit2
spyre
stacs
volatility3
yadm
yara

Result of nixpkgs-review pr 161127 run on x86_64-darwin 1

6 packages failed to build:

python310Packages.karton-autoit-ripper
python310Packages.karton-config-extractor
python310Packages.karton-yaramatcher
python310Packages.malduck
python310Packages.yara-python
stacs

13 packages built:

apkid
bash-preexec
bats
python39Packages.karton-autoit-ripper
python39Packages.karton-config-extractor
python39Packages.karton-yaramatcher
python39Packages.malduck
python39Packages.yara-python
shunit2
spyre
volatility3
yadm
yara

AFAIK the python310 failures are an unrelated darwin issue


Input parameter 'redirect_uri' not valid

I am following the guide but when trying to login with the Microsoft account I am getting
"invalid_request: The provided value for the input parameter 'redirect_uri' is not valid. The expected value is a URI which matches a redirect URI registered for this client application."
I added http://localhost to the redirect URIs
The submitted url contains the correct uri
https://login.live.com/oauth20_authorize.srf?....&redirect_uri=http%3A%2F%2Flocalhost%3A56183&....

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 485cc056-932a-2383-55b4-b93a223d22e7
Version Independent ID: 814489ea-74c8-3e4b-6b1c-95afdc7e0476
Content: Add authentication to your Windows (WPF) app
Content Source: articles/mobile-apps/azure-mobile-apps/quickstarts/wpf/authentication.md
Service: mobile-services
GitHub Login: @adrianhall
Microsoft Alias: adhal

The redirect_uri you are sending is wrong - it's http://localhost:56183 instead of http://localhost - it needs to match exactly.

Closing off older issues with no feedback.  The instructions are verified correct.
#please-close


Run script before MDX Bundler runs

mdx-bundler version: ^5.1.0
node version: v16.3.0
npm version: 7.15.1

Relevant code or config
I have a gif-to-png.js script that converts GIFs to PNG in development in the src/_posts directory. As to why I use it, I have written about it here.
TL;DR I'm creating a GIF Player that shows static PNG images when someone pauses a GIF & play button to play the GIF because I hate to see GIF loop while reading text.
gif-to-png.js
const fs = require('fs')
const path = require('path')
const sharp = require('sharp')
const fg = require('fast-glob')

const ROOT_PATH = process.cwd()
const POSTS_PATH = path.join(ROOT_PATH, 'src/_posts')

function* walkSync(dir) {
	const files = fs.readdirSync(dir, { withFileTypes: true })
	for (let i = 0; i < files.length; i++) {
		if (files[i].isDirectory()) {
			yield* walkSync(path.join(dir, files[i].name))
		} else {
			yield path.join(dir, files[i].name)
		}
	}
}

const gifToPng = async () => {
	try {
		for (let [i, file] of [...walkSync(POSTS_PATH)].entries()) {
			const extname = path.extname(file)
			if (extname === '.gif') {
				const dirname = path.dirname(file)
				const png = path.resolve(dirname, path.basename(file).replace('.gif', '.png'))
				await sharp(file).png().toFile(png)
			}
		}
	} catch (e) {
		console.error('Error thrown:', e)
	}
}

gifToPng()

What you did:
This makes a copy of PNG in src/_posts folder appropriately by converting the GIF file.
What happened:
It doesn't copy the PNG file to the appropriate location as mdx-bundler probably runs earlier than this.
Reproduction repository:
https://github.com/deadcoder0904/mdx-bundler-gif-png-error
Problem description:
I just want those PNG files in public/ directory. Is there any way to run the scripts before mdx-bundler?
Suggested solution:
No idea. I did try running the script in public directory instead of src/_posts so it renames there but it didn't work.

Looking at it this seems like something an esbuild plugin could do. You could then pass the plugin into mdx-bundler so it can generate the file at the same time.

@Arcath just to be clear, do I have to write an esbuild-plugin or remark / rehype plugin?
I already converted the code:
import fs from 'fs'
import path from 'path'
import sharp from 'sharp'
import { Plugin } from 'esbuild'

const ROOT_PATH = process.cwd()
const POSTS_PATH = path.join(ROOT_PATH, 'public')

function* walkSync(dir: fs.PathLike): any {
	const files = fs.readdirSync(dir, { withFileTypes: true })
	for (let i = 0; i < files.length; i++) {
		if (files[i].isDirectory()) {
			yield* walkSync(path.join(dir as string, files[i].name))
		} else {
			yield path.join(dir as string, files[i].name)
		}
	}
}

const gifToPng = async () => {
	try {
		for (let [i, file] of [...walkSync(POSTS_PATH)].entries()) {
			const extname = path.extname(file)
			if (extname === '.gif') {
				console.log(file)
				const dirname = path.dirname(file)
				const png = path.resolve(dirname, path.basename(file).replace('.gif', '.png'))
				await sharp(file).png().toFile(png)
			}
		}
	} catch (e) {
		console.error('Error thrown:', e)
	}
}

export const gifToPngPlugin = (): Plugin => ({
	name: 'gifToPng',
	setup(build) {
		build.onLoad({ filter: /\.gif$/ }, async (args) => {
			const fileName = path.basename(args.path, '.gif')
			let contents = await fs.promises.readFile(args.path, 'utf8')
			console.log({ fileName, contents })

			return {
				contents,
				loader: 'file',
			}
		})
	},
})

And I'm trying to write the plugin but getting an error:

❯ npx esbuild .\src\utils\gif-to-png.ts --platform=node --bundle
node_modules/sharp/lib/utility.js:7:22: error: No loader is configured for ".node" files: node_modules/sharp/build/Release/sharp.node
7 │ const sharp = require('../build/Release/sharp.node');
╵                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Not sure if ESBuild can run extensions with .node?

it would need to be a esbuild plugin that has a filter of *.gif and then applies your script to it.

@Arcath i've already read it. that's where I got this issue from. the issue isn't .gif but of .node as sharp uses that in my code.
see .gif exists in my script but the first line of code is require('sharp') which fails because it internally calls .node. hence, my question, can ESBuild run extensions with .node?

oops, found this :)


Add pytest-runner as a prereq to pip installing python-twitter

While I was setting up the dev environment, pip failed to install
python-twitter: https://github.com/bear/python-twitter/issues/406
This was fixed by manually installing pytest-runner before trying to
install python-twitter, for both the python and python3 virtualenvs.

Automated message from Dropbox CLA bot
@csvoss, thanks for the pull request! It looks like you haven't yet signed the Dropbox CLA. Please sign it here.

Automated message from Dropbox CLA bot
@csvoss, thanks for signing the CLA!

I merged this yesterday, but forgot to close the PR.  Thanks @csvoss!


Dashboard + Turbine for multiple services on the same server

Hello again Ben,
I used the Dashboard to monitor a single service successfully. I tried to use Turbine in order to aggregate Hystrix metrics from multiple services residing on the same server, but this seems to be impossible.
So, let me clear the things a little bit:
The architecture of the relevant Netflix implementation, which is reflected in the Dashboard images presented all over the Dashboard and Turbine Wiki, essentially implies that each service resides on its own server. In order to aggregate Hystrix metrics from all services (each defining its own set of Hystrix commands), all services should generate the metrics stream on the same port (e.g. 8080) which is configured in Turbine. The question is: can Turbine aggregate different sets of Hystrix commands metrics this way?
So, if i have 5 different services, each with different sets of Hystrix commands, located in 5 different servers, then can i have a Dashboard where i could see the union of all Hystrix commands, using Turbine to define a Default cluster of these instances?
What happens when the same Hystrix Command is defined in different hosts?

@codependent Did you ever find a solution to your issue with 2 servers? I'm having pretty much the same issue and can't seem to figure out what the problem is.
Thanks!

@seh13 Yes, it was pretty straightforward. I don't have access to the code right now, I'll post it here tomorrow.

Hi seh13, this is my cfg:
#################################
# Turbine
#################################
turbine.aggregator.clusterConfig=myCluster
turbine.instanceUrlSuffix.myCluster=/hystrix.stream

#################################
# ConfigPropertyBasedInstanceDiscovery
# (config.properties-based impl only)
#################################
turbine.ConfigPropertyBasedDiscovery.myCluster.instances=domain1:9080/app1,domain1:9080/app2

You can keep adding domains+app to turbine.ConfigPropertyBasedDiscovery.myCluster.instances
Hope this helps

@codependent Great, that would be much appreciated!

Hi,
First time I'm working with hystrix turbine. I'm able to access one service on turbine successfully, but I'm unable to access multiple services on same host with different ports. I have configured my turbine yml file as below , I have 2 microservices, 1 eureka and 1 turbine server.
turbine:
combineHostPort: true
appConfig: FIRSTSPRINGBOOTAPP,FIRSTRESTAPP
aggregator:
clusterConfig: myCluster
instanceUrlSuffix:
myCluster: /hystrix.stream
ConfigPropertyBasedDiscovery:
myCluster:
instances: http://ushydssappati1:8091/FIRSTSPRINGBOOTAPP,http://ushydssappati1:8095/FIRSTRESTAPP
when I run my turbine service, my console shows,
2016-07-08 12:23:54.808  INFO 2460 --- [        Timer-0] o.s.c.n.turbine.EurekaInstanceDiscovery  : Fetching instance list for apps: [FIRSTSPRINGBOOTAPP, FIRSTRESTAPP]
2016-07-08 12:23:54.808  INFO 2460 --- [        Timer-0] o.s.c.n.turbine.EurekaInstanceDiscovery  : Fetching instances for app: FIRSTSPRINGBOOTAPP
2016-07-08 12:23:54.808  INFO 2460 --- [        Timer-0] o.s.c.n.turbine.EurekaInstanceDiscovery  : Received instance list for app: FIRSTSPRINGBOOTAPP, size=1
2016-07-08 12:23:54.824  INFO 2460 --- [        Timer-0] o.s.c.n.turbine.EurekaInstanceDiscovery  : Fetching instances for app: FIRSTRESTAPP
2016-07-08 12:23:54.824  INFO 2460 --- [        Timer-0] o.s.c.n.turbine.EurekaInstanceDiscovery  : Received instance list for app: FIRSTRESTAPP, size=1
2016-07-08 12:23:54.825  INFO 2460 --- [        Timer-0] c.n.t.discovery.InstanceObservable       : Retrieved hosts from InstanceDiscovery: 2
2016-07-08 12:23:54.825  INFO 2460 --- [        Timer-0] c.n.t.discovery.InstanceObservable       : Found hosts that have been previously terminated: 0
2016-07-08 12:23:54.826  INFO 2460 --- [        Timer-0] c.n.t.discovery.InstanceObservable       : Hosts up:2, hosts down: 0
but If I hit the URL: host:turbine_port/turbine.stream?cluster=myCluster, I  couldn't see anything on browser. Could anybody please help me to achieve this. I'm not understanding that what I'm missing and where I'm missing.
Warm Regards,
Swetha

Sorry for commenting here but I am facing kind of similar issue. As We have single service on same host but different port . so I am using consul discovery client here where I am able to get two different instances for this service.
But when we fetch this from
public TurbineDataMonitor findMonitor(String name) {
return registry.get(name);
}
it return only single monitor and I am not able to see the aggregated view using same cluster name for these two instances. Can somebody help how to make this happen ?


Allow global flags after command

This is just a suggestion, but to me it seems logical to allow global flags after the command as well, not only before it.
For example, if you have a verbose flag, -v:
myapp -v server
vs.
myapp server -v
To me the second one does visually make more sense. Are there cases when this is a bad idea (and therefore the reason to why this is not how it is currently implemented)?

Hi @fgblomqvist, I agree with you completely. Unfortunately this is baggage that we carry from using the Go stdlib flag library (which stops parsing the moment it hits a non-flag) so we cannot support it unless we were to rip that out and do our own flag parsing (which we have discussed a bit, but is a non-trivial effort). You can see some more conversation about this in #355.
I'll leave this open as a future enhancement though!

Okay, I see.

The core flag package is BSD licensed, so perhaps the easiest "fix" would be to include a copy of said package, modified to support intermixed arguments/flags. This has the benefit of keeping the API identical, making the integration simpler than a rewrite or using a different 3rd-party package. Does this sound reasonable?

@noffle mmm, that is not a bad idea given the tradeoffs. I'll try to give that a shot in the near future.
Thank you for the suggestion!

Also interested in this.

Bump up for this one too !
But in the meantime, @jszwedko : Thank you so far for the good job you've done ;)

wondering if this issue is still up for a fix :)

Given that this is from last year, I think I'm comfortable closing it 🙂 feel free to re-open / open a new issue / comment in support if there's still interest here!

Oh!!! I just noticed there's 22 👍s. Re-opening now 📈

This may have been fixed by v2? I'd appreciate if someone could investigate that 🙏
🔗 => https://github.com/urfave/cli/releases/tag/v2.0.0

I loved cli library before but this issue of not able to mix arguments and flags is ridiculous.
To make things worse, certain earlier version used a reordering hack (which I kind of liked but recognizing that's creating other bugs) but were later reverted, causing behavior to vary greatly between versions. I understand that there are bugs regarding this both ways, but the Unix-y default should always be allowing mixing.
I had to track down bugs where cli are suddenly not able to extract flag values in a critical software where earlier versions worked but not anymore, and without any warnings or errors -

I don't think that this was fixed in v2, I also don't think that "local" flags are supported after the first non-flag

I don't think that this was fixed in v2

Then this issue is available for anyone to work on 👍

bump

bump
https://github.com/ipfs/ipget/blob/186b8ebaadd38ac340a7e07d59fa271732a8ec53/main.go#L111

https://github.com/ipfs/ipget/blob/186b8ebaadd38ac340a7e07d59fa271732a8ec53/main.go#L111

This is a great idea! We should definitely have this

This is a great idea! We should definitely have this

Okay this feature is confirmed for v3. I'd like more feedback on this. Say we define a flag for top level command
./app -v cmd1
./app cmd1 -v
```
We expect both of these to behave the same. Does this work for subcmd as well i.e if a flag is defined for a cmd it should be available for subcmds as well ?

./app cmd1 --foo subcmd1
./app cmd1 subcmd1 --foo

However

./app --foo cmd1 subcmd1
shouldnt work.

Do we want to specifically list flags as "global" so that only those can be strewn throughout the cmdline. So for example if we define two flags f1 and f2 with f2 marked as "global"

./app cmd1 subcmd1 --f2
./app cmd1 --f2 subcmd1
./app --f2 cmd1 subcmd1
should all work but not

./app cmd1 subcmd1 --f1
./app cmd1 --f1 subcmd1


[WIP] Reimplement varfilter module

Testing out a complete rewrite of the varfilter module. Should drastically reduce memory requirements. Run time comparison in progress.

The difference in runtime is tremendous: 3 minutes vs 30+ minutes before.
I don't know if the biggest factor is the difference in building vs querying an interval tree, or Python's object overhead, or what. In any case, storing a much smaller amount of data in memory and streaming the "big" data is always the better idea and should have been my first thought.


Plunker Demo Broken

I was not able to use the plunker demo published in readme

I have the same problem

Updated the plunkr demo, should be working.


Feat add config visual track timeline movement

Allow user to choose if timeline movement can be achieved alongside visual track mode.

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

I'm looking at this again and I realized this changes the default behavior. Would you prefer if this config option is set to false instead of true as default?

That's alright, I think this is a better default

Awesome


Do not use /tmp directory for persistent storage

Problem
chip-tool uses /tmp as a directory for persistent storage, see examples/chip-tool/config/PersistentStorage.cpp.
This is not good since by definition the contents of /tmp are not persistent.
Proposed Solution
Use anything else but not /tmp.

@vivien-apple might know, though he might also be off for the rest of the week....
In any case, we could try putting this somewhere else; the question is where.  ${HOME}/.matter or something?

I would argue that the location of the settings should never be assumed to have a default, and a command-line argument should have the path for the storage root, on hosts. The test scripts that run the different tools should pass-in appropriate values. The reason to avoid a default is that defaults just work if a single "thing" is used, or if we make strong assumption about how the storage is done, such that collisions of stored state is not possible.

/tmp honestly sounds right to me since we just base64 encoding C structs...
Without adopting a backwards compatible storage format, long term persistence is impossible anyway.

(the current format is not even ABI stable so it's really quite problematic)

Any hard-coded location is painful when using multiple devices.

Based on input a more flexible solution is needed that also allows multi controller and multi device support. Basically adding some command line options. Closing this and opening https://github.com/project-chip/connectedhomeip/issues/9818


CI for Node

Gone to GitHub Actions tab and,

[x] Choose the template Node.js workflow
[x] Commit file in new branch
[x] Create a pull request

Game
✕ Initializes with two players (4 ms)
✓ Initializes with an empty board
✕ Starts the game with a random player (1 ms)
turn
✓ Inserts an 'X' into the top center
✓ Inserts an 'X' into the top left (1 ms)
nextPlayer
✕ Sets the current player to be whoever it is not (1 ms)
hasWinner
✓ Wins if any row is filled (1 ms)
✓ Wins if any column is filled
✓ Wins if down-left diagonal is filled (1 ms)
✓ Wins if up-right diagonal is filled


[FLINK-10394][build] Remove legacy mode from Travis build matrix

What is the purpose of the change
This PR is part of the removal of Flink's legacy mode.
Remove legacy mode from Travis build matrix.
Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

This pull request seems not a trivial removal, it introduces some tests that don't be there before. Is it intended? (in former, we don't require new mode running on hadoop 2.4.x but now we require it.)

LGTM 👍

@TisonKun, yes we want to support Hadoop 2.4.x with the new mode as well. We just have not tested it because we needed to keep the legacy mode tested and did not want to explode the build/test time.

Thanks for the review @StefanRRichter and @TisonKun. Merging this PR.

@tillrohrmann thanks for the clarification


Add helper functions and use them in DescriptorSet class

Kill almost all of the maps in DescriptorSet class and use utility functions to look-up data blocks from generic layer_data ptr.
Also migrated a few of the maps to use unique_ptrs which kills some delete calls and unifies the helper function interfaces.

:+1:

cherry-picked and pushed to master