Add afterModelPromise option

In the application that I'm working on, there are many cases where get(this, 'store').find(modelName, params) is not the end of the promise chain before we hand the fetched models to the route. This PR adds that functionality.
I tried to follow the conventions that I could see for declaring private parameters, using the options object, and deleting keys after creating variables for them. That said, it does seem a little odd to have an _afterModelPromise private property, and you might have better suggestions for how things should be named.

Sorry about opening a PR with test failures. Before I go in and fix them up, I wanted to make sure that this was actually an option you were interested in and an approach that makes sense. If it is, I'm happy to go in and update all of the testing. If the approach doesn't make sense, I'm also happy to try something else.

innnnnneresting @kxcrl !  thanks for this.  Let me mull it over a couple days while we work on supporting ED 1.13x

@hhff Cool. = )
Sounds good. Again, just let me know if you'd like to see any of it changed or rewritten.

:+1: to this idea. Thanks for the PR!

I think I'd like the ergonomics to feel more like the regular afterModel() method on the route.  Something like
model() {
  return this.infinityModel('product',  { perPage: 12, startingPage: 1 });
},
afterInfinityModel(infinityModelPromise) {
  return infinityModelPromise.then(collection => {
    let preloadPromises = [];

    collection.forEach(item => {
      preloadPromises.push(item.get('somethingAsync'));
    });

    return Ember.RSVP.all(preloadPromises);
  });
}

default would look like:
afterInfinityModel(infinityModelPromise) {
  return infinityModelPromise;
}

I'm a little worried that this may obscure the semantics of how the model hook works though - ie: where should a "catch" live?
@kxcrl / @mike-north / @kellyselden / @mkorfmann thoughts?

@hhff I think that sounds great. I'm not sure I fully follow your concern, though - can you expound on it a bit more? Is it just about the extra overhead in making sure that any promise passed into the chain has a way to fail gracefully?

@kxcrl I just mean that exposes a couple of places where developers can handle failed promises, instead of just one obvious place.  I don't think it's a big concern tho - also, now you can catch failures in the infinityLoad action promise style - which is a new feature.
Do you want to have a pass at implementing it in this style brother?

@hhff Ah, gotcha. Yep, will do!

@hhff Alright, I finally had some time to sit down and implement this. Maybe I did something wrong, but your version was very easy to get working. Let me know what you think and I'll get it wrapped in some tests.

:+1: awesome work - added a comment in!

Aaaaand maybe that'll do it? I updated the afterInfinityModel method and went ahead and added a test for it.

@hhff Just checking in real quick. Anything else you'd like to see on this one?

thanks so much @kxcrl !
Could u add a test for a returning promise (comment above)

A Readme Note about this functionality
Merge master & squash

and then we're good!!  You're the man thankyou!

@hhff Awesome! Thanks for all the feedback and walking me through everything you were looking for. Let me know if there's anything else that needs changing.

Amazing...!  I'm very excited for this.  Any idea why beta is failing on travis?

@hhff Great question. I read through the 2.2.0-beta.1 changelog and couldn't find anything that would seem to cause this. I can reproduce the failure locally with ember try ember-beta test, but unfortunately it's still there when I do this on the current master branch without my changes, too.
If you checkout df5e340b64334db9d2d95caae37d3d7e3b3ad279, the error goes away. As soon as you add in c7ccf4be414af3d0b632e219e98be84a115bcd0d, the error appears, so it looks like it got introduced with something that was changed in #72.
I tried a few things with the failing test itself, but I ran out of time before I could get anywhere.

Thanks @kxcrl - do you have some time to play around with those changes made in #72 and figure out what is causing it?  Nothing in that PR seems fishy...

@hhff Hmmm, possibly, but unfortunately not until later next week at the earliest. I'm also wondering if it might just be a bug in the latest ember beta. Is this something you want fixed before you merge any pulls?

Yeah Ideally!  No rush / no stress :)

@hhff @davidgoli @ManuelArno Sorry for the long delay. I went through and rebased this and added in the changes that you all were requesting to #_afterInfinityModel. I'm not sure if I implemented them the way you were looking for. Give it a look and see what you think. If there's something I'm not understanding about it, I'd be happy to hand this off.

Right on both counts, @davidgoli

@davidgoli / @ManuelArno - are u guys happy with this?
After the changes to the Readme - I'm happy to release this badboi

:+1:
2015-11-12 4:03 GMT+01:00 Hugh Francis<EMAIL_ADDRESS>
@davidgoli https://github.com/davidgoli / @ManuelArno
https://github.com/ManuelArno - are u guys happy with this?
After the changes to the Readme - I'm happy to release this badboi
—
Reply to this email directly or view it on GitHub
https://github.com/hhff/ember-infinity/pull/77#issuecomment-155983606.

--
Manuel Arno Korfmann
Luetzowstrasse 8
24105 Kiel
manu @ korfmann . info
+49 40 210913788
www.manuel-korfmann.de

A few nitpicks but otherwise looking solid!

great nitpicks @davidgoli ! one can never nitpick enough with software ore one has to nitpick later (and longer) :+1:

Thanks @davidgoli - I just made you a collab to this repo.  When you're happy with this PR - please merge it and I'll cut a release!

Thanks @hhff ! @kxcrl Let me know if you're able to address the comments, and we'll merge this.

@davidgoli K. Things got pretty busy with work again, but I'm hoping to have time to fix this up real quick tomorrow.

@kxcrl any updates? would be great to get this out!

@davidgoli I implemented a couple of your changes. I couldn't figure out how to refactor the tests to use the new method with the time I had and Ember.typeof caused problems, so those parts aren't done. You're welcome to take this over if you want and implement those other changes if you'd like to see it finished soon and know right away what it takes.

@kxcrl I don't have push access to your repository, so I'm just going to check it out and create a new branch in the main repo to finish the work. Thanks so much for your help!

Closing this in favor of #105
amazing work @kxcrl & @davidgoli !

@davidgoli Awesome. :+1:
@hhff Sounds good!


Louis/i os14 warnings

Description

Fixed most but not all deprecations for bumping deployment target to iOS 14. .alert is a bit harder to fix so I let it go at the time of this pr. imo we can leave this till later on and see what to do.
I have written custom warnings for all the changes that might potentially require testing.
Todos
All of these changes are not tested because I don't know how. But only some of those require testing I believe.

[ ] Tests

The remaining warnings are from dependencies that I have no control over, and I suppose Rahul is not gonna update those ever again. I fixed all the warnings in Lottie by upgrading to their latest release. Had to change a few lines of code for that, but I tested the animations and they seem to work.

Please check my custom warnings for further reference :)

Cleaned up all SwiftLint Violations, (apart from function body length violation)


Implement task groups and returning results

Sometimes we need to run a lot of tasks, grouped into small sets (less than goroutines count). The effective way is to run groups concurrently, not one-by-one (they are small). But the result should be grouped. Similar logic is implemented in alito/pong
One of usage case is parsing of search results:
s := stream.New().WithMaxGoroutines(10)
groups := make([]*conc.Group, len(searchQueries), 0)

for query := searchQueries {
    g := s.group(query)
    groups = append(groups, g)

    for pageNumber := 1; pageNumber < 5; pageNumber++ {
        pageNumber := pageNumber
        g.Go(func() (res interface{}, err error) {
            res, err = getPageResults(query, pageNumber)
            return
        })
    }

    g.onFinish(printGroupResults)
}

func printGroupResults(g *conc.group, results []interface, err error) error {
    fmt.Printf("Results of search query %v: %v\n", g.GetId(), results)
    return nil
}

// or synchronous
for g := groups {
    results := g.GetResults(); // or g.Wait()
    _ = printGroupResults(g, results, nil)
}

Or how can I implement this logic an easy way with current functionality?

Have you seen ResultErrorPool? It looks like that will do a similar thing to the "synchronous" version at the bottom.
Alternatively, a task submitted to a stream returns a closure that will be executed in the order submitted, so something like the following should work:
s := stream.New().WithMaxGoroutines(10)
for query := range searchQueries {
    for pageNumber := 1; pageNumber < 5; pageNumber++ {
        pageNumber := pageNumber
        query := query
        s.Go(func() stream.Callback {
            res, err := getPageResults(query, pageNumber)
            return func() { printGroupResults(query, page, res, err) }
        })
    }
}
s.Wait()

The use case in the non-synchronous version is similar to what was available in lib/group's Limiter - we use this in sg to execute groups of work concurrently with a shared, global limit, abbreviated version:
	categoriesGroup = group.NewWithStreaming[error]()
	// checksLimiter is shared to limit all concurrent checks across categories.
	checksLimiter = group.NewBasicLimiter(r.Concurrency)

	// ...

	for i, category := range r.categories {
		// Run categories concurrently
		categoriesGroup.Go(func() error {
			// Run all checks for this category concurrently, with a shared
			// limit on how many checks can run together
			checksGroup := group.New().
				WithErrors().
				WithConcurrencyLimiter(checksLimiter)
			for _, check := range category.Checks {
				// run checks concurrently
				checksGroup.Go(func() error { ... })
			}

			return checksGroup.Wait()
		}, ...)
	}

This helps us show the user that all categories are running, while only r.Concurrency checks are running at the same time - it might be a bit of a funky way to do this, but it made sense to me when I wrote it 😅

We might be able to do something similar by allowing users to specify a Pool to use (kind of like the ForEachIn(*pool.Pool, ...) idea that was floated):
type PoolLike interface {
   unwrap() Pool
}

func (p *Pool) InPool(pool PoolLike) *Pool {
   p.limiter = pool.unwrap().limiter
}

Usage:
s := stream.New().WithMaxGoroutines(10)
for query := range searchQueries {
    s.Go(func() stream.Callback {
        g := pool.NewWithResults().InPool(s)
        for pageNumber := 1; pageNumber < 5; pageNumber++ {
            pageNumber := pageNumber
            g.Go(func() (res interface{}, err error) {
                res, err = getPageResults(query, pageNumber)
                return
            })
        }
        groupResults, err := g.Wait()
        return func() {
            printGroupResults(...)
        }
    })
}
s.Wait()

The awkward bit in this example is that s.Go consumes a worker that could be used by g.Go, but maybe one could create a separate Pool that does nothing but act as a limiter


[bpf_map_lookup_batch] Add test case to retrieve data in batches

Description

Added the missing test case to retrieve in batches.
Added BPF_MAP_TYPE_LRU_HASH map test.

Testing
_Do any existing tests cover this change? No.
Are new tests needed? Yes
Documentation
_Is there any documentation impact for this change? No
Installation
_Is there any installer impact for this change? No

Please either remove the "concurrent_delete" flag or make use of it. As it stands right now this is dead code.

Replied above. Can you please suggest? Thanks.

Please either remove the "concurrent_delete" flag or make use of it. As it stands right now this is dead code.

Removed.


Functionality Tests for gpurun using the -m and -l options. Test for SWDEV-489668.

Test for SWDEV-489668.
Functional tests for gpurun with the -m and -l options.
The C program: gpurun-l-m.c allocated N bytes, stores and checks this memory using OpenMP with offloading.
The Python program: gpurun-l-m.py executes program: gpurun-l-m using 90% of a single GPU's memory.
The script: gpurun is run with the -m and -l options with HSA_XNACK=0 and 1.
The Python program: gpurun-l-m.py will fail if executables: rocminfo or numactl are not present.
Checking for failure, return error code's: -1, -2, -3, -4.

seems to have extra commit @Lynd98
Correctness tests for SWDEV-364228, two tests with flang and two test…


Allow customizing touch-action

Hi,
thanks for this great lib, very easy to use.
But I think setting touch-action to none is not always wanted.
For example when one just wants to use left and right swipe but keep the default site scrolling on up and down swipe.
This PR adds actionTouch to the parameters of swipe, so it can be set to pan-y to keep the site scrolling active.

You are totally right @ydylla I made the library with my own project in mind, and not of its features are used in a scroll page. Agree it is must have functionality for such a lib.
Great you added stuff also to the documentation section.
Thx

Thanks, for the fast merge and release 👍


calibration.toml file for h36m

How do you generate the calibration.toml file for h36m dataset? The h36m-fetch code is not generating calibration.toml normally.

calibration_files.zip
Thanks for your interest! We will work on releasing a cleaner version of the script to generate toml files. In the meantime, here's all the calibration.toml files we used for each subject.

Thanks for the quick response. The calibration is working for now, it would be if you share the script later.
Your script do not support multiple gpus?

we are still working to clean other aspects of the code (ex: easily run on custom datasets). multiple gpu could be a future feature, but this is not planned at least for the first stage. thanks for checking & let us know if there's anything else!


Spotify podcast API

It would be cool when spotify-dart also support the Podcast API -> https://developer.spotify.com/community/news/2020/03/20/introducing-podcasts-api/

Hi @maku, sounds like a great idea! Do you want to try and add the endpoints with a PR? We can assist you, should you need help along the way!
At the moment I sadly don't really have the time to add such big new things myself..

I can do this. I need for personal project
This week maybe

@rinukkusu
I try use this endpoint and API return 404.
But in this similar endpoint works fine.
Is because
Show episode endpoint, need a scope and get several shows no. Maybe this is the problem? I need the complex authentication?

@deandreamatias can this issue be closed?

@deandreamatias can this issue be closed?

@hayribakici No, because podcast API has more endpoint to include in this package

@deandreamatias I would create separate issues for the missing endpoints and close this one, since the according branch has already been merged.

@maku more endpoints coming later :)
see #78


programmatic library support

This a probably the laziest take with the bare minimum of exposing the target and generate functions.
Maybe https://github.com/rust-embedded/svd2rust/pull/214/files is better? I dont have idiomatic api rust opinions yet..
Also, I dont have opinions on the rust fmt commit but my client is set up for it so I just put it in a separate commit. Just look at the split commit.
cc @jamesmunns (ignore irc links this is my cleanest copy)
My usage looks like
use svd2rust::{generate, target::Target, util::build_rs};

...

    let mut device_x = String::new();
    let items = generate::device::render(&device, &Target::CortexM, true, &mut device_x).unwrap();

    //save other files
    writeln!(File::create("device.x").unwrap(), "{}", device_x).unwrap();
    writeln!(File::create("build.rs").unwrap(), "{}", build_rs()).unwrap();

    //form lib.rs and save
    let lib = format!("{}", quote!(#(#items)*));

...

Oops. I just found https://github.com/rust-embedded/svd2rust/pull/207 where I see exposing internals was already done and backed out again, which led to https://github.com/rust-embedded/svd2rust/pull/214
Sorry for the noise, ill close this and keep pushing on that pr


RFE: Export all data to CSV/XLSX

Export lists of users, offsrpings, shifts, etc to csv, xlsx

I will attempt programming this enhancement.


Wont Work

im trying to compile even the  example proyects, CONFIG_DMX_MAX_PERSONALITIES It's not declared anywhere so it wont compile
Using Arduino IDE on Fedora Linux.

Thanks for the heads up! This is happening due to how Arduino builds ESP32 projects. I've patched this problem so it should now build properly.
Let me know if you have any other questions or concerns!


Creates a common context to be shared by tests in the new client format

Feature Branch PR

Once #240 goes through, this should be an easy to review PR :smile:

Hmmm, maybe we need to close and re-open the PR?

Yup, that did it.

refactoring

@oochelz @ausmith ok this has been updated a bit


Run tests with Rubinius 3

This is pinned to a specific version because of https://github.com/travis-ci/travis-ci/issues/5889
We can unpin the version once that issue is resolved.

@thedrow can you please pin to an earlier version, or wait for 3.37? I'd say 3.36 is a transitional version.

Invalid version, ought to just be rbx with nothing else, per Travis CI oddities. This is being updated shortly.


Ci18 31

https://fiterio.atlassian.net/browse/CI18-31
When enabling S3 bucket there was an issue with running Fineract. Region seems to be required. Also, Carbon want us to pass the region when accessing S3 bucket. This PR adds an env variable for setting region when turning on S3 bucket.
I've also, used this opportunity to add the default ff4j template to the container so you don't have to pass it as an env variable. Fineract was failing to run if this is not explicitly set.

@Napho @MageziArthur kindly assist with this


Allow outputFolder to be an absolute path

Closes #14

Thanks! This has been published as v0.4.13


I run the Homi server it worked just out of the box. Connected it to my MQTT broker - everything worked out of the box.
Then I installed the example code on on of my esp8266-01 and nothing happened. It did not create AP as it is said in the getting started manual and the serial had also nothing to say. Once i got some error stack output but that was once.
What could it be?
Tell me if you need additional info on the issue.
Thanks in advance man.
Cheerz,
Guby

https://homie-esp8266.readme.io/docs/built-in-led
Try to disable led feedback

@benzino77  will try and let you know. Chgeerz mate

Activate Logging to Serial in the setup() function.

Serial.begin(115200);
homie.setLogging(true);

See, if there are any error messages when booting ConfigurationMode.

Hey @benzino77 here is the output when trying to compile :
Arduino: 1.6.10 (Windows 10), Board: "NodeMCU 0.9 (ESP-12 Module), 80 MHz, 115200, 4M (1M SPIFFS)"

C:\Users\Zarro\AppData\Local\Temp\arduino_modified_sketch_360\LightOnOff.ino: In function 'void setup()':

LightOnOff:24: error: 'class HomieInternals::HomieClass' has no member named 'disableLedFeedback'

   Homie.disableLedFeedback(); // before Homie.setup()
         ^

exit status 1
'class HomieInternals::HomieClass' has no member named 'disableLedFeedback'

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
```

The documentation linked above is for the upcoming v2. The current
documentation is there:
https://github.com/marvinroger/homie-esp8266/blob/v1.5.0/docs/9.-Troubleshooting.md
:)
Le 24 août 2016 10:21 PM, "gubagu"<EMAIL_ADDRESS>a écrit :

Hey @benzino77 https://github.com/benzino77 here is the output when
trying to compile :
Arduino: 1.6.10 (Windows 10), Board: "NodeMCU 0.9 (ESP-12 Module), 80 MHz, 115200, 4M (1M SPIFFS)"
C:\Users\Zarro\AppData\Local\Temp\arduino_modified_sketch_360\LightOnOff.ino: In function 'void setup()':
LightOnOff:24: error: 'class HomieInternals::HomieClass' has no member named 'disableLedFeedback'
Homie.disableLedFeedback(); // before Homie.setup()
^
exit status 1
'class HomieInternals::HomieClass' has no member named 'disableLedFeedback'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/marvinroger/homie-esp8266/issues/135#issuecomment-242195087,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA8eNfnRP0mLydZb6p1Kh-zjavqVIvgoks5qjKezgaJpZM4Jr5sO
.

@marvinroger this got me little bit further...

Format your SPIFFS:

#include "FS.h"

void setup() {
  Serial.begin(115200);
  Serial.println("");
  delay(1000);
  Serial.println("Mounting FS...");

  if (!SPIFFS.begin()) {
    Serial.println("Failed to mount file system");
    return;
  }

  if (!SPIFFS.format()) {
    Serial.println("Failed to format");
  } else {
    Serial.println("File system formatted");
  }
}

void loop() {
}

Flash the following Homie sketch:

#include <Homie.h>

void setup() {
  Serial.begin(115200);
  Serial.println();
  Serial.println();
  Homie.enableBuiltInLedIndicator(false);
  Homie.disableResetTrigger();
  Homie.setFirmware("test", "1.0.0");
  Homie.setup();
}

void loop() {
  Homie.loop();
}

Does your serial monitor print something then?

Hey there,
The first sketch has the same result as my previous comment.

@gubagu It looks like you're compiling for an ESP12 module with a 4MB (32Mb) flash chip.  Most ESP-01 modules come with either 512KB (4Mb) or 1MB (8Mb) flash.
I had a similar problem until I switched board definitions to a 512KB ESP01.

 Thanks a bunch !


Use separate namespace for IPNS persistent cache

Our IPNS package implements a separate persistent cache for IPNS records. The
format of the value stored in the database is different from the format used
by the DHT package. This commit changes the database key used by the persistent
cache to make sure it does not collide with the key used by the DHT package
which might otherwise cause records to be overriden with a different format.
closes #1612

Coverage increased (+0.04%) to 35.618% when pulling abb67959c905465df520f6308af4e1f382d80366 on ipnscache into cacb79099104fa35b367852d07e2f6de954fdda7 on master.


(Updates) Status on YT2009 compatibility with 1.x YouTube APKs

Here, this is an open updates page for status.
Since I'm tired of waiting (and probably you), I have decided to make this for everyone.
Hopefully we can make 1.x apps supported with YT2009 in the near future someday (ftde0 said).
Last week: no response
Stay tuned for updates!

i did release an update 3 days ago that addresses some of 1.x issues.
https://github.com/ftde0/yt2009/commit/f955cc7d4369a3ad5d46b27044d36b455b442fc2
if you're still experiencing issues with 1.6.21, make sure you've set shouldUseMasf to false.
you can find where shouldUseMasf is by opening a 1.6.20(E) APK in jadx as this one doesn't have obfuscated variable names, unlike 1.6.21. apply the required change for your 1.6.21 decompile.

i did release an update 3 days ago that addresses some of 1.x issues. f955cc7
if you're still experiencing issues with 1.6.21, make sure you've set shouldUseMasf to false. you can find where shouldUseMasf is by opening a 1.6.20(E) APK in jadx as this one doesn't have obfuscated variable names, unlike 1.6.21. apply the required change for your 1.6.21 decompile.

Okk

i did release an update 3 days ago that addresses some of 1.x issues. f955cc7
if you're still experiencing issues with 1.6.21, make sure you've set shouldUseMasf to false. you can find where shouldUseMasf is by opening a 1.6.20(E) APK in jadx as this one doesn't have obfuscated variable names, unlike 1.6.21. apply the required change for your 1.6.21 decompile.

There isn't a shouldusemasf in 1.6.21

yes, as variable and class names in 1.6.21 are obfuscated. i referenced 1.6.20(E) as its variable and class names aren't obfuscated (and have a shouldUseMasf but the versions themselves don't work on modern android). once you find where shouldUseMasf would be in 1.6.21 (using 1.6.20(E)) you can set it to false.

yes, as variable and class names in 1.6.21 are obfuscated. i referenced 1.6.20(E) as its variable and class names aren't obfuscated (and have a shouldUseMasf but the versions themselves don't work on modern android). once you find where shouldUseMasf would be in 1.6.21 (using 1.6.20(E)) you can set it to false.

Is there any other way to edit it? My friend wants to patch it and is his first time patching 1.6.21. He did try 1.6.20 and there were shouldUseMasf there but not 1.6.21. Weird.

yes, as variable and class names in 1.6.21 are obfuscated. i referenced 1.6.20(E) as its variable and class names aren't obfuscated (and have a shouldUseMasf but the versions themselves don't work on modern android). once you find where shouldUseMasf would be in 1.6.21 (using 1.6.20(E)) you can set it to false.

thank you

@ftde0 https://github.com/ftde0/yt2009/issues/78


Remove deprecated constructor basic_json(std::istream&)

Function
explicit basic_json(std::istream& i, const parser_callback_t cb = nullptr)

has been deprecated since version 2.0.0 (June 24, 2016) to unify the interface of the library. Deprecation warnings were produced with GCC, Clang, and MSVC.
To create objects from an input stream, there remain the following possibilities:

with callback:

parse(std::istream& i, const parser_callback_t cb = nullptr)

without callback

std::istream& operator<<(basic_json& j, std::istream& i)
std::istream& operator>>(std::istream& i, basic_json& j)

That is, code without callback cb
json j(i);

must be replaced by either
// alternative 1
json j = json::parse(i);

// alternative 2
json j;
j << i;

// alternative 3
json j;
i >> j;

Code with a callback function cb
json j(i, cb);

must be replaced by
json j = json::parse(i, cb);

As there is no other deprecated code, here is the macro for reference
// allow for portable deprecation warnings
#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
    #define JSON_DEPRECATED __attribute__((deprecated))
#elif defined(_MSC_VER)
    #define JSON_DEPRECATED __declspec(deprecated)
#else
    #define JSON_DEPRECATED
#endif

Have you looked at using C++14's [[deprecated]] if C++14 is enabled?

@gregmarr No, but this is a good idea for the future.


feat!: Remove snap packaging

Removing snap packaging in accordance with the TSC vote to discontinue release of snaps as of v3.1.

Note
The v3.1.0-dev snap fails since #268. The path was made configurable in #270, but it was never overridden in the snap, as described in here.

PR Checklist
Please check if your PR fulfills the following requirements:

[x] I am not introducing a breaking change (if you are, flag in conventional commit message with BREAKING CHANGE: describing the break)
[x] I am not introducing a new dependency (add notes below if you are)
[ ] I have added unit tests for the new feature or bug fix (if not, why?)
[ ] I have fully tested (add details below) this the new feature or bug fix (if not, why?)
[ ] I have opened a PR for the related docs change (if not, why?)

Testing Instructions

New Dependency Instructions (If applicable)

Codecov Report

Merging #303 (5fd3013) into main (bda52fb) will not change coverage.
The diff coverage is n/a.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@          Coverage Diff          @@
##            main    #303   +/-   ##
=====================================
  Coverage   4.75%   4.75%
=====================================
  Files          8       8
  Lines       1305    1305
=====================================
  Hits          62      62
  Misses      1243    1243


Use HTTP status code 405 if no route matches request

Expected Behavior
When a matching route is found but not for a given request's method, API should return 405 Method Not Allowed with a list of supported methods for the route if possible, not a 404.
Current Behavior
Returns a 404 Not Found
Possible Solution
Based on my comment in https://github.com/sensu/sensu/commit/28e2ccebb5815023a877ccaf720095dd194d74cd, a method should be added to generate a proper 405 response. I did a sample implementation here: https://github.com/EvaSDK/sensu/commit/638ef67efb905b9f0b8e4d7838f832f7a2d88555 but it is probably just plain wrong as I am no ruby dev.
Context
405 is the conventional response for such problems.
Your Environment

Sensu version used: 0.26.5
Active Sensu extensions: None
Operating System and version: Debian 8
Transport and runtime versions: RabbitMQ 3.3.5 on Erlang 17.3

Also please note that while I understand why you might feel the need for your current procedure for PR submission, it feels very repulsive to fill in so many "papers" before anything can be done.

@EvaSDK thank you for the issue :+1: #1643 has been merged, the 0.29 release will have this functionality.

Perfect, thanks.


Speed up composition

I spent some time refactoring composeChar. Results are as follows:
Benchmark         Before     After
------------------------------------
NFC/Japanese     72.41 ms   35.08 ms
NFC/Vietnamese   60.76 ms   32.88 ms
NFC/AllChars     54.81 ms   33.42 ms
NFC/Deutsch      54.64 ms   25.72 ms
NFC/English      53.56 ms   24.60 ms
NFC/Devanagari   54.19 ms   29.24 ms
NFC/Korean       52.33 ms   33.94 ms
NFKC/Japanese    72.44 ms   38.35 ms
NFKC/Vietnamese  60.08 ms   34.33 ms
NFKC/AllChars    68.44 ms   43.96 ms
NFKC/Deutsch     57.80 ms   28.27 ms
NFKC/English     54.64 ms   26.53 ms
NFKC/Devanagari  54.30 ms   30.35 ms
NFKC/Korean      53.73 ms   34.38 ms

During refactoring I noticed that the trick with FalseA | FalseB | FalseC | TrueA does not seem to be needed anymore and bitmaps inline well enough, so I took a liberty to remove it.
A new bitmap composePairSecondNonCombining lists non-combining characters, which can appear in the second half of composePair. All such compositions are listed in composePairNonCombining. This is a fairly sparse bitmap with only 40 non-zero bits, but I was not able to come up with any simpler representation without performance degradation.
With regards to composeChar I followed suggestions to straighten up recursive calls between composeChar / decomposeAll and to use an Either-like structure to switch between mutually exclusive (Maybe Char, ReBuf) and JamoBuf.

I was wondering if the FalseA/FalseB thing still helps. Good riddance.
The overall code looks much better now. Thank you! I have a couple of formatting changes and a perf improvement on top of your changes. I am going to merge this and create another PR for those changes. I am wondering if we can we write decomposeChar as well in the same style as composeChar? And use SPEC constr optimization on the recursive function in the same way as I used in composeChar (in the upcoming PR).


⚠ Bofrost.at has degraded performance

In 845e7ee, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1005 ms

Resolved: Bofrost.at performance has improved in ee38931 after 8 minutes.


Great Work! When to open access the source code!

Thanks for your question. Because there are many things to be done recently, the release of the code is expected to be delayed until July or August. I will first sort out some of the details of the previous work RCUMP (already released) when all the works adopt almost the same setup. Then the source codes of the other works will be sorted out and released one after another.

Thanks for your question. Because there are many things to be done recently, the release of the code is expected to be delayed until July or August. I will first sort out some of the details of the previous work RCUMP (already released) when all the works adopt almost the same setup. Then the source codes of the other works will be sorted out and released one after another.

ok, I got it. Thank you very much！


add $notification as param to routeNotificationFor

the notifiable routeNotificationFor method accepts the notification as the second param, but the send grid channel is not using it.

Thank you @phgrund. Released under v2.6.2


ppb_graphics3d.c doesn't build due to typedef conflicts

I'm trying to build 0.3.1 with most recent Mesa (10.6.2). It doesn't due to various conflicting type declarations between various gl-related headers:
[ 56%] Building C object src/CMakeFiles/freshwrapper-obj.dir/ppb_graphics3d.c.o
In file included from /home/users/mmazur/pld/sandbox/freshplayerplugin/BUILD/freshplayerplugin-0.3.1/src/ppb_graphics3d.c:31:0:
/usr/include/GL/glxext.h:481:19: error: conflicting types for 'GLsizeiptr'
 typedef ptrdiff_t GLsizeiptr;
                   ^
In file included from /home/users/mmazur/pld/sandbox/freshplayerplugin/BUILD/freshplayerplugin-0.3.1/src/pp_resource.h:56:0,
                 from /home/users/mmazur/pld/sandbox/freshplayerplugin/BUILD/freshplayerplugin-0.3.1/src/ppb_graphics3d.c:25:
/usr/include/GLES2/gl2.h:69:25: note: previous declaration of 'GLsizeiptr' was here
 typedef khronos_ssize_t GLsizeiptr;
                         ^
In file included from /home/users/mmazur/pld/sandbox/freshplayerplugin/BUILD/freshplayerplugin-0.3.1/src/ppb_graphics3d.c:31:0:
/usr/include/GL/glxext.h:482:19: error: conflicting types for 'GLintptr'
 typedef ptrdiff_t GLintptr;
                   ^
In file included from /home/users/mmazur/pld/sandbox/freshplayerplugin/BUILD/freshplayerplugin-0.3.1/src/pp_resource.h:56:0,
                 from /home/users/mmazur/pld/sandbox/freshplayerplugin/BUILD/freshplayerplugin-0.3.1/src/ppb_graphics3d.c:25:
/usr/include/GLES2/gl2.h:70:26: note: previous declaration of 'GLintptr' was here
 typedef khronos_intptr_t GLintptr;
                          ^
src/CMakeFiles/freshwrapper-obj.dir/build.make:1000: recipe for target 'src/CMakeFiles/freshwrapper-obj.dir/ppb_graphics3d.c.o' failed

Does it compile after b202e4feb6647987ddcddaf6ab8dad9020a8f65e?

Yup, that fixed it.


The information about the default config.toml settings is now incorrect

https://github.com/rust-lang/rust/pull/60568 changed config.toml and https://rust-lang.github.io/rustc-guide/how-to-build-and-run.html needs to be updated to reflect that. cc @petrochenkov

Fixed in https://github.com/rust-lang/rustc-guide/pull/328


Have an easy way to turn on the cubeb_log!

The cubeb_log! won't print anything now. We should have a way to turn on those logs so it can help debugging.

https://github.com/ChunMinChang/cubeb-coreaudio-rs/commit/323550d21b8644731c108fc4e6ac46d514f9c235 could work in Rust Nightly withc_variadic feature.
Another workaround is using cc to build a custom log function in C. Otherwise we need to wait until https://github.com/rust-lang/rust/issues/44930 is fixed.

IIUC https://github.com/mozilla/cubeb-rs/pull/98 should fix this


Please add license

Can you add a license to this code? I suggest maybe the apache license 2.0, or MIT or BSD license. Thanks!

LICENSE file has been added.


chore: Add support for event body fields

Adds support for the event body fields reusing the existing event type.

Supports existing event (Span) definition
Supports the log based event definition as an extension of the existing span definition
Adds Body (optional) definition which supports a collection of fields

The PR supersedes #236 as discussed in tools sigs this morning.

The tests are failing with this unrelated error
semconv::tests::test_semconv_spec_from_url' panicked at crates/weaver_semconv/src/semconv.rs:305:9:
Investigating locally, instead of being the RegistryNotFound its getting
Error: InvalidSemConvSpec { path_or_url: "http://unknown.com/unknown-semconv.yaml", line: Some(1), column: Some(1), error: "invalid type: string "", expected struct SemConvSpec" }
thread 'semconv::tests::test_semconv_spec_from_url' panicked at crates\weaver_semconv\src\semconv.rs:308:9:

Nit: The PR should be marked as feat not chore

Please also see comments and discussion topics in #365

AnyValue PR and this PR now have the same (common) set of changes.


Unified C++/Everywhere

C++/CLI had its syntax copied (^) and was then diminished (Winform support disappeared in VS2012 etc) as C++/CX was developed. Now that C++/CX is to be phased out, could C++/CLI be revamped with modern asynch features for .NET non-deterministic garbage collection?

C++/CLI and C++/CX share a bit of syntax, but are otherwise completely unrelated. There is no connection at all between C++/CLI being phased out (not sure anyone would share that opinion anyway), and the introduction of C++/CX either. There's also no sign of C++/CX being phased out. It's unclear, how any of this is related to C++/WinRT. You should probably ask this question elsewhere (e.g. on UserVoice).


[terra-form-select] [a11y] SearchSelect: Move Input into DropdownMenu as a Sibling to Options for Enhanced iOS VoiceOver Navigation

Feature Request
Description

Sub-issue of #2383
Move the SearchSelect input into the dropdown menu as a sibling of the options so that iOS VoiceOver swipe navigation behaves as expected: focus moves from input to the options list.
Constraints

Must be visually identical to current implementation.
Must be functionally identical to current implementation.
Should appropriately handle when the menu isAbove or not (input is at the top when menu is below, input is at the bottom when  menu is above)

Since VoiceOver operates on the DOM order (builds the a11y tree based on DOM order), the DOM order should not change when toggling where the input is rendered

If enough options are present to show a scroll bar, the input shouldn't scroll with the options

Extra Information
Exploration of how to solve this:

code
demo

@ Mentions

@nickpith @bjankord

Currently taking this on as a commit. In order to better reason about and tackle this, I'll be doing https://github.com/cerner/terra-core/issues/2610 first.

Closed via #2658


Displaying strings and numbers doesn't work

Added package, demo doesn't fully work.   I can draw pixels and rectangles, but not display any text or numbers.   Is there an additional package that is a dependency for this to work?

Oh, my mistake, I thought my oled was 128x64 but turns out it is 64x48:
https://www.sparkfun.com/products/14532
On Mon, May 28, 2018 at 3:24 AM, shaoziyang<EMAIL_ADDRESS>wrote:

This package is work fine with microbit and 0.96 inch OLED. You may try my
demo, I using makecode online environment https://makecode.microbit.org/to
create it.
test.zip
https://github.com/microbit-makecode-packages/OLED12864_I2C/files/2044688/test.zip
What type of OLED module do you use? This package support 128x64 OLED
now, other resolution will be support late.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/microbit-makecode-packages/OLED12864_I2C/issues/1#issuecomment-392486706,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Al10ng2qM_TTb6yXPMFANaS9TUL6hCjYks5t29BfgaJpZM4UPaCA
.

The paramters in package need be modify for 64x48 resolution. I will upgrade the package to support more resolution.

I also had the same problem. I am using Makecode but, after they updated the web-based environment recently, it keeps telling me that I have compilation error when I used  "show number" or "show string". The OLED package originally worked for the old Makecode environment.

I will check the problem and update it.

looking forward ....

@db2u1980 @wallacekst Extension working now.


Add SELinux support

Added SELinux support to docker-compose and the script setup.sh. Closes #1637

This is waiting for review. @casperklein what's your take on this? @erik-wramner any opinions on this?

I agree, looks good and should not affect existing users. I'll merge it.


very incomplete login page and some added css

super barebones, not even close to finished. just pushing what is here so it is nice and safe and i can work on it more later

Its done, other than the login functionality


Select2 search

Hello,
first of all thanks for sharing this great extension.
When the modal window show up, and I use a select2 module for a field, the search option inside it is disabled and not working.
Not just an issue of my code but also in the examples.. what could I do to fix it?

I'm having this issue as well.

I’ve found a way to fix it but cant remember at the moment :(
If you search it is something with modal and select2 focus

For anyone that is still trying to figure this out, I've temporarily solved this issue with the following code:
$('body').on('shown.bs.modal', '.altEditor-modal', () => {                 $('.altEditor-modal')[0].removeAttribute('tabindex');             });

For anyone that is still trying to figure this out, I've temporarily solved this issue with the following code: $('body').on('shown.bs.modal', '.altEditor-modal', () => { $('.altEditor-modal')[0].removeAttribute('tabindex'); });

Where to add this?

For anyone that is still trying to figure this out, I've temporarily solved this issue with the following code: $('body').on('shown.bs.modal', '.altEditor-modal', () => { $('.altEditor-modal')[0].removeAttribute('tabindex'); });

thanks dude, this works perfectly!!!


HDDS-11831. Finer-grained interface for dynamically registered subcommands

What changes were proposed in this pull request?
Dynamically registered subcommands all implement SubcommandWithParent.  The parent command is identified by getParentType().

Each top-level command (OzoneAdmin, OzoneDebug, etc.) has to load all implementors of SubcommandWithParent, only to discard most of them.  This increases command startup latency, which is a minor problem for short-lived commands, e.g. ozone sh.
Finding children of a parent command is also a bit harder.

This change introduces a way to limit the search scope of subcommands:

parent commands can implement ExtensibleParentCommand to indicate they support dynamically registered subcommands
subcommands implement the marker interface returned by the parent command's subcommandType()

As an example, OzoneAdmin and its subcommands are converted to this new model.
Benefits:

Slightly less startup time for ozone admin (240 ms vs. 500 ms for me locally)
Easier to find subcommands (implementors of AdminSubcommand in this case)
The same subcommand may be added to multiple parents, just like with subcommands = { ... } declaration, but unlike SubcommandWithParent, which allows only one parent.
Subcommands only need to access the marker interface.  The actual parent command can be in another module (hdds-tools vs. ozone-tools).

https://issues.apache.org/jira/browse/HDDS-11831
How was this patch tested?
CI:
https://github.com/adoroszlai/ozone/actions/runs/12107950425

how the existing code works with the MetaInfServices

Classes annotated with @MetaInfServices(<interface>) are listed in META-INF/services/<interface> at compile-time.  They are expected to implement <interface>.
ServiceLoader.load(<interface>) creates an object that, when iterated, gives you an instance of each class.

The more implementations of <interface> we have, and the more diverse they are (in which other classes they use), the more time it takes to load them.  So the speedup is due to not having to load unrelated implementations (those that belong to ozone debug, ozone repair, etc.).

reduces the startup time of the commands by half

I measured the time spent registering subcommands (the part being changed).  Time before/after that is likely unchanged.  There may be further place for improvement in those parts, will check.


remove NOp.var() with _nop constructor [run_process_replay]

with _nop constructor we can

[x] remove .var()
[ ] remove NOp.cvar NOp.const NOp.name ...
[ ] completely remove Upat from
[ ] fold class NOp back into UOp (if this is desirable)
[ ] unify UPat.init with UOp.compile()

will continue on monday

I like this less than NOp.var, you have to import two things

okay but will be able to remove UPat from import in exchange

I'm pretty happy with where it is now. If there's some simple syntax to use less UPat I'm open to it, but this is a big change


Server Update Failed - Server Certificate Verification Failed

I has been awhile since I have used the server, since the end of 2020, so first thing I wanted to do was make sure it was fully updated.  Go to the About screen I saw that it was not automatically updating.  I have tried telling it to Update/Restart Server and it is not working.  I have restarted the the RPi3B multiple time and it is just stuck at this version.

Reviewing the logs I see this "fatal: unable to access 'https://github.com/chiefwigms/picobrew_pico.git/': server certificate verification failed. CAfile: none CRLfile: none"
I have tried starting over with the Beta6 image and I am running into the same issue.
Here is the log for the version from the screenshot above.
picobrew_pico.log

Try this: https://stackoverflow.com/questions/35821245/github-server-certificate-verification-failed
Also, check that your network is up?  Odd that the "about" pi settings (ifconfig / pinout etc fail for you).
Might also be worth saving your brew history/recipes and just starting over, although the last "image" was what @tmack8001 made back in January

Given there isn't a h2 section mentioning RaspberryPi Image Version then that leads me to believe you aren't on the beta6 image (created in January).
You can ssh in and change the git remote configuration to either ignore insecure certificates (though if you are getting insecure certificates this means either the remote is misconfigured and/or your network is configured in a strange manner) or change how the remote is configured.
Not sure how this would be the issue on an official image release without knowing the image release version you started with.

You are correct that the original information in this post was not from the beta6 image.  I tried the beta6_stable image and I am getting the same results.

Here is the Log: picobrew_pico beta6_stable.log
I had found that stackoverflow post too and I plan to try it out this morning.  I will let you know what I figure out.

So I was able to get it update.  The issue was the time was incorrect and the NTP was not working.

By following the information here I was able to manually update the date and time.  Once I had the date and time correct the certificates worked properly and I was able to update the server from the beta6 image.
The NTP sync was still not working until I installed ntp.
apt-get install ntp
After doing this, the clock was synced properly.

This has resolved my issue.  I am not sure why I am the only one who experienced this.  Does this mean a new image should be created?  If based on my comments no changes are required, please feel free to close this ticket.

I didn't uninstall ntp from the image, but i'm not sure if it's builtin with the default image.  I don't think it warrants a new image though

Interesting. I have been running beta6 since January (though changes aren't happening frequently at all to the source these days) and haven't had an issue.
I'm also 2.5hr away from my picobrew equipment right now and won't be back to them until next of next week. I'll take a look when I get back. 🤔 as to why NTP wouldn't have been working, we didn't explicitly remove it as @chiefwigms mentions above... though maybe it wasn't there to begin with (I'd doubt that)

We are leveraging pi-gen to build our images on top of Raspbian and specifically "Stage 2" (excerpt posted below) which explicitly installs ntp prior to us.

Stage 2 - lite system. This stage produces the Raspbian-Lite image. It installs some optimized memory functions, sets timezone and charmap defaults, installs fake-hwclock and ntp, wireless LAN and bluetooth support, dphys-swapfile, and other basics for managing the hardware. It also creates necessary groups and gives the pi user access to sudo and the standard console hardware permission groups.

When I ran apt-get install ntp it definitely acted like it was being installed for the first time.
I would be interested if you see the same thing from the beta6 image.  It would make me feel better knowing I am not crazy ;).
All in all, if someone else runs into this issue they should be able to find this ticket for support.


add Bulk Document API feature

I implemented Bulk Document API feature.
Please check this PR.
Thanks.

Excellent, thanks!


add --ignore-missing flag

similar tools in this realm sha256sum or shasum have and --ignore-missing which allows verifying only one binary if a list of them are displayed in the checksum
I would love for this flag to exist and return a 0 exit code even if not all of the files are not found
I can handle the case that the file didn't download correctly and is missing to run the check aka:
curl -sSLo file.tar.gz https://path/to/file.tar.gz-bad
curl -sSLo all-checksums.txt https://path/to/all-checksums.txt
rhas -c all-checksums.txt -a
ALL-OK

see the issue here to see my use case
https://github.com/openshift/ocm-container/issues/83

Supported by commit 568a5421e8bdebaba3d1c8ec134fdaa963dd11d7.

The feature got included into RHash v1.4.3 release.


too many parameters for type

After some updates in my packages, I am running into this error.
Let me add, that I am using JuliaPro 1.5.4 and it is not the first time that this leads to unreproducible bugs!
So, feel free to close this issue, if it is not easy to reproduce.
julia> using StaticArrays

julia> using HybridArrays
[ Info: Precompiling HybridArrays [1baab800-613f-4b0a-84e4-9cd3431bfbb9]
ERROR: LoadError: LoadError: too many parameters for type
Stacktrace:
 [1] top-level scope at C:\Users\steff\.julia\packages\HybridArrays\iY8YV\src\SSubArray.jl:2
 [2] include(::Function, ::Module, ::String) at .\Base.jl:380
 [3] include at .\Base.jl:368 [inlined]
 [4] include(::String) at C:\Users\steff\.julia\packages\HybridArrays\iY8YV\src\HybridArrays.jl:1
 [5] top-level scope at C:\Users\steff\.julia\packages\HybridArrays\iY8YV\src\HybridArrays.jl:168
 [6] include(::Function, ::Module, ::String) at .\Base.jl:380
 [7] include(::Module, ::String) at .\Base.jl:368
 [8] top-level scope at none:2
 [9] eval at .\boot.jl:347 [inlined]
 [10] eval(::Expr) at .\client.jl:467
 [11] top-level scope at .\none:3
in expression starting at C:\Users\steff\.julia\packages\HybridArrays\iY8YV\src\SSubArray.jl:2
in expression starting at C:\Users\steff\.julia\packages\HybridArrays\iY8YV\src\HybridArrays.jl:168
ERROR: Failed to precompile HybridArrays [1baab800-613f-4b0a-84e4-9cd3431bfbb9] to C:\Users\steff\.julia\compiled\v1.5\HybridArrays\iwWJb_10oSO.ji.Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1305
 [3] _require(::Base.PkgId) at .\loading.jl:1030
 [4] require(::Base.PkgId) at .\loading.jl:928
 [5] require(::Module, ::Symbol) at .\loading.jl:923

the problem seems to be this line:
const SSubArray{S,T,N,P,I,L} = SizedArray{S,T,N,N,SubArray{T,N,P,I,L}}

My Julia installation:

julia> versioninfo()
Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, skylake)
Environment:
  JULIA_DEPOT_PATH = C:\Users\steff\.julia;D:\JuliaPro-1.5.4-1\Julia-1.5.4\local\share\julia;D:\JuliaPro-1.5.4-1\Julia-1.5.4\share\julia
  JULIA_EDITOR = "D:\JuliaPro-1.5.4-1\app-1.55.0\atom.exe"  -a
  JULIA_LOAD_PATH = C:\Users\steff\.julia\environments\JuliaPro_v1.5.4-1;@;@v#.#;@stdlib
  JULIA_NUM_THREADS = 12
  JULIA_PKG_SERVER = pkg.juliahub.com

(PSE) pkg> st HybridArrays StaticArrays
Project PSE v0.1.0
Status `D:\workspace\julia_projects\epithelium_simulation\Project.toml`
  [1baab800] HybridArrays v0.4.9
  [90137ffa] StaticArrays v1.2.0

The only thing I can think of here is that somehow an older version of StaticArrays is loaded with a newer version of HybridArrays. HybridArrays 0.4.x only works with StaticArrays 1.x.y. How, for example, is the following thing printed after loading just StaticArrays?
julia> using StaticArrays

julia> SizedVector{3}([1, 2, 3])
3-element SizedVector{3, Int64, Vector{Int64}} with indices SOneTo(3):
 1
 2
 3

Thanks for the fast reply.
The output is indeed different, even though I'm on StaticArrays 1.2.0 (I also tried 1.0.0, 1.0.1 and it didn't work)
julia> using StaticArrays
julia> SizedVector{3}([1, 2, 3])
3-element SizedArray{Tuple{3},Int64,1,1} with indices SOneTo(3):
 1
 2
 3

Seems like the metaparameters are different in my version. (So strange, it worked for a long time flawlessly even with JuliaPro.)

It looks like you definitely are on StaticArrays.jl pre-1.0 (otherwise you wouldn't get the output you have), so it's not a HybridArrays.jl issue but something with JuliaPro, probably, or maybe Pkg.

Thanks. That helps me a lot, in JuliaPro some packages are old or have some custom 'fixes'.
I would suggest closing the issue then and if I find a solution, I will post it here for others running into it.

:D reinstalling JuliaPro solved the issue, with exactly the same packages installed.
Anyway, it works now. Thanks a lot for the fast replies.

No problem! It's nice to hear that you managed to solve your issue :slightly_smiling_face: .


Bugs during testing on S3DIS dataset

Hi,
Have you ever met this bug during testing on S3DIS with pointnext-xl.yaml?
Test on 67-th cloud [53]/[54]]: 100%|██████████| 54/54 [00:16<00:00,  3.32it/s]
Traceback (most recent call last):
File "examples/segmentation/main.py", line 734, in
main(0, cfg)
File "examples/segmentation/main.py", line 334, in main
dist.destroy_process_group()
File "/export/home2/***/anaconda3/envs/openpoints/lib/python3.7/site-packages/torch/distributed/distributed_c10d.py", line 775, in destroy_process_group
assert pg is not None
AssertionError

It looks like some errors in the distributed gpus. I haven't come across the issue before. Could you share more details on it?

I have commented the "dist.destroy_process_group()". I guess it's caused by the release of multiprocessing.

thanks. commented this line.

Has the problem been resolved ？


day 4 changes with flip transforms

Hello Tom and Claudia!
Here is my code for today. Apologies again for not being able to join the labs in person this afternoon.
Thank you so much for a great week, definitely been one of the best modules so far (if not the best...) - very hands on and tangible, and I am sure all the content will be invaluable once we start our proper projects next year. Please accept my eternal gratitude for saving my DPhil-to-be from many a potential programming disaster :)
All the best,
Ambre

Hello Tom and Claudia!
Here is my code for today. Apologies again for not being able to join the labs in person this afternoon.
Thank you so much for a great week, definitely been one of the best modules so far (if not the best...) - very hands on and tangible, and I am sure all the content will be invaluable once we start our proper projects next year. Please accept my eternal gratitude for saving my DPhil-to-be from many a potential programming disaster :)
All the best, Ambre

No worries :) I'm really glad you enjoyed it. Please do leave feedback via that form in canvas! Do be up front if you think there is stuff you think could improve, e.g. are the bits you would have wanted to spend more time on? Perhaps some topics we missed?


EventCoreference install script can't fetch WordnetTools jar

Goal: install EventCoreference using instructions on repo README
Input: After cloning, I called the installation script:
./install.sh
Problem: Maven compiler is looking for dependency WordnetTools and could not transfer the appropriate jar file.
Stack trace:
[ERROR] Failed to execute goal on project EventCoreference: Could not resolve dependencies for project com.github.cltl:EventCoreference:jar:v3.1.2: Could not transfer artifact com.github.cltl:WordnetTools:jar:v3.0 from/to jitpack.io (https://jitpack.io):
Failed to transfer file: https://jitpack.io/com/github/cltl/WordnetTools/v3.0/WordnetTools-v3.0.jar.
Return code is: 524 , ReasonPhrase:Origin Time-out. -> [Help 1]

I'm not getting this time-out anymore. Maybe the servers were on maintenance when I tried this before.


how to create multiple login access in yii2?

I am creating a site in Yii2. I want have two login with two tables but suppose there is an Id for logged in user is 1 and same id belongs from other table for admin user than Yii takes both identity and it show two logout button one for admin user and other for normal user but it should show only one logout and Yii should keep identity for that particular controller/login. Please help what can i do.
using basic version
i think it's a bug !
// login admin module
'user' => [
'class' => 'yii\web\User',
'identityClass' => 'app\models\User',
'enableAutoLogin' => true,
        ],
// login site
    'marketer' => [
        'class' => 'yii\web\User',
        'identityClass' => 'app\models\Marketer',
        'enableAutoLogin' => true,
        'loginUrl' => 'test/index',
        'identityCookie' => [
            'name' => '_marketer',
            'httpOnly' => true,
        ]
    ],

How would you fix it?

i don't no , you are programmer of yii

You can create extended userIdentity class for multiple application users. Why not?

i am elementary , can you it doing ?

This is obviously a forum question.

How would you fix it?


Admin panel, filtering of references in overlay does not work (at least if its a uploadable collection)

Link to reproduction

To Reproduce
Filtering the list by filename works great when in the collection view of the media collection.
Filtering the list by filename (or any other filter like id) does not work when viewing in overlay (try to reuse existing upload)
I got a guess, that its cause the filtering within the field (code, but i am not sure)
const mediaCollection = {
    slug: 'media',
    upload: {
        adminThumbnail: 'thumbnail',
        imageSizes: [
            {
                name: 'thumbnail',
                width: 175,
            },
        ],
        mimeTypes: ['image/jpeg', 'image/png', 'application/pdf'],
    },
    fields: [],
};

const mediaField = {
    name: 'logo',
    type: 'upload',
    relationTo: 'media',
    filterOptions: {
        or: [{ mimeType: { equals: 'image/jpeg' } }, { mimeType: { equals: 'image/png' } }],
    },
};

Describe the Bug
We got an application which more than 4k files (many images) and its nearly impossible to find an existing file without the possibility to filter it.
Payload Version
1.15.6

Hey @dominikzogg we'll get to the bottom of this. Thanks for the report 👍

@dominikzogg are you on Payload 2.x? So far I've been unable to reproduce this. If you could provide a reproduction on latest I would be happy to continue debugging here.

Here's a quick screen recording from my end:
https://github.com/payloadcms/payload/assets/15735305/23cfedcd-8ec0-4f54-bce7-dc8a643416b9

@jacobsfletch I am using<EMAIL_ADDRESS>with @payloadcms/plugin-cloud-storage^1.0.19, but i guess in context of search if should not be relevant to use the plugin with S3 (DigitalOcean Spaces).
Have you tried it with a prefiltered field?
  filterOptions: {
        or: [{ mimeType: { equals: 'image/jpeg' } }, { mimeType: { equals: 'image/png' } }],
    },
    ``

Yea @dominikzogg I am using the filterOptions there. I went ahead and pulled this down again today and was still unable to recreate 🤔 would you be able to create a reproduction on 2.0 for me to see? I can smash out a fix for this if I can reproduce. We have the _community test suite that makes this super easy: https://github.com/payloadcms/payload/tree/main/test/_community

@jacobsfletch i am on 1.x, but currently prepare the update to payload v2. There are some issues currently which block the update but onces those are fixed. I try it again.

Sounds good @dominikzogg 👍 I'm going to mark this as closed but let me know if you're still having troubles with this once you've upgraded.

@jacobsfletch blocker for testing it on staging/production https://github.com/payloadcms/payload/issues/3942 but i should been able to already test it locally. Thanks for your effort so far.

@jacobsfletch filter for names seems to work in the v2 (as overlay and as normal list view), but search for ID i get the following, when i am typing (as overlay and as normal list view).
/api/media?page=1&where[and][1][or][0][mimeType][equals]=image/jpeg&where[and][1][or][1][mimeType][equals]=image/png&where[and][1][or][2][mimeType][equals]=image/webp&where[and][2][or][0][undefined][like]=1

TypeError: Cannot read properties of undefined (reading 'type')
    at sanitizeQueryValue (/app/node_modules/@payloadcms/db-mongodb/src/queries/sanitizeQueryValue.ts:43:13)
    at buildSearchParam (/app/node_modules/@payloadcms/db-mongodb/src/queries/buildSearchParams.ts:95:46)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async parseParams (/app/node_modules/@payloadcms/db-mongodb/src/queries/parseParams.ts:60:35)
    at async buildAndOrConditions (/app/node_modules/@payloadcms/db-mongodb/src/queries/buildAndOrConditions.ts:29:22)
    at async parseParams (/app/node_modules/@payloadcms/db-mongodb/src/queries/parseParams.ts:43:33)
    at async buildAndOrConditions (/app/node_modules/@payloadcms/db-mongodb/src/queries/buildAndOrConditions.ts:29:22)
    at async parseParams (/app/node_modules/@payloadcms/db-mongodb/src/queries/parseParams.ts:43:33)
    at async buildAndOrConditions (/app/node_modules/@payloadcms/db-mongodb/src/queries/buildAndOrConditions.ts:29:22)
    at async parseParams (/app/node_modules/@payloadcms/db-mongodb/src/queries/parseParams.ts:43:33)
    at async Function.buildQuery (/app/node_modules/@payloadcms/db-mongodb/src/queries/buildQuery.ts:43:22)
    at async Object.find (/app/node_modules/@payloadcms/db-mongodb/src/find.ts:39:17)
    at async find (/app/node_modules/payload/src/collections/operations/find.ts:144:16)
    at async findHandler (/app/node_modules/payload/src/collections/requestHandlers/find.ts:30:20)


Migrate dir to yanix

This commit migrates our internal libc::DIR and libc::dirent wrappers to the yanix crate.
NB this PR builds on #649.

cc @marmistrz

Closed in favour of #649 which includes those changes in a slightly different form.


Documentation bug: interface

The documentation at https://jobqueue.dask.org/en/latest/generated/dask_jobqueue.SLURMCluster.html (and the one for the other schedulers) says

interfacestr
Network interface like ‘eth0’ or ‘ib0’. This will be used both for the Dask scheduler and the Dask workers interface. If you need a different interface for the Dask scheduler you can pass it through the scheduler_options argument: interface=your_worker_interface, scheduler_options={'interface': your_scheduler_interface}.

It's unclear what happens if one doesn't specify it. Looking at the code it appears that a default is used, which is taken from the config. The default config.yaml file has null value for interface so even looking in there one goes around in circle.
I propose:

adding the sentence "If no interfacestr is specified the default from the jobqueue.yaml file is utilized" to the documentation
adding yet another sentence saying what happens if no specific jobqueue.yaml file is present (so the one from the install directory must be used).

What happens in the second scenario is still unclear to me. On the machine I use it clearly works, so some interface is utilized, but which one? I have both eth0 and ib0. Is it guaranteed to work always if at least one interface is present? How is it chosen if more than one is present?

Hi @davide-q, thanks for raising this issue.
If one doesn't specify a network interface, the default one is used. I think in the end this comes from https://github.com/dask/distributed/blob/0063de53fed5e4e2e409940213c6265867e6635d/distributed/utils.py#L157. Usually it will be the default first ethernet interface.
There are two ways to specify arguments like that, either through code, either through yaml configuration file. This is true for all kwargs, see https://jobqueue.dask.org/en/latest/configuration-setup.html#configure-dask-jobqueue and https://jobqueue.dask.org/en/latest/configuration.html. So I think we don't want to add on the docstring the same sentence for every kwarg.
But I'm totally open to add a sentence explaining the default behavior (if no interface argument is given through code or through configuration file).

Is it guaranteed to work always if at least one interface is present?

It is guaranteed to use an interface, but the default interface on the Scheduler side (login node for example) might not be the same as on Worker side (compute nodes), or the nodes might even not have the same interfaces. Or more often, you won't use the most performant interface, defaulting to eth0 instead of ib0 (Infiniband based).


Issue 6: Update User Guide

Update user guide to reflect new product.

Codecov Report

Merging #34 (3df6766) into master (92980ac) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #34   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

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 92980ac...3df6766. Read the comment docs.


Correction for raw affiliation Centre for Functional and Metabolic Mapping (CFMM), Robarts Research Institute, Western University, London, Ontario, Canada

Correction needed for raw affiliation Centre for Functional and Metabolic Mapping (CFMM), Robarts Research Institute, Western University, London, Ontario, Canada
raw_affiliation_name: Centre for Functional and Metabolic Mapping (CFMM), Robarts Research Institute, Western University, London, Ontario, Canada
new_rors: 02grkyz14
previous_rors: 01e36dv41;02grkyz14
works_examples: W4363645571;W4323076722
contact: 31edb35ad32d10138a9efaf8fee59775:47147808ff22de34 @ uwo.ca

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


Undefined method 'actors' for Flipper::UI::Configuration

After upgrading from 0.17.2 to:
  * flipper (0.18.0)
  * flipper-active_record (0.18.0)
  * flipper-ui (0.18.0)

I get an error in tests and booting the app:
       NoMethodError: undefined method `actors' for #<Flipper::UI::Configuration:0x0000562484f32dd0>
       /app/config/initializers/flipper.rb:7:in `block in <main>'
       /app/vendor/bundle/ruby/2.7.0/gems/flipper-ui-0.18.0/lib/flipper/ui.rb:58:in `configure'
       /app/config/initializers/flipper.rb:4:in `<main>'

I mentioned it in the changleog. These went away because they have new and improved text. I’m not opposed to finding a way to add them back in if they are really necessary. For now, remove them and see what the new text is like and what you think. I could definitely see adding the description back in for config, I’m just not sure about title.


Impossible to Know full Address (when its a bit lengthy) in Web and mobile views.

All items under STATE (including address) has exactly one row. I think, if lengthy addresses could automatically take more rows, it will be fixed..

I think there can be a tooltip with full text, but I don't like an idea of expanding the cell.

Addrees, Speed, Event, Time . These are the FIrst things one needs to know. Making these instantly visible (Full address is very essential) and all others inside an 'More Details' button was a very good thing in my opinion.
The present setup with all details is very much confusing for a normal user.

That's your opinion. Some users care more about additional sensor information, so I don't see much reason for hiding it.

Then how about an editable arrangement and possibility to hide unwanted items,
drag and arrange upon one's priority.

That makes more sense.

Thank you for considering :)
Now how to make that possible. ?

Basically there are 3 options:

You can implement it and send a pull request
You can wait till we implement it
You can sponsor the work to make it faster

This issue doesn't exist in the modern app. We wrap text as needed.


Highlight C# code in analyzer tests

Copied from https://github.com/dotnet/roslyn-analyzers/pull/7335

Learned about that in Hanselman Toub Regex video, never thought about applying it to C# and here. Very clever :)
Will be useful for code gen tests 👍

Very clever :)

I am just a humble copy-paster ;)


feat: Rewrite the Tensorboards Web App charm following the sidecar pattern

This PR rewrites the Tensorboards Web App (TWA) charm following the sidecar pattern
In short:

Update pip packages' versions (bumped SDI version in TWA charm)
Update README.md file to match the charm where it is located
Introduce CONTRIBUTING.md file
Add upstream manifests as Jinja2 templates
Set charm's status to blocked when there is no ingress relation
Rewrite the charm following the sidecar pattern
Adjust joint charms' deploy test to match changes
Add integration tests for TWA charm
Run TWA integration tests in github CI

Upgrade instructions

Trust the charm

juju trust tensorboards-web-app

Refresh the charm providing:
i. the image since oci-image  was changed to tensorboards-web-app-image.
ii. the path to the local charm or the corresponding channel (for charms released in charmhub)

juju refresh tensorboards-web-app --resource tensorboards-web-app-image=kubeflownotebookswg/tensorboards-web-app:v1.7.0 --path="./tensorboards-web-app_ubuntu-version-arch.charm"

or
juju refresh tensorboards-web-app --resource tensorboards-web-app-image=kubeflownotebookswg/tensorboards-web-app:v1.7.0 --channel=version/mode

Extremely pedantic suggestion for the upgrade instructions :)
juju refresh tensorboards-web-app ... --channel=version/mode

should be
juju refresh tensorboards-web-app ... --channel=track/risk

Doesn't change the function, but gets the terminology consistent with elsewhere.


RHEL 9: Filesystem customizations for edge-raw-image

This PR enables File system customization for edge-raw-image.

having the following error:
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="    Failed to open file \"/sys/fs/selinux/checkreqprot\": Read-only file system" jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="    LVM2: using vg name '25287c67-6499-43cd-a25f-a80f90f36cb0'" jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="      Physical volume \"/dev/mapper/osbuild-luks-46d73afa-d0b3-4c68-860c-ca1c52f87211\" successfully created." jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="      Creating devices file /etc/lvm/devices/system.devices" jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="      Volume group \"25287c67-6499-43cd-a25f-a80f90f36cb0\" successfully created" jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="      WARNING: Logical volume 25287c67-6499-43cd-a25f-a80f90f36cb0/rootlv not zeroed." jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="      Logical volume \"rootlv\" created." jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="      Volume group \"25287c67-6499-43cd-a25f-a80f90f36cb0\" has insufficient free space (252 extents): 256 required." jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="    Traceback (most recent call last):" jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="      File \"/run/osbuild/bin/org.osbuild.lvm2.create\", line 110, in <module>" jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="        ret = main(args[\"devices\"], args[\"options\"])" jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="      File \"/run/osbuild/bin/org.osbuild.lvm2.create\", line 105, in main" jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="        subprocess.run(cmd, encoding='utf8', check=True)" jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="      File \"/usr/lib64/python3.9/subprocess.py\", line 528, in run" jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="        raise CalledProcessError(retcode, process.args," jobId=3230a5f5-ee82-416e-9be3-11e7089cc948
Nov 13 18:03:33 saypaul-thinkpadx1carbongen9.pnq.csb osbuild-worker[1450]: time="2023-11-13T18:03:33+05:30" level=info msg="    subprocess.CalledProcessError: Command '['lvcreate', '-an', '--size', '1073741824B', '-n', 'foo_barlv', '25287c67-6499-43cd-a25f-a80f90f36cb0']' returned non-zero exit status 5." jobId=3230a5f5-ee82-416e-9be3-11e7089cc948

with blueprint:
name = "rhel93-fs-image"
description = "rhel93-fs-image"
version = "0.0.0"
packages = []
modules = []
groups = []
distro = "rhel-93"

[customizations]

[[customizations.filesystem]]
mountpoint = "/foo/bar"
size = 1
[customizations.ignition]
[customizations.ignition.firstboot]
url = "http://<IP_ADDRESS>:8001/config.ign"

blueprint for customization:
~/composed_images $ cat ~/blueprints/rhel93-multiple-v2-fs-image.toml
name = "rhel93-multiple-v2-fs-image"
description = "rhel93-fs-multiple-v2-image"
distro = "rhel-93"

[[customizations.filesystem]]
mountpoint = "/foo/bar"
size=2147483648

[[customizations.filesystem]]
mountpoint = "/foo"
size=8589934592

[[customizations.filesystem]]
mountpoint = "/var/myfiles"
size= "1 GiB"

[customizations.ignition.firstboot]
url = "http://<IP_ADDRESS>:8001/config.ign"

~/composed_images $ composer-cli blueprints show rhel93-multiple-v2-fs-image
name = "rhel93-multiple-v2-fs-image"
description = "rhel93-fs-multiple-v2-image"
version = "0.0.0"
packages = []
modules = []
groups = []
distro = "rhel-93"

[customizations]

[[customizations.filesystem]]
mountpoint = "/foo/bar"
size =<PHONE_NUMBER>

[[customizations.filesystem]]
mountpoint = "/foo"
size =<PHONE_NUMBER>

[[customizations.filesystem]]
mountpoint = "/var/myfiles"
size =<PHONE_NUMBER>
[customizations.ignition]
[customizations.ignition.firstboot]
url = "http://<IP_ADDRESS>:8001/config.ign"

composed image

I found the issue.  It's a tricky detail with the way the partition table is described internally.  Volume groups are sizeable containers, they need to have a size defined.  But it seems we don't do this in our static partition tables, so the volume group starts off as 0 bytes and is then grown to fill the space of the required total image size.  This worked fine so far, but once the logical volume sizes add up to more than the image size, we run out of space.
The proper solution here is to have logic which resizes the volume group to fit the logical volumes it contains and also have it calculate the size of those LVs when needed.  It would basically be the same logic we have for the partition table as a whole: the vg has a "desired size", if the sum of lv sizes inside it is bigger than that desired size we grow it, if it's not then it's set to that size.
I'll get a fix (and some tests) done asap.

Interesting details, can we pre-calculate the space required  and create the VG accordingly, and then grow what bootlv to fit the reaming space in imgae.disk space is more.

Interesting details, can we pre-calculate the space required and create the VG accordingly, and then grow rootlv to fit the remaining space in image.disk_space.

yeah that's the plan.  I'm working on that today.

@thozza thank you the suggestions, its much simpler to implement.

Thanks for the changes. Overall the PR looks good. I commented on two small things.
Before I approve, I would like to ask you to boot-test the edge-raw-image image with mountpoints listed in #255 (comment).
@achilleas-k suggested that we could use the edge-ami image type to boot-test this in our CI. Which would hopefully require only allowing the FS customizations for the image type, listing it in the test/config-map.json for the specific config.

I think we need to modify the rhel/imagtype.go to allow customization in edge-ami, do we really want to unlock that too?

I think we need to modify the rhel/imagetype.go to allow customization in edge-ami, do we really want to unlock that too?

Yes, that's what I meant by "allowing the FS customizations for the image type". If your team does not feel comfortable with enabling the FS customizations for that image type, then please at least manually boot-test the image.

If your team does not feel comfortable with enabling the FS customizations for that image type, then please at least manually boot-test the image.
I am up for enabling it for edge-ami too, but I would defer to the teams decision on this which I will update shortly.

If your team does not feel comfortable with enabling the FS customizations for that image type, then please at least manually boot-test the image.

I am up for enabling it for edge-ami too , but I would defer to the teams decision on this which I will update shortly.

Looking into the broader epic that I am working,we need support for :
simplified-installer, edge-raw-image, edge-ami, edge-vsphere, so it makes sense to enable it for all .

rebased and commit message updated

Created new issues from my comments for follow-up.


Feature Request: Add a corev1.Secret support for valuesFileRefs

Would be great to use corev1.Secret as valuesFileRefs reference together or instead of corev1.ConfigMap to mount them in reposync_controller and rootsync_controller
Use case:
Interpolated sensitive values

I think this should be a feasible API change. We can add a kind field to valuesFileRefs which accepts values of ConfigMap or Secret. It would need to default to ConfigMap for backwards compatibility.


Permit customising successful response status in http_client output

When using the http_client output, it considers every 2xx response as successful, acking messages in the pipeline. However, it would be desirable to customise this behaviour, by adding additional response statuses that should be considered a "success".
Proposal:
Add successful_on field to the http_client output that lists additional status codes that are considered successful.
e.g.
successful_on:
  - 409

Bump, would also like this feature

This'll be in the next release.


Change behavior %%current_control_set%%

%%current_control_set%% now maps to HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001 however this should be ControlSet001. The expansion should be used as HKEY_LOCAL_MACHINE\SYSTEM%%current_control_set%% to match the behavior of the OS more closely.

@destijl this probably affects GRR as well, so let's make sure to coordinate changes

Yep it does. Need to make the change on the GRR side first.

This still needs doing, and needs to have a coordinated release with the artifacts repo. But it's a low priority since the current approach works. Releasing so someone else can take it.

Per conversation with @grrrrrrrrr we should drop the use of %%current_control_set%% and replace this by HKEY_LOCAL_MACHINE\System\CurrentControlSet. This should work for both grr and plaso (with dfwinreg).


bug in deserialaze

when use unpack method in infinity loop my threads kill in c#
var serializer = SerializationContext.Default.GetSerializer();
Stream stream = new MemoryStream(data);
var result = serializer.Unpack(stream);

Sorry, it looks bug on Unpacker or generated serializer code even if the data was corrupted, but I need more information. Would you tell about your version of the msgpack, the contents of data, and the type(class) which you tried to deserialize?

Excuse me I use it for unpack
msg pack version 0.6.7
I use it in thread like this for unpack
when I use generic method it’s kill my thread
Stream stream = new MemoryStream(data);
var result = MessagePackSerializer.Get().Unpack(stream);
return result;
my class are
public class ResponseClass
{
public ResponseOptionsClass opts { get; set; }
public object obj { get; set; }
	public string ToJson()
	{
		return Newtonsoft.Json.JsonConvert.SerializeObject(this);
	}
}

public class ResponseOptionsClass
{
public short MessageId { get; set; }
public string SessionId { get; set; }
public int SqnNo { get; set; }
}

Thank you for additional information. Types are seems to be usual except object typed field, so the failure should be triggered by the data. Could you give me the contents of the data, such as the result of BitConverter.ToString(byte[])?

my byte array
130,164,111,112,116,115,146,3,192,163,111,98,106,129,169,115,101,115,115,105,111,110,73,100,170,53,48,85,54,90,77,85,80,72,65

Thank you, but unfortunately I failed to reproduce the problem on my local environment. So, I'll be happy if you give extra information. I'm sorry to bother you.

Would you tell me your runtime information? (OS, .NET/Mono/Unity version)
Was it truly infinite loop? I guess it might be same as #118.
If you can reproduce easily, would you tell me the call stack when it hanged?

We use .net 3.5 version
We have a thread and a timer with call back, In timer we user pack method like below in infinitive 30s interval:
	var serializer = SerializationContext.Default.GetSerializer<T>();
...
serializer.Pack(stream, data);

Timer definition is :
Timer t = new Timer(MyCallBack, null, 0, 2000);

and in the thread we have infinitive loop that by some condition we call unpack method like below :
var result = MessagePackSerializer.Get<ResponseClass>().Unpack(stream);

Thread definition is :
Thread readDataThread = new Thread(new ThreadStart(MyMethod));
readDataThread.Start();

when unpack method calls in read, timer broken and after callback function dose not invoke, and show below messagein Output
(CLR v4.0.30319: ....vshost.exe): Loaded 'MsgPack.Serialization.EmittingSerializers.GeneratedSerealizers0'.
(CLR v4.0.30319: ....vshost.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\ISymWrapper\v4.0_<IP_ADDRESS>__b03f5f7f11d50a3a\ISymWrapper.dll'. Loading disabled by Include/Exclude setting.
(CLR v4.0.30319: ....vshost.exe): Loaded 'MsgPack.Serialization.EmittingSerializers.GeneratedSerealizers1'.
(CLR v4.0.30319: ....vshost.exe): Loaded 'MsgPack.Serialization.EmittingSerializers.GeneratedSerealizers1.dll'.
(CLR v4.0.30319: ....vshost.exe): Loaded 'MsgPack.Serialization.EmittingSerializers.GeneratedSerealizers2'.
(CLR v4.0.30319: ....vshost.exe): Loaded 'Anonymously Hosted DynamicMethods Assembly'.
The thread 0x3200 has exited with code 259 (0x103).
The thread 0x32e0 has exited with code 259 (0x103).
The thread 0x332c has exited with code 259 (0x103).
The thread 0x27a8 has exited with code 0 (0x0).

Thank you @BehroozBahrameh! However, I cannot convince the problem is infinite-loop(live locking), and I failed to reproduce the hung. I need callstack(stacktrace) when the thread hang to investigate the issue...
Although I failed to detect the cause of your issue, I found another cycle dead lock issue for serializer generation for complex type composition. So, did you use T for the timer thread which have reverse composition like following?
class A {
   public B B {get;set;}
}

class B {
  public A A {get; set;}
}

It's sample code that simulate problem :
static void Main(string[] args)
{
    MainProgram program = new MainProgram();
    program.Init();
}

and MainProgram class is :
public class ResponseClass
{
    public ResponseOptionsClass opts { get; set; }
    public object obj { get; set; }
}

public class ResponseOptionsClass
{
    public short MessageId { get; set; }
    public string SessionId { get; set; }
    public int SqnNo { get; set; }
}

public class MainProgram
{
	public void Init()
	{
		Timer t = new Timer(TimerCallBack, null, 0, 2000);

		Thread readDataThread = new Thread(new ThreadStart(ReadData));
		readDataThread.Start();
	}

	private void TimerCallBack(Object myObj)
	{
		Debug.WriteLine("******* CALLBACK");
		//PACK
		var serializer = SerializationContext.Default.GetSerializer<ResponseClass>();
		var stream = new MemoryStream();
		serializer.Pack(stream, new ResponseClass
		{
			opts = new ResponseOptionsClass
			{
				MessageId = 1
			},
			obj = null
		});
	}

	public void ReadData()
	{
		var i = 0;

		while (true)
		{
			if (++i ==<PHONE_NUMBER>)
			{
				i = 0;
				Debug.WriteLine("******** LOOP");

				var data = new byte[] { 146, 192, 147, 1, 192, 0 };

				var serializer = SerializationContext.Default.GetSerializer<ResponseClass>();
				Stream stream = new MemoryStream(data);
				var obj = serializer.Unpack(stream);
			}
		}
	}
}

in ResponseClass class if comment opts property, you can see CALLBACK log each second, but when exists any property of type class timer dose not work.

Thank you. I'll try this night.

I tried reproduce in 3 weeks intermittently, it worked with about 1 million log lines. I need more info to solve this issue.

Close because no additional post about 2 months. It is welcome to reopen when any new facts are found.


Cannot read property 'getAttribute' of undefined

When running the following code with multiple different queries to get stream links of a given show:
const anime = require('@justalk/anime-api');
anime.stream('attack').then((g) => console.log(g));

The following error is thrown:
(node:50704) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'getAttribute' of undefined
    at Object.scrap_stream (C:\Users\User\Documents\Projects\Tests\node_modules\@justalk\anime-api\src\chia-anime\search.js:19:40)
    at Object.stream (C:\Users\User\Documents\Projects\Tests\node_modules\@justalk\anime-api\src\chia-anime\search.js:31:41)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async Promise.all (index 1)
    at async Object.stream (C:\Users\User\Documents\Projects\Tests\node_modules\@justalk\anime-api\src\index.js:35:13)
(node:50704) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:50704) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Node v12.18.1.

Welcome to this project Vezqi,
I will look at it.
I have no clue what could it be right now before I look at the code because you should at least have a return for 'attack of titans'.
I will let you know.


Feature Request: "Export Localization File" to export only that one flowchart's contents & ability to refresh the exported file with ease

Describe the solution you'd like
I'd like if there was an option to make the "Export Localization File" only export the localisation for the one flowchart that the button was pressed on. Right now, it seems to export every flowchart in the scene into one big csv.
Additionally, I'd like if there was a way to easily refresh the existing Localization file, either via:

an option under Tools->Fungus->Utilities that re-exports the localisation file for all flowcharts in a given scene, using the filename that was already specified for its Localization File (or if it doesnt exist, maybe it could just dump a file with the flowchart gameobject's name).
or a "Refresh Localization File" button on each flowchart that re-exports the localisation file for just that flowchart, using the filename that was already specified for its Localization File (or if it doesnt exist, maybe it could just dump a file with the flowchart gameobject's name).

Is your feature request related to a problem? Please describe.
For logistics purposes, it is important for me to have 1 flowchart = 1 csv.
In the past I could just export a Localization File for each flowchart obejct's name and then strip the lines from them that werent relevant, but my project is growing fast and this is no longer a viable solution.
There are other issues with the export dumping all content from the scene, for example I have a prefab with a lot of flowcharts on it that is present in all scenes so it keeps getting exported in every single scene!
I think it would make sense for there to be a setting to opt in to to make the Export Localization File to only export the localisation for that one flowchart, while keeping the current behaviour also for those who prefer that (I assume most do, since no one asked for this before).
Overall, a solution that would allow me to export 1 flowchart's contents into 1 csv and then have the ability to easily refresh the export would save me a ton of time!

I did some digging and it seems that the following change made it so that the "Export Localization File" now only exports from that one flowchart. One step closer to a solution that works better for me!
BEFORE:
		protected Dictionary<string, TextItem> FindTextItems() {
			Dictionary<string, TextItem> textItems = new Dictionary<string, TextItem>();

			// Add localizable commands in same order as command list to make it
			// easier to localise / edit standard text.
			var flowcharts = GameObject.FindObjectsOfType<Flowchart>();
			for (int i = 0; i < flowcharts.Length; i++) {
			var flowchart = flowcharts[i];
			var blocks = flowchart.GetComponents<Block>();

			for (int j = 0; j < blocks.Length; j++) {
				var block = blocks[j];
				var commandList = block.CommandList;
				for (int k = 0; k < commandList.Count; k++) {
					var command = commandList[k];
					ILocalizable localizable = command as ILocalizable;
					if (localizable != null) {
						TextItem textItem = new TextItem();
						textItem.standardText = localizable.GetStandardText();
						textItem.description = localizable.GetDescription();
						textItems[localizable.GetStringId()] = textItem;
					}
				}
			}
			}

			// Add everything else that's localizable (including inactive objects)
			UnityEngine.Object[] objects = Resources.FindObjectsOfTypeAll(typeof(Component));
			for (int i = 0; i < objects.Length; i++) {
				var o = objects[i];
				ILocalizable localizable = o as ILocalizable;
				if (localizable != null) {
					string stringId = localizable.GetStringId();
					if (textItems.ContainsKey(stringId)) {
						// Already added
						continue;
					}
					TextItem textItem = new TextItem();
					textItem.standardText = localizable.GetStandardText();
					textItem.description = localizable.GetDescription();
					textItems[stringId] = textItem;
				}
			}

			return textItems;
		}

AFTER:
		protected Dictionary<string, TextItem> FindTextItems() {
			Dictionary<string, TextItem> textItems = new Dictionary<string, TextItem>();

			// Add localizable commands in same order as command list to make it
			// easier to localise / edit standard text.

			var flowchart = GetComponent<Flowchart>();
			var blocks = flowchart.GetComponents<Block>();

			for (int j = 0; j < blocks.Length; j++) {
				var block = blocks[j];
				var commandList = block.CommandList;
				for (int k = 0; k < commandList.Count; k++) {
					var command = commandList[k];
					ILocalizable localizable = command as ILocalizable;
					if (localizable != null) {
						TextItem textItem = new TextItem();
						textItem.standardText = localizable.GetStandardText();
						textItem.description = localizable.GetDescription();
						textItems[localizable.GetStringId()] = textItem;
					}
				}
			}

			return textItems;
		}

I was able to add a new button to the LocalizationEditor called "Refresh Localization File" that takes the path of the localization file and just re-exports it, while renaming the old function to "ExportNewLocalizationFile" that works the exact same was as before, prompting the export window.
A safety check would need to be implemented here that checks whether the localization file exists when clicking Refresh.

			if (GUILayout.Button(new GUIContent("Refresh Localization File"))) {
				RefreshLocalizationFile(localization);
			}

			if (GUILayout.Button(new GUIContent("Export Localization File"))) {
				ExportNewLocalizationFile(localization);
			}

		public virtual void RefreshLocalizationFile(Localization localization) {
			string path = localizationFileProp.propertyPath;

			string csvData = localization.GetCSVData();
			File.WriteAllText(path, csvData);
			AssetDatabase.ImportAsset(path);

			TextAsset textAsset = AssetDatabase.LoadAssetAtPath(path, typeof(TextAsset)) as TextAsset;
			if (textAsset != null) {
				localization.LocalizationFile = textAsset;
			}

			ShowNotification(localization);
		}

		public virtual void ExportNewLocalizationFile(Localization localization) {
			string path = EditorUtility.SaveFilePanelInProject("Export Localization File",
															   "localization.csv",
															   "csv",
															   "Please enter a filename to save the localization file to");
			if (path.Length == 0) {
				return;
			}

			string csvData = localization.GetCSVData();
			File.WriteAllText(path, csvData);
			AssetDatabase.ImportAsset(path);

			TextAsset textAsset = AssetDatabase.LoadAssetAtPath(path, typeof(TextAsset)) as TextAsset;
			if (textAsset != null) {
				localization.LocalizationFile = textAsset;
			}

			ShowNotification(localization);
		}


#update follow docs:

macos.md
hello-world.md

#change ubuntu.md to linux.md

        I’m plan to translate all the docs recently, Vapor are really amazing!---- Replied Message ----FromTim<EMAIL_ADDRESS>03:38<EMAIL_ADDRESS>***<EMAIL_ADDRESS>[vapor/docs-cn] #update follow docs: (PR #13)

@0xTim approved this pull request.
Thanks!
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.
[
{
@.": "http://schema.org",
@.": "EmailMessage",
"potentialAction": {
@.": "ViewAction",
"target": "https://github.com/vapor/docs-cn/pull/13#pullrequestreview-829260546",
"url": "https://github.com/vapor/docs-cn/pull/13#pullrequestreview-829260546",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
@.": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]


Add documentation on how to run an external probe with Cloudprober

Whatever I had in mind while filing this issue is covered by:
https://cloudprober.org/how-to/external-probe/


should have some testing scenarios organized in a consistent and reproducible way

the problem

We have a lot of people in Spark working at the same time on different stuff (AKA different modules)

This produces unexpected bugs and problems

Sometime the module a user works on is fine but his changes made problems for other modules
Making changes to migrations / DB can be difficult and dangerous
TODO: add more examples

we would like to have sanity end to end tests

once we have some manual test scenarios setup in consistent and reproducible way it will be much easier to get help from automated tests expers to convert these to automated tests

deployment is very risky, we would like to have check-list of scenarios to ensure everything works after deployment (AKA sanity)

the solution

write some testing scenarios in a consistent and reproducible way
tests should be consistent -

to allow people from different modules to both easily run them and easily modify them

tests should be reproducible -

to prevent problems of the natue of "it works on my machine"
tests should behave the same every time they run and on every environment

related issues

this is a first step towards automated end to end tests (see #95)
having possibility to run local drupal environment will also help (see #131)

suggested implementation

directory called "tests"
contains test scenarios in markdown files in a standard format
each file contains a bunch of scenarios
see below for a suggested example scenario

example scenario

preconditions

drupal should have a user called "testuser" with related email<EMAIL_ADDRESS>(this is setup on drupal test)
should have a spark environment connected to this drupal instance (sparkstaging is connected to drupal testing)

forgot password scenario

open http://sparkstaging.midburn.org
click on "forgot password" link
enter the email<EMAIL_ADDRESS>submit
open mailinator inbox for this email: https://www.mailinator.com/inbox2.jsp?public_to=sparkstaging-midburn-testuser

expected

should receive forgot password email
email should be in correct format and contain link to continue forgot password
clicking on the link should continue to forgot password flow for this user
after completing the forgot password flow and setting a new password
try to login to drupal with the new password (ensure drupal was updated too)

+1
I'll try to make some progress on that today. Plan on using nightmarejs.org

Started in PR #282

very nice work @ripper234
in this issue I thought more about manual testing scenarios
while of course it's much better to have automated tests like you started writing - a lot of times these tests don't get updated / people don't add tests etc..
I think that if we had a simple directory with plain text (or markdown) step-by-step scenarios it will be easier to update and add tests
it would also be possible to require people to add scenarios for every feature they add (and they won't have the excuse of not having time to write tests.. or less of an excuse..)

IMO both this issue and #95 should remain open - they deal with different (but overlapping) issues