Diablo optimization & Killing Trash in Chaos Sancturay

This is now the working version for tweaking Hammerdin & Implementing CS trash.

removed CS from all char *.py for all chars execept hammerdin
moved seal functions from chars back to diablo.py and simplified to one single function for all seals
simplified layout checks to one single function for all seals
added seal_layout to sealboss functions in char.py
added 3x cs_kill_trash calls in diablo.py before the seal openin & added location to cs_kill_trash functions to allow other classes in future to use these for clearing the seals and trash according to their own attack patterns.
correspondingly, added pickit to hammerdin.py
moved all pathing instructions from diablo.py to hammerdin.py (except for calibration at seals & clear trash)
added option in params cs_town_visits = 1 to buy pots & stash items between clearing seals, called whenever pentagram is visited.
added a check for shrines if teleporting > 30 times. Doesnt work though :/

not ready yet to be pushed to master - more my working version. will message here when its sufficiently stable & done :)

Success rate to reach Diablo increased from 75% to >90%, based on 250 runs.

Game duration decreased to approx. 4.5 minutes.

now tweaking clear_trash: success rate 66%, game duration 6.5 minutes.

info.log
95 runs, 36 fails
This was using 489508d commit.

info.log
95 runs, 36 fails This was using [489508d]

(https://github.com/aeon0/botty/pull/460/commits/489508d1a4eedea4d90356642874a32baab7509c) commit.
Thanks for your feedback! I parsed your log and realized B2-U has a low proability of success, this is the main reason for not reaching diablo with higher success rate. I will investigate and tweak B2-U - other users also reported weaknesses there. At a first glance it seems like layout-checks are not working well there right now.
|                          Run Diablo                           | 100.0 | 100% |
|                  Waiting for Diablo to spawn                  | 80.0  | 62%  |
| A1-L: finished seal & calibrated at PENTAGRAM | 55.0 | 96%  |
| A2-Y: finished seal & calibrated at PENTAGRAM | 66.0 | 96%  |
| B1-S: finished seal & calibrated at PENTAGRAM | 45.0 | 92%  |
| B2-U: finished seal & calibrated at PENTAGRAM | 49.0 | 68%  |
| C1-F: finished seal & calibrated at PENTAGRAM | 45.0 | 94%  |
| C2-G: finished seal & calibrated at PENTAGRAM | 40.0 | 89%  |
steve_info_log_parsed.txt

Log attached from b7674b9
info.log
Greatly increased success rate.

Using a48364c log attached
Great improvements

Using a48364c log attached Great improvements

no log :(

My bad
info.log

Ready for merging to Master.
Brings the success rate for killing Diablo to >85% when only clearing seals (<5 minutes run duration), and to about >70% when clearing most trash packs (<7 minute run duration).

| A1-L: finished seal & calibrated  | 33 | 100% |
| A2-Y: finished seal & calibrated  | 26 | 100% |
| B1-S: finished seal & calibrated  | 30 | 97%  |
| B2-U: finished seal & calibrated  | 26 | 93%  |
| C1-F: finished seal & calibrated  | 33 | 94%  |
| C2-G: finished seal & calibrated  | 14 | 67%  |
Strong performance except last seal. Issues opening Boss seal. Will investigate.

I listed all files in assets with the name DIA_* and compared  with a list of all strings containing DIA_ inside of quotes within the src directory. See the diff here: https://www.diffchecker.com/1ktmTnSZ

all unused files deleted. Ready to merge with Master.


Bump csi-provisioner to v2.1.1

Bumps the default version of the CSI provisioner, which we fork: https://github.com/storageos/external-provisioner/tree/v2.1.1-patched
v2.1.1 requires k8s 1.17+.

v2.1.2 was release 2 days ago with a minor logging change https://github.com/kubernetes-csi/external-provisioner/compare/v2.1.1...v2.1.2 .

v2.1.2 was release 2 days ago with a minor logging change<EMAIL_ADDRESS>.

I think it's ok to leave this for the next update.


Pseudopotential repositories

Improved pseudopotential management is going to be very important for ASE and other interfaces to work nicely.


unable to read DS18B20 temperature while connected to wifi

hello.. there I just need one example using your library. I tried a lot but unable to compile code in Arduino.
can u please give me one example that works with esp32 while connected to wifi for arduino
?

This is an example using the DS18B20 with this library. However it's for the ESP-IDF, not for Arduino. You may be able to get it working with Arduino but I don't have any examples of this unfortunately.


adding verifyPeer and verifyHost

Sorry for the very late merge, but here it is. Thanks for the contribution.


Adds openssh-client to package installation

As mentioned in issue #21 , ssh is crucial for private git dependencies when one wants to avoid having them added locally.
Therefore, this PR adds the openssh-client to the base docker image (and consecutively to the all the images building upon that).
Change in image size is less than 1MB.

I signed it!

Thank you for the patch.
@whesse will you ensure that this base image will be used for the next dev-release?

Yes, this is done.


Problems with scrolling up

Scrolling up only works for me if the content of a section fills up over 100% of the screen height. Scrolling down works just fine. What could be the issue? Thanks.

Is the same thing happening for you on the demo site?

No, the demo works perfect

Let me start with a compliment on this git, nice Job. However I've the same problem, specially on mobiles. Of course the demo is working perfect but, when the user "scroll up" before reaching the top of the current section, the thing jump to the top of the previous section. There is no smooth way when scroll up. Is any offset option when scroll up? Like will jump after reach 25% of the previous section.  Or can we disable when is scrolling up? Hope make sense

Issues described here are un-recreatable. Please try updating to the latest version of Scrollify and see if the issues persist.


allow for sysctl configuration via the sysctls map in the topology definition yml

fix #766

Hey @steiler
so I have changed MergeStringMaps to work well with non nil empty maps and thus removed sysctl initialization
looks good so far. I am about to merge this. Thanks again!


Improvements to WebUI based on feedback from scout

During the dev meeting scout gave some excellent feedback on how to improve the web UI.
These are fairly simple fixes that don't require much work so I am going to use one ticket to keep track of them.
Setup wizard

[x] Ensure there is even spacing between the circles indicating the steps of the wizard
[x] Improve the styling of the next button, in particular:

[x] It should look like a button that is on (it should be filled with blue color)
[x] It should be smaller
[x] The text should be bigger
[x] The > icon should be removed

[x] Make the width of the text more compact to improve readability

Step 1

[x] Make the introduction text shorter (this is done and I should just commit it)

Step 2

[x] The section headers should be bigger
[x] More spacing between sections

Step 3 - Quiz

[x] We should indent radio selectors

Step 4 - Configuration

[x] Add "Congratulations message" stating that the user has answered the quiz correctly (maybe put a smiling octopus icon)
[x] Add tooltips explaining the options

Status messages

[x] Put a loader in the center of the page
[x] Put all status messages in the bottom right corner (instead of the bottom left)
[ ] Status messages should have an ok indicator (deferred)
[ ] Consider using a butter bar for the status messages (deferred)
[ ] Irrecoverable errors should be front and center (I am not sure if we currently have any of these) (deferred)

Measurement list view

[x] Hardbreak URLs that are too long
[x] Replace "toggle anomalous" with  "hide normal", "show normal"
[x] No buttons for view measurements in the list view, but instead use a more simple "view" (href)

cc @scouttle

As requested by @scouttle here are the screenshots for before the refactoring.
I will post after screenshots when all the suggested fixes are implemented.
Before
Wizard
Step 1

Step 2

Step 3

Step 4

Homepage

Decks page

Measurement list

Measurement page (HTTP Header Field Manipulation)

Measurement page (Web connectivity url list)

Measurement page (Web connectivity anomalous measurement)

After
I am adding here the screenshots of the after.

The after landed inside of ooniprobe 2.1.0.


Create a basic mobx example

It should be similar to the other basic examples.

I'll pick this up


No reflection on object literals

From TypeDoc src\lib\utils\component.ts:
const childMappings: {host: ChildableComponent<any, any>, child: Function}[] = [];
Generates:

No information on the object literal, just object.
Likewise on this example:
/** Email details */
public email?: { id: string, isVerified?: boolean }
Generates:

Again, just object. Is it possible to get reflection information on the object literal?

Are there any news guys? I face the same problem and here is a minimal reproduction:
Test code
export interface MyEvent<Type extends string, Payload> {
  type: Type;
  payload?: Payload;
}

export type FooEvent = MyEvent<'foo', {
  some: string;
  data: number;
}>

typedoc.json
{
  "src": [
    "./test.ts"
  ],
  "mode": "file",
  "module": "umd",
  "target": "es5",
  "out": "docs"
}

Generated docs

It would be great to see a list of properties for payload e.g.
Payload
some: string
data: number


Document development setup

Hi.
I'm interested in your development setup for this plugin.
Could you document it so it's easier to contribute?
I tried to create all kinds of symlinks but Elgato won't recognize it as a plugin.

You're absolutely right 🤦

@tobimori Let me know if with the newly added information in the README you're able to set up the project.
Anyway, I will try to simplify a bit the build process and also document it, this is only a first step. If you have concrete questions about the setup, feel free to ask.

That's fine - apparently windows handles hard symlinks differently (or at least the Elgato software)


Update versions

Pull Request type

[ ] Bugfix
[ ] Feature
[x] Refactoring (no functional changes, no api changes)
[ ] Build related changes (Please run ./gradlew generateLock saveLock to refresh dependencies)
[ ] WHOSUSING.md
[ ] Other (please describe):

NOTE: Please remember to run ./gradlew spotlessApply to fix any format violations.
Changes in this PR
Upgrade several versions in the main repo

Upgrade SpringBoot to 2.7.16
Fix gradle warning with compileJava.dependsOn bootBuildInfo
Upgrade gradle to use JAVA toolchain.languageVersion
Upgrade Nebula plugin
Upgrade Groovy to 3.0.19
Upgrade Spot to 2.3
Upgrade TestContainer to 1.18.3
Upgrade Guava to 32.1.2
Upgrade protobuf to 3.21.12 and fix the gRPC version to compatible 1.57.x

Describe the new behavior from this PR, and why it's needed
Issue #
Alternatives considered
gradlew clean build passed.
Describe alternative implementation you have considered

Hi there, when shall I expect this to be merged ?

Hi, anyone can help update whether this shall be merged or not ?

Thanks!


#include <lightsfm/rosmap.hpp>

Good morning sir,
When I was compiling this feature pack, there was a missing rosmap header file. Do you know how to solve this problem, thank you!

Hello,
currently we are refactoring some packages (this one depends on some of them) so it is not usable for some days. We will update it as soon as possible.
regards.


Gateway UI: Bundle UI with Gatewayd

After #1454 , we should bundle the gateway UI with gatewayd and make it server the UI at /

This appears to be OBE.


failing to build in Stackage Nightly

    Building library for avwx-<IP_ADDRESS>..                                                                                [22/9345]
    [1 of 2] Compiling Data.Aviation.WX

    /var/stackage/work/unpack-dir/unpacked/avwx-<IP_ADDRESS>-f2af1d73aa7ebbba0c3447ed6dc21d4e5881a0fbe8c92bc0187aa99a026bdd9b/src/Data/Av
iation/WX.hs:732:24: error:
        • Could not deduce (MonadFail f) arising from a use of ‘fail’
          from the context: (Monad f, CharParsing f)
            bound by the type signature for:
                       variableWindParser :: forall (f :: * -> *).
                                             (Monad f, CharParsing f) =>
                                             Maybe WindDirection -> f WindDirection
            at src/Data/Aviation/WX.hs:726:1-88
          Possible fix:
            add (MonadFail f) to the context of
              the type signature for:
                variableWindParser :: forall (f :: * -> *).
                                      (Monad f, CharParsing f) =>
                                      Maybe WindDirection -> f WindDirection
        • In the expression: fail "Erroneous parameters"
          In an equation for ‘variableWindParser’:
              variableWindParser _ = fail "Erroneous parameters"
        |
    732 | variableWindParser _ = fail "Erroneous parameters"
        |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^

    /var/stackage/work/unpack-dir/unpacked/avwx-<IP_ADDRESS>-f2af1d73aa7ebbba0c3447ed6dc21d4e5881a0fbe8c92bc0187aa99a026bdd9b/src/Data/Av
iation/WX.hs:769:48: error:
        • Could not deduce (MonadFail f) arising from a use of ‘fail’
          from the context: (Monad f, CharParsing f)
            bound by the type signature for:
                       wxParser :: forall (f :: * -> *).
                                   (Monad f, CharParsing f) =>
                                   f WeatherPhenomenon
            at src/Data/Aviation/WX.hs:759:1-59
          Possible fix:
            add (MonadFail f) to the context of
              the type signature for:
                wxParser :: forall (f :: * -> *).
                            (Monad f, CharParsing f) =>
                            f WeatherPhenomenon
        • In the second argument of ‘($)’, namely ‘fail ""’
          In a stmt of a 'do' block:
            when
              ((== 0) . length . filter not
                 $ [isNothing prc, isNothing obfs, isNothing othr])
              $ fail ""
          In the expression:
            do spaces
               intsy <- intensityParser
               dsc <- perhaps descParser
               prc <- perhaps precipitationParser
               ....
        |
    769 |         , isNothing obfs, isNothing othr ] ) $ fail ""
        |                                                ^^^^^^^

@hce thanks for the package! I'm just getting started and playing around with Haskell and decided to see if I could find a fix.
Turns out, replacing fail with Text.Parser.Combinators.unexpected seems to bring the code back into the good graces of ghc 8.8.1

Thanks @imoverclocked let me check that

Thanks all! Sorry for the huge delay, but the fix @imoverclocked suggested worked and I've just pushed a new version to hackage.


Support multiple leagues?

Hey, fantastic project you have here I’ve used it in the past when I first had a league in Sleeper. Now that we’ve moved over both of our leagues into Sleeper this bot would be a great way to have info for both leagues in Discord.
Would it be possible to add multi-league support to this?
Thanks again for the bot!

Also saw that you were thinking about having the option to show all commands publicly. Any more thoughts on this as that'd be a nice toggle as well.

Glad you're enjoying it! Do you have two different Discord servers for your leagues? If we were to support multiple leagues, it's essentially adding an argument to every command and fundamentally changing much of the functionality as is. I don't want to say never but at the moment it's unlikely that we'll be supporting multiple leagues per Discord server. It's also unlikely that the same exact people would be in 2 different leagues so 2 servers makes sense.
As far as ephemeral commands, optional ephemeral commands is definitely something I'd like to implement for the future, it's just that my professional life has crowded out time that I'd like to spend on personal projects at the moment. But I'm aware that's a feature that's been asked for and I just need to take the time to test/implement it.

In fact, I just implemented the optional ephemeral messages for the my-league command. Take a look and see what you think :)


The app won't install on the Oculus Go

I redeemed the code and the app appears in the not installed category but when I click on it to install it fails at 72kb and won't install.

I've got the exact same problem. Any solution?

me aswell

me to :-1:

Hi, same issue... Any solution? Thanks

hello how do you install the app guys ?

Same issue! hopefully there is a fix avail soon

Same issue! hopefully there is a fix avail soon

where could we get the oculus go app source code so that people with ADB can sideload it?

where could we get the oculus go app source code so that people with ADB can sideload it?

still no fix for this issue? was really looking foward to this working.

still no fix for this issue? was really looking foward to this working.

same

same

ok it seem the Oculus GO App store doesn't have the file anymore but the link is still valid ...
Please try with this :
Install from apk

Need to enable developer option for Quest.
Download apk from Releases
Check Installation.

ok it seem the Oculus GO App store doesn't have the file anymore but the link is still valid ...
Please try with this :
Install from apk

Need to enable developer option for Quest.
Download apk from Releases
Check Installation.

Currently there's something wrong on store page of ALVR.
I'm trying to fix it, but it may take long or cannot be fixed because app submission of Go is no longer supported on Oculus Store.
I'm currently trying to make contact with Oculus Support.
Please try apk for now.

Currently there's something wrong on store page of ALVR.
I'm trying to fix it, but it may take long or cannot be fixed because app submission of Go is no longer supported on Oculus Store.
I'm currently trying to make contact with Oculus Support.
Please try apk for now.

Similar issue on Oculus Gear VR. I last got it working end of Dec, but had to clear cache and data, and reinstall after every run - it would run once and then I would have to uninstall through phone UI, and reinstall inside VR, and then it would work for one more run. Now it doesn't install at all, it just runs up to 2.2MB and then goes back to the "Install" button.

Similar issue on Oculus Gear VR. I last got it working end of Dec, but had to clear cache and data, and reinstall after every run - it would run once and then I would have to uninstall through phone UI, and reinstall inside VR, and then it would work for one more run. Now it doesn't install at all, it just runs up to 2.2MB and then goes back to the "Install" button.

@polygraphene If possible could there be a verson of ALVR for oculus go that you can side load?

@polygraphene If possible could there be a verson of ALVR for oculus go that you can side load?

@CloudzInnit Use https://github.com/alvr-org/ALVR for Go.

@CloudzInnit Use https://github.com/alvr-org/ALVR for Go.

Thank you so much for supporting it up to now. I suspect that Samsung and Oculus suits are having some sort of licensing fee showdown. I will not buy any Oculus or Samsung again in future, and discourage same for everyone else if they don't sort it out.
I managed to install this again with older versions of Galaxy Gear VR system APKs. I want to try create instructions that will work on any Gear VR phone - at the moment it appears that Gear VR can not be installed or activated on a phone that doesn't have it already. Still investigating.

Thank you so much for supporting it up to now. I suspect that Samsung and Oculus suits are having some sort of licensing fee showdown. I will not buy any Oculus or Samsung again in future, and discourage same for everyone else if they don't sort it out.
I managed to install this again with older versions of Galaxy Gear VR system APKs. I want to try create instructions that will work on any Gear VR phone - at the moment it appears that Gear VR can not be installed or activated on a phone that doesn't have it already. Still investigating.

@dagelf it is more Oculus want to force ppl to buy the quest 2 ... what a shame ...

telll  me how to  fix ittttt

You can still load the APKs for the games in GearVR if you have them, with adb, including ALVR.
com.polygraphene.alvr.oculus.zip
$ adb install com.polygraphene.alvr.oculus.apk
I have tried this on a few phones now. It works great... no issues, not even the one mentioned above - the only problem is that it only works if you have had it previously installed it on your Gear VR library - there is some sort of store link stored in your profile. I am not sure how to link it now that the store link for ALVR is gone.
Then, about GearVR - you can still  install GearVR itself - but you can't install anything through the store, everything just gives an error, it's been nerfed by Oculus - whether by accident or on purpose... "by accident" makes good cover... plausible deniability... and I've seen it used as an excuse before. That a dispute between two Billion dollar companies needs to go to such lengths... sad. I don't think the people who are responsible even know what they're doing, or why, at this point... like when people figure out how to make money, and then just make as much money as they can, not even knowing what for.
I am hesitant to post instructions here because they might break this too.... but then we will just go deeper I guess. Or build an alternative.


How to create a root tree?

Hi,
Trying to create a root tree and stuck at the beggining with:
AttributeError: module 'uproot' has no attribute 'newtree'
I need to create two branches: voltage int32,  current float64
If you could put an example will be great
Using python3.9 and uproot3
Thanks in advance!

I need a hand here:
def execute(self):
    voltages = np.arange(self.min_voltage, self.max_voltage+self.voltage_step, self.voltage_step)
    steps = len(voltages)
    with uproot3.recreate("IVcurve.root") as f:
        f["t"] = uproot3.newtree({"voltage": "float64", "current": "float64"})
    log.info("Starting to sweep through voltage")
    for i, voltage in enumerate(voltages):
        log.debug("Sweep voltage: %g V" % voltage)

        self.source.source_voltage = voltage
        # Or use self.source.ramp_to_current(current, delay=0.1)
        sleep(self.delay)

        current = self.meter.current
        print(voltage)
        print(current)
        print()
        f["t"].extend({"voltage": voltage, "current": current})
        if abs(current) <= 1e-10:
            resistance = np.nan
        else:
            resistance = voltage/current
        data = {
            'Voltage (V)': voltage,
            'Current (A)': current,
            'Resistance (Ohm)': resistance
        }
        self.emit('results', data)
        self.emit('progress', 100.*i/steps)
        if self.should_stop():
            log.warning("Catch stop command in procedure")
            break
    uproot3.numentries("IVcurve.root", "t")    # at the end of the for loop

The problem is here:
f["t"].extend({"voltage": voltage, "current": current})
with this error:
File "D:\My Projects\PYTHON\iv_keithley_forum_2.py", line 81, in execute
f["t"].extend({"voltage": voltage, "current": current})
File "C:\Users\fgarcia\AppData\Roaming\Python\Python39\site-packages\uproot3\write\objects\TTree.py", line 114, in extend
if all(len(first) == len(value) for value in values) == False:
File "C:\Users\fgarcia\AppData\Roaming\Python\Python39\site-packages\uproot3\write\objects\TTree.py", line 114, in
if all(len(first) == len(value) for value in values) == False:
TypeError: object of type 'numpy.float64' has no len()
I tried to use append instead of extend and also give errors.
The values need to be written as they are being read.....

Trying to create a root tree and stuck at the beggining with:
AttributeError: module 'uproot' has no attribute 'newtree'

You're mixing Uproot 3 and 4 (which I think you eventually fixed, in favor of Uproot 3). Since you seem to be developing a new script, rather than keeping an old one running, you should start with the latest version. (Uproot 3 is only being kept around for analysis code that was developed using it and now needs to keep working so that somebody can graduate or otherwise finish up a one-time project.) Uproot 4 became the default "uproot" (as in pip install uproot) on Dec 5, 2020, so it's been more than a year.
Here's where the documentation on Uproot 4 writing starts: https://uproot.readthedocs.io/en/latest/basic.html#opening-a-file-for-writing
The following line isn't responsible for the error message, but:

    with uproot3.recreate("IVcurve.root") as f:
        f["t"] = uproot3.newtree({"voltage": "float64", "current": "float64"})
    log.info("Starting to sweep through voltage")
    for i, voltage in enumerate(voltages):

outside of this with block, the file f will be closed. Attempts to write to it will fail (on purpose). You need to have the code that fills the TTree be inside the with block (one indentation level to the right).
The reason you're getting an error is because extend takes a dict mapping branch names to arrays of numbers, not a dict mapping branch names to individual numbers. So you want
f["t"].extend({"voltage": voltages, "current": currents})

where voltages and currents are pluralized because they refer to all the data. The voltages NumPy array is what you want to have going here—you do not want to have a for loop over NumPy arrays. (That's not just an Uproot thing; that's generally true of using Python, NumPy, and Pandas. You arrange your work to be one array at a time, rather than one value at a time.)

Looking at your code some more, I see now that that's how self works. The class instance referred to by self seems to be representing some circuit that you can apply voltages to (with self.source.source_voltage = voltage) and observe the current response (with self.meter.current). You actually wait for some real time (time.sleep(self.delay)) after applying the voltage and before measuring the current, so presumably this Python code is hooked up to some real system somewhere. I'll just imagine that you have an RLC circuit connected to some Python code through a Raspberry Pi or something, though in actuality, your circuit may be much more complicated—that doesn't change the fact that it may need some time to adjust to a new voltage and let transients die away or something.
Since the function
def current_response(voltage):
    self.source.source_voltage = voltage
    time.sleep(self.delay)
    return self.meter.current

goes through Python code—it's not purely NumPy—then you'll have to write a Python for loop calling it. Since it may take 0.1 seconds per sample point, then the normal argument of using NumPy arrays instead of Python loops because Python is slow (~microseconds per loop iteration) also isn't relevant. Ignoring any discussion or ROOT or Uproot, it would be entirely reasonable to do this code in Python, rather than involving array-at-a-time NumPy.
However, Uproot just doesn't work that way. The extend function takes an array, and if you pass in arrays of length 1, you'll get a ROOT file with TBaskets of length 1, and that would be very inefficient for the next step in the process to read. (TBaskets should have at least 10s of thousands of entries for numerical data like this; if you have fewer data points, then it should be a single-TBasket file: i.e. extend should only be called once.) In Uproot 3, we attempted to add an interface called append that would collect these values and combine them into reasonably sized TBaskets, but that ended up in a mess and we didn't even try to add such an interface to Uproot 4.
So what you'll have to do is iterate over the data in a Python for loop, collect the results, and dump those results in the file in one batch. For instance,
def execute(self):
    voltages = np.arange(
        self.min_voltage,
        self.max_voltage + self.voltage_step,
        self.voltage_step,
        dtype=np.float64,
    )

    currents = np.zeros(len(voltages), dtype=np.float64)
    for i, voltage in enumerate(voltages):
        self.source.source_voltage = voltage
        time.sleep(self.delay)
        currents[i] = self.meter.current

    with uproot.recreate("IVcurve.root") as f:
        f["t"] = {"voltage": voltages, "current": currents}

A single extend is implicit in the assignment of a dict of arrays to a new TTree. Alternatively, you could do
    with uproot.recreate("IVcurve.root") as f:
        t = f.mktree("t", {"voltage": np.float64, "current": np.float64})
        t.extend({"voltage": voltages, "current": currents})

Also, it looks to me like you're just making this ROOT file in order to plot the data. There are much easier ways to do that, like Matplotlib's plt.plot:
import matplotlib.pyplot as plt
plt.plot(voltages, currents)

And if you need to save the NumPy arrays in some form, you could just pickle them:
import pickle

# write
pickle.dump({"voltage": voltages, "current": currents}, open("IVcurve.pkl", "wb"))

# read
voltages_and_currents = pickle.load(open("IVcurve.pkl", "rb"))
voltages = voltages_and_currents["voltage"]
currents = voltages_and_currents["current"]

or use NumPy's own file format:
# write
np.savez(open("IVcurve.npy", "wb"), voltage=voltages, current=currents)

# read
voltages_and_currents = np.load(open("IVcurve.npy", "rb"))
voltages = voltages_and_currents["voltage"]
currents = voltages_and_currents["current"]

Or HDF5, etc. If the point is to get it into ROOT to use ROOT's plotting features, then yes, write a ROOT file. Otherwise, if you're going to be using Matplotlib (because you're in Python already), data with simple structure like this—just two columns of numbers—can be saved in a variety of ways, most of which are simpler and recognized by more data analysis tools.
If, on the other hand, you ever need to write jagged arrays or more complex data structures, then you'll want to seriously consider ROOT (or Parquet).

@jpivarski many thanks indeed now many things are clearer and I have introduced all these changes. However, only tomorrow I can test it when getting access to the device.
Yes, the idea is to produce a root file, which can then later be used opened, and analyzed in ROOT.

Could you add an example of how for this tree and I can add new baskets? I mean I would like to add more data to the same branches, but tried different ways and none of them works.
Thanks in advance!

If you have created a new TTree like
with uproot.recreate("IVcurve.root") as f:
    f["t"] = {"voltage": voltages, "current": currents}   # voltages and currents are NumPy arrays

and have not yet closed the file (i.e. you're still in the "with" block above), you can add a second TBasket to it by
    f["t"].extend({"voltage": voltages, "current": currents})   # voltages, currents may be new arrays

(Note the indentation: we're still in the "with" block; the file has not closed.)
You can't, however, open a file and change an existing TTree. That's not in principle impossible, but it's code that has not been written; it's not a feature of Uproot yet.
The reason uproot.WritableTree has an extend method is to allow you to write TTrees that are larger than the arrays you can store in memory by calling extend with as much data as you can in each call. If it's possible to write the TTree in one function call—i.e. you have enough memory to do so—you would make better ROOT files by minimizing the number of TBaskets. Files with the same number of entries spread among fewer TBaskets use less disk space and are faster to read in both Uproot and ROOT.
It's possible (though inadvisable) to write each entry as a separate TBasket. (Seriously inadvisable! I'm not going to write out the code!)


Add Rollup bundler plugin

From Pika discussion: https://www.pika.dev/npm/snowpack/discuss/494#comment-8053
We have a webpack & Parcel bundler plugin, but no Rollup one. Now that we’ve improved our plugin API, now would be a perfect time to add one.
cc @antony You mentioned you’d already written one. Do you have any interest in making a PR to add it? Would love to use what you’ve found as a starting base (note that we’d recommend using our new plugin API though for best results)

Hi @drwpow - I do! It's in the discussion you have linked in your comment :)

I've found that you can just use Rollup for production builds alongside Snowpack without any plugins.
Here's my config:
import postcss from "rollup-plugin-postcss";
import babel from "@rollup/plugin-babel";
import { terser } from "rollup-plugin-terser";
import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";

export default {
  input: "src/index.js",
  treeshake: true,
  output: {
    entryFileNames: "[name]-[hash].js",
    dir: "dist",
    format: "es",
    sourcemap: true,
    plugins: [terser()],
    manualChunks: (id) => {
      if (id.includes("node_modules")) {
        return "vendor";
      }
    },
  },
  plugins: [
    postcss({
      plugins: [],
      extract: true,
    }),
    babel({ babelHelpers: "bundled" }),
    resolve({ browser: true }),
    commonjs(),
  ],
};

@jokull I have been doing the same, but I had to do a workaround to make the SNOWPACK_PUBLIC_* environment variables work. I used 'dotenv' and @rollup/plugin-replace to define another variable. eg. = import.meta.env || __myapp.env;
If anybody has a better idea for that, let me know.

@ParamagicDev has been doing some work on this! I just saw him tweeting about it this morning
👀 👀 👀 https://twitter.com/RogersKonnor/status/1302369247738376195

Right now it's just a glorified manifest.json generator....if you wanna take a peek at what I have so far be my guest. I still need to add chunks to the Manifest as well.
Anyways, there an example dir in the tests folder that will populate the build directory and give you an idea of the expected output.
https://github.com/ParamagicDev/snowpack-plugin-rollup-bundle/tree/development

@jeberly funny you should mention that, I was doing exactly that today to augment my setup with a Sentry logger!

If this is a common pattern, we should look into a dedicated plugin hook. addSnippet()?

I have a v0.1.1 out in the wild of using Rollup for production via a plugin. Would love to get some additional people to try it out.
https://github.com/ParamagicDev/snowpack-plugin-rollup-bundle

A huge thanks again to @ParamagicDev for his work on https://github.com/ParamagicDev/snowpack-plugin-rollup-bundle ! I went ahead and added links to our docs and README. We'll leave this as a community plugin for now, with an eye to create an official one down the road if there is enough interest.

There is also https://www.npmjs.com/package/@carv/snowpack-plugin-rollup, which may be useful for reference (however, its corresponding github repository seems to have been (re)moved).


Why there is no ValidatorForm.removeValidationRule?

Hi,
After adding a custom validation rule with ValidatorForm.addValidationRule in componentDidMount(), I think it is reasonable to remove it in componentWillUnmount(). It looks like there could be a memory leak because the custom rule function stays in the Rules collection with all its closures.
Why there is no ValidatorForm.removeValidationRule?
Thanks.

There is no memory leak there. Only if you add new rules every time with unique names. But removeValidationRule function makes sense, I will add it later

The problem is that Rules is a static collection that is never destroyed. So if I add a rule that uses state or props of some component, this component will remain in memory forever.

@mgustus check the 0.6.4 version

great!
Thank you 👍


Dessasembly open C++ Issue

[Server.exe]: failed to create TerminatedCString at 299daddc: Failed to resolve data length for TerminatedCString
Delay imports detected...

What is at address 0x299daddc?  Maybe the string there is very very large?  We'll need more information about the problem to be able to help.

https://gist.github.com/maneco2/5cc16feccb4195d342d1d2947a0a96b4

What is at address 0x299daddc? Maybe the string there is very very large? We'll need more information about the problem to be able to help.
The entire file compiled have 27mb, source code is a bit large

Everything looks normal to me.

possible implement the entire file here for check the problem?

Apologies, but I don't see any issue with what you are posting.  I will likely need a better verbal description if I am to offer help.

Tryng get features to my open source project from https://depmax64.com/ is a non oficial lineage2 game server emulator made in java. Ghidra look not open these file (depmax64) due any issue?


Updating references for compositional functions

Replacing the old reference with a much more up to date reference.
The book can be found here and has quite a few more updated samples.

Thanks @mortonjt!


got this when trying to pair

when i run npm install -g node-appletv
i get this

<EMAIL_ADDRESS>preinstall /usr/local/lib/node_modules/node-appletv/node_modules/sodium
node install.js --preinstall

Static libsodium was not found at /usr/local/lib/node_modules/node-appletv/node_modules/sodium/deps/build/lib/libsodium so compiling libsodium from source.
libtool is required, but wasn't found on this system
make: *** [libsodium] Error 1
/usr/local/lib/node_modules/node-appletv/node_modules/sodium/install.js:287
throw new Error(cmdLine + ' exited with code ' + code);
^
Error: make libsodium exited with code 2
at ChildProcess. (/usr/local/lib/node_modules/node-appletv/node_modules/sodium/install.js:287:19)
at ChildProcess.emit (events.js:160:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>preinstall: node install.js --preinstall
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>preinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      /Users/Luke/.npm/_logs/2018-03-24T01_10_00_225Z-debug.log

Try this, for macOS $ brew install libtool autoconf automake, or on Linux $ sudo apt-get install lib tool autoconf automate

Will do thanks

Closing for lack of activity. Reopen if the issue is not resolved.

brew: command not found
getting this now

Did you try installing homebrew?

Installed homebrew,but when trying to install the plugin I get this: n file included from ../src/dns_service_browse.cpp:1:
In file included from ../src/mdns.hpp:12:
In file included from ../node_modules/nan/nan.h:190:
../node_modules/nan/nan_maybe_43_inl.h:88:15: warning: 'ForceSet' is deprecated
[-Wdeprecated-declarations]
return obj->ForceSet(GetCurrentContext(), key, value, attribs);
^
/Users/Luke/.node-gyp/9.4.0/include/node/v8.h:3114:3: note: 'ForceSet' has been explicitly
marked deprecated here
V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty",
^
/Users/Luke/.node-gyp/9.4.0/include/node/v8config.h:321:29: note: expanded from macro
'V8_DEPRECATED'
declarator attribute((deprecated))
^
1 warning generated.
CXX(target) Release/obj.target/dns_sd_bindings/src/dns_service_enumerate_domains.o
In file included from ../src/dns_service_enumerate_domains.cpp:1:
In file included from ../src/mdns.hpp:12:
In file included from ../node_modules/nan/nan.h:190:
../node_modules/nan/nan_maybe_43_inl.h:88:15: warning: 'ForceSet' is deprecated
[-Wdeprecated-declarations]
return obj->ForceSet(GetCurrentContext(), key, value, attribs);
^
/Users/Luke/.node-gyp/9.4.0/include/node/v8.h:3114:3: note: 'ForceSet' has been explicitly
marked deprecated here
V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty",
^
/Users/Luke/.node-gyp/9.4.0/include/node/v8config.h:321:29: note: expanded from macro
'V8_DEPRECATED'
declarator attribute((deprecated))
^
continuously

<EMAIL_ADDRESS>install /usr/local/lib/node_modules/homebridge-theater-mode/node_modules/sodium
node install.js --install

echo Build node-sodium module
Build node-sodium module
node defines.js
Extracting DEFINES from Libsodium make file...
Detected system architecture x64
Libsodium Makefile : ./deps/libsodium/Makefile
Please run autogen.sh and configure in ./deps/libsodium directory first
{ Error: ENOENT: no such file or directory, open './deps/libsodium/Makefile'
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: './deps/libsodium/Makefile' }
node-gyp rebuild
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
CXX(target) Release/obj.target/sodium/src/crypto_aead.o
In file included from ../src/crypto_aead.cc:8:
../src/include/node_sodium.h:22:10: fatal error: 'sodium.h' file not found
#include "sodium.h"
^~~~~~~~~~
1 error generated.
make[1]: *** [Release/obj.target/sodium/src/crypto_aead.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:285:23)
gyp ERR! stack     at ChildProcess.emit (events.js:160:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
gyp ERR! System Darwin 17.3.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/homebridge-theater-mode/node_modules/sodium
gyp ERR! node -v v9.4.0
gyp ERR! node-gyp -v v3.6.0
gyp ERR! not ok
make: *** [nodesodium] Error 1
/usr/local/lib/node_modules/homebridge-theater-mode/node_modules/sodium/install.js:287
throw new Error(cmdLine + ' exited with code ' + code);
^
Error: make nodesodium exited with code 2
at ChildProcess. (/usr/local/lib/node_modules/homebridge-theater-mode/node_modules/sodium/install.js:287:19)
at ChildProcess.emit (events.js:160:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
/usr/local/lib
└── (empty)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>install: node install.js --install
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      /Users/Luke/.npm/_logs/2018-04-22T01_50_46_884Z-debug.log

Do you have Xcode installed? Make sure it is and then run Xcode-select --install


No error thrown on unconfigured parameters

project
└─┬<EMAIL_ADDRESS>  └──<EMAIL_ADDRESS>
Issue: Passing an unconfigured parameter (not in swagger request schema) in a POST body doesn't throw a validation error.
Detail: Talking to the Swagger spec guys on IRC, it turns out that this "missing" behaviour isn't explicitly stated in the spec but was intended to exist, at least optionally. Does swagger-node-runner have this ability?

I'm assuming this is a sway issue. There has been no way left to pass options to sway: https://github.com/theganyo/swagger-node-runner/blob/master/index.js#L185

Yes, this will have to be addressed in Sway.
Leaving the link to the Sway issue here for posterity: https://github.com/apigee-127/sway/issues/94


Update Jupyter charms

Includes Jupyter UI rewrite
Fixes https://github.com/canonical/notebook-operators/issues/10

I will check the docs point to the latest versions. Should these tests be passing?


Missing parent: rescue of stalled ribosome (GO:0072344)

rescue of stalled ribosome (GO:0072344)
Definition
A process of translational elongation that takes place when a ribosome has stalled during translation, and results in freeing the ribosome from the stalled translation complex.
Should be a descendant of
GO:1990116 ribosome-associated ubiquitin-dependent protein catabolic process
(A.k.a Ribosome-associated Quality Control )
The chemical reactions and pathways resulting in the breakdown of a protein or peptide encoded by an aberrant message and associated with a stalled ribosome. Degradation is initiated by the covalent attachment of a ubiquitin group, or multiple ubiquitin groups, to the ribosome-associated protein. PMID:23358411
I'm not sure these are different things?

I dont know
@sylvainpoux has annotated these, maybe he knows

https://github.com/geneontology/go-ontology/issues/18610
Also proteins annotated to rescue of stalling are
RQC complex (GO:1990112)
Definition	Parents
A multiprotein complex that forms a stable complex with large ribosomal subunits (60S in eukaryotes and 50S in prokaryotes) containing stalled polypeptides and triggers their degradation (ribosomal quality control). In budding yeast, this complex includes Cdc48p, Rkr1p, Tae2p, Rqc1p, Npl4p and Ufd1p proteins. [PMID:23232563, PMID:23178123]

but
GO:0072344 rescue of stalled ribosome
Should be a descendant of
GO:0032790  ribosome disassembly
(not all ribosome dissembly is the rescue of stalled ribosomes)

Also CAT tailing is a child of  "rescue of stalled ribosome" but  seems that it should be part_of
GO:1990116 ribosome-associated ubiquitin-dependent protein catabolic process

For now I added
GO:0072344 rescue of stalled ribosome
is_a
GO:0032790 ribosome disassembly
I think we need a grouping term for the QC but I'll look into that later.

@pgaudet  is it OK to make this term
GO:0072344 rescue of stalled ribosome
GO:0072344 rescue of stalled cytosolic ribosome
and
GO:0032790 ribosome disassembly
cytosolic ribosome disassembly
this would seem to be correct for everything except
UniProtKB:Q14197 | MRPL58
which I could create a new term for
Let me know, (currently these annotation don't slim because they don't fall under mitochondrial gene expression, or cytosolic translation)

We dont want to distinguishing factor to be the cellular localization. I dont think this is what you are suggesting but if you think two pathways are needed, they need to be clearly distinguished (although I think you could use "cytoplamic"/"mito chondrial" in the labels if there is no better way to label the terms.
Another question: does this process occur in bacteria? (seems like it could, if it also occurs in mitochondria); in this case the bacterial cytoplasmic is likely closer to the eukaryote mitochondrial pathway?

I don't think we can add  easily distinguishing factors at this juncture because we don't know enough -- particularly about the mitochondria pathway, only that they are different because none of the cytosolic components are present  in the mitochondria (and it seems to  quite a complex  recycling pathway in the cytosol)
Ribsome recycling in mitochondria seems to be a relatively simple process using endogenous translation machinery (and elongation factor) and a tRNA hydrolase
https://pubmed.ncbi.nlm.nih.gov/33878294/
In higher eukaryotes it involves multiple genes which are not part of canonical translation machinery (e.g. RQT complex,  RQC complex, and a ubiquitin ligase, and involves a sub process "CAT tailing"


DropZone can't pickup from a deck

If you have a Deck inside a dropZone you can't pick up a card because of this:
https://github.com/Benjamin-Dobell/ge_tts/blob/3b792a7b67a677e7164548e15eeba4721e034ce6/Zone.ttslua#L395-L397
The newly spawned card that you hold is forced to be dropped so you can't pick it. A quick fix is to add and object.held_by_color == nil in the if but if you cut or split the deck he will be merged and sometime this is not the correct guid of the deck in the occupying table.

cut or split the deck he will be merged and sometime this is not the correct guid of the deck in the occupying table.

Admittedly, it's not really designed to handle cut or split, as it's not really obvious what should happen. By calling drop on the zone, this does at least give you a chance to try handle the dropped object yourself.
However, the changing GUID thing a bit of problem. You're quite welcome to open a separate issue about cut/split to keep track of the undesirable behaviour.


⚠ Bofrost.be has degraded performance

In d60e2bd, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 980 ms

Resolved: Bofrost.be performance has improved in 8a7559a.


prune changelog

What does this PR do?
removing empty/none release sub-actions
PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

@jeffling just design but agree that it is not better so I ll move it back or do you have other suggestions?

I think it's fine either way. Slight preference for having the date be separately surrounded by whitespace for easy grepping (ie @ 2000-01-01)
Don't have an opinion on what the delimiter actually is. Could be -, @, even on

Ideally we would stick with dashes so that we are consistent with keepachangelog.com

Ideally we would stick with dashes so that we are consistent with keepachangelog.com

Ok, I ll change it =)


fix: added support for ip based url

Description

improve validation for IP-address allowed in document widget URL.

Fixes #9704
Type of change

Bugfix (non-breaking change which fixes an issue)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Test coverage results :test_tube:
:green_circle: Total coverage has increased
// Code coverage diff between base branch:release and head branch: fix/valid-ip-address-doc-viewer

Status
File
% Stmts
% Branch
% Funcs
% Lines

:green_circle:
total
54.94 (0)
36.32 (0)
34.23 (0)
55.47 (0.01)

:green_circle:
app/client/src/widgets/DocumentViewerWidget/widget/index.tsx
96.88 (0.11)
100 (0)
80 (0)
96.77 (0.1)

/ok-to-test sha=f6547ae

/ok-to-test sha=f99fc08

@techbhavin local host url do not work without extension
https://www.loom.com/share/45b2cc1196ce4587a5efc3fed67b2bff

@somangshu  can get some IP base URL so we can test it this bug

@techbhavin @somangshu
You can use this.
Works on release but not on deploy preview
https://<IP_ADDRESS>/export/sites/www/sme/en/documents/pdf/ip_panorama_8_learning_points.pdf


x/build: freebsd-amd64-race builder should be updated to use a newer FreeBSD version

The freebsd-amd64-race builder currently uses host-freebsd-11_1-big. Go 1.13 and newer require FreeBSD 11.2 or newer. We should update this builder accordingly.
If our assumption is that newer stable releases of FreeBSD have fewer bugs, we should likely use the latest stable version we have a builder for, since the goal of a -race builder is to catch data races in the Go code.
/cc @toothrot @cagedmantis @andybons

@dmitshur I've updated env/freebsd-amd64 to allow building a 11.3-RELEASE images in https://golang.org/cl/186038.
I should also test and add a 12.1-RELEASE now, with 12.2 due in two months. I can't create the images though, brad used to do it I think.

@paulzhol What is the timeline for landing the 12.2 builder? I have reason to believe that there has been a regression in the Go runtime that leads to crashes starting with FreeBSD 12.2 ( #43873 ).

@problame I can't create the images in the project's internal GCP account. Ping @dmitshur,  @cagedmantis now that Go 1.16 is out maybe there's more time to add the builders.
Also FreeBSD 13.0 will be released in about a month now.

For now I'll resolve this specific issue by updating freebsd-amd64-race to use the available FreeBSD version, 12.0.
Please file a separate issue about adding new builders that target newer versions of FreeBSD. Thank you.

Thanks @dmitshur, I've opened created https://github.com/golang/go/issues/44431.


Cannot receive threadId if use OpenAI assistant as agent

Hi,
I'm using the latest langchain version 0.0.200 with node 18.17.1 and I face an issue trying to make OpenAI assistant to memorize the context.
I want to make calls for the existing OpenAI assistant and track those within langsmith, but I can't get it to work.
So I tried 2 approaches - first using AgentExecutor
        const assistant = new OpenAIAssistantRunnable({
          assistantId: process.env.OPENAI_ASSISTANT_ID,
          asAgent: true,
        });

        const agentExecutor = AgentExecutor.fromAgentAndTools({
          agent: assistant,
          tools: [],
          verbose: true,
        });
        const assistantResponse = await agentExecutor.invoke(
          {
            content: req.body.message,
          },
          {
            metadata: {
              userId,
            },
          }
        );

In this case - I can see my request tracked in langsmith project (I have process.env set as per documentation), but I don't get threadId in the response and, therefore, assistant seem to not have a conversation context (I tried to ask it to remember a number and then tell it to me - works in OpenAI playground, but not in my implementation).
Another way I tried is to call directly like this:
        const assistant = new OpenAIAssistantRunnable({
          assistantId: process.env.OPENAI_ASSISTANT_ID,
          asAgent: true,
        });

        const assistantResponse = await assistant.invoke(
          {
            content: req.body.message,
          },
          {
            metadata: {
              userId,
            },
          }
        );

In this case I have threadId from assistantResponse and can use it just fine, but nothing shows up on langsmith (using the same process.env). I also tried to initialize tracking directly using langsmith/Client and LangChainTracer, but it didn't work either.
Small note: TS tells me that Client from langsmith package (0.0.49) isn't assignable to client property of LangChainTracer (from langchain/callbacks v.0.0.200):

So is there a way to make requests to OpenAI assistant without losing the context and with having tracing in langsmith?

Do you find any solution?

No, I ended up using OpenAI SDK directly + track into Langsmith using the client.
Maybe something has changed now


Move some generic functions from internal/vppinit to sdk-vpp

At start up of the forwarder a veth pair is created in vpp to AF_PACKET interface. This interface is selected by it's IP - must be equal with TUNNEL_IP or if TUNNEL_IP is not set then one of the IP from default route.
If later an other veth pair is needed to an oter AF_PACKET this code should be reused. The sdk-vpp repository should be a good place.

Closing the issue, since it is not required for remote vlan mechanism support.


BUG: lagged addons delivery

Problem Description

Create a {Cluster}Profile
Deploy a Cluster (Cluster API or SveltosCluster)
Wait up to 10 minutes before getting the addon delivered

System Information
CLUSTERAPI VERSION: v1.6.0
SVELTOS VERSION: v1.21.0
KUBERNETES VERSION: v1.27.3
Logs
N.R.

Thank you!

Rebuilt image v0.21.0


paged results

From this PR in gists, I started thinking about how .paged attempts to return all results from an endpoint. This may cause requests to hit rate limits and result in errors.
I think we can make .paged return an object (similar to a javascript iterator) that has a .next() method on it. This will handle setting up the next request using the "next link" header information from the previous request and executing the request to return the results. The results can be an object that conforms to the iterator protocols. I think we can implement it so .next can take a callback so we can use the api in older versions of node.
User code might look something like this (using async/await):
async function getRepos(user) {
  let github = new GithubBase();
  let results = [];

  // get repos iterator
  let repos = github.paged('/users/:user/repos', {user: user});

  // get first page of results
  let res = await repos.next();

  // as long as there are more results, concat them to the results array and get the next page
  while (!res.done) {
    results = results.concat(res.value.repos);
    // handle "sleeping" due to github rate limits
    await ratelimit(res.value.response);

    // get the next page of results
    res = await repos.next();
  }
}

async function ratelimit(response) {
  // code to handle rate limit from response headers
}

let repos = await getRepos('doowb');

And by handling a callback in .next, as I mentioned above, we could do this with the node async pattern too.

love this idea @doowb!

closing since this is resolved in 1.0


Merge pull request #24 from JamisonUK/main

Merge pull request #23 from JamisonUK/develop

Making sure all branches are up to date


Collapse/Expand code regions

N.B. This should now be tied to the concept of the grammar-based 'templates' (#9) - so that any multi-line construct that may be highlighted/selected, may also be collapsed/expanded.

Absorbed into #1


Job object type in workspace

A column in the workspace that shows job result type would be very useful

Is it Assembly? CGA? RNA-Seq? Variation?


Modularisation: concert / setlist

What about a module / import syntax:
Setlist: Live at Waken 1998

Song: The Philosopher
.... ${RockStarCode}
Song: The Ace of Spades
.... ${RockStarCode}

from "Live at Waken 1998" import "The Ace of Spades"

Why not use Off and Play
off "Live at Waken 1998" play "The Ace of Spades"

Dup of https://github.com/dylanbeattie/rockstar/issues/56
However, I like this syntax much better, could you propose it over there?


Feature Request - Keep document position on reload

Would it be possible to add an option to keep the PDF scroll position when reloading the document? When working with latex and regularly recompiling the source code, scrolling multiple pages after each reaload is not optimal.
If you accept pull requests I could prepare a PR with a naive implementation which just scrolls the document back to the previous position after a reload.

It is actually already properly (hopefully) implemented in the current development version of the plugin (you can check out the kotlinjs-migrate branch). Unfortunately, it is taking much more time than I expected to publish the next release, as there are still some issues that should be fixed.
In the mean time, you can try out the alpha build as it should mostly work fine. You can download it from the actions page (https://github.com/FirstTimeInForever/intellij-pdf-viewer/runs/2669388506). You need to unzip plugin-artifact.zip and manually install inner intellij-pdf-viewer-0.12.0-alpha.1.zip (Plugins > click gear icon > Install plugin from disk).
I published the current development version into alpha channel in the plugin marketplace, but it will be available only in, like, a day or two.

In any case, if you are using TeXiFy as your LaTeX plugin, you should be able to select this PDF viewer in your run configuration. Then TeXiFy should automatically open the pdf and forward search to it after you compile, and you can also inverse search from the pdf to the tex source. See the TeXiFy wiki for more information.

@FirstTimeInForever Sounds great! Only checked the issue tracker for related issues and dit not find any, will try the alpha build for the time being.
@slideclimb Am using TeXiFy and have it setup as you propose, with the exception of automatically opening the pdf. Disabling the option seems to disable forwards and backwards searching which is inoptimal but not a dealbreaker. The reason why I'm disabling this option is because I use split view, the pdf document is reopened in the same "window" as the code which defeats the purpouse of having the source code and rendered document side by side. I do not know if this is an issue with my configuration, PDF-viewer or TeXify. If I'm the only person with this problem I would suspect that it's due to my setup.

Ah, right. I had set it to open in the right split pane by default because most people use (I assume) only a single editor when editing tex. If you position the pdf viewer to be where you want it to be the first time after it automatically opens, then forward search should work fine. If it doesn't, that's probably a bug in the pdf viewer (my bad).

Considering the last update was yesterday (by Jetbrains versions tab) is this issue supposed to be fixed/added in the latest version (0.13.0) ? I am on the latest yet this functionality isn't available


Python Script to convert Different International Currencies

Pull Request Template
**currency.py(Changes the currencies value via use of https://fixer.io embedded in Python) ** -
What have you Changed #191
Want to add a new script so generated a PR for a new script
Issue no.(must) - #191
Self Check(Tick After Making pull Request)

[x] This issue was assigned to me.
[x] One Change in one Pull Request
[x] My file is in the proper folder
[x] I am following clean code and Documentation and my code is well lint with flake8.
[x] I have added README.md and requirements.txt with my script

If the issue was not assigned to you Please don't make a PR. It will mark as invalid.
##OUTPUT

Join Us on Discord:- https://discord.gg/JfbK3bS

please use flake8 for python code standards

OK but @codePerfectPlus I have never used flake8 before can u explain me what exactly the bot is checking which is continuously giving error and how can i resolve that pls sir...

sry for such a messy PR but was not able to do the flake8 linting so @codePerfectPlus sry

Sir now i have runned my script via use of flake8 now do i have to generate a PR once again??

Sir not able to pass the lint checker.Code is ready and is executing also but when i am trying for PR with flake8 linting then also it is not passing pls help sir @codePerfectPlus

./Arrange/arrange.py:1:10: E261 at least two spaces before inline comment
./Arrange/arrange.py:1:35: W291 trailing whitespace
./Arrange/arrange.py:3:14: E261 at least two spaces before inline comment
./Arrange/arrange.py:3:50: W291 trailing whitespace
./Arrange/arrange.py:5:32: W291 trailing whitespace
./Arrange/arrange.py:6:22: W291 trailing whitespace
./Arrange/arrange.py:7:18: W291 trailing whitespace
./Arrange/arrange.py:9:37: W291 trailing whitespace
./Arrange/arrange.py:11:1: E741 ambiguous variable name 'l'
./Arrange/arrange.py:11:54: W291 trailing whitespace
./Arrange/arrange.py:12:8: W291 trailing whitespace
./Arrange/arrange.py:14:41: W291 trailing whitespace
./Arrange/arrange.py:16:16: W291 trailing whitespace
./Arrange/arrange.py:17:1: W191 indentation contains tabs
./Arrange/arrange.py:17:25: W291 trailing whitespace
./Arrange/arrange.py:18:1: W191 indentation contains tabs
./Arrange/arrange.py:18:14: W291 trailing whitespace
./Arrange/arrange.py:19:13: W291 trailing whitespace
./Arrange/arrange.py:21:34: W291 trailing whitespace
./Arrange/arrange.py:22:34: W291 trailing whitespace
./Arrange/arrange.py:23:37: W291 trailing whitespace
./Arrange/arrange.py:25:26: W291 trailing whitespace
./Arrange/arrange.py:26:1: W191 indentation contains tabs
./Arrange/arrange.py:26:21: W291 trailing whitespace
./Arrange/arrange.py:27:1: W191 indentation contains tabs
./Arrange/arrange.py:27:23: E226 missing whitespace around arithmetic operator
./Arrange/arrange.py:27:25: W605 invalid escape sequence '\ '
./Arrange/arrange.py:27:28: E226 missing whitespace around arithmetic operator
./Arrange/arrange.py:28:1: W191 indentation contains tabs
./Arrange/arrange.py:29:1: W191 indentation contains tabs
./Arrange/arrange.py:29:7: W291 trailing whitespace
./Arrange/arrange.py:30:1: W191 indentation contains tabs
./Arrange/arrange.py:30:23: W291 trailing whitespace
./Arrange/arrange.py:32:37: W291 trailing whitespace
./Arrange/arrange.py:33:26: W291 trailing whitespace
./Arrange/arrange.py:34:35: W291 trailing whitespace
./Arrange/arrange.py:35:41: W291 trailing whitespace
./Arrange/arrange.py:37:36: W291 trailing whitespace
./Arrange/arrange.py:38:1: W191 indentation contains tabs
./Arrange/arrange.py:38:24: W291 trailing whitespace
./Arrange/arrange.py:39:1: W191 indentation contains tabs
./Arrange/arrange.py:39:24: E226 missing whitespace around arithmetic operator
./Arrange/arrange.py:39:26: W605 invalid escape sequence '\ '
./Arrange/arrange.py:39:29: E226 missing whitespace around arithmetic operator
./Arrange/arrange.py:39:39: E226 missing whitespace around arithmetic operator
./Arrange/arrange.py:39:41: W605 invalid escape sequence '\ '
./Arrange/arrange.py:39:44: E226 missing whitespace around arithmetic operator
./Arrange/arrange.py:39:52: W291 trailing whitespace
./Arrange/arrange.py:40:1: W191 indentation contains tabs
./Arrange/arrange.py:41:1: W191 indentation contains tabs
./Arrange/arrange.py:41:8: W291 trailing whitespace
./Arrange/arrange.py:42:1: W191 indentation contains tabs
./Arrange/arrange.py:42:19: E226 missing whitespace around arithmetic operator
./Arrange/arrange.py:42:21: W605 invalid escape sequence '\ '
./Arrange/arrange.py:42:24: E226 missing whitespace around arithmetic operator
./Arrange/arrange.py:42:35: E226 missing whitespace around arithmetic operator
./Arrange/arrange.py:42:37: W605 invalid escape sequence '\ '
./Arrange/arrange.py:42:40: E226 missing whitespace around arithmetic operator
./Arrange/arrange.py:42:51: W291 trailing whitespace
./Arrange/arrange.py:43:1: W191 indentation contains tabs
./Arrange/arrange.py:43:26: W291 trailing whitespace
./Arrange/arrange.py:44:1: W191 indentation contains tabs
./Arrange/arrange.py:44:8: W291 trailing whitespace
./Arrange/arrange.py:45:1: W191 indentation contains tabs
./Arrange/arrange.py:45:17: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:4:1: E302 expected 2 blank lines, found 1
./Currency_Convert/currencyconverter.py:4:26: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:5:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:5:44: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:6:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:6:12: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:7:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:7:2: E301 expected 1 blank line, found 0
./Currency_Convert/currencyconverter.py:7:26: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:8:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:8:34: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:10:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:10:49: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:11:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:11:29: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:13:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:13:56: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:14:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:14:39: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:15:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:15:56: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:16:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:16:26: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:17:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:17:30: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:18:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:18:47: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:20:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:20:47: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:21:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:21:54: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:22:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:22:84: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:24:14: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:25:1: E305 expected 2 blank lines after class or function definition, found 1
./Currency_Convert/currencyconverter.py:25:27: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:27:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:27:54: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:28:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:28:83: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:29:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:29:29: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:30:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:30:40: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:31:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:31:36: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:32:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:32:33: W291 trailing whitespace
./Currency_Convert/currencyconverter.py:34:1: W191 indentation contains tabs
./Currency_Convert/currencyconverter.py:34:45: W291 trailing whitespace

you can find it by clicking on detail,
Install flake8 locally on your pc. there is also a vscode extension for too. try that

Please remove pictures and extra file(arrange.py and it's readme).
we need only

readme
requirements.txt
script

re fork the repo and create a new PR.


Add information about /// and //! comments and their purpose

Closes #830

This change is

for reference: https://blog.guillaume-gomez.fr/articles/2020-03-12+Guide+on+how+to+write+documentation+for+a+Rust+crate


[Pub] Self Host & Add/Import 3rd Party Repositories

The ability to for an individual, company, group or organisation to self host their own pub package repository and the ability to add/import repositories into the pub package manager.

Fully open sourcing the pub package server (If it is not yet open source)
Instructions on how to self host a pub package server
Adding the ability in the pub package manager client to add/import other repositories
Making it distinct on what packages in the pub package manager client are from

Issues related to pub need to be filed against the pub project, as it in not part of Flutter itself.


KAFKA-6028: Improve the quota throttle communication (KIP-219)

This PR is a continuation from https://github.com/apache/kafka/pull/4830. I create a new PR because the original PR got big and it looks like some reviewers are having problems with loading it. I also used a new branch.
This implements KIP-219, where a broker return a response with throttle time on quota violation immediately after processing the corresponding request. After the response is sent out, the broker will keep the channel muted until the throttle time is over. Also, on receiving a response with throttle time, client will also block outgoing communication to the broker for the specified throttle time.
Committer Checklist (excluded from commit message)

[x] Verify design and implementation
[x] Verify test coverage and CI build status
[x] Verify documentation (including upgrade notes)

@cmccabe Hi Colin. Could you do a quick review on FetchSessionHandler.java changes I made in this PR?
With this KIP, brokers will send empty fetch responses with INVALID_SESSION_ID on fetch quota violation. I modified FetchSessionHandler.java so that the handler can distinguish these empty responses and keep the current session if any ongoing.
Thank you.
Jon

@cmccabe Actually, after further discussion with @lindong28, we decided to address the incremental fetch session id in a separate PR after submitting this one. The current behavior is that a full fetch is performed after throttling.

@rajinisivaram Jon said that the failed system tests can pass now. Could you restart system test to see if it works now?
Also, one caveat of the current patch is that, if the FetchRequest is throttled, we will send a FetchResponse with INVALID_SESSION_ID, which causes client to reset its session and possibly send a full fetch request next time. It does not affect correctness and it affects performance when the client is throttled. So it maybe OK to address it in a separate patch, in which we can discuss with Colin etc. on the proper solution.

Hey @junrao, for large patch like this, would you like to review it, or is it OK to merge it after review by @rajinisivaram and I?

Note that most of the comments for this patch can be found in https://github.com/apache/kafka/pull/4830.

@lindong28 I started system tests on my local box.

@jonlee2 @lindong28 Started system tests: https://github.com/apache/kafka/pull/5064

@lindong28 The local system test run finished and there were 10 failures. 8 of them were "Unable to parse aggregate performance statistics on node 1: xxxx", and this was because some occasional stats dumped by ProducerPerformance.Stats.record() are not parseable by the test framework. Not related my changes.
The other two were an SSH exception and ducktape service nodes not going away after 10 mins. I reran them and they were gone.
@rajinisivaram I still can't access the jenkins link. Can you grant me an access (or whom should I ask)?

@jonlee2 That link appears to be a private link hosted by Confluent so there is probably not guarantee that it will be provided to anyone outside Confluent. They nicely give me the read access long time ago. Thanks @rajinisivaram for running the tests. I will help fetch the test result for this patch.

All tests in https://jenkins.confluent.io/job/system-test-kafka-branch-builder/1756/ has passed.

@rajinisivaram @lindong28 Addressed the last code comment.

@jonlee2 @lindong28 Colin is on vacation, so I think it makes sense to work on fetch session for throttled requests in a follow-on KIP. We definitely want to get this in before feature freeze on 29th May, but we will have a bit more time to merge smaller follow-on PRs if required.

@rajinisivaram @lindong28 Thanks you very much for reviewing it. Really appreciate it.

@jonlee2 Have you run this PR with realistic workloads at LinkedIn, particularly the one that was discussed in the KIP motivation section? It will be good to know if this PR fixes that issue. Thanks.

@rajinisivaram No. We'll need to deploy this PR to test that, but it may take a while until the Kafka release used in LinkedIn catches up.
If you don't have any further questions, I'll ask @lindong28 to merge this PR. Please let me know. Thank you.

@rajinisivaram @lindong28 I filed two follow-up tickets:

KAFKA-6944 - Add system tests testing the new throttling behavior using older clients/brokers
KAFKA-6966 - Keep the session id for incremental fetch when fetch responses are throttled

@jonlee2 If you have a test cluster against which you run load tests, you could perhaps deploy with this PR and test it out?

Yes, it would be great to do some load testing with quotas enabled to verify that this new approach indeed fixes the problem mentioned in the KIP. And that it doesn't cause other problems.

@rajinisivaram @ijuma  I've been trying to set up some load tests using our dev test cluster. I've done some verification and so far the patch seems working as intended, but I will need more runs to know better.
I'll be on vacation starting from this Saturday. I'll try my best to get some results before I leave.

@jonlee2 Thank you for running the tests. Any status you can provide before you go on vacation would be useful. We should try and merge this soon since this is the largest PR for 2.0.0.

I've run some load tests to verify the behaviors of this patch. My findings are below.

To simulate the scenario mentioned in the motivation section of KIP-219, I set up the following:
(Here, “old” means the latest trunk, and “new” means this patch)

1 MB/s produce bandwidth quota
max.in.flight.requests.per.connection = 1
1 old broker and 5 old clients
1 new broker and 5 new clients

In this setup, the old clients talk to the old broker only, and the new clients talk to the new broker only.
Then, using kafka-producer-perf-test.sh, I created workloads so that each broker would throttle over 1 second most of the time. And I set "request.timeout.ms" for one of the clients in each group to 1 second and observed their behaviors.
The old client went into a pathological loop of “send request” -> “disconnect due to timeout” -> “reconnect” -> “send request” -> "disconnect".  The new client received a response right away on quota violation and didn’t communicate with the broker until the throttling time was over. No disconnection happened.

new client - old broker
In this setup, I verified double throttling from both client and broker didn't happen. On quota violation, the client received the response after the throttling was over from the broker and once it received the response, it was able to send the next request right away.

old client - new broker
In this case, the old client received a throttled response right away and could also send another request right after that. However, due to the broker side throttling, it received the response for that request after the broker was done throttling.

I noticed that batch expiration happened in some cases, which in my understanding is expected because they were sitting in RecordAccumulator while throttling is going on. While reading the related code, it was noted that when determining whether or not to expire explicitly muted topic partitions, we need to take the throttling time into account as well (i.e., the throttling time shouldn't be counted toward expiration timeout). @lindong28 kindly provided a patch for this while I'm working on the tests. I'll push it shortly.
Please let me know if these tests should be sufficient. Thanks.

Thanks @jonlee2. Do any of the scenarios verify that the backpressure via socket channel muting works as expected (i.e. if a client doesn't respect the throttling time)? I wasn't sure if 3 did that.

@ijuma, did you mean a scenario where an old client keeps sending requests and eventually gets a timeout error because the new broker keeps muting the channel? I didn't cover that in the tests above, but I just tried it by setting max.in.flight.requests.per.connection to 100 and request.timeout.ms to 3 secs in the old client-new broker setup. I observed a repeating pattern of clients sending multiple requests and then disconnecting from the broker due to timeout.

@lindong28 @rajinisivaram Pushed the changes for the muted batch expiration.

@rajinisivaram, should above tests be sufficient? Can we merge this PR? Thanks.

@ijuma, did you mean a scenario where an old client keeps sending requests and eventually gets a timeout error because the new broker keeps muting the channel?

@jonlee2, yes, I think what you describe seems close enough. I wanted to make sure that if clients don't respect the throttle time, things work as expected. By the way, there's a merge conflict in the ConsumerCoordinator file.

@rajinisivaram @ijuma Thanks for the review!
It seems that only one stream related test failed in https://github.com/apache/kafka/pull/5094, which is likely not due to this patch. Do you think we can merge this patch for 2.0 release, or is more test/review required for this PR?

Thanks for the patch @jonlee2! Thanks for the review @rajinisivaram @junrao @ijuma! This PR is merged to the trunk now with the latest change in https://github.com/apache/kafka/pull/5094.

Hi @jonlee2,
Sorry.  I was on vacation the last two weeks, so I didn't get a chance to review this earlier.  The change to FetchSession.scala seems reasonable overall.
However, it seems like it would be better to add a new method like getThrottledResponse to the FetchSessionContext.  This would allow us to increment the fetch session epoch when returning the empty throttling response.  That would prevent the fetch session dropping.
(As you noted, clearly, the fetch session dropping is bad, and will result in extra network traffic when the throttle engages -- the opposite of what we want here.)
I also think it's kind of unfortunate that we iterate over the full fetch response so many times.  We might do it once to count the size, another time to get the data, and a third time to downconvert.  In the future, we might want to consider being more efficient here-- although that's probably outside the scope of this PR.

Hi @cmccabe,
Thanks for the input. I already filed KAFKA-6946 to fix this issue and am currently working on it. My current plan is that when returning an empty response,

for incremental fetch, increase the session epoch and return the actual session id in the response
for all others (including full fetch), return INVALID_SESSION_ID

So I believe this is in line with what you suggested. Can you confirm that this would work?
I agree that multiple iterations over fetch response is inefficient. I did look into ways to make it more efficient while working on KIP-219, but the required changes seemed quite involved and as you pointed out it was out of the scope. I'll file a ticket for the improvement.

@cmccabe
Actually, after reading the code further, I noticed that handleFetchRequest() in KafkaApis.scala:502 will create a new fetch context regardless of throttling, which in turn increases the session epoch for incremental fetch context (FetchSesson.scala:772). So it seems to me that all we need is to return the actual session id in the throttled response (and don't do anything extra regarding the epoch) if it is incremental fetch. Is this correct?

Actually, after reading the code further, I noticed that handleFetchRequest() in KafkaApis.scala:502 will create a new fetch context regardless of throttling, which in turn increases the session epoch for incremental fetch context (FetchSesson.scala:772). So it seems to me that all we need is to return the actual session id in the throttled response (and don't do anything extra regarding the epoch) if it is incremental fetch. Is this correct?

Yes, I believe this is correct.
You want to do something very similar to what updateAndGenerateResponseData is doing.
Check the session epoch to make sure it wasn't incremented by some other request.  Then, if the epoch is correct, generate an empty response like you are currently doing.  From IncrementalFetchContext#updateAndGenerateResponseData:
  override def updateAndGenerateResponseData(updates: FetchSession.RESP_MAP): FetchResponse[Records] = {
    session.synchronized {
      // Check to make sure that the session epoch didn't change in between
      // creating this fetch context and generating this response.
      val expectedEpoch = JFetchMetadata.nextEpoch(reqMetadata.epoch())
      if (session.epoch != expectedEpoch) {
        info(s"Incremental fetch session ${session.id} expected epoch $expectedEpoch, but " +
          s"got ${session.epoch}.  Possible duplicate request.")
        new FetchResponse(Errors.INVALID_FETCH_SESSION_EPOCH, new FetchSession.RESP_MAP, 0, session.id)

One approach would be to make this function take Option[FetchSession.RESP_MAP]  instead of just RESP_MAP.  Or you could create a new function just to generate the empty response.


Docker Based installation

Update docs and main to have:

For the user image we will have a dockerfile that downloads a released binary, instead of a code build: https://github.com/kubefirst/kubefirst/releases
Add to docs a way users can run a docker command as an alternative to the docker-compose as 2nd way to run the installer that sends them to the right path on the container
Add the last release as "latest" on dockerhub, so docker image don't need to be build by developers
Update welcome docs to reflect changes above

extra for x86 and arm64:

create a test for the docker image
automate the docker image test

To remove:

Delivered at: #250


Why isn't mask_bi taken from the index of img_cap_list?

Why isn't mask_bi taken from the index of img_cap_list?

If i is taken, there will be corresponding errors in calculating the contrastive loss later.

Because mask_bi is not really the index of the img_cap_list. Rather, it's the batch index.
See the below example:
a = [[1,2],[1,2],[3,4]]
mask_bi = [i for i,e in enumerate(a) for _ in e]
print(mask_bi)

>>> [0, 0, 1, 1, 2, 2]

(Suppose the structure of img_cap_list is the same of a)


Player bots

Is it possible to make bots be recognized as players. Could  be useful for testing stuff.

This practice tools mod is dedicated for practice purposes so no such feature will be added and it will be done separately.


Add CMake build support

Hi there,
I (and we) would like to migrate from GYP (Generate Your Projects) to CMake build as a default Linux build system, for the following reasons:

GYP requires Python 2.x, and it does not support Python 3, at the moment
Chromium team uses GN (Generate Ninja) instead of GYP
CMake is pretty widely used in C++ projects (such as LLVM Clang)
JetBrains CLion supports only CMake-based projects

Also I'm a CMake newbie :disappointed_relieved: , so could someone kindly help me review this pull request?

I'm finally done.


Walking the graph is slow

Issue summary
Exporting a snapshot is enough to be a problem. On my machine, I can export at ~25MiB/s. I believe the primary bottleneck is the graph traversal code.
Exporting a snapshot involves two parts:

A depth-first search of the graph producing a list of blocks.
Incrementally encoding the blocks into many z-frames.

The second part can be benchmarked by running forest-cli snapshot compress. On my machine, it runs at ~74 MiB/s. Benchmarking the traversal code is a bit more difficult, but it clocks in at ~65 MiB/s for me.
Let's try and make everything faster and more parallel.
Acceptance criteria:

[ ] DFS graph walking should produce at least 100 MiB/s of data.
[ ] The ForestCAR.zst encoder should produce at least 100 MiB/s of data (if given sufficient input).

Other information and links
Useful commands:

Download mainnet snapshot: forest-cli snapshot fetch
Export snapshot forest-cli archive export {INPUT.forest.car.zst} --output-path out.forest.car.zst
Compressing a snapshot forest-cli snapshot compress {INPUT.forest.car.zst} --output out.forest.car.zst

See also forest-tool benchmark.

We have the relevant benchmarks here: https://github.com/ChainSafe/forest/pull/3318 . Could be fixed as part of that PR.

Mostly done. No more low-hanging fruit.


kinect support?

since windows (this could be a windows only thing) has kinect drivers, maybe u could add that?

I like the idea, however redphx has made it clear that this project will only be for JoyCons. Wii Remotes have already been rejected, and they would be easier to implement, so this probably won't happen.
See #5, #21, and #25.


Failed generate pdf with eps file as image file.

HI, this is noe. I use it with write paper with latex.
I saw this error when I use .eps file in latex.
latex-test-latex-1  | Running 'dvipdfmx  -o "template.pdf" "template.dvi"'
latex-test-latex-1  | ------------
latex-test-latex-1  | template.dvi -> template.pdf
latex-test-latex-1  | [1][2][3][4][5][6
latex-test-latex-1  | dvipdfmx:warning: Could not open conversion result "/tmp/dvipdfm-x.5884038f1a3641531dc1e7b804bdf7dd" for image "./sampleimage.eps". Why?
latex-test-latex-1  | dvipdfmx:fatal: Image inclusion failed for "sampleimage.eps" (page=1).

This seems to be an error caused by ghostscript not being installed on debian or alpine. (If I installed ghostscript in docker container, this problem was solved).
When writing a paper, eps files are minor, but sometimes used.
In this case, can I ask you to add the installation of ghostscript? Or should we customize our own Dockerfile and install it additionally?
Have a nice day!

This appears to be a feature extension.
I will extend Docker Image, problem has solved. Thanks!


Send data empty when wysiwyg used in a modal window

When I'm using my form in a bootstrap3 modal window the data in the POST request does not contain the content I just typed into the wysiwyg text field. The POST data shows the field is just empty. Other fields are send just fine, and when wysiwyg is removed the same text field also works just fine.
(using django-fm for the modal window, but that should not make a difference)

The problem is that the wysiwyg editor is already applied, but then the HTML is wrapped/changed/relocated to open the model dialog.
Instead of using the template tag to activate the wysiwyg editor, use the JavaScript API after opening the dialog. You could use something like:
if (django_wysiwyg.is_loaded()) {
    var textareas = $("textarea").toArray();
    for (var i = 0; i < textareas.length; i++) {
      var textarea = textareas[i];
      django_wysiwyg.enable("e:" + textarea.name, textarea.id);
    }
}


vbump dacpac, schema compare, and sql projects after Nov release

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
5 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.006%) to 41.972%

Files with Coverage Reduction
New Missed Lines
%

extensions/sql-bindings/src/common/azureFunctionsUtils.ts
1
80.65%

src/sql/workbench/services/connection/browser/connectionDialogWidget.ts
1
73.05%

extensions/machine-learning/src/common/processService.ts
3
77.78%

Totals

Change from base Build<PHONE_NUMBER>:
-0.006%

Covered Lines:
28751

Relevant Lines:
63637

💛  - Coveralls


Add chooser for network

Currently, the network to get data from is hard coded.
The user should be able to choose between different public nodes.

Please assign to me.


Files parsed by IncomingForm().parse are not automatically cleaned up or deleted.

Support plan

Which support plan is this issue covered by? (Community, Sponsor, Enterprise):  Community
Currently blocking your project/work? (yes/no): no
Affecting a production system? (yes/no): yes

Context

Node.js version:  18.12.0
Release Line of Formidable (Legacy, Current, Next):  Current
Formidable exact version:  2.0.1
Environment (node, browser, native, OS):  node
Used with (popular names of modules):   next.js

What are you trying to achieve or the steps to reproduce?

Parsed files are not cleaned up automatically and lead to a memory leak in production.
I couldn't find this behavior documented anywhere, so I'm unsure whether it's expected behavior that needs to be documented or whether it's a bug and parsed files should be deleted automatically.
export default async function handler(req, res) {
  // snip...
  let form = new formidable.IncomingForm();
  try {
    let formfields = await new Promise(function (resolve, reject) {
      form.parse(req, function (err, fields, files) {
          if (files?.file) {
            jsonStream = fs.createReadStream(files.file.filepath).pipe(ndjson.parse());
            in_file = files.file.filepath;
          }

          resolve(fields);
      });
    });
    // snip...
  } finally {
    // My first attempt to fix the memory leak.  This didn't work.
    if (jsonStream) {
      jsonStream.destroy();
    }

    // Without what follows, a memory leak appears.
    if (in_file) {
      fs.unlink(in_file, (err) => {
        if (err) {
          // Whatever.  Maybe something else cleaned it up.
          return
        }
      })
    }
  }
}

What was the result you got?

The effect is best seen in the production graphs.
You can see the container reboot due to an out-of-memory killer on the left, then you can see a reboot where I  attempted to fix the leak by adding the jsonStream.destroy() logic, and then finally the noted fix where I use fs.unlink to delete the files emitted by form.parse.
What result did you expect?
I expected that the parsed files would be automatically cleaned up when form or formfields went out of scope.  I have to use additional logic to separately delete them or a memory leak occurs.

Files are not removed

Can you help me understand how keeping files on disk means it's necessary to keep the data in memory? Keeping files seems super reasonable. Keeping things in memory seems somewhat less reasonable.

@bensonk In this case, I believe the reason is that the files are stored in memory as an artifact of the host (Cloud Run).
@GrosSacASac Is this working as intended, then, or is this a bug?  If it's working as intended, the examples should probably be updated so that they clean up the files when they're done, because if not I imagine that a lot of your users made the same mistake and are experiencing this same disk space or memory leak situation without knowing it.

Ok, I see that the behavior is documented:  https://github.com/node-formidable/formidable/blob/master/README.md#highlights
I was text searching for different terms.  From the perspective of my pipeline which consumes but has no need to store the files, this behavior is surprising but I can see how it would make sense from a different perspective.

@theGOTOguy Parsed files are not cleaned up automatically and lead to a memory leak in production.
I couldn't find this behavior documented anywhere, so I'm unsure whether it's expected behavior that needs to be documented or whether it's a bug and parsed files should be deleted automatically.

They are not automatically cleaned up, yeah. That's a user-land thing. There's not-writing-to-disk option and you should use it instead.
I don't see it necessarily as memory leak or anything. But good point, maybe we should document it.


Add AWS Cloudformation Deployment file for iga stack

This pull request commits a CloudFormation stack deployment file to your repository. AWS CloudFormation uses the iga-deploy.yaml file to locate, track, and automatically update a stack that belongs to the iga template. When this pull request is merged, AWS CloudFormation tracks changes to this repository and applies updates to the stack and parameters that are defined in the file.

:warning: When this change is merged, AWS CloudFormation tracks and syncs changes from this repository to the stack defined in iga-deploy.yaml. Make sure to review it. You can disable syncing at any time in the AWS CloudFormation console.

How does it work?
Your iga-deploy.yaml file contains the path from the root of your Git repository to your CloudFormation template as well as the parameters and tags for your stack. When changes are committed to your repository, CloudFormation automatically updates the stack, its parameters, and tags.
How do I update the iga-deploy.yaml file?
Edit your iga-deploy.yaml file and commit the changes to your repository. Make sure that you commit the changes to the path and branch in the repository that are specified in the deployment file.

This commit updates a branch tracked by AWS CloudFormation GitSync. Below is a summary of the changes that would be generated if you merged the change in:
Stack : arn:aws:cloudformation:us-east-1:755164003878:stack/iga
Summary: Change set creation failed with message Failed to get deployment and template file.


[Enhancement] Add ability to get iOS device's name

For example, the device name I have for my iPhone is "Ander's iPhone 6S". I would like JMUSBDevice to have a property called name or something where I can get this information. I know this is possible as this is implemented in Saurik's Cydia Impactor. When you plug your iPhone into your Mac, Cydia Impactor will tell you your device's name (e.g. "Ander's iPhone 6S") and serial number. It is able to do read the device name even on stock iOS devices.

Curious nothing happens here


Reports for PR runs should contain commit hashes

I often read the results of a nixpkgs-revew run from ~/.cache/nixpkgs-review/pr-[pr-number].
One of the files in there, probably the report itself, should contain hashes of the commits in question, so that it's clear, without having to rely on my own memory, what exact version of the package set was actually built.
The relevant commit hashes are:

The tip of PR branch in question
The tip of the target branch, if --checkout merge is used
Maybe also the commit hash of the merge commit, if --checkout merge is used

Sounds like a good idea.


Remove more global static std::string

Signed-off-by: Henner Zeller<EMAIL_ADDRESS>

Codecov Report

Merging #1864 (f4e9d40) into master (37e6ef2) will decrease coverage by 0.00%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##           master    #1864      +/-   ##
==========================================
- Coverage   24.20%   24.19%   -0.01%
==========================================
  Files         187      187
  Lines       31309    31307       -2
==========================================
- Hits         7578     7576       -2
  Misses      23731    23731

Impacted Files
Coverage Δ

src/Cache/Cache.cpp
0.58% <0.00%> (ø)

src/SourceCompile/CommonListenerHelper.h
66.66% <ø> (-8.34%)
:arrow_down:

src/Cache/ParseCache.cpp
8.95% <100.00%> (-0.68%)
:arrow_down:

Continue to review full report at Codecov.

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


Fix missing argument to cmd for terraform-ls

$ terraform-ls
Usage: terraform-ls [--version] [--help] <command> [<args>]

Available commands are:
    completion        Lists available completion items
    inspect-module    Lists available debug items
    serve             Starts the Language Server

$ terraform-ls serve
2020/09/14 13:34:28 serve_command.go:137: Starting terraform-ls 0.0.0-dev
2020/09/14 13:34:28 service.go:60: Preparing new session ...
2020/09/14 13:34:28 service.go:77: Worker pool size set to 12
2020/09/14 13:34:28 watcher.go:118: watching for changes ...
2020/09/14 13:34:28 langserver.go:69: Starting server (pid 83736) ...

Ref #345

For anyone coming here, while waiting for this to be merged you can easily fix it on your end.
nvim_lsp.terraformls.setup({
  cmd = {'terraform-ls', 'serve'}
})

@lithammer Thanks. Could you rebase?

Could you rebase?

Done