Please update for Alamofire 3.0

In alamofire 3.0, they using
Response<T.SerializedObject, T.ErrorObject> -> Void

instead of
(request, response, result) -> Void

Yes this needs to be done ASAP!

+1

+1

+1

+1

+1

+1

Just replace ( request, response, result ) -> Void with:
( response ) -> Void and everything gonna be fine

@EduardJS Thank you sir, but now I meet a new problem, when I wrote pod 'Alamofire-SwiftyJSON', :git => "https://github.com/SwiftyJSON/Alamofire-SwiftyJSON.git" in Podfile, he said - Alamofire (= 1.3) required by Alamofire-SwiftyJSON (2.0.0-beta.1)
I'm a fresh man from OC to Swift, this problem had almost killed me😂

@pupboss , glad to help !
In order to fix that, open your podfile from your terminal and change like the following
Delete all the pods you have and paste these:
pod 'Alamofire', '~> 3.0'
pod 'SwiftyJSON', '~2.3'
As for the SwiftyJSON one, just download it from the gitrepo, fix it like I have wrote you in the previous comment and right click on your ptoject App folder from Xcode, click Add file, select Alamofire-SwiftyJSON.swift and , click Optioms from the bottom of the window ( select copy files id needed ) and then you can simply use:
Alamofire.request( your_options ).responseSwiftyJSON({ ( _, response, error ) in
print( response )
})
I am on mobile, please excuse me if code is not working , as I could not format it.
Don't forget to run:
cd /path/to/your/project
pod install
Then you should be ready to go

@EduardJS Yeah! I've got it by following your suggestion, thank you :+1:

I wrote below:
import Alamofire
import SwiftyJSON

extension Request {
    public static func SwiftyJSONResponseSerializer(
        options options: NSJSONReadingOptions = .AllowFragments)
        -> ResponseSerializer<JSON, NSError>
    {
        return ResponseSerializer { _, _, data, error in
            guard error == nil else { return .Failure(error!) }

            guard let validData = data where validData.length > 0 else {
                let failureReason = "JSON could not be serialized. Input data was nil or zero length."
                let error = Error.errorWithCode(.JSONSerializationFailed, failureReason: failureReason)
                return .Failure(error)
            }

            let json:JSON = SwiftyJSON.JSON(data: validData)
            if let jsonError = json.error {
                return Result.Failure(jsonError)
            }

            return Result.Success(json)
        }
    }

    public func responseSwiftyJSON(
        options options: NSJSONReadingOptions = .AllowFragments,
        completionHandler: Response<JSON, NSError> -> Void)
        -> Self
    {
        return response(
            responseSerializer: Request.SwiftyJSONResponseSerializer(options: options),
            completionHandler: completionHandler
        )
    }
}

Alamofire 3.0 is well-designed to write a such extension.

@AknEp well done!

@AknEp Can you post a quick example of your implementation please? That would very helpful. Great job!

public func responseSwiftyJSON(
        options options: NSJSONReadingOptions = .AllowFragments,
        completionHandler: Response<JSON, NSError> -> Void)
        -> Self
    {```

This is what you need and you have a var in the completion handler

@AknEp Please write example to use this code.

Anyone managed to update this for Swift 3?

Here's a working example for Swift 3.0 + Alamofire 4.0 + SwiftyJSON 3.0:
import Foundation
import Alamofire
import SwiftyJSON

extension DataRequest {
    public static func SwiftyJSONResponseSerializer() -> DataResponseSerializer<JSON> {
        return DataResponseSerializer {
            _, response, data, error in

            guard error == nil else {
                return .failure(error!)
            }

            if let response = response, response.statusCode == 204 {
                return .success(JSON.null)
            }

            guard let validData = data, validData.count > 0 else {
                let failureReason = "JSON could not be serialized. Input data was nil or zero length."
                let userInfo = [NSLocalizedFailureReasonErrorKey: failureReason]
                let code = response?.statusCode ?? 0
                let domain = response?.url?.absoluteString ?? ""
                let e = NSError(domain: domain, code: code, userInfo: userInfo)
                return .failure(e)
            }

            do {
                let json = try JSONSerialization.jsonObject(with: validData, options: .allowFragments)
                return .success(JSON(json))
            } catch {
                return .failure(error as NSError)
            }
        }
    }

    public func responseSwiftyJSON(_ completionHandler: @escaping (JSON?, NSError?) -> Void) -> Self {
        return response(responseSerializer: DataRequest.SwiftyJSONResponseSerializer(), completionHandler: {
            response in
            let method = response.request?.httpMethod ?? ""
            let domain = response.request?.url?.absoluteString ?? ""
            let responseStatus = response.response?.statusCode ?? 0

            switch response.result {
            case .success(let json):
                guard case 200 ..< 300 = responseStatus else {
                    Log("Request error: %@ domain[%@] statusCode[%d]", getVaList([method, domain, responseStatus]))

                    var message = "API Returned a non-200 response"
                    if json["message"].exists() {
                        message = json["message"].stringValue
                    }

                    completionHandler(nil, NSError(domain: domain, code: responseStatus, userInfo: [NSLocalizedDescriptionKey: message]))
                    return
                }

                if let errorMessage = json["errorMessage"].string {
                    Log("Request error: %@ domain[%@] statusCode[%d] errorMessage[%@]", getVaList([method, domain, responseStatus, errorMessage]))
                    completionHandler(json, NSError(domain: domain, code: responseStatus, userInfo: [NSLocalizedDescriptionKey: errorMessage]))
                    return
                }

                Log("Request success: %@ domain[%@]", getVaList([method, domain]))
                completionHandler(json, nil)

            case .failure(let error):
                let errorString = String(describing: error)
                Log("Request error: %@ domain[%@] statusCode[%d] errorMessage[%@]", getVaList([method, domain, responseStatus, errorString]))
                completionHandler(nil, NSError(domain: domain, code: responseStatus, userInfo: [NSLocalizedDescriptionKey: errorString]))
            }
        })
    }
}


Remove Compose file version from the yaml file

Signed-off-by: Usha Mandya<EMAIL_ADDRESS>Remove Compose file version from the docker-compose.yml file

Built the docs locally and verified the changes. @StefanScherer @thaJeztah Should we check anything else as part of this?


Boost indexing performance by using parallel iterators

Just came across your channel by watching https://www.youtube.com/watch?v=b0KIDIOL_i4.
Since it was focussed on performance, I was thinking indexing (and maybe searching as well) could be improved by using parallel iterators. I decided to give it a shot using jwalk and rayon -- re-exported by jwalk.
This is just a proof of concept, and the speed could be improved further if instead of collecting the documents into a Vec before adding them to the Model, we instead used an Arc<Mutex<Model>> and inserted the documents directly into the model during the parallel iteration.
The WalkDir also takes care of recursively traversing the directory structure, so this removes the overhead of the recursion on the add_to_model call. It also supports following symlinks, so enabling that option would also take care of that TODO.
I was initially hoping to not have to collect into dir, but it looks like WalkDir does the walking in parallel, but then collects the results when calling into_iter and I could not find a convenient way of getting a parallel iterator directly from the walk.process_read_dir seemed like the solution, but given it's function signature / arguments it would complicate the code a lot.
Leaving this as a draft, if you like the prototype I'll polish it a little more.
Anyway here are the results
Machine:  2019 MacBook Pro 16in -- i7-9750H CPU @ 2.60GHz (6 core)
Data: https://github.com/BSVino/docs.gl (downloaded via zip option in github)
#### Debug Sync
Executed in   __21.78 secs__    fish           external
   usr time   21.36 secs    0.19 millis   21.36 secs
   sys time    0.33 secs    1.66 millis    0.32 secs

#### Release Sync
Executed in   __3.64 secs__    fish           external
   usr time    3.36 secs    0.14 millis    3.36 secs
   sys time    0.27 secs    1.90 millis    0.27 secs

#### Debug Parallel
Executed in   __6.13 secs__   fish           external
   usr time   22.93 secs  154.00 micros   22.93 secs
   sys time    0.40 secs  969.00 micros    0.40 secs

#### Release Parallel
Executed in  __875.63 millis__    fish           external
   usr time    3.77 secs      0.16 millis    3.77 secs
   sys time    0.17 secs      1.13 millis    0.17 secs

I just tested the Arc<Mutex<Model>> solution and there was about a 15% regression in performance. I didn't profile it, but my guess would be that lock-contention is introducing more of a bottleneck and ends up being slower than the collect call.
With that in mind, I'll move this PR from a Draft state.
Let me know if you want me to add symlink support.


Remove unnecessary smoltcp features

This was considerably increasing user binary sizes, even when they didn't need it.

Just a heads up that cargo check --features "stm32f407 smoltcp-phy" appears to result in a compilation error with this change:
$ cargo check --features "stm32f407 smoltcp-phy"
    Checking smoltcp v0.6.0
error[E0392]: parameter `'a` is never used
   --> /home/mindtree/.cargo/registry/src/github.com-1ecc6299db9ec823/smoltcp-0.6.0/src/iface/ethernet.rs:271:13
    |
271 | enum Packet<'a> {
    |             ^^ unused parameter
    |
    = help: consider removing `'a`, referring to it in a field, or using a marker such as `core::marker::PhantomData`

error: aborting due to previous error

Enabling either proto-ipv4 or proto-ipv6 appears to work however:
$ cargo check --features "stm32f407 smoltcp-phy smoltcp/proto-ipv4"
    Finished dev [unoptimized + debuginfo] target(s) in 0.02s

Perhaps the mod smoltcp_phy; feature gate could be something like this?
#[cfg(and(feature = "smoltcp-phy", any(feature = "smoltcp-proto-ipv4", feature = "smoltcp-proto-ipv6")))]

Just a heads up that cargo check --features "stm32f407 smoltcp-phy" appears to result in a compilation error with this change

Good catch, gonna fix this accordingly.

#[cfg(all(feature = "smoltcp-phy", any(feature = "smoltcp-proto-ipv4", feature = "smoltcp-proto-ipv6")))]

Well, that didn't work as expected, because cargo would still try to compile smoltcp because it was activated in Cargo.toml by the smoltcp-phy feature. So I decided to use the proto-ipv4 feature by default, which seems quite sane.


In open editor there is no image import process only appear in text file,save all,close editor.So i want open editor file import

Type: Feature Request
In my  open editor there is no image import process
VS Code version: Code 1.91.0 (ea1445cc7016315d0f5728f8e8b12a45dc0a7286, 2024-07-01T18:52:22.949Z)
OS version: Windows_NT x64 10.0.22631
Modes:

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.91.1. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

We closed this issue because it is a question about using VS Code rather than an issue or feature request. Please search for help on StackOverflow, where the community has already answered thousands of similar questions. You may find their guide on asking a new question helpful if your question has not already been asked. See also our issue reporting guidelines.
Happy Coding!


[Enhancement] Method makes literal string comparisons passing the literal as an argument [TopicHandler]

Search before asking

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

Enhancement Request

located at:
eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/TopicHandler.java line 188,191,194,197
analysis and explanation:
This line is in the form of String str = str.equals("someOtherString");
A NullPointerException may occur if the String variable str is null. If instead the code was restructured to String str = "someOtherString".equals(str);that is, call equals() on the string literal, passing the variable as an argument, then this exception could never happen as both equals() check for null.
Describe the solution you'd like
Adjust the code to String str = "someOtherString".equals(str).
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

I like to work in this issue.


Bring back Geometry2D.segment_intersects_circle

Bring back Geometry2D.segment_intersects_circle, which seems to have disappeared while splitting Geometry 2D and 3D
Fixes #63845

You will also need to update the class reference for the new method: https://docs.godotengine.org/en/latest/community/contributing/updating_the_class_reference.html
You could reuse the description from 3.x.

Looks good! Could you squash the commits? See PR workflow for instructions.

Squashed !
Man, this is exciting. And the doc is so well written :)

Thanks! And congrats for your first merged Godot contribution :tada:


Implement subclasses of CCXT locked to one exchange

Actually this is an interesting idea: would it make sense to add variants (subclasses) of your CCXT converter that use a fixed exchange (one for Binance, one for Kraken, etc.)? The binance subclass would be exactly equivalent to the pair converter in this PR. Additionally, if we added a CCXT converter subclass for Coinbase, it should be equivalent to the HistoricCrypto plugin. Does that sound correct or am I missing something?

Originally posted by @eprbell in https://github.com/eprbell/dali-rp2/issues/60#issuecomment-1193232245
Implement subclasses or create a method of prioritizing one exchange's pricing data over another.

Is there a way to simply place two different instantiations of the same plugin in the pricing stack? So that we could just instantiate one CCXT plugin locked to Binance, and then another locked to Coinbase. I don't think we would need to put much in the subclass other than have a different class name.
Or is there an automagic way in Python to create generic subclasses dynamically?

o

I think the best way is to have separate python files, one per exchange: each file would contain a (probably) trivial subclass of CCXT. Then the user can arrange them in their priority order of choice in the configuration.

I'm pretty sure this can simply be implemented by passing a param. I don't think a subclass is really needed. Or are subclasses preferred for clarity's sake?

Yeah, I'm thinking classes would be both clearer to use and more in line with the rest of the design (one class per service, whether it's an exchange, a price provider, a wallet, etc.).

This should be resolved with the latest PR.


Avoid hanging the worker-thread for CMap data with ridiculously ranges (issue 11922)

This patch was inspired by https://github.com/kermitt2/xpdf-4.00/blob/ad2b64f1244b32fca0ff0868af1cfa0238c9933e/xpdf/CharCodeToUnicode.cc#L480-L484
Fixes #11922

/botio test

/botio-linux preview

Thank you for fixing this! Never a dull moment with edge cases in PDF files...


Possible limitation of the $urlRouterProvider

Hi, I just found a possible issue with the urlRouteProvider, it is not directly related to the angular-meteor package but as everyone is now using the ng.html files pattern, I should not be the only one affected by this issue.
just run this little project
git clone https://github.com/Xample/Meteor-Angular-Bootstrap-Boilerplate.git
cd Meteor-Angular-Bootstrap-Boilerplate/
meteor

Then open the link : http://localhost:3000/tab1
You will not see anything within the content, but if you click on Tab2 and then back to Tab1 it will work.
The router seems to be looking for the following tag [1] within the body.

unfortunately it is not "yet" there. This tag [1] is added through the import of the index.ng.html file.

Moving the tag [1] from index.ng.html to the index.html file solves the problem but it is half a solution.
Any idea on how to solve this in a clean way ? Some I had:

Add a controller to the dependency and fire an event to the router when it is loaded
Being able to make a synchronous ng-include

Something else I do think about, would the ui-view directive to itself notify the router once loaded (synchronously or not)

I would like to attack the bigger issue here. I don't quite like that we make people use ng-include for their index.ng.html file.
What we could do, is set the index.ng.html file as the main file of the app, and append it to the document in a build plugin. That would mean no more ng-include, for whoever can use the index.ng.html standard (the option to use regular html files with ng-include will also stay available).
@Xample @Urigo what do you guys think?

So if no index.html then index.ng.html would be the default fallback ? If index.html people will still be able to mix in other templates engine. It sounds good to me in term of UX.

@Xample it looks like this is related to this issue:
https://github.com/angular-ui/ui-router/issues/679
Can you try to reproduce that with a clean Angular app without Meteor to make sure it's the same problem?
I'm not sure i want to add a work around and push an explicit file automaticly to Meteor just for that.

@Urigo okay I took this project https://codeload.github.com/angular-ui/ui-router/zip/master I then ran the sample example after including the content view within 2 successive includes. And it works i.e. I have not been able to reproduce the problem.

@Xample I've created a pull request that solves that problem:
https://github.com/Xample/Meteor-Angular-Bootstrap-Boilerplate/pull/1
It's a workaround but it looks like it's the current way to handle this situation:
https://github.com/angular/angular.js/issues/4957
https://github.com/angular-ui/ui-router/issues/679
http://stackoverflow.com/questions/25334652/stateprovider-in-angularjs-not-rendering-the-ui-view
I think the workaround is simple and not intrusive so I prefer this solution then the one @netanelgilad suggested as it's more inline with the current state of Angular.
I can maybe add this workaround to the tutorial, do you think I should?


test fix

create a directory for TS_ROOT to allow symlinks to work. This saves space on disk
Some pylint format fixes

clang format successful! https://ci.trafficserver.apache.org/job/clang-format-github/151/

RAT check successful! https://ci.trafficserver.apache.org/job/RAT-github/166/

AU check failed! https://ci.trafficserver.apache.org/job/autest-github/149/

FreeBSD11 build successful! https://ci.trafficserver.apache.org/job/freebsd-github/1847/

clang format successful! https://ci.trafficserver.apache.org/job/clang-format-github/152/

Linux build successful! https://ci.trafficserver.apache.org/job/linux-github/1738/

RAT check successful! https://ci.trafficserver.apache.org/job/RAT-github/167/

Intel CC build successful! https://ci.trafficserver.apache.org/job/icc-github/277/

clang format successful! https://ci.trafficserver.apache.org/job/clang-format-github/153/

RAT check successful! https://ci.trafficserver.apache.org/job/RAT-github/168/

FreeBSD11 build successful! https://ci.trafficserver.apache.org/job/freebsd-github/1848/

What is this change fixing?

AU check successful! https://ci.trafficserver.apache.org/job/autest-github/150/

Intel CC build successful! https://ci.trafficserver.apache.org/job/icc-github/278/

Linux build successful! https://ci.trafficserver.apache.org/job/linux-github/1739/

clang-analyzer build successful! https://ci.trafficserver.apache.org/job/clang-analyzer-github/410/

Intel CC build successful! https://ci.trafficserver.apache.org/job/icc-github/279/

FreeBSD11 build successful! https://ci.trafficserver.apache.org/job/freebsd-github/1849/

clang-analyzer build successful! https://ci.trafficserver.apache.org/job/clang-analyzer-github/411/

clang-analyzer build successful! https://ci.trafficserver.apache.org/job/clang-analyzer-github/412/

Thanks! Fwiw, this is one of those cases where two commits would have been better, one for the indentation changes, and one for the actual fix. (But no need to redo this of course).


do beforeEach and afterEach process returned promises before continuing?

I've seen some commentary (can't find it now) suggesting that beforeEach and afterEach process returned promises before continuing.
Is this true?

Please read the contributing guidelines; these types of questions are ill-suited for GitHub. Thanks!
Jasmine will not resolve a returned promise before continuing. Mocha will - see asynchronous code


Do not include binaries in the tarball

Fixes #77

Does removing the exe and dll references on the MANIFEST allows to add them to the binary wheels?

I was reading up on that.  We may need to specifically add package_data.

I haven't yet figured out how to exclude files from the sdist but not the wheel, will come back to this tomorrow.

I haven't yet figured out how to exclude files from the sdist but not the wheel, will come back to this tomorrow.

Thanks for the help on this

Good to go now


How to handle the duplicates?

Using my api, data is added every second
So, page 1 is loaded and it is ok. But when page 2 loads and new data is added, then page 2 contains some of the data from the page 1.
For example:

Page 1: [1, 2, 3, 4, 5]
Load page 2
Page 1 = [1, 2, 3, 4, 5]
Page 2 = [4, 5, 6, 7, 8]

My fetch Data function:
Future<void> _fetchPage(int pageKey) async {
    try {
      pg++;
      List<SearchClassified> newClassifieds = await SearchService.searchClassifieds(args, pg);
      bool isLastPage = newClassifieds.length < _pageSize;
      if (isLastPage) {
        _pagingController.appendLastPage(newClassifieds);
      } else {
        final nextPageKey = pageKey + newClassifieds.length;
        _pagingController.appendPage(newClassifieds, nextPageKey);
      }
    } catch (error) {
      if (mounted) {
        _pagingController.error = error;
      }
    }
  }

you can directly access and set the itemList property of the controller.
you can also remove items from the list you are going to add before adding it, by comparing it against the list of existing items.

I resolved this with
 _pagingController.itemList = _pagingController.itemList?.toSet().toList();

please close this issue then.


mq(ticdc): Add context for producer

What problem does this PR solve?

Issue Number: close #xxx
What is changed and how it works?
add context for producer
Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
 `None`.

/run-kafka-integration-tests

/run-kafka-integration-tests

/merge

/merge

/run-all-tests

/run-engine-integration-tests

/run-engine-integration-tests


[Linux] validity check failed Archi-Linux64-4.6.0.tgz

Version of Archi
4.6.0 aur
Archi Plug-ins
no
Operating System
Linux Manjaro 20.0
Expected Behaviour
Installs the package from the aur
Actual Behaviour

Steps to Reproduce the Behaviour
1.Pull from the aur
2.Run makepkg -si

This is not an Archi issue.


when i get access_toekn with code use client,i get ssl error

requests.exceptions.SSLError: HTTPSConnectionPool(host='accounts.google.com', port=443): Max retries exceeded with url: /o/oauth2/token (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')],)",),))

@alaikis Can you share the code for the implementation that is causing the problem?

Closing this because there was no response for over a week, so I am assuming the issue has been resolved. Feel free to reopen this if the issue persists.


Default App?

Can you please add the source code for the default app that comes installed on the rotary encoder? It would be super helpful to have access to this source when creating other applications.

I'm guessing no one is going to respond to this?

Still crickets. You guys just build stuff and then move on, with no support?


Django debug throws error

Hi there,
After updating VSCode to the latest version I can not debug my django projects anymore.
I get the following error:
Traceback (most recent call last):
File "/Users/laszlo/.vscode/extensions/ms-python.python-2018.2.1/pythonFiles/experimental/ptvsd_launcher.py", line 76, in
import ptvsd
ModuleNotFoundError: No module named 'ptvsd'
If I install the ptvsd package it doesn't run at all. It starts but then stops without any error message.
Tried using the none Experimental launch file and then I get an Exception in sre_parse.py module
def __getitem__(self, index):
        if isinstance(index, slice):
            return SubPattern(self.pattern, self.data[index])
        return self.data[index]

IndexError, list index out of range

Laszlo

If you're installing ptvsd for use with experimental configuration, you'll need to pip install ptvsd --pre to get the correct version.
I'm not sure why it doesn't work for the non-experimental configuration though.
Our teammates at https://github.com/Microsoft/vscode-python should be able to help you out.

I have the same issue, when I run debug without experimental, on a python 3.6 project, I get the exact same error of
IndexError, list index out of range
in the same module. Debug stops and no way to run it further while "uncaught exceptions" is activated.


Migrate docker images to Alpine Linux

"Alpine Linux is a Linux distribution built around musl libc and BusyBox. The image is only 5 MB in size and has access to a package repository that is much more complete than other BusyBox based images. This makes Alpine Linux a great image base for utilities and even production applications. Read more about Alpine Linux here and you can see how their mantra fits in right at home with Docker images."

Alpine - Docker Hub

Both Java and Node.js have base image variants for Alpine Linux which result in final runtime images which are 49%-85% smaller than the current conductor ui and server images respectively.

Java 8 Alpine - GitHub
Node.js Alpine - GitHub

Objectives

Migrate server build to a 2-step process where the server is built using the java:8-jdk and is then copied to a java:8-jre-alpine runtime image.
Migrate ui build to a node:alpine image.
Change startup scripts to run ui and server processes in the foreground.
Change startup scripts to remove the logging redirect.  Docker expects log messages to be sent directly to stdout and stderr.
Update server configuration code to always allow configuration settings to be overridden by environment variables.

Notes

Leave ServerAndUI image as-is for local execution only.  Consider deprecating.
Consolidate readme documentation to the single readme file in the docker folder.

I have this working on my personal fork.  The new image sizes are as follows:
                        before      after
                        -------     -----
conductor:server        995 MB      153 MB
conductor:ui            914 MB      463 MB


Starfield Post-Deploy Action

Would you be willing to make an action for Starfield and Starfield Script Extender? Thanks

Shouldn't be too hard, I think a Starfield Post-Deploy action would just need to:

rename the script extender
tweak the settings to enable archive invalidation

What would the post deploy script do for starfield?

Good question, maybe it would just:

swap sfse and starfield launcher
set up .ini if necessary, like with archive invalidation


Enable PaimonTest for Spark 3.5

:mag: Description
Issue References 🔗

This pull request enables PaimonTest for Spark 3.5
Describe Your Solution 🔧
As Paimon 0.7.0 already brings support for Spark 3.5, we should enable PaimonTest for Spark 3.5.
Types of changes :bookmark:

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Test Plan 🧪
Pass GA.

Checklist 📝

[x] This patch was not authored or co-authored using Generative Tooling

Be nice. Be informative.

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

Project coverage is 61.06%. Comparing base (aab8c18) to head (9902a3c).

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #6095      +/-   ##
============================================
- Coverage     61.09%   61.06%   -0.03%
  Complexity       23       23
============================================
  Files           623      623
  Lines         37200    37200
  Branches       5040     5040
============================================
- Hits          22726    22716      -10
- Misses        12016    12027      +11
+ Partials       2458     2457       -1

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

The last round CI passed, merged to master


Deploy staging app with stable url

[x] Finish dpr-deploy

[x] Have someone test it (e.g. @zelima)

[x] Deploy app
[x] Document

Not part of this issue but needed to do this:

[x] Get a nice domain / URL for it - #121

Fixed


rename: common.IFIDType to addr.IfID

Also, change the type from currently uint64 to uin16, as the actual interface IDs on the wire are only 12 bits.

common.IFIDType is deprecated:
https://github.com/scionproto/scion/blob/7f5de5ba4d91d505e0774aa875f44d45852db8d1/go/lib/common/defs.go#L37-L41
Won't fix this.

common.IFIDType is deprecated:
https://github.com/scionproto/scion/blob/7f5de5ba4d91d505e0774aa875f44d45852db8d1/go/lib/common/defs.go#L37-L41
Won't fix this.

@scrye, @juagargi, sorry I had not previously seen this deprecation note. This common.IFIDType is currently also used for higher level descriptions of paths, like for example snet.PathInterface, that (presumably) should be usable to describe paths of all or at least most types. I don't think specializing this for the different path types would be required or desirable. What type should be used there? What about e.g. addr.IfID? ;)

@scrye, @juagargi, sorry I had not previously seen this deprecation note. This common.IFIDType is currently also used for higher level descriptions of paths, like for example snet.PathInterface, that (presumably) should be usable to describe paths of all or at least most types. I don't think specializing this for the different path types would be required or desirable. What type should be used there? What about e.g. addr.IfID? ;)


Spec clarification/suggestions

Based on reviewing the format spec from the conversation on Parquet.  I had some comments/suggestions (thanks for the write-up so far):

Consider starting with an overview of the overall encoding/decoding algorithm defining each of the terms in it (it currently focuses mostly on decoding), with examples for each step along the way.
Enumerate valid format versions (I expected this is only zero or 1?)
phrasing the second element of chunk metadata (0 or dtype_size] bits, is unclear what this values represents.  It seems like it is only included if mode != classic
tAns description/definitions (its not clear if there is one well defined algorithm for this or there are several. Links/copies to the canonical algorithm or a description of the algorithm as implemented are necessary I think:

Define latent variables (this might be part of tAns descriptions).
corruption is defined in terms of some of bin weight and tANS size which do not seem to be formally defined.

I don't expect this to change but I think it is unfortunate from a parquet inter-op perspective that some terminology is very similar (e.g. Data Page)
define "delta encoding order" probably with examples (web search does not seem to turn up any results in the first few hits).
Enumerate the non-trivial bijections to uint float.
define machine_epsilon its not clear if float multiply is working with floating point numbers (if it is it doesn't seem lossless).
the per latent variable fields, it doesn't seem like they are guaranteed to be byte aligned (are byte zero padded?)

I might be misunderstanding some aspects of the algorithm and some of these are partially covered and it just might be about reorganizing some of the flow for people new the algorithm.

Thanks for your feedback.

As a format description, the goal of the document is only to describe the many->one correspondence from compressed_representation->uncompressed_representation. As with almost any compression algorithm, the mapping from uncompressed_representation->compressed_representation is one->many and is up to the compression algorithm (not the format). The description of formulas is at the bottom.
Done.
I defined the encoding of "raw" values more clearly now.
tANS is a well-known algorithm; added a couple links.
I think for the most part it's actually a good thing; at least for data page, the two notions should overlap exactly between Parquet and Pcodec (or else the implementation is bad).
This was already described.
Added more detail.
I've rephrased it in ULPs to be clearer. It is lossless; IEEE multiplication is deterministic.
Other than each component's start and end, nothing is guaranteed to be byte-aligned. I'm not sure what you mean by latent variable fields?

Actually, there is a byte alignment after each page's metadata. Added that to the doc.

As a format description, the goal of the document is only to describe the many->one correspondence from compressed_representation->uncompressed_representation. As with almost any compression algorithm, the mapping from uncompressed_representation->compressed_representation is one->many and is up to the compression algorithm (not the format). The description of formulas is at the bottom.

I think maybe my original comment was misinterpreted.  I agree you cannot there are many possible compression algorithm choices that can map to this format.  What IMO what is missing here is a high level overview of what the data layout actually represents and defining the key terms used later in the document.  IIUC at a high level the algorithm is picking intervals of integers and using tAns to encode those intervals based using the probability estimate of integers observed in that range (i.e.) in this case interval ranges are the symbols for tANS).  Then to compress actual integers it is a combination of the integer range + an encoded offset.  But there is still a lot vocabulary to relate to how this works in practice (e.g. "tANS Weight" this is the estimated probability?, "4 way interleaved tAns Encode" = ?? neither linked tANS resource goes into tANS decoding", "bins = ranges", "latent variable" = encoded value?) which parts are delta encoded.    At a high-level why are multiple data chunks used.  This might be self-evident for people with compression algorithms, but from someone without much experience, I'm having a non-trivial time understanding the vocabulary, and I'm not seeing an overlap (might just be skimming too quickly) with the vocabulary used in the original tANS nor in the tutorial you wrote (which helped a lot gaining an intuitive understanding).

I think for the most part it's actually a good thing; at least for data page, the two notions should overlap exactly between Parquet and Pcodec (or else the implementation is bad).

if we expect data header/metadata to not be stored within data pages, I think this is likely are much larger change with respect to parquet (e.g. we would need something akin to a dictionary page or re-use that concept).

I agree that a detailed document about pcodec's approach (answering "why" questions) would be valuable. I might write up a white paper to this effect in the future, but I don't think it belongs in the format document. My intent with this document is not to explain things from first principles, but to make it possible for very motivated or expert people to (say) write their own pcodec implementation.
ANS can certainly be intimidating at first, but these sources definitely discuss decoding:

4-way interleaving is just the i % 4 thing in the doc. It improves performance.
I think some of your questions (e.g. "latent variable" = encoded value? and which parts are delta encoded) are already answered, though I suspect a different sort of doc would be most helpful to you. Unfortunately pcodec's high-level motivation docs are strewn in various places right now.


segfault when creating empty DenseMatrix

The following python code segfaults in ipython using the latest version of symengine from PyPI.
import symengine

symengine.DenseMatrix(4, 4)

Please let me know if I should have filed this issue to the python bindings instead.

I think that the constructor with just the rows and cols should be made private. I assume that you want a zero matrix right? There's a zeros method for that.

I think it's useful to be able to create an empty matrix also, like NumPy's empty. But either way it should not segfault, thanks @rikardn for reporting it.

You can create an empty matrix, but you can't print it.

Adding a check to all function calls to check if it's empty can be done in the python wrapper. Doing it in C++ to each function might be too costly.

Yes, we should not be doing it in C++.

The constructor for the empty DenseMatrix is as follows:
DenseMatrix::DenseMatrix(unsigned row, unsigned col) : row_(row), col_(col)
{
    m_ = std::vector<RCP<const Basic>>(row * col);
}

It creates the vector and the RCPs, but they don't point to anything. We can assign to them in python with:
import symengine

A = symengine.DenseMatrix(2, 2)
A[0, 1] = 2

but we cannot print the entire matrix until all elements have been assigned. I assume RCP will default to nullptr so I guess checking for nullptrs before printing in the python wrapper is the solution here.


In-memory database of packages instead

I could create a packages database using datasette.add_memory_database("packages") and then populate it on startup with metadata about all the packages.

Built a prototype. It looks like this:


Extend the gitoid crate to support tree objects

In the full Git object system, there are four kinds of objects: tree, commit, tag, and blob. They mean roughly the following:

blob: A single file on the file system
tree: A directory containing files on the file system
commit: A commit object in the Git commit history
tag: A tag object pointing to a specific commit

Right now, all of these are represented in an enum in the gitoid crate, but we don't really properly support any object besides the blob object.
I'd like to extend gitoid to at least also support tree objects, which would then permit encoding an entire file system tree hierarchy with the gitoid crate to use alongside attestations of file and directory-specific measurements.
With just blob, we only have the ability to identify individual files, but not to locate them within a structure. tree objects add that location!

I'd say this is now a non-goal, though if someone wants to add it in the future they're free to do so. I've documented that the gitoid crate is primarily for our own cases, and that's good enough for me!


Attempting to disable internode encryption on a running cluster without downtime is not possible.

What happened?
I was attempting to disable internode encryption on a running cluster with serverEncryptionStores specified. From the starting state of a cluster up and running with encryption enabled I:

Set optional: true and internode_encryption: all in cassandra.yaml. This triggered a rolling restart
Set optional: true and internode_encryption: none. This triggered a rolling restart which got stuck.

Specifying serverEncryptionStores doesn't necessarily result in secrets being mounted to pods instead the operator checks to see if internode_encryption is not none. In my case I wanted to keep the secrets mounted (and keystore / truststore available) while all of the nodes performed rolling restarts to the point where internode encryption was disabled.
Did you expect to see something different?
Yes, I expect that setting serverEncryptionStores and clientEncryptionSrores should populate the secrets within the pods and set the following in cassandra.yaml.
keystore: /mnt/server-keystore/keystore
keystore_password: REDACTED
truststore: /mnt/server-truststore/truststore
truststore_password: REDACTED

My next step after step 2 above was to remove the cassandra.yaml settings (optional and internode_encryption) as well as the serverEncryptionStores block.
How to reproduce it (as minimally and precisely as possible):
Environment

K8ssandra Operator version: cr.k8ssandra.io/k8ssandra/k8ssandra-operator:5e45f078

Kubernetes version information:

kubectl version
Client Version: v1.28.10
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.28.9-gke.1000000

Kubernetes cluster kind:

GKE

Manifests:

...
    auth: false
    cassandra:
      serverVersion: 4.0.11
      serverType: cassandra
      serverEncryptionStores:
        keystoreSecretRef:
          name: my-inode-ks
          key: keystore.jks
        truststoreSecretRef:
          name: my-inode-ks
          key: truststore.jks
        keystorePasswordSecretRef:
          name: my-inode-ks
          key: keystore-password
        truststorePasswordSecretRef:
          name: my-inode-ks
          key: truststore-password
      config:
        cassandraYaml:
          dynamic_snitch: false
          server_encryption_options:
            internode_encryption: none
            optional: true
        jvmOptions:
          heapSize: 31G
      resources:
        requests:
          cpu: 30000m
          memory: 96Gi
      datacenters:
        - metadata:
            name: dc1
          stopped: false
          size: 3
          racks:
            - name: rack1
            - name: rack2
            - name: rack3

Anything else we need to know?:
You are awesome 🚀

I think the checks at https://github.com/k8ssandra/k8ssandra-operator/blob/87bed5f4bef6269a51fe632a75831c3f45b84dec/pkg/cassandra/encryption.go#L167 and https://github.com/k8ssandra/k8ssandra-operator/blob/87bed5f4bef6269a51fe632a75831c3f45b84dec/pkg/cassandra/encryption.go#L177 should be removed. If we have everything needed for a keystore and truststore (IE mount points and passwords) the secrets should be mounted and appropriate values added to cassandra.yaml. Whether the user does anything with the keystore & truststore is on them.


Fix build errors if there are spaces in an ancestor folder

If there are spaces in a folder anywhere between the root directory and the project directory, builds will fail when copying files.
This patch puts quotes around the parameters for the copy commands in the project files.
Microsoft Reviewers: Open in CodeFlow

It looks like tests also have issues with spaces in paths. Do you want me to add that to this PR, or file another PR?

It looks like tests also have issues with spaces in paths. Do you want me to add that to this PR, or file another PR?

This one please.  Thanks for helping us fix this 😄

No matter what I did, I wasn't able to get the E2E tests working (even when I didn't have a space in the path), so unless I'm missing something obvious, there isn't much to gain from making them work with a space. The unit tests all work with a space in the path.

Ok, no problem.  Thanks for trying.


shadow

Surface surface = new Surface(2, 2);
surface.setPosition(new Vector(0, -0.1, 0));
surface.setRotation(new Vector((float) -Math.PI / 2.0f, 0, 0));
surface.setMaterials(Arrays.asList(material));
this method no have   surface.setPosition(new Vector(0, -0.1, 0));
surface.setRotation(new Vector((float) -Math.PI / 2.0f, 0, 0));

how to create shadow ..

Hi @544531645,
Looks are documentation had an error, thanks for catching this :). I've fixed our documentation. The correct code should be:
Material material = new Material();
material.setLightingModel(LightingModel.LAMBERT);
material.setShadowMode(Material.ShadowMode.TRANSPARENT);

Surface surface = new Surface(2, 2);
surface.setMaterials(Arrays.asList(material));

Node surfaceNode = new Node();
surfaceNode.setPosition(new Vector(0, -0.1, 0));
surfaceNode.setRotation(new Vector((float) -Math.PI / 2.0f, 0, 0));
surfaceNode.setGeometry(surface);

why I add no shadow

I  want  like this shadow

DirectionalLight light = new DirectionalLight();
light.setColor(Color.WHITE);
light.setDirection(new Vector(0, -1, 0));
light.setShadowOrthographicPosition(new Vector(0, 4, 0));
light.setShadowOrthographicSize(10);
light.setShadowNearZ(1);
light.setShadowFarZ(4);
light.setCastsShadow(true);
object3D.setScale(new Vector(0.012f, 0.012f, 0.012f));
    Material material = new Material();
    material.setLightingModel(Material.LightingModel.LAMBERT);
    material.setShadowMode(Material.ShadowMode.TRANSPARENT);

    Surface surface = new Surface(2, 2);
    surface.setMaterials(Arrays.asList(material));

    Node surfaceNode = new Node();
    surfaceNode.setPosition(new Vector(0, -0.1, 0));
    surfaceNode.setRotation(new Vector((float) -Math.PI / 2.0f, 0, 0));
    surfaceNode.setGeometry(surface);

    mScene.getRootNode().addLight(light);
    mScene.getRootNode().addChildNode(object3D);
    mScene.getRootNode().addChildNode(surfaceNode);

this my code , BUt no have shadow

@VikAdvani

HI @544531645, can you send me a screenshot of what you see?
Can you try to add the following:

Increase the value of the orthographic position: light.setShadowOrthographicPosition(new Vector(0, 10, 0));
Set the shadow opacity: light.setShadowOpacity(1.0f)
Increase the shadowFarZ: light.setShadowFarZ(10);

Hi @544531645, I tried your bird.rar file and was able to get a shadow appearing. I don't have all the parameters you are using(ie position of the surface and object) so I can't tell why the shadow is not appearing for you.
Some suggestions to help you debug:

Make sure the position of your surface and 3d object are aligned. The surface should be directly below the object with the same x and z position.

Try adding a color to your surface to better help debug the issue. This way you can see the surface and see if it's below your object. For example apply a red color without a transparent shadow mode to the surface:

 Material coloredMaterial = new Material();
 coloredMaterial.setDiffuseColor(Color.RED);
 coloredMaterial.setLightingModel(Material.LightingModel.BLINN);

 surface.setMaterials(Arrays.asList(material));

no ，My bird.rar file is  want you see the 3d model question ,not shadow .

Hi @544531645, i meant to say I got the shadow to appear with the bird model as an example. Let me know if the previous suggestion works. Thanks!

no, it not work , can you  sreenshot show and give more complete code?

nomarl should like this ,

but ,I show this

the red shadow it is my self from screen

Hi @544531645,
I was able to get a shadow using the directional light. I also added a spotlight to light the model that doesn't cast a shadow but helps illuminate the model. In addition I removed an ambient light since that making the shadow hard to see. It takes some time to properly configure the orthographic bounding box for the directional light. More info on that here:
https://virocore.viromedia.com/docs/3d-scene-lighting#shadows
Here is some sample code that seems to work and gives the desired shadow effect(screenshot of how it looks attached).
        DirectionalLight light = new DirectionalLight();
        light.setColor(Color.WHITE);
        light.setDirection(new Vector(0, -1, 0));
        light.setShadowOrthographicPosition(new Vector(0, 5, -9));
        light.setShadowOrthographicSize(40);
        light.setShadowNearZ(1);
        light.setShadowFarZ(30);
        light.setShadowOpacity(1.0f);
        light.setCastsShadow(true);

        Spotlight spotlight = new Spotlight();
        spotlight.setCastsShadow(false);
        spotlight.setDirection(new Vector(0, 0, -1));
        spotlight.setInnerAngle((float)Math.toRadians(60.0));
        spotlight.setOuterAngle((float)Math.toRadians(120.0));
        spotlight.setAttenuationStartDistance(3);
        spotlight.setAttenuationEndDistance(15);
        spotlight.setColor(Color.WHITE);
        spotlight.setPosition(new Vector(0, -3, -5));

        //remove the ambient light, makes our surfaces to bright(could fix by using bitmasks).
        mScene.getRootNode().removeLight(mAmbientLight);
        mScene.getRootNode().addLight(light);
        mScene.getRootNode().addLight(spotlight);

        Material coloredMaterial = new Material();
        coloredMaterial.setDiffuseColor(Color.RED);
        coloredMaterial.setLightingModel(Material.LightingModel.BLINN);

        Surface surface = new Surface(4, 4);
        surface.setMaterials(Arrays.asList(coloredMaterial));
        Node surfaceNode = new Node();
        surfaceNode.setGeometry(surface);
        surfaceNode.setRotation(new Vector((float) -Math.PI / 2.0f, 0, 0));
        surfaceNode.setPosition(new Vector(0, -5, -9));

        mScene.getRootNode().addChildNode(surfaceNode);

        final Object3D object3D = new Object3D();
        mScene.getRootNode().addChildNode(object3D);
        object3D.loadModel(mViroView.getViroContext(), Uri.parse("file:///android_asset/bird1.vrx"), Object3D.Type.FBX, new AsyncObject3DListener() {
            @Override
            public void onObject3DLoaded(final Object3D object, final Object3D.Type type) {
                object.setPosition(new Vector(0, -4, -9));
                object.setScale(new Vector(0.12f, 0.12f, 0.12f));

                mAnimation = object.getAnimation("Take 001");
                mAnimation.setDelay(1000);
                mAnimation.setLoop(true);
                mAnimation.play();
            }

            @Override
            public void onObject3DFailed(final String error) {

            }
        });

Screenshot of what it looks like:

if object create model at one vector from hitresult , How to set Spotlight  ,DirectionalLight ,Surface  position

What about the rough shadows?

Hey @544531645,

"if object create model at one vector from hitresult , How to set Spotlight ,DirectionalLight ,Surface position"

You can actually see an example of how we place a 3D Lamp with a hit result, with Spotlights on at a given position with shadows in this tutorial here. The complete code for that sample is defined here. The tutorial and the code sample should be very straightforward and in helping you achieve placing your model in the scene with a shadow - almost exactly the same result above (where you place a shark in your scene), but with a different model.

What about the rough shadows?

I'm not sure what you mean by this. Can you please explain more? What about the concept of rough shadows?
Finally, if you are experiencing difficulties with your project, please provide all of the following below:

Provide a description of the issue that you see (or the bug that you see).
Provide a description of what you actually want to see (that you don't).
Provide your code that you have tried, but have determined that it is not working. Note this is required so that we can more easily diagnose your issue. Please also provide all 3D / image resources associated with the code.

Closing due to inactivity, and that the original query of this issue has been answered. Please feel free to re-open if need be.


Save and reuse stripe customer id when user is present

If the donor is signed into an account on your Discourse instance, their stripe customer id will be saved to a UserCustomField and will be reused if that same user donates again. This means that in Stripe all transactions by that user will appear in their Customer profile, e.g.

I've also made some code formatting changes to start to bring this plugin into line with the Rubocop rules used by Discourse.

Thanks Angus, this is great!


OSPP Add some RPC metrics for Spring-Cloud-Admin

Describe what this PR does / why we need it
为spring-cloud-admin项目进行埋点，提供指标。并且这些指标已经可以导出到Prometheus和Grafana中进行展示
Provide metrics for the Spring Cloud admin project. And these indicators can already be exported to Prometheus and Grafana for display
Does this pull request fix one issue?

NONE
Describe how you did it
Describe how to verify it
Special notes for reviews

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

通过Grafana可以展示RestTemplate的RPC请求的qps
Grafana can display the QPS of RestTemplate's RPC requests


K8SPS-267 - Add PS operator 0.6.0

Test name
Status

api-tests
failed

Test name
Status

api-tests
failed

Test name
Status

api-tests
passed


Bump rustc version

Some interesting clause-related changes.
Regarding Clause hashing, I think we should either never hash the binder or prevent hashing without a binder; the current middle-ground is error-prone. Consistently ignoring the binder seems fine.

Cool, thanks, will review on Monday!
There is a to_predicate that happens in the hashing, which calls Binder::dummy, that checks if there are any unbound variable, and this can cause panics :(
So that's why I think we should always hash with binders, but I agree that the current situation is pretty bad! But that's not directly related to that PR :)

With this PR we no longer call to_predicate before hashing Clauses

Ah, I had no time to look at the code, that's great then! That's simplifies things
Might help with #495 then

There are a few other places where we take shortcuts with binders, we'll have to go through these too

Let's merge whenever you want @Nadrieril (do you have permissions to press merge though?)

I don't have permissions to merge, you can go ahead


Only telnet

Hi,
I have a Yi Home 1080p (YYS.2016 - IFUS 9.0.19*) and i test the hack with put folders on SD card ( y21ga ) but after reboot the camera is up on network wifi with telnet activate but no http on port 8080 (i will test with nmap). I can connect on telnet with login root but i see the httpd service don't start with ps command. Why ?

Bad SD card, it's ok now :)


Nested scrolling doesn't propagate to outer scrolling widget

Is there an existing issue for this?

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

Steps to reproduce
Run the flutter app that's here
https://github.com/graemep-nz/flutter-nested-scrolling-bug/tree/master
There are four scrollable widgets in a column contained in an outer scrolling parent.  The first and third of the inner widgets have 24 rows.  When a scroll on these gets to the max extent (top or bottom) the outer parent should scroll and on windows with a web app the outer parent does scroll.  On Android it does not scroll.
For Android, there is a workaround which can be seen by commenting line 311 to enable the notificationListener.  The listener detects when the inner widget has reached max extent and tells the outer widget to scroll by five pixels.  With the notificationListener enabled you can see that for the third widget, when it reaches the top or bottom, the outer widget scrolls.
I think this is a bug in Flutter for Android because you ought to be able to have a SingleChildScrollView nested in another one and have it behave nicely.  I have not tested on IOS or MacOS or Linux.
Tested on an Android Samsung tablet "Tab A8" running Android 13.
Expected results
as above
Actual results
Outer widget does not scroll when inner widget widget reaches max extent.
Code sample
see the github main.dart
Screenshots or Video
No response
Logs
No response
Flutter Doctor output
Doctor output
flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.16.0, on Microsoft Windows [Version 10.0.22631.2715], locale en-NZ)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.8.0)
[√] Android Studio (version 2022.3)
[√] VS Code (version 1.78.2)
[√] VS Code, 64-bit edition (version 1.83.0)
[√] Connected device (4 available)
[√] Network resources

• No issues found!

Here's a link to OBS studio video - file type isn't supported as upload here
https://drive.google.com/file/d/1bc72az0NdB_amTvzsL_khz3ntFIMdRc6/view?usp=sharing
I updated the repo - removed the scroll_to_index package for simplicity  - same result in scrolling.  I reduced frame_height and added better text to the scrolling widgets.  I also commented the line to make the notification listener work so that scrolling works for the third scrolling widget.  The video shows outer scroll not work on the first scrolling widget (because no notiification helper), outer scroll works on the second scrolling widget (because all items visible), outer scroll works on the third scroll widget (because of notification helper) and outer scroll works on fourth scrolling widget (because all items visible).
The video shows Nexus One API 30 android emulation device in Android Studio.  I use Windows mouse drag to scroll the android screen in the android emulator.

I see you are triggering the outer scroll (SingleChildScrollView) manually by NotificationListener event in the 3rd scroll widget. If the 3rd scrollview can be resolved that way, why don't you apply it to the first scrollview?

I would have thought that was obvious.  Why don't you ask "why did I post four scrollviews".  Answer - to demonstrate different aspects of the problem.  I am reporting a problem in Flutter or Android.  The first scrollview demonstrates the problem.  The third scrollview demonstrates an end user workaround.  All in the same app.  If this is not obvious to you then you're not the right person to be investigating this.

The issue is reproduced on master channel as well.

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.16.2, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.16.2 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 9e1c857886 (9 hours ago), 2023-11-30 11:51:18 -0600
    • Engine revision cf7a9d0800
    • Dart version 3.2.2
    • DevTools version 2.28.3

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.13.0

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

[!] Android Studio (version unknown)
    • Android Studio at /Applications/Android Studio Preview.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to determine Android Studio version.
    • Java version OpenJDK Runtime Environment (build 17.0.8+0-17.0.8b1000.22-10799086)

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio Giraffe Patch 3.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

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

[✓] Connected device (3 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64  • Android 11 (API 30)
    • macOS (desktop)  • macos            • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 119.0.6045.199

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

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.18.0-5.0.pre.17, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.18.0-5.0.pre.17 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision a0f4265575 (27 minutes ago), 2023-12-05 21:28:40 -0500
    • Engine revision fe96317750
    • Dart version 3.3.0 (build 3.3.0-194.0.dev)
    • DevTools version 2.30.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.13.0

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

[!] Android Studio (version unknown)
    • Android Studio at /Applications/Android Studio Preview.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to determine Android Studio version.
    • Java version OpenJDK Runtime Environment (build 17.0.8+0-17.0.8b1000.22-10799086)

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio Giraffe Patch 3.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

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

[✓] Connected device (3 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64  • Android 11 (API 30)
    • macOS (desktop)  • macos            • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 119.0.6045.199

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

! Doctor found issues in 2 categories.

Unfortunately the https://github.com/flutter/flutter/issues/50946 thread is a big mess and it's not possible to tell what the outcome was.  So is google refusing to fix this because they incorrectly think no-one should be doing it?

#50946 is an open and active issue. No one is refusing to fix it.


Trade status Could not get a price for item(s). Trade has been cancelled.

Expected behavior
It'ss expected to steam send an trade offer
Actual behavior
Trade status
Could not get a price for item(s). Trade has been cancelled.
Steps to reproduce the behavior
Make an offer and TRADE
Other

[Operating System]: Windows Server 2016
[Node.js version]: Node 6.9.5
[How did you start the script]: node index.js

Error Stack
Trade status
Could not get a price for item(s). Trade has been cancelled.

You are trying to trade items which are lower then the price set in config.js -> ignoreItemsBelow:

I set ignoreItemsBelow to 0.01 now when I try to trade I'm getting this error right after "Preparing to send offer..":
Trade status
{}


Windows: Reset the Device on Initialization.

Sends the Spinel reset command first thing for initializations.

Codecov Report

Merging #1326 into master will increase coverage by 0.29%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1326      +/-   ##
==========================================
+ Coverage   69.68%   69.97%   +0.29%
==========================================
  Files         169      170       +1
  Lines       26595    26608      +13
  Branches     3333     3306      -27
==========================================
+ Hits        18533    18620      +87
+ Misses       6652     6572      -80
- Partials     1410     1416       +6

Impacted Files
Coverage Δ

src/core/thread/key_manager.hpp
80% <ø> (-20%)
:x:

examples/platforms/posix/random.c
85% <ø> (-15%)
:x:

src/core/thread/lowpan.hpp
86.84% <ø> (-13.16%)
:x:

src/core/openthread.cpp
40.48% <ø> (-5.29%)
:x:

third_party/mbedtls/repo/library/ecp_curves.c
90.16% <ø> (-3.06%)
:x:

src/core/thread/lowpan.cpp
92.29% <ø> (-1.44%)
:x:

src/core/net/udp6.cpp
82% <ø> (-1%)
:x:

examples/platforms/posix/radio.c
78.48% <ø> (-0.43%)
:x:

...d_party/mbedtls/repo/library/memory_buffer_alloc.c
60.25% <ø> (-0.39%)
:x:

src/core/thread/mesh_forwarder.cpp
75.58% <ø> (-0.24%)
:x:

... and 13 more

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 802f521...9160b6c. Read the comment docs.


v2.5.3

Hotfix https://github.com/hahwul/dalfox/issues/289
Add protection code in ParameterAnalysis function (for wafCheck)

@panch0r3d @Nimbus689
Thank you so much your great work :D


gpu/intel: cleanup vdpau variable

Description of changes
#1014 removed the "va_gl" driver library, but did not remove the VDPAU_DRIVER environment variable that overrides the VDPAU driver library selection to libvdpau-va-gl.
This is a problem, because if I try to run vdpauinfo on a hybrid graphics laptop with Intel + Nvidia, that variable points to a now nonexistent libvdpau library, so the command fails. It is reasonable to expect the user to manually provide the environment variable themselves if needed alongside the no longer recommended libvdpau-va-gl

Note: With my hybrid graphics laptop on Xorg, vdpauinfo tries to select "va_gl" even without the environment variable (and also just doesn't work at all when forced to "nvidia"). On Wayland it correctly selects the Nvidia VDPAU library without any envionment variable override and works properly. In my case you can see setting the environment variable was not enough to get it working on Xorg. However, If others experience issues automatically selecting the right backend (common) we could to set the VDPAU_DRIVER="nvidia" in the nvidia library, but users may desire VDPAU on a amd integrated gpu (without an unnecessary VA-API translation library) instead of on dedicated Nvidia by default.
Things done

[x] Tested the changes in your own NixOS Configuration
[ ] Tested the changes end-to-end by using your fork of nixos-hardware and
importing it via <nixos-hardware> or Flake input

Thanks!


Present output as matrix

When the amount of scenarios is limited, then generating the output in a matrix makes the result easier to digest.

Closed with the most minimalistic approach. Sample output:


An asterisk in a @forward statement triggers scss/operator-no-unspaced

See the prefix docs for @forward: https://sass-lang.com/documentation/at-rules/forward#adding-a-prefix:
@forward "src/list" as list-*;

Content: Expected single space after "*" (scss/operator-no-unspaced)

Thanks! Seems like a bug.


feat: Add ability to install a specific version with the install script

Fixes #572

Thanks!

For the docs, instead of the README, can you move it to here: https://github.com/sst/ion/blob/dev/cmd/sst/main.go#L175

@jayair looks like Dax pulled the trigger already. I'll let you guys sort the doc updates out.


opam install -t irmin-unix fails

Without tests, it worked.
opam install -t irmin-unix
The following actions will be performed:
  ∗ install irmin-unix 1.3.3

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
[irmin-unix.1.3.3] found in cache

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
[ERROR] The compilation of irmin-unix failed at "/Users/voglerr/.opam/opam-init/hooks/sandbox.sh
        build jbuilder runtest -p irmin-unix".

#=== ERROR while compiling irmin-unix.1.3.3 ===================================#
# context     2.0.3 | macos/x86_64 | ocaml-variants.4.07.1+afl | https://opam.ocaml.org/#27a5570e
# path        ~/.opam/4.07.1+afl/.opam-switch/build/irmin-unix.1.3.3
# command     ~/.opam/opam-init/hooks/sandbox.sh build jbuilder runtest -p irmin-unix
# exit-code   1
# env-file    ~/.opam/log/irmin-unix-40276-05296d.env
# output-file ~/.opam/log/irmin-unix-40276-05296d.out
### output ###
# [...]
# Note: You can use "dune upgrade" to convert your project to dune.
# File "test/irmin-mem/jbuild", line 1, characters 0-0:
# Warning: jbuild files are deprecated, please convert this file to a dune file instead.
# Note: You can use "dune upgrade" to convert your project to dune.
# File "test/irmin-unix/jbuild", line 1, characters 0-0:
# Warning: jbuild files are deprecated, please convert this file to a dune file instead.
# Note: You can use "dune upgrade" to convert your project to dune.
#       ocamlc test/common/.test.objs/byte/test_store.{cmi,cmo,cmt} (exit 2)
# (cd _build/default && /Users/voglerr/.opam/4.07.1+afl/bin/ocamlc.opt -w -40 -g -bin-annot -I test/common/.test.objs/byte -I /Users/voglerr/.opam/4.07.1+afl/lib/alcotest -I /Users/voglerr/.opam/4.07.1+afl/lib/astring -I /Users/voglerr/.opam/4.07.1+afl/lib/bytes -I /Users/voglerr/.opam/4.07.1+afl/lib/cmdliner -I /Users/voglerr/.opam/4.07.1+afl/lib/cstruct -I /Users/voglerr/.opam/4.07.1+afl/lib/[...]
# File "test/common/test_store.ml", line 90, characters 24-27:
# Error: This expression has type Graph.node = S.Tree.Hash.t
#        but an expression was expected of type S.Tree.hash

<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
┌─ The following actions failed
│ λ build irmin-unix 1.3.3
└─
╶─ No changes have been performed

Can you try opam install . at the root of that repository ? That repository is unfortunately a bit in flux as various people are working on various parts and we try to reach a consistent point for the release :-)
But the good news is that CI is green, so there is combination of installed packages which work. Can you also try to opam update -u before opam install . and report any issue? Thanks.

Ok, thanks, with opam install . everything works.


Rust 1.59.0 is now required

solang uses tower-lsp, which depends on dashmap. The latest version of
dashmap requires rust 1.59.0.
dashmap uses std::thread::available_parallelism().
Signed-off-by: Sean Young<EMAIL_ADDRESS>

Why has the container image test been skiped?

Why has the container image test been skiped?

Because the multi-arch container test is done instead (docker image for arm64 and x86). This is always done when tests are run on hyperledger-labs (so not in repo forks).
I thought you were enjoying São Paulo without your laptop!

I thought you were enjoying São Paulo without your laptop!

I had my iPad with me to review your PRs.


[SPARK-50675][SQL] Table and view level collations support

What changes were proposed in this pull request?
This change introduces table and view level collations support in Spark SQL, allowing CREATE TABLE, ALTER TABLE and CREATE VIEW commands to specify DEFAULT COLLATION to be used. For CREATE commands, this refers to all the underlying columns added as part of the table/view creation. For ALTER TABLE command, this refers to only newly created columns in the future, whereas existing ones are not affected, i.e. their collation remains the same.
The PR has been modelled after the original changes made by @stefankandic in https://github.com/apache/spark/pull/48090, with this PR covering table and view-level collations, whereas a follow up PR will be made covering schema-level collations.
This PR is adding/extending the corresponding DDL commands for specifying table/view level collation, whereas a follow up PR will be created separately to leverage the table/view collation in order to determine default collations for input queries of DML commands.
Why are the changes needed?
From our internal users feedback, many people would like to be able to specify collation for their objects, instead of each individual columns. This change adds support for table and view level collations, whereas subsequent changes will add support for other objects such as schema-level collations.
Does this PR introduce any user-facing change?
The change follows the agreed additions in syntax for collation support.
The following syntax is now supported (bold parts denote additions):
{ { [CREATE OR] REPLACE TABLE | CREATE [EXTERNAL] TABLE [ IF NOT EXISTS ] }
table_name
[ table_specification ]
[ USING data_source ]
[ table_clauses ]
[ AS query ] }
table_specification
( { column_identifier column_type [ column_properties ] ] } [, ...]
[ , table_constraint ] [...] )
table_clauses
{ OPTIONS clause |
PARTITIONED BY clause |
CLUSTER BY clause |
clustered_by_clause |
LOCATION path [ WITH ( CREDENTIAL credential_name ) ] |
COMMENT table_comment |
TBLPROPERTIES clause |
DEFAULT COLLATION table_collation_name |
WITH { ROW FILTER clause } } [...]
CREATE [ OR REPLACE ] [ TEMPORARY ] VIEW [ IF NOT EXISTS ] view_name
[ column_list ]
[ schema_binding |
COMMENT view_comment |
TBLPROPERTIES clause |
DEFAULT COLLATION collation_name ] [...]
AS query
ALTER TABLE table_name
{ ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause |
DEFAULT COLLATION clause | …
}
How was this patch tested?
Tests for the new syntax/functionality were added as part of the change. Also, some of the existing tests were extended/amended to cover the new DEFAULT COLLATION for table/view objects.
Was this patch authored or co-authored using generative AI tooling?
No

Adding @cloud-fan, @stefankandic, @stevomitric, @uros-db - please take a look when you find some time, thanks!

@stefankandic, @stevomitric, please take a look at the PR as discussed and let me know if you see any issues, thanks!

To confirm: this PR is adding/extending the related DDL commands for specifying table/view level collation, and we will open a followup PR to leverage the table/view collation to determine default collations for input queries of DML commands?

To confirm: this PR is adding/extending the related DDL commands for specifying table/view level collation, and we will open a followup PR to leverage the table/view collation to determine default collations for input queries of DML commands later?

@cloud-fan, that is correct, I've also updated the PR description with this info to avoid any confusion, thanks for pointing this out! I have addressed all your comments so far and refactored the code accordingly, please let me know if you have any further comments/concerns, or the PR can be merged, thanks!

@cloud-fan, thanks for the review and great suggestions! I have addressed them all and changed/refactored the code accordingly, I believe the PR should be ready for merge, please let me know if you have any additional comments, thanks a lot!

Created https://issues.apache.org/jira/browse/SPARK-50522 and linked PR to it

thanks, merging to master!


Make any_sender empty vtables inline constexpr global variables

Proposed Changes
This allows storing (unique_)any_sender in global variables (or even function-local statics). The problem is that the destructor of the any_sender may hold e.g. hold an any_operation_state/receiver from a type-erased predecessor sender. When the global any_sender is destroyed it may try to access an empty vtable that was destroyed before the global any_sender was destroyed. The failure case in the added test is a segfault. The empty method on the (supposed) empty vtable happens to return false and the destructor tries to delete the empty vtable even though it was never dynamically allocated.
This changes the empty vtables to be inline constexpr variables.
Flyby:

Remove explicit from the (unique_)any_sender constructors. It's very convenient to be able to simply assign any sender to a (unique_)any_sender without spelling out the type.
Constrain the same constructors to only accept senders.

Checklist
Not all points below apply to all pull requests.

[ ] I have added a new feature and have added tests to go along with it.
[x] I have fixed a bug and have added a regression test.
[ ] I have added a test using random numbers; I have made sure it uses a seed, and that random numbers generated are valid inputs for the tests.

The current approach only works with C++20, and even then apparently only with GCC. Back to the drawing board...

This now has another workaround in place. The (unique_)any_sender constructors now access the any_operation_state and any_receiver empty vtables to make sure they're created early enough. This seems to work on the test case, but I'm not sure if there are edge cases not covered by this (not that this has to cover all of them). @hkaiser do you see any glaring problems with this approach. Apologies for the diff, it looks worse than it is because I've had to shuffle around some of the functionality. This is the gist of the change: https://github.com/STEllAR-GROUP/hpx/blob/af5d87cab466694ac66b213b10efb788ab090d6e/libs/core/execution_base/include/hpx/execution_base/any_sender.hpp#L674-L682.

I've added a feature test for trivial types with virtual destructors and a cleaner implementation based on that feature. The cleaner implementation is the original one I tried in this PR, i.e. using inline constexpr variables for the empty vtables. Interestingly GCC would actually compile the cleaner implementation, but does not compile the feature test because of a bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93413. However, I'm leaving the stricter test in place meaning GCC will still use the fallback implementation with C++20.

bors merge


Add additional telemetry info

-The Coda node’s git version hash (so we know what nodes are on what versions)
-Receipt time of last k blocks (so we know how quickly community nodes are receiving blocks to stay within one slot)
-Uptime (so we know how frequently nodes are crashing)
-State (synced, catchup, … so we can confirm nodes are only saying Synced if they’re up to date)

@aneesharaines  Receipt time of last k blocks
Can you clarify what this means?

@psteckler  for that one, reporting for each of the last k blocks, the time that block was received.  so there should be k individual timestamps

Closed by #7018.


Add new query to enumerate users, mutation to change ban status

This PR has become quite large, I'm going to merge it and work on quote management in a separate PR. I've also relaxed the "find-breaking-changes" script to just print warning instead of failing the build. I think that's okay for the time being.


Option.mapEffect

What is the problem this feature would solve?
Given an Option<A> and a fn (a: A) => Effect<B, E, R> it would be useful to have a function that could apply that fn to the Some value and return an Effect<Option<B>, E, R> rather than an Option<Effect<B, E, R>> as Option.map would so that it can more easily be used in an effect pipeline.
This is a pattern I am coming across a few times when, for example, decoding from a database query where the potential for a missing row is represented as an Option
What is the feature you are proposing to solve the problem?
Option.mapEffect seems like a fairly obvious api for this I think, I have made my own function to do this:
import { Effect, Option } from 'effect';
import { dual } from 'effect/Function';

export const mapEffect: {
	<B, A, E, R>(
		f: (a: A) => Effect.Effect<B, E, R>,
	): (self: Option.Option<A>) => Effect.Effect<Option.Option<B>, E, R>;
	<B, A, E, R>(
		self: Option.Option<A>,
		f: (a: A) => Effect.Effect<B, E, R>,
	): Effect.Effect<Option.Option<B>, E, R>;
} = dual(2, <B, A, E, R>(self: Option.Option<A>, f: (a: A) => Effect.Effect<B, E, R>) =>
	Option.match(self, {
		onSome: (value) => Effect.map(f(value), Option.some),
		onNone: () => Effect.succeedNone,
	}),
);

What alternatives have you considered?

Using my own wrapper as posted
Using no wrapper and just writing out the relatively verbose Effect.andThen(Option.match( ... ))
A more generic 'transpose' function (as rust calls it) that would take Option<Effect<A, E, R>> and turn it into Effect<Option<A>, E, R>. Then you could use the existing option map in a pipeline like: (..., Effect.andThen(Option.map(fn)), Effect.andThen(Option.transpose). I think this would be super useful and am slightly surprised I couldn't find a similar function in effect.

@jamesbirtles - thank you for opening the issue and providing a very detailed description of the use case!
Given that Option is a subtype of Effect<A>, you can directly use Effect.map to map an Option<A> to get a Effect<B, NoSuchElementException>. Then you can just use Effect.optionFromOptional to convert back to an Effect<Option<B>>. See this playground: https://effect.website/play#149ce22bbd4f.
Going to close this issue as the requested functionality essentially already exists in the library and it is unlikely that we will add a mapEffect to Option.

+1 this seems obvious to me. The name optionFromOptional is unintuitive, and it should be on Option not Effect.

i must admit I am also not super satisfied with the optionFromOptional solution proposed by @IMax153.
I very often end up in a scenario like this:
// I have some effect of type `Effect.Effect<Option.Option<A>, E, R>`;
const effect = Effect.succeedSome(1);
// Oh now I want to simply map the `A`, guess I'm doing this rigmarole again
effect.pipe(
  // Flatten to `Effect.Effect<A, E | Cause.NoSuchElementException, R>`
  Effect.flatten,
  // Do the thing I actually wanted to do (imagining this was some operation that required it to be an effect)
  Effect.andThen((x) => Effect.succeed(x + 1)),
  // now back to what I actually want, I hope there's no other `Cause.NoSuchElementException` I'm accidentally capturing here
  Effect.optionFromOptional
);

given that Effect is clearly not adverse to having technically duplicate functionality but with nicer ergonomics based on the million and one functions it already has, I am somewhat surprised that there is a lack of desire to make this (imo very common) use case more ergonomic and discoverable

@jamesbirtles - in the past, we did have an Option.mapEffect, but adding these types of methods creates multiple issues (which is the reason they were removed several years ago).
Having Effect-based methods in Option also meant that a user had to import all of Effect to use Option (yes, tree-shaking should solve this in most cases, but accidentally using Option.mapEffect would substantially affect bundle size).
But IIRC, the main reason we removed these types of methods was that it was very difficult to draw the line for where to stop.
Having said the above, I do agree that we can probably do better on naming in this particular case.
I'll re-open the issue and summon @mikearnaldi, @gcanti, and @tim-smart to further discuss.

I would like to just add my 2 c. Imo, you have to think about target audience, general direction, and convenience. I don't think bundle size is that important to most Effect users. Second, Effect has the task of becoming popular, and that's not going to happen by worrying about pennies of bundle size, but by building libraries that are convenient and useful. But I'm just giving my 2 c, I'm a just a little guy here. I'm very thankful for everything you're building and built either way :)

I'm not sure if "mapEffect" is a good name since there are multiple mapEffect functions in Effect, all of which return the same data type (e.g., Stream.mapEffect, Fiber.mapEffect, Sink.mapEffect) while here we start with an Option and we end up with an Effect.
Swapping data types inside out is commonly named as follows:

traverse: (Option<A>, A => Effect<B>) => Effect<Option<B>>
sequence: (Option<Effect<A>>) => Effect<Option<A>>

p.s.
I would also suggest renaming (i.e., deprecate the old and add the new) optionFromOptional to something more intuitive, like catchNoSuchElementException

@gcanti that's sort of the direction that @jamesbirtles suggested:

A more generic 'transpose' function (as rust calls it) that would take Option<Effect<A, E, R>> and turn it into Effect<Option, E, R>. Then you could use the existing option map in a pipeline like: (..., Effect.andThen(Option.map(fn)), Effect.andThen(Option.transpose). I think this would be super useful and am slightly surprised I couldn't find a similar function in effect.

I'm +1 for Option.transpose. I know that traverse and sequence are used in cats effect, but I think transpose is much more intuitive because it literally is a transposition of two types.

This is my version of transpose if want to copy past in your projects:
export const transpose = <A, E, R>(
  param: Option.Option<Effect.Effect<A, E, R>>,
): Effect.Effect<Option.Option<A>, E, R> => {
  return param.pipe(
    Option.match({
      onNone: () => Effect.succeedNone,
      onSome: Effect.flatMap(Effect.succeedSome),
    }),
  );
};


Question - is it possible to pass data/arguments down to individual tests from script starting phantomflow

Basically I want to do some stuff on top of phantomflow, and to have logic branching based on command line arguments as to whether one runs production or integration tests against a remote url or on the local server.
The easiest for me would be if I can pass my arguments all the way down to the tests that are started by casperjs.
Is that possible or should I use environmental variables instead to do the branching?

You can use casperArgs option (see README) then in your test you can use casper.cli.get("foo")

ah ok. that is good thanks.
On Fri, Dec 23, 2016 at 12:13 PM, James Cryer<EMAIL_ADDRESS>wrote:

You can use casperArgs option (see README) then in your test you can use
casper.cli.get("foo")
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Huddle/PhantomFlow/issues/52#issuecomment-268975189,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AATEQNpNlfPrBIhIcrJ76Ucem5lxE3Olks5rK6zdgaJpZM4LRKFS
.


Added modal for confirmation of delete

Fixes #1329
Describe the changes you have made in this PR - Added customized modal for confirmation of group delete
Screenshots of the changes (If any) -

Coverage remained the same at 84.087% when pulling 3cd5d66113bed01cf895caf7d0b90c7a59ea8bef on harshgujrati:feature/modal into bc89cead0b643d42eb6c38010b69c2bee52b4fa1 on CircuitVerse:master.

@nitin10s please review

The modal looks a bit empty, maybe decrease its size a little. Or whatif we provide the modal-top section a green background and make the text color white. @harshgujrati

Yes it will look great, i will update it @aayush-05

If we will update modal here, we will have to update it in example page too for consistent style shall i update that too @nitin10s