Some questions about "ref_block_num" and "expiration" in transaction?

The struct of a transaction is below:
{     "transaction_id": "fa821eb8dae79e3e5a5443c4fab1d881db44f5acf1c4913c852869f93b747c02",     "transaction": {     "signatures": [       "EOSKithv1WNnmnUP89ZSvp8W1enUq5XDxX41PyhuwQhZ4dSLf15QdKqn3SWjPYNPF8uMwaXfsRR1uzQ7i5FZhwVpWE4uhyPhd"     ],     "compression": "none",     "packed_context_free_data": "",     "context_free_data": [],     "packed_trx": "628bd45a000077b213559e7d000000000100a6823403ea30550000000000a53176010000000000ea305500000000a8ed32321d000000000070 15d640420f000000000004454f5300000000046d656d6f",     "transaction": {       "expiration": "2018-04-16T11:39:14",       "region": 0,       "ref_block_num": 45687,       "ref_block_prefix":<PHONE_NUMBER>,       "max_net_usage_words": 0,       "max_kcpu_usage": 0,       "delay_sec": 0,       "context_free_actions": [],       "actions": [{           "account": "eosio.token",           "name": "issue",           "authorization": [{               "actor": "eosio",               "permission": "active"             }           ],           "data": {             "to": "user",             "quantity": "100.0000 EOS",             "memo": "memo"           },           "hex_data": "00000000007015d640420f000000000004454f5300000000046d656d6f"         }       ]     }   } }
I have some questions about the return message:

what does "expiration" mean? The time that the transaction has been confirmed?
Is the result of  api "get_transactions" shows the transactions, which have been confirmed? Or not confirmed transactions also could be shown?
Is the result of  api "get_transactions" sorted by "expiration"?
Can we get the message about which block that a transaction has been included?
There is no doc about the fields, I hope someone who has read the code can answer my question.

Consider asking at https://area51.stackexchange.com/proposals/116927/eosio/visit

@guaiguaihw Did you get the answer? Could you share it?

@kristieguo

what does "expiration" mean? The time that the transaction has been confirmed?
It means when the transaction is effective, which means the time that actions really execute. The confirmed time is related to the confirmed time of the block which includes the transaction.

Is the result of api "get_transactions" shows the transactions, which have been confirmed? Or not confirmed transactions also could be shown?
I don't really comfirm about that, but I guess the transactions are all confirmed.  But if you use the command cleos get actions <account_name>, It will provide you a way to make sure about it. I suggess you to use this command, If you really want to get comfirmed transactions. Here is the doc: https://github.com/EOSIO/eos/wiki/Tutorial-Exchange-Deposit-Withdraw

Is the result of api "get_transactions" sorted by "expiration"?
According to the codes, I don't find the connection between expiration and the order

Can we get the message about which block that a transaction has been included?
we can get the block message by using command: cleos get actions <account_name>


[Bug] [seatunnel-engine] Concurrent task execution

Search before asking

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

What happened
After submitting 20-30 tasks simultaneously using rest API, the engine crashes and only a few tasks succeed.
SeaTunnel Version
2.3.8
SeaTunnel Config
{
    "env": {
        "job.mode": "batch"
    },
    "source": [
        {
            "plugin_name": "FakeSource",
            "plugin_output": "fake",
            "row.num": 1000000,
            "schema": {
                "fields": {
                    "name": "string",
                    "age": "int",
                    "card": "int"
                }
            }
        }
    ],
    "transform": [
    ],
    "sink": [
        {
            "plugin_name": "Console",
            "plugin_input": ["fake"]
        }
    ]
}

Running Command
rest-api

Error Exception
please see log screen

Zeta or Flink or Spark Version
2.3.8
Java or Scala Version
1.8
Screenshots
master：

worker：

Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

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

please see

Please note that the logs should be viewed from 10:10 am on the 12th to 20th, when 20 tasks are submitted concurrently

seatunnel-engine-master.log
seatunnel-engine-worker1.log
seatunnel-engine-worker2.log


Bigquery forward

:newspaper: PR description
Testing infrastructure for metrics.
The dasboard generated from these changes can be found here
:memo: Reviewer instructions

getting TypeError: expected str, bytes or os.PathLike object, not int when calling terraform_output()

Re-directed the dashboard to the new instance https://datastudio.google.com/u/1/reporting/dbda82da-0e59-47bb-b397-ba8c86b9a079/page/Mn94C/edit


Missing functionality and/or documentation for Private DNS and ADDS integration

What happened? Provide a clear and concise description of the bug, including deployment details.
Solution did not work once successfully deployed for two reasons.

The accelerator and its documentation does not configure or tell you that you need to configure DNS resolution for the Private DNS zones in Windows AD--for example using forward lookup zones.
The accelerator and its documentation do not configure or tell you that you need to integrate the FSLogix storage container with Windows AD and ensure that the authorized users can read/write profile data to the FSLogix container.

Please provide the correlation id associated with your error or bug.
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
What was the expected outcome?
The AVD Landing Zone Accelerator when successfully deployed should leave the user with a successful deployment. It does not do this when you use either Private Networking or when you integrate with Windows AD for the cited reasons.
The documentations leads one to believe that both will work once the accelerator successfully completes because the accelerator allows the user to specify those two types of deployments AND there are no post-deployment steps for those two scenarios.
I recommend you either enhance the tool to complete the missing steps for those two scenarios or provide additional documentation explaining that additional steps are required and provide details on what they are.
Relevant log output
No response

@wcneumann0219 Thank you for your feedback, we are reviewing it. It is valid to configure DNS resolution in AD for some scenarios. Tagging @danycontre in case you have any further feedback on this point. To #2, the accelerator will complete end to end setup of FSLogix, along with user permissions for their folder. Did FSLogix setup fail in a deployment for you?

@wcneumann0219 thanks for your feedback, we just updated the getting started guide with a DNS resolution section for private endpoints: https://github.com/Azure/avdaccelerator/blob/main/workload/docs/getting-started-baseline.md#private-endpoints-dns-requirements-and-considerations

@wcneumann0219 thanks for your feedback.
2) Agree with @moisesjgomez comments, the AVD LZA deployment does configure FSLogix container and integrates it with ADDS, AADDS or AAD authentication (including setting NTFS permissions).
If the FSLogix wasn't configured on your deployment, please check the logs on the management VM at C:\Windows\temp\ManualDscStorageScriptsLog.log
Happy to help you troubleshoot.


Use of external aapt for building apk

I have apktool embedded in a Spring Boot executable jar so that some extra processing is done before apktool is called to rebuild an apk.
Sometimes apktool fails to use the internal aapt (still investigating) and falls back to using the external one (by setting "aapt" in the command array instead of absolute path to the temp file generated from the internal aapt). The external aapt however doesn't work. I tried various aapt binaries from different versions of built-tools but none worked.
I went through this thread #1520 and believe I'm getting the same error "First type is not attr!".
I understand the internal aapt is patched and would like some clarification on whether non-patched aapt is no longer supported? Or if this is a temporary fix. But either way, it could be helpful to mention this in the documentation regarding the use of --aapt option.
Many thanks

Non-patched app is supported, but you are working with an application built in aapt2 and attempting to build with aapt1 (external). That is the reason you are getting that "first type is not attr" issue. There is nothing apktool can do there with a non-patched aapt1 binary in the context of a decoded aapt2 application.
There is 1 solution. Take the patched aapt for your system and add it to the system PATH, so that executing "aapt" runs the prebuilt patched binary. That should resolve your issue.
I'll leave this open until I read the docs about that parameter and check if it needs some additional information.

Updated docs: https://github.com/iBotPeaches/Apktool/commit/36e7f74e13359b253f9ab9c88643eadaafc1c54f

Thanks for the explanation. The docs for --use-aapt2 seems wrong.
Does apktool choose the right version of aapt when rebuilding the apk (it doesn't look so in the source code and I see calls to aapt1Package in verbose mode)? Does this option need (have) to be used for both decoding and rebuilding of an apk that was built using aapt2?
In addition, "aapt2 version" gives a text slightly different prior to android sdk 26.0.2.
"Android Asset Packaging Tool (aapt) 2.16"
There is no colon in that text so the following check fails:
if (version.startsWith("Android Asset Packaging Tool (aapt) 2:")) {             return 2;         } else if (version.startsWith("Android Asset Packaging Tool, v0.")) {             return 1;  }

@iBotPeaches, I hope that the following is helpful for what you are looking for.
https://stackoverflow.com/questions/42082352/how-to-use-aapt2-where-is-the-documentation
https://stackoverflow.com/questions/46988102/errorcom-android-tools-aapt2-aapt2exception-aapt2-error-check-logs-for-detail
~Ibuprophen

Okay patched with version detection - https://github.com/iBotPeaches/Apktool/commit/3a33bfc48f22800ce7083d618deac9502fb7c068


MinimapButtonBag v0.508

If i open the MiniMapButton it won't close afterwards. I only enabled tdf, MiniMapButtonBag and Atlas.
https://github.com/McPewPew/MinimapButtonBag-TurtleWoW

Added with v2.3.1 release


proposal: add SASL package to subrepos

I'd like to see a package that provides RFC 4422 Simple Authentication and Security Layer (SASL) support in the golang.org/x/ package tree (possibly as golang.org/x/crypto/sasl).
This could potentially be used under the covers in the net/smtp package in the future, and would be broadly useful for people implementing other protocols (IMAP, AMQP, IRC, XMPP, memcached, POP, etc.). It would provide a way for varoius packages to share implementations of SASL mechanisms and not introduce problems by always reinventing the wheel every time something needs a SCRAM-SHA-1 implementation.
The API I had in mind (and have an implementation of) is something like this:
//  State represents the current state of a Mechanism's underlying state machine.
type State int8

const (
    Initial State = iota
    AuthTextSent
    ResponseSent
    ValidServerResponse
)

const (
    // Bit is on if the remote client or server supports channel binding.
    RemoteCB State = 1 << (iota + 3)

    // Bit is on if the machine has errored.
    Errored

    // Bit is on if the machine is a server.
    Receiving
)

// Mechanism represents a SASL mechanism.
// A Mechanism is stateless and may be shared between goroutines or Negotiators.
type Mechanism struct {
    //  The name of the mechanism (eg. `DIGEST-MD5` or `SCRAM-SHA-2`).
    Name  string

    // These functions get called by a Negotiator.
    // I suppose Mechanism could be an interface too, but I like the idea of having
    // it contain these functions so that Step can enforce security constraints on
    // the state machine as much as possible (eg. it can be the only thing that's
    // allowed to mutate the internal state). The bool returned from Next indicates
    // that we should expect more challenges (Step needs to be called again
    // before auth can be completed). The cache return value is stored by a
    // Negotiator and passed back in as the data parameter with the next invocation
    // of Next so that mechanisms can pass state between their steps while still
    // remaining stateless themselves.
    Start func(n Negotiator) (more bool, resp []byte, cache interface{}, err error)
    Next  func(n Negotiator, challenge []byte, data interface{}) (more bool, resp []byte, cache interface{}, err error)
}

// A Negotiator represents a SASL client or server state machine that can attempt
// to negotiate auth. Negotiators should not be used from multiple goroutines, and
// must be reset between negotiation attempts.
type Negotiator interface {
    // Step is responsible for advancing the state machine and using the
    // underlying mechanism. It should base64 decode the challenge (using the
    // standard base64 encoding) and base64 encode the response generated from the
    // underlying mechanism before returning it.
    Step(challenge []byte) (more bool, resp []byte, err error)
    State() State
    Config() Config
    Nonce() []byte
    Reset()
}

// NewClient creates a new SASL client that supports the given mechanisms.
func NewClient(m Mechanism, opts ...Option) Negotiator

// Config is a SASL client or server configuration.
type Config struct {
    // The state of any TLS connections being used to negotiate SASL (for channel
    // binding).
    TLSState *tls.ConnectionState

    // A list of mechanisms as advertised by the other side of a SASL negotiation.
    RemoteMechanisms []string

    // I don't like having these here because other things might need other
    // credentials (PGP key to sign a challenge with, OAuth token, etc.) and
    // Adding tons of extra stuff here isn't very flexible. Suggestions welcome.
    Identity, Username, Password string
}

type Option func(*Config)
func Authz(identity string) Option {}
func ConnState(cs tls.ConnectionState) Option {}
func Credentials(username, password string) Option {}
func RemoteMechanisms(m ...string) Option {}
…

var (
    Plain Mechanism = plain

    // These are identical internally, just the Hash used is different. Maybe it would make
    // more sense just to expose a `SCRAM(h hash.Hash) Mechanism`
    // function? On the other hand, 99% of the time people will probably just want these 4
    // since they're the only ones standardized.
    ScramSha256Plus = scram("SCRAM-SHA-256-PLUS", sha256.New)
    ScramSha256 = scram("SCRAM-SHA-256", sha256.New)
    ScramSha1Plus = scram("SCRAM-SHA-1-PLUS", sha1.New)
    ScramSha1 = scram("SCRAM-SHA-1", sha1.New)
)

EDIT: I pushed my initial, experimental, implementation with an API similar to this: https://godoc.org/mellium.im/sasl
Right now my package has a buit in client implementation. Since the server needs to be able to look up things in a database, or hash credentials before comparing them internally, or any number of other things, I made the thing that actually handles negotiation (the "Negotiator" for lack of a better name) an interface. Implementations are welcome to use the built in client and implement their own server, or re-implement both and still share the underlying mechanisms so that they don't have to re-implement the crypto or protocol.

After thinking about this some more (specifically how it would be used in an XMPP library and what would be required to add channel binding support to the SCRAM implementation), I think it really limits the usability of the library if Mechanism isn't stateless. Instead, maybe it's better to have an API where the Mechanisms are just an interface with the Start/Next functions and the actual state machine and the ability to step through them is returned by a separate "Runner" function (which could also take a Conn and a "Codec" similar to net/rpc or golang.org/x/net/websocket"  so that it could take over your protocol temporarily and do the full negotiation).

I'm also interested in a common sasl package. I've also already built one for my go-imap package: https://github.com/emersion/go-sasl
If it's not possible to include a new package in the standard library, maybe we can at least have a common API?

I'm also interested in a common sasl package, need one for STUN implementation (for performing SASLprep)

@ernado slightly off topic, but you don't need a SASL package for SASLprep, you can use PRECIS which should be mostly compatible with a few edge cases (this has replaced stringprep).

If it's not possible to include a new package in the standard library, maybe we can at least have a common API?

@emersion hi, sorry, I somehow missed this comment. I'd love to discuss a SASL package API at some point if you're still willing; feel free to ping me via email or on any XMPP-based chat service (my first name @ my full name which is my github username .com, in both cases).

Any news on it?


[FEATURE REQUEST] Fuzzy Search while using template naming note creation

Is your feature request related to a problem? Please describe.
When I create a new note, I would like a way to search my existing notes for related ideas. I was concerned that I had noted similar content that needed combining in the future.
Describe the solution you'd like
The answer would be to use Option + O or the pre-naming search step.
Additional context
I want a toggle option in the QuickAdd Settings to enable fuzzy search while choosing how to name my new note.

Hey @Vyeche, thanks for creating the FR!
Just wondering, what do you think about using the [[ search when the text prompt comes up?

That would be fantastic 😊

Honest to god, I thought I had documented it. Yes - this already exists & you case use it right now! :)

Cool, when the doc is up for that feature, perhaps you may link me here. I would like to share it with a community.

It seems that Fuzzy Search not working well.


Random segment fault in grpc functions

Bug Report
Please answer these questions before submitting your issue. Thanks!
1. Minimal reproduce step (Required)

Use nightly version, deploy a multiple machine cluster(tiflash cfg:
logger.level: debug
profiles.default.task_scheduler_thread_hard_limit: 1000
profiles.default.task_scheduler_thread_soft_limit: 600), prepare tpch SF=10, tiflash replica = 2, parrelly starts five process running sequentially tpch sqls for 300 times.
2. What did you expect to see? (Required)
No crash happen.
3.  What is your TiFlash version? (Required)
| Release Version: v6.1.0-alpha
Edition: Community
Git Commit Hash: 388b3c79cc3a313aee59334ebe6fc7dc451769c3
Git Branch: heads/refs/tags/v6.1.0-alpha
UTC Build Time: 2022-05-22 15:03:09
GoVersion: go1.18.2
Race Enabled: false
TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
Check Table Before Drop: false |

Check the ClientAsyncReader stack, the execution is un-real from single-thread view, the reader field member is a just default-initialized unique_ptr, then assign a new value, the dctor of the unique_ptr's class shouldn't be invoked. However the unique_ptr's inner pointer turned out to be 0x5a5a5a5a5a5a5a5a.
The possible root cause was some memory-corruption issue happened, the reader unique pointer was over written by other threads.
So will try to use address santinizer to locate the issue.

False alarm by some mysterious building problem. Closing.

Use gcc + debug + touch_tpch(unanalyzed tables, which easy leads to out of memory), the issue can be reproduced. However, it is related to out of memory + debug version, so set to minor issue.


Main thread TaskScheduler is not GodotTaskScheduler

Godot version:

v3.2.2.stable.mono.official
OS/device including version:

Windows 10
Issue description:

The main thread TaskScheduler is not an instance of GodotTaskScheduler but instead a default TaskScheduler that posts to the ThreadPool.
I believe this is a bug because GodotTaskScheduler instance is stored in GDMonoCache and there doesn't seem to be any way for scripts to access it from there.
Steps to reproduce:
	public override void _Ready()
	{
		GD.Print($"Before: {System.Threading.Thread.CurrentThread.ManagedThreadId}");
		Task.Delay(1).ContinueWith((_) => {
			GD.Print($"After: {System.Threading.Thread.CurrentThread.ManagedThreadId}");
		}, TaskScheduler.Current);
	}

Outputs something like this:
Before: 1
After: 7

Expected result would be:
Before: 1
After: 1

A possible workaround is doing something like this:
	public override void _Ready()
	{
		GD.Print($"Before: {System.Threading.Thread.CurrentThread.ManagedThreadId}");
		Task.Delay(1).ContinueWith((_) => {
			Dispatcher.SynchronizationContext.Post((state) => {
				GD.Print($"After: {System.Threading.Thread.CurrentThread.ManagedThreadId}");
			}, null);
		});
	}

Some further debugging, it doesn't look like Dispatcher.SynchronizationContext is set as the synchronization context for the thread. It looks like it should be set from here:
https://github.com/godotengine/godot/blob/7e38e8fdb0c05f0216e4322806315a025dc05b6f/modules/mono/mono_gd/gd_mono.cpp#L915
Which leads to here:
https://github.com/godotengine/godot/blob/12482bf8840ce2fa84d6eea7999628be426cba8d/modules/mono/glue/GodotSharp/GodotSharp/Core/GodotTaskScheduler.cs#L17
Perhaps there have been some changes and this thread no longer runs on the main thread?

Hmm, I actually cannot repro this with a fresh project. Maybe there is something more complex at play here.

Ok, I had placed new GodotTaskScheduler() in my code while trying to make this work. After removing that, using TaskScheduler.FromCurrentSynchronizationContext() works correctly. However, using TaskScheduler.Current still doesn't work. I am not sure there is anything that can be done about that by Godot though.
A nice workaround might be to provide access to GodotTaskScheduler directly.


python3Packages.googlemaps: 4.4.5 -> 4.5.3

Motivation for this change
Update to latest upstream release 4.5.3
Change log: https://github.com/googlemaps/google-maps-services-python/releases/tag/v4.5.3
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

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

3 packages built:

home-assistant
python38Packages.googlemaps
python39Packages.googlemaps


remove @author docblocks

is this something we're doing now? otherwise I think we should stay consistent and omit them.

I saw that Taylor missed those.

:+1:


Support for LZ5

Could support be added for lz5?
https://github.com/inikep/lz5

Sorry about the delayed response; I'll get to the reason in a minute…
There are three ways this can be interpreted, each has a slightly different answer:

Is it possible to support LZ5?
Will you add LZ5 support?
Would you accept a patch for LZ5 support?

Is it possible to support LZ5?
I haven't looked at the API in detail yet, but I'd be quite surprised if it isn't.  We already have an LZ4 plugin, and LZ5 was forked from LZ4.  Honestly, it's probably possible (even relatively easy) to support just about any compression codec.
Will you add LZ5 support?
I don't have any short-term plans to add additional plugins myself.  There are other areas of the code where my attention is needed more.  I'd like to encourage more community involvement, especially in the plugins.
Long-term, I'd like Squash plugins for everything.
Would you accept a patch for LZ5 support?
This is the reason for the delay.  I've been thinking about how to answer this.
Ever since LZ5 was released I've been uncomfortable with it because of the name.  "LZ5" implies that it is the "successor to LZ4" (i.e., LZ4 2.0), or at least an "upgraded" version, which isn't fair to LZ4.  LZ5 simply makes different trade-offs.
To be clear, I'm completely fine with the idea of forking LZ4 to create a new codec; it's only the project name I'm uncomfortable with.
There are a lot of problems with implying such a link with LZ4, such as
Support
People are likely to go to LZ4 for support, which isn't fair to the authors of LZ4.
My favorite example of the type of issue this could cause is a comment from SQLite:

The default prefix used to be "sqlite_".  But then Mcafee started using SQLite in their anti-virus product and it started putting files with the "sqlite" name in the c:/temp folder. This annoyed many windows users.  Those users would then do a  Google search for "sqlite", find the telephone numbers of the developers and call to wake them up at night and complain. For this reason, the default name prefix is changed to be "sqlite"  spelled backwards.  So the temp files are still identified, but anybody smart enough to figure out the code is also likely smart enough to know that calling the developer will not help get rid of the file.

Diluting LZ4's brand
If people think there is a link between LZ4 and LZ5, any problems with LZ5 are likely to influence their perception of LZ4, which isn't fair.
Leeching off of LZ4's brand
LZ4 has created a very good image of itself by being really good at what it does.  Other projects should be able to build their own reputations based on their own quality instead of using LZ4 for a head-start.

With all that said, I want to be very clear that, AFAICT (I haven't really looked at LZ5's code) everything seems to be pretty well-done.  However, all the points above still stand, even if LZ5

Maintains a high standard of quality, including portability and security
Provide clear attribution of the history of LZ5 (as a fork of LZ4)
Makes it clear that LZ5 is not associated with LZ4
Provides reasonable support, and bug fixes for any issues discovered.

I'm going to assume that LZ5 does, and continues to do, all those things.  Every indication I've seen is that they do.  No matter what else they do, though, the "LZ5" name still muddies the waters.
To be clear, these are my own opinions.  I don't think we should involve Yann in this conversation (especially not publicly), as it would put him in a very difficult position.
I'd like to add that, because of the name, I've been hesitant to add an LZ5 plugin.  It's quite possible other people will have the same concern, so it may actually be in LZ5's best interest to change their name.
In the end, I think that yes, I'd be willing to accept a patch for an LZ5 plugin, so long as the documentation made its relationship with LZ4 extremely clear.  I'd feel a lot better about it if LZ5 had a different name, though.

Okay, he changed the name to "Lizard".  I'll probably throw together a plugin sooner rather than later now just because of how much I like the new name…


Doc comments for ChangeTracking.*

It would be good to get a detailed review of what I wrote for QueryTrackingBehavior
@ajcvickers can you take a quick look at what I wrote for the GraphNode classes and make sure it is technically correct.

:shipit:


Wow impressive engine

What are the goals? Any roadmap? Contributions welcome?

To goal is to make an easy to use voxel engine for small worlds. Anything beyond 512^3 is probably out of scope.
For the road map, it's mostly done in terms of features. The only things left to do are to make the user facing API much better to allow modular cellular automata and rewrite the whole engine internals to split it into chunks for performance.
Contributions are definitely welcome as long as they are in scope 👍

Very neat. Is the concern for anything beyond 512^3 due to memory constraints?

It's actually due to the compute shaders being unable to handle that volume. The solution would be to split everything into chunks and only update them when needed. But you'd also start getting memory issues quite quickly and need something like this or this to stream in and out the voxels. While it would be quite cool to combine these techniques it would be a huge amount of effort and you'd just end up with Jhon Lins engine.

Haha I have been following Jon Lin, though he's very elusive.I am trying to find a good frame of reference for an implementation, which strikes a balance between performance and simplicity. Especially when one considers the need for physics and collision. It's really stunned me with where to start, but this project caught my eye. What do you think?

It's actually due to the compute shaders being unable to handle that volume. The solution would be to split everything into chunks and only update them when needed. But you'd also start getting memory issues quite quickly and need something like this or this to stream in and out the voxels. While it would be quite cool to combine these techniques it would be a huge amount of effort and you'd just end up with Jhon Lins engine.

"You'd just end up with John Lins engine"... not too bad an outcome, if I remember the videos!
In any case, I see you already did the hard work of implementing https://github.com/ria8651/octree-tracer. It's not in bevy, but porting should be possible, or is any feature in bevy missing?
Would that be enough for "infinite bevy-voxel-engine worlds"?

I've actually already started working on a large-scale voxel renderer in bevy here. It's much better than my original octree-tracer but I haven't made into a nice library or anything yet.

My end goal would be to have the features of both but I've been pretty busy with uni so I haven't worked on it recently.

2023-10-11T08:42:37.306988Z ERROR wgpu::backend::direct: Handling wgpu errors as fatal by default
thread 'main' panicked at C:\Users\janis\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wgpu-0.16.2\src\backend\direct.rs:3019:5:
wgpu error: Validation Error

Caused by:
    In Device::create_buffer
    `MAP` usage can only be combined with the opposite `COPY`, requested BufferUsages(MAP_READ | COPY_DST | STORAGE)

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I'll have to try this out on a friend's computer, my computer has integrated graphics so it doesn't care about that kind of thing. It should just be a case of having two copies of the buffer with one on the CPU but I'll have to look into the proper way to handle dedicated GPUs.


Add Cursively to the benchmark.

I noticed your activity on joelverhagen/NCsvPerf#45 (once I got pinged).  I've been poking around in people's CSV parser projects every once in a while to see how my Cursively library does in their benchmarks.  Sometimes, I submit a pull request like this.
N.B: I can't quite get your Read_VariableLength_RecordParser to run on my machine, as it always throws an exception here: https://github.com/leandromoh/RecordParser/blob/4b233519e9bd2b2461a3dfce20241cc0b2fe94f9/RecordParser/Engines/Reader/TextFindHelper.cs#L41-L42
I'm hoping that you have better luck with it.
Also, this is mostly intended to be run on .NET 6.0, as it relies on the same kind of thing as in #41 (though there's a fallback for when we build on lower frameworks).  There's more that I COULD do to optimize the Gender parsing code path, but I don't really feel like reimplementing big parts of Enum.Parse<T> right now :grinning:

Hi @airbreather thansk for your contribution! Could you rebase with master and resolve the conflict please?
Btw, thanks for report about the Read_VariableLength_RecordParser, that problem was fixed in #46
Sorry for the late reply, last days I was working on 1.3 released version.


In-bank notifier for when you have 3 dark totem pieces in the bank

I would like the option to toggle on an icon or something in my bank that lights up/highlights when I have 3 dark totem pieces so that I can combine them and get more from future drops in the catacombs. This solves the problem of forgetting to combine them and missing out on the opportunity for more.

Duplicate of #2856


fix(ssr): viteResolve fallback to absolute id

Description
Adds fallback to viteResolve logic to just return absolute ids if tryNodeResolve doesn't return a match.
Astro's test suite is down to a single failure with this change.
Additional context
Astro is attempting to upgrade to<EMAIL_ADDRESS>but we've been hitting failures in CI. Because Vite is hooking require for SSR, all resolution is running through Vite for these tests.
This PR modifies still runs tryNodeResolve, but if a Vite-specific match is not found and the path is already absolute, we just fallback to the absolute path.

What is the purpose of this pull request?

[x] Bug fix
[ ] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the Commit Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

Does https://github.com/vitejs/vite/pull/5495 also fix the issue with absolute paths?

@natemoo-re It looks like #6488 is solving the same issue as this. Is this still needed?
(I forgot about this PR when making my fix there 😅)


Opt-out of suspense after initial loading

What problem does this feature solve?
In my scenario, several dynamic async components can be added by the user via drag'n'drop. I have a <suspense> at the top of my component tree, showing a loading spinner while my async components are initially loaded.
Now, the user might add another dynamic async component to the tree, and while this new component is loading, I also want to render a loading spinner, not at the top level but just instead of the newly added component.
This is not an uncommon use case, I think. Needing a suspense when loading an initial state and then needing to get rid of it for additionally loaded components.
Now while the suspense feature itself is really cool and simple, the described behavior is currently only possible via ugly workarounds (<suspense v-if="...">) that lead to much code duplication.
I can either have suspensible: true and use the suspense, once and for all, or I can have suspensible: false and use the loadingComponent option to defineAsyncComponent() - in this case I can't benefit of the suspense and end up with multiple spinners again, during the initial loading.
Two possible solutions come to my mind:

A once prop on the <suspense>, telling the suspense component to give loading control back to the child components once it has resolved.

Opt-out of suspense control dynamically. This seems to me as the easiest way as it would only be necessary to allow for a ref being passed as the suspensible option. This way I could provide a dynamic value to defineComponent's setup method, being evaluated only when setup runs and not on app init, when all the calls to defineAsyncComponent happen.

What does the proposed API look like?
Variant 1)
<suspense once>

</suspense>

Variant 2)
const suspensible = ref(true) // set to false after suspense is resolved

myComponent: defineAsyncComponent({
  loader: () => import('@/path/to/MyComponent.vue'),
  loadingComponent: MySpinner,
  suspensible: suspensible
})

If you happen to appreciate this feature, I might be able to propose a PR, at least for the second variant :smile:

Found a workaround by using Suspense with component :is:
<component
  :is="suspenseResolved ? 'SimpleWrapper' : 'suspense'"
  @resolve="suspenseResolved = true"
>
  <my-async-tree-root-node />
  <template #fallback>
    <loading-component />
  </template>
</component>

import { Suspense } from 'vue'

export default {
  components: {
    ...,
    Suspense,
    SimpleWrapper: { template: '
<slot></slot>
' }
  },
  data() {
    return {
      suspenseResolved: false
    }
  }
}

Would appreciate a cleaner approach, though.


fix: OCPP message handling on invalid messages

Describe your changes
When there is a problem converting a string into an enum std::out_of_range in thrown rather than a JSON exception. A general catch was added so that a CallError is sent (rather than terminating EVerest)
In the specific case of TriggerMessage and ExtendedTriggerMessage the response NotImplemented is sent in the CallResult.
Issue ticket number and link
Checklist before requesting a review

[X] I have performed a self-review of my code
[ ] I have made corresponding changes to the documentation
[ ] If OCPP 2.0.1: I have updated the OCPP 2.0.1 status document
[ ] I read the contribution documentation and made sure that my changes meet its requirements

Hi @james-ctc , adding the general catch in message_callback looks good to me, but I dont understand why we need specific catch handling for the TriggerMessages. Maybe Im missing something but in case there is an out_of_range error when constructing the Call<TriggerMessageRequest> we should also respond with a CallError rather than responding with NotSupported in my opinion.

(moved comment - it didn't relate to the suggested change)
The request was for message not in the enumeration. Hence unknown. Which is specifically mentioned as requiring a NotImplemented response rather than CallError.
MessageTrigger has:

BootNotification
DiagnosticsStatusNotification
FirmwareStatusNotification
Heartbeat
MeterValues
StatusNotification

Where a message isn't implemented then NotImplemeted is returned.
When it isn't in that list it is unknown. The OCPP spec requires that NotImplemeted is returned for both not implemented and not known cases.
were requestedMessage missing from the request it should result in a CallError since requestedMessage is a required field in the request.
i.e. the test was specifically checking that a request not is the MessageTrigger enum correctly returns a status of NotImplemented as required by section 7.44. TriggerMessageStatus
"NotImplemented Requested notification cannot be sent because it is either not implemented or unknown."
Has the requirement not had the text or unknown then I would agree that a CallError would be correct.

(moved comment - it didn't relate to the suggested change)
The request was for message not in the enumeration. Hence unknown. Which is specifically mentioned as requiring a NotImplemented response rather than CallError. MessageTrigger has:

BootNotification
DiagnosticsStatusNotification
FirmwareStatusNotification
Heartbeat
MeterValues
StatusNotification

Where a message isn't implemented then NotImplemeted is returned. When it isn't in that list it is unknown. The OCPP spec requires that NotImplemeted is returned for both not implemented and not known cases.
were requestedMessage missing from the request it should result in a CallError since requestedMessage is a required field in the request.
i.e. the test was specifically checking that a request not in the MessageTrigger enum correctly returns a status of NotImplemented as required by section 7.44. TriggerMessageStatus
"NotImplemented Requested notification cannot be sent because it is either not implemented or unknown."
Had the requirement not had the text or unknown then I would agree that a CallError would be correct.

I understand your reasoning but I don't see how a requestedMessage can be considered unknown. Its a finite set of values and all values are implemented by libocpp. The CSMS violates the specification if it uses any other value.
The OCPP-J 1.6 Specification defines the following error code that can be used as part of a CallError.

"PropertyConstraintViolation: Payload is syntactically correct but at least one
field contains an invalid value".

I think there are reasons for both options but from a semantic point of view I would rather have a NotImplementd separated cleary from and invalid value for requestedMessage, so I would rather use the CallError(PropertyConstraintViolation).

The spec allows for unknown as an option - so I guess we will need to get clarification from the OCA as to how unknown entries should be handled.

specific case handling for TriggerMessage and ExtendedTriggerMessage removed - CallError will result should a value outside of the enum be received.


Title issue on homepage

Hello,
I would like to ask about title definition for the home page. I have your clean project from github, without my other changes.
I have /content/english/homepage/_index.md and I try to define title like in  /content/english/about/_index.md
--- title: "My title" ---
but it doesnt work. I found that title is defined in hugo.toml on line 5, and there ist still visible title defined in toml file.
But I would like to realize multilanguage support and I can't imagine how to do it with toml file.
I think it should work like on others page.
I also tried to add other parameters to front matter, but it works everywhere but not in homepage, I dont know why.
I would like to ask also one thing what I don't fully understand. Where is configure that /content/english/homepage/_index.md will be homepage mapped to /. I search all config files and I dont't know understand how It is achieved.
Thank you for this theme and soon reply.

The same issue is with description, keywords and so on.

I rmoved homepage directory and moved _index.md to root of /content/english. Than I needed to change /theme/layouts/index.html file and everything works without problem.

Same issue. I cannot change the title of the website and the logo.

Same issue. I cannot change the title of the website and the logo.

My solution was that I move /content/english/homepage/_index.md to root od folder english so /content/english/_index.md and remove "homepage mark" from layout page index.html and everything works fine.

hey @genvlad, this is the only solution. so I moved it properly. you can update the theme to get the latest code. thanks


CI: Check code builds with gcc v14

I finally made this work by updating the runners to the latest Ubuntu LTS release (24.04). Happily, this release includes a g++-14 package, so we no longer have to rely on a PPA.
We will have to update the branch protection rules before this can be merged.
Closes #413.

The branch protection rules need updating because the names of the checks have changed due to the runner version changing.

I've updated them now, so any open PRs will need to merge main (once this branch is merged)


Basic arweave and 3box integration

See the integration test for usage.
Depends on https://github.com/graphprotocol/graph-ts/pull/109.

@Jannis Thanks for the review! I've addressed all your comments.


Make thumbnail popup stay

I.e. when click outside the popup window, do not close the popup.

https://forum.quasar-framework.org/topic/6830/solved-prevent-popup-proxy-from-closing-when-clicking-outside/4


cross_val_multiscore: y_true/y_pred?

Hello,
I was wondering whether there is a way to access the actual predictions other than the scores when using this. If not would you have any suggestion on the best way to do that?
I can not use  sklearn.model_selection.cross_val_predict since my cv scheme is StratifiedShuffleSplit(100).
Is an interation over my cv splits with estimator.fit and estimator.predict the only option? It seems very unconvenient....
Thank you very much in advance!!!!

Essentially a duplicate of #4606, right?
We should probably eventually get cross_val_multipredict, which is what @giuliagennari is asking for, I think.

I am fine coding the equivalent of http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_val_predict.html

yes dupe of #4606


Add resources to WEB3 Roadmap

Description
Add credible resources to WEB3 roadmap file
Screenshots
No response
Additional information
No response

are we supposed to post a draft first?

Nope!
Particularly you don't have to, just add some credible resources in it and please add authentic resources only.

Hi @yashdev9274 I would like to provide resources for this issue

Go ahead @Obi72-maobi-code


Open URLs in current, new or popup windows

See https://github.com/h2oai/nitro/blob/main/docs/advanced.md for examples.


⚠ Bofrost.at has degraded performance

In 692cc95, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 4349 ms

Resolved: Bofrost.at performance has improved in 7a1676f after 15 minutes.


Refactor ProblemList_openjdk**-openj9.txt to openj9 | ibm folder.

Vendor specific ProblemLists (excludes/vendors/vendor/ProblemList_openjdk*.txt) is used for handling vendor specific features . Common temporary problemlists stays in openjdk/excludes/ProblemList_openjdk*.txt.
Currently openj9|IBM problemlists is an exception, which has a different name for problemlist. Most of the exclusions in problemlist is duplicated in openj9 problemlist. And when re-enable both files need to be updated.
Suggest to refactor those files. Move openj9 problemlist to openj9|ibm as a vendor folder. Renaming the "-openj9" problemlist as normal ones. Removing all duplicate exclusions in openj9 problemlist.
This can eliminate the redundancy, ease the maintenance, improve the consistency and make openj9 problemlist simple and clear to its own issues.

openj9 sdk has following properties
"-DJDK_IMPL=openj9" "-DJDK_VENDOR=eclipse"
"-DJDK_IMPL=openj9" "-DJDK_VENDOR=ibm"


[client] fragment mines resources

some weird stuff going on. Fragment mines should just have fragments on them.

did someone deposit?


Impossible to iterate over object with "items" element

A server is returning this JSON:
{
"items": [1,2,3]
...
}
An attempt to iterate over 'items' produces:
{% for el in data.items %}
....
TypeError: 'builtin_function_or_method' object is not iterable
Above happens because Python dict has a built-in function "items()".
As a temp. work-around, I installed a hook and rename keys in the JSON response from "items" to "__items" then pass that to Jinja2. At that point, I'm iterating over the renamed attribute fine:
{% for el in data.__items %}
Ideally, Jinja2 should ignore built-in functions in for-loop or if-statement unless specifically invoked with a function() notation.

You can use {% for el in data['items'] %} to prioritize the item. This is also covered in the documentation. http://jinja.pocoo.org/docs/2.9/templates/#variables

It will fail if the JSON response occasionally does not include the 'items' (say it was an optional attribute of the response). In that case, {% for el in data['items'] %} will also produce:
TypeError: 'builtin_function_or_method' object is not iterable
...since items is always defined (as a builtin function).
And this is a bug, IMO. The data['items'] should never collide with the builtins. In other words, if you want to cleanly iterate an optional "items" attribute you are forced to rename it. Ideally, that shouldn't be the case.

Why would the JSON response not include items? I'm not entirely sure I see the problem here. Surely you know ahead of time what your data is. You can also in templates check for keys with the in operator on dictionaries already.
Changing this behavior is completely out of the question because thousands of templates would break if we remove this attribute/item support.

I'm not suggesting to drop anything, just to make it more strict.
The problem today is that when you use the explicit lookup notation: data['items'] it finds a builtin dictionary function and it shouldn't. Python doesn't do it, nor should jinja. If one needs to call the builtin (or any function for that matter), you have the calling notation for it: data.items()

Not sure if it would be very clear to special-case dict.items there. Especially since it'd still fail for custom dict-like types or maybe even OrderedDict. I think it's better to foo['items'] in those cases. It's not super pretty but consistent behavior.

Why is this a special case? I'm asking for Jinja to behave exactly like Python does. Specifically, foo['items'] should yield None if there is no user-inserted key "items" in it. Today, Jinja falls back to finding the built in function of the same name. So simply do what Python does:
>>> print {}.get('items')
None

Btw, I also believe that the alternative notation "foo.items" should be handled just fine as well, since you need to use "()" to call a callable, but if you require some backwards compatibility for foo.items to either find a key or call a function automatically, then I guess that's too bad.

The Jinja logic for both ['x'] and .x is this:

Check if the item/attr (whatever your syntax gets in Python) exists, if yes use that
Check if the attr/item (the "opposite" of what your syntax would do in Python) exists, if yes use that
Fail if neither exist

So x.items checks for the attribute and since one exists it uses that. This logic works like this no matter the contest. Improving this would require the attribute lookup logic to change depending on its context. And even then it would result in awkward situations like this code that would work:
{% for x in mydict.items %}

vs this code which would not work
{% set items = mydict.items %}
{% for x in items %}

@slisznia you are essentially asking for Jinja2 to completely change the attribute lookup system which has been in place for about 7 years at this point.

Ah, I didn't even see the suggestion of foo['bar'] not doing an attribute lookup. That's a bad idea for sure! What's wrong with you simply using for item in mydict.get('items', []) ?

@ThiefMaster the mydict.get('items', []) works of course, and thanks for pointing out another method than renaming keys.


1.12.1 Context: FishingEvent.Stop Use_Item context missing when retracting rod while block-selection present

If the player secondary-clicks the rod against a block to pull in the line(ie, the block-selection hitbox is present, player clicking against the block) then the Use_Item key-data is missing from the context.
The Use_Item key-data is present (the rod used) in the context if secondary clicking the rod 'in the air' or when there is no block within reach for the line of sight while pulling in the line.
See video in action:
https://youtu.be/Rajv4IwSn6k
I am currently running...

SpongeForge version: spongeforge-1.12.1-2480-7.0.0-BETA-2634
SpongeVanilla version: spongevanilla-1.12.1-7.0.0-BETA-328
Java version: 1.8.111
Operating System:

[ ] Linux (Ubuntu, Debian, Fedora, etc)
[ ] macOS
[X] Windows

Plugins/Mods: None other than test plugin outputting fishing event context keyset

What is the expected result?
Use_Item context should be present for retracting the rod at all times
What is the current result?
Use_Item context absent when rod 'interacts' with block in reach

Plugin code:
  @Listener
    public void retractFishingRod(FishingEvent.Stop event, @Root Player player) { //
        Sponge.getServer().getBroadcastChannel()
                .send(Text.of(TextColors.AQUA, "Fishing Stop Context: " + event.getContext().keySet()));
    }

Closing as I have a PR for this here: https://github.com/SpongePowered/SpongeCommon/pull/1548


Add Static HTML Renderer and Documentation

Resolves #120.
I wrote this while documenting the process of building a Renderer. I've attached the markdown files, which could be included in the Wiki.
The renderer relies on TokamakDOM so I didn't have to rewrite the HTML/CSS representations. It currently doesn't support App/Scene, but will once that gets merged. I'll also add in how to support that to the Wiki articles.
RendererWiki.zip
There's also a new demo TokamakStaticDemo. You can test the renderer with swift run TokamakStaticDemo.
Todo:

[ ] Support App and Scene
[x] Swap dependencies so TokamakDOM depends on TokamakStatic
[x] Rename to TokamakStaticHTML

Maybe put the docs in the docs directory?

Would you consider adding redacted as a separate PR to make this one smaller and easier to review?

Sure no problem.

Sorry about the conflicts, I'll get those fixed


PDF output improvement

Hello!
If you export kendall html resume to pdf, (xvfb-run wkhtmltopdf kendall.html kendall.pdf) it have two issues, first, it loses avatar:

And second, it have awkward line breaks:

I guess, avatar should be added to printed output, and some parts of content should be marked as unbreakable so they will be moved to next page on print.

The avatar not displaying during print is a design decision. See: https://github.com/LinuxBozo/jsonresume-theme-kendall/blob/master/print.css#L10
You are correct about awkward page breaks though. Solved in https://github.com/LinuxBozo/jsonresume-theme-kendall/commit/fcda74eb131f72df02a34a10107b74d72c752f0a

Hello again! I've noticed something strange with skills header when I'm printing page from Firefox 54, could you please take a look?

Non-pdf:

First skill from second page leaped to "skills" header.

Dear @LinuxBozo, current line breaks are too tough: they leave up to half of a page empty:

I suggest to apply "non-breakable" property to smaller blocks than full "job and all it's highlights" block.

Removing job. from page-break-inside fixes problem for me:

If I remove .job and .job-details from this property, I get following skills mess somewhy:


CMake 3.10 or higher is required. You are running version 3.7.2

Testing on gcc117.fsffrance.org (Aarch64/ARMv8-a) results in:
CMake Error at CMakeLists.txt:22 (cmake_minimum_required):
  CMake 3.10 or higher is required.  You are running version 3.7.2

-- Configuring incomplete, errors occurred!

We are not administrators on the GCC Compile Farm. We cannot install software.

Would it be possible to download cmake before configure/build/test of CryptoPP?
Here is an example of test script:
#!/usr/bin/env bash

set -xe

curl -LO -# https://cmake.org/files/v3.10/cmake-3.10.3-Linux-x86_64.tar.gz
tar -xf cmake-3.10.3-Linux-x86_64.tar.gz

export PATH=$(pwd)/cmake-3.10.3-Linux-x86_64/bin:$PATH

git clone https://github.com/weidai11/cryptopp
git clone https://github.com/noloader/cryptopp-cmake
mkdir cryptopp-build && cd $_
cmake -DBUILD_TESTING:BOOL=1 ../cryptopp-cmake
cmake --build . --config Release -- -j$(grep -c processor /proc/cpuinfo)
ctest

Would it be possible to download cmake before configure/build/test of CryptoPP?

Crap. What you should do is relax the CMake requirement. I cannot believe you need the features that are only present in 3.10 and not in 3.7.
I can do it for you.

Done.

Looks good. Thanks.

cannot believe you need the features that are only present in 3.10 and not in 3.7

Generally speaking, requiring a newer version allows to keep the build system simpler and avoid work around.
When the build system will be simplified by introducing some more try_compile, it will be a good time to re-assess and require at least CMake >= 3.8 since it has an improved support for CXX_*_STANDARD and try_compile(),  For more details, see https://cmake.org/cmake/help/v3.12/policy/CMP0067.html

Generally speaking, requiring a newer version allows to keep the build system simpler and avoid work around.

I know that. It pays to pay attention to other considerations as well, such as the common platforms, etc.
To summarize: we disagree here (and I speak from experience). When the time comes to kill off an older platform, I will do that myself.


Single download issue

What steps will reproduce the problem?
Downloading a single file.
What is the expected behavior? What do you get instead?
The downloaded files are corrupt? have no size. http://i.imgur.com/1eNMxt9.png
What version of the program are you using? On what operating system?
4.8.3 on win 10
Please provide any additional information below

I see a 0 byte file, could it be the same problem as issue #630 ?
If so, the fix will be included in the next release, which should arrive some time his week.

I'm pretty sure its own separate issue, Sorry.

Yeah looks like its right.

In that case, let's move the discussion there.
The release should arrive this week-end.


Created and updated docs for 1.20-18

Issue #, if available:
Closes #1082
Related to 1.20-18 release in #1067

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


ES module support

I was trying wasm-flate by
import {deflate_encode_raw, deflate_decode_raw} from 'wasm-flate'
But it reports error when I visit the page related to wasm-flate
Failed to resolve module specifier "util". Relative references must start with either "/", "./", or "../".

TypeError: Failed to resolve module specifier "util". Relative references must start with either "/", "./", or "../".

I guess it was caused by the line 22 in wasm-flate.js.

@zwz  did you manage to solve this?

I am getting
ERROR in ./node_modules/wasm-flate/wasm_flate_bg.js
Module not found: Error: Can't resolve 'fs' in '/Users/dimtrioskanellopoulos/Projects/track-tools/node_modules/wasm-flate'

@drbh  any plans to make this an ES module with support for webpack ?

@drbh  here is perhaps some help
https://www.sitepen.com/blog/getting-started-with-assemblyscript/
Here are my results on a 3K active user project that would love to get your benefit here

@jimmykane @zwz thanks for pointing this out - I’ll look into a way to avoid those dependencies after the holidays.
As for now I have a gist that loads wasm-flate in using a base64 string. This method is a bit hacky but is a possible workaround https://gist.github.com/drbh/24496aaa863b8faa549cd05cd939f587
Hopefully that helps in the mean time!

Could you tell me how one could use this eg as a module or in Angular?
On Wed, Dec 25, 2019 at 9:36 PM drbh<EMAIL_ADDRESS>wrote:

@jimmykane https://github.com/jimmykane @zwz https://github.com/zwz
thanks for pointing this out - I’ll look into a way to avoid those
dependencies after the holidays.
As for now I have a gist that loads wasm-flate in using a base64 string.
This method is a bit hacky but is a possible workaround
https://gist.github.com/drbh/24496aaa863b8faa549cd05cd939f587
Hopefully that helps in the mean time!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/drbh/wasm-flate/issues/4?email_source=notifications&email_token=AAJVX4YYWX6CAK7BZYUSRGLQ2O76FA5CNFSM4J4GWDBKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHUTB6A#issuecomment-568930552,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJVX4ZESYY4VMUUS3D6P63Q2O76FANCNFSM4J4GWDBA
.

Hey @jimmykane based on the code above, your webpack is failing on the fs module. fs is Node's filesystem module and is used to load the .wasm file into the runtime environment.
Loading the wasm file in this way is an artifact of wasm-flates build target flag. If you clone and build the repo with the --target bundler flag. It should produce a library that can be easily webpacked.
I built and deployed a new version (1.0-beta) https://www.npmjs.com/package/wasm-flate/v/0.1.0-beta and you'll see the code no longer has fs dependencies.
I have not had the chance to test this in any application - but this will likely solve, or start to solve the issue you have.
Hope this is helpful! Please let me know how it goes 😀

@drbh  giving it a try today. Thank you so much.
My app is based on decoding a gzip packet client side that can be up to 50mb. You cannot imagine how much it has been speeded up !

Worked like a charm.
I had tried to compile this with another target as you instructed at my forked repo of this repo.
There was a little error, related to Angular and async loading of WebAssembly.
I leave this here for future reference in case people run to this issue
import('./app/app.module')
  .then(x => platformBrowserDynamic().bootstrapModule(x.AppModule))
  .catch(err => console.error(err));

https://github.com/rustwasm/wasm-bindgen/issues/1559

So the beta release you just did worked! Should be working for other TS/ES projects just fine.
The above comment is only for angular


chore: update deps

@Mikmokki can see the same build issue here, and then probably also in main. Something weird going on


twitter bot

idea: a simple script that getting twitter api details from settings, runs periodically (for example using django-crontab) and tweet news that reach front page. Tweeted news must be marked as 'tweeted' somehow to avoid tweeting it over and over again (for example adding a new boolean column in models.py)

approach: once a day, the bot will query the first 10 tweets from the frontpage. Then it will published the first one it is not already tweeted.

add Twitter accounts to retweet and like page posts


Please invite me to the Community Organization

Name
Isaac Raphael
Discord Username (if applicable) E.g John#412
isaacRaphael#0690
Questions & suggestions?
No response

We are so pleased to have you join the community @isaacRaphael 🙌🏾🤩


Update documentation for pillarbox-cast

Pull request
Description
Update the documentation for pillarbox-cast.
Changes made

Update docs/README.md to work with Dokka (mainly removing images) and improving wording and samples.
Remove Module.md.
Update the KDoc for every public class/method/interface.

[!WARNING]
This should be merged after #770!

Checklist

[x] APIs have been properly documented (if relevant).
[x] The documentation has been updated (if relevant).
[ ] New unit tests have been written (if relevant).
[ ] The demo has been updated (if relevant).

Converting to draft, until #775 and #770 are merged

Conflicts have been fixed, and the branch has been updated with the latest version of revisit_analytics_documentation


fixtests: alter formatting to fix tests

Prior to this change, go test would fail because of the formatting of
some of the t.Errorf calls had used the wrong formatting type or a
value missing.
This change alters the formatting calls so that the test all pass.
No logic has been changed in this commit.

Hey glynternet. Thanks a lot for the PR 👍


Index has ghost items and separates on any punctuation

Index on new project has some weirdness:
https://tanyaclement.github.io/Harvard-1953/term_index

Index items that are not in the current file still appear.
It is separating terms on apostrophes (O'Connor) and on periods (W.M. Frohock) -- note: W.M. Frohock isn't in this file!
10_tape01.xlsx

This ahs been fixed.


Batched get with incomplete key

Issue created from: https://github.com/sensedeep/dynamodb-onetable/discussions/453
If a batch request is issued with a get, that does not provide a full PK/SK, then the request will fallback to doing a find and the request will fail.
export const getModelsByIDs = async (ids: string[]): Promise<Model[]> => {
  const batch = {}

  for (const id of ids) {
    await table
      .getModel('Model')
      .get({ pk: `model-${id}` }, { batch })
  }

  const result: Model[] = await table.batchGet(batch, { parse: true })

  return result.map(parseModel)
}

Batched get requests with incomplete keys should be failed.

Fixed in main (2.6.3)


Run-AlValidation fails, but MS validation passed

I'm trying to run the script
 $validationResults = Run-AlValidation `
    -credential $credential `
    -licenseFile $licenseFileUri `
    -previousApps @( $previousApp ) `
    -apps @( $appFile ) `
    -validateCurrent `
    -countries $supportedCountries `
    -affixes $affixes `
    -supportedCountries $supportedCountries

but it fails with the error
Validation errors occured. Error is: [
    "175 errors found in Sana Commerce_Sana Commerce (NA)_<IP_ADDRESS>.app on https://bcartifacts.azureedge.net/sandbox/17.1.18256.19767/us:",
    "app.json(9,5): error AL1038: The version number \u0027\u0027 for the property \u0027application\u0027 does not match the expected format: W.X.Y.Z where W, X, Y, and Z represent
positive integers.",
    ""
]
At C:\Work\Sana\Dev\NavExtension\Scripts\DevOps\ReleaseSanaApp\_RunAlValidation.ps1:25 char:5
+     throw "Validation errors occured. Error is: $($validationResults  ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (Validation erro...s.",
    ""
]:String) [], RuntimeException
    + FullyQualifiedErrorId : Validation errors occured. Error is: [
    "175 errors found in Sana Commerce_Sana Commerce (NA)_<IP_ADDRESS>.app on https://bcartifacts.azureedge.net/sandbox/17.1.18256.19767/us:",
        "app.json(9,5): error AL1038: The version number \u0027\u0027 for the property \u0027application\u0027 does not match the expected format: W.X.Y.Z where W, X, Y, and Z represent positive integers.",
    ""
]

app.json looks fine
"name": "Sana Commerce (NA)",
"publisher": "Sana Commerce",
"version": "<IP_ADDRESS>",
"platform": "<IP_ADDRESS>",
error happens -->

The reason for this issue is, that your app.json doesn't have a dependency on "Application", but instead has dependencies on "Base Application" and "System Application" individually.
This is a bug in ContainerHelper, which is fixed in the next preview version.

Fix shipped in 1.0.16


[K8S] add kyuubi tools kubernetes cache file cleaner

Why are the changes needed?
Add Kyuubi tools cache-file-cleaner on kubernetes.
This tools help to start daemonSet on Kubernetes to clean shuffle file and spark cache file.
By config some envs, cache-file-cleaner will help to check some old file(which depending on configuration) and delete them for free dist.
And after first cleaning, if the free capacity lower than threshold, cache file cleaner will start deep clean to help free dist.
With the cache-file-cleaner, add Dockerfile, entrypoint and daemonSet.yaml to help user to use this tool.
How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before make a pull request

Thanks for everyone`s suggestions, i will close this PR and make another one which will clean shuffle file with multithreads.


Entity links do not include language, give 404

Example to repro:

Create Quest with link to a location in its entry
Link quest in Foundry
In Foundry journal entry, click link to location
End up on Kanka's 404 page

Problem is it seems to be missing the /en-US/ part of the link and it doesn't end up in the correct place. I assume that's something injected on Kanka's side. If it matters, I used a [location:xxx] style link, not an @ link.
Similar issue on the import UI for links to Races/Quests/etc. Clicking on one of the titles attempts to open Kanka with a language of null.

That is strange. There should be a fallback in place that uses the language in your profile if available, or falls back on the campaign locale... or, if that's missing too, it should fall back to english.
I'll take another look this weekend though with your specific steps and see what happens. Might be something I broke with one of the last updates :)

@OfficerHalf Please check if the update fixes your issue. I was mistaken regarding the profile language, so I know added that in too. Hopefully it works for you!


docs: update readme apple pay guide url

The Apple Pay guide URL was old, so I changed it to the latest URL.

Thank you for the contribution @chochoq


GroupConversation: open and centralize some boolean flags.

In https://github.com/abourget/slick .. I keep references to those channels and conversations, and I sometimes tweak them... I need to be able to create some and keep them updated..
any reasons to keep those internal ?
This is just a proposition.. nothing fixed in stone here..

so for simplicty of the bot, I like to have a "Channel" being able to represent a Group.
Why have IsChannel on a Channel.. if there's no way it is not a channel.. why have IsGroup on a Group, if there's no way it's not a group.
I feel we should have a Channel with "IsGroup" and distinguish it like that.. shouldn't we ? would be way simpler..

@mlbvsnba was that unified Channel model something that you found useful in my fork ?

Ok, this last commit re-similarizes Group and Channel.. through GroupConversation.

Cool.. I just re-migrated to your breaking changes branch.. couple of quick fixes and I'm back on track (with this PR in).
Thanks for merging all of this !

Whoops, added yet another feature. Support for Websockets through HTTP_PROXYs !

I agree with the channel/group changes as I thought of changing it myself to make things easier. The websocket proxy change maintains backwards compatibility so I am good with it as well. Thanks!

@abourget I'm trying to figure out why you wanted these changes? Is it simply because you want to represent a single list of all channels and groups and be able to perform actions based on that list and the type of the group conversation? These changes create JSON that is not valid when interacting with channel and group resources.

Ah I see. Yes the goal is to work with a unified list. It simplifies a lot
of things in a statically typed world. When reading having "IsGroup" on a
Group doesn't provide much value.. where it could never be false. However
having IsGroup being false on a channel is helpful.
I understand that when writing, things are different. Could we make these
precise fields be pointers to bool, and add "omitempty" for when we write ?
Does the API fail when we send an "is_group": false in a channel context ?
Also regarding the Conversation being exported, if it isn't,  you can't
create those objects.. only modify its fields.. so you need to have huge
copy functions.  So I ask you, why not export them ?
Le lun. 31 août 2015 17:39, Joe Fitzgerald<EMAIL_ADDRESS>a
écrit :

@abourget https://github.com/abourget I'm trying to figure out why you
wanted these changes? Is it simply because you want to represent a single
list of all channels and groups and be able to perform actions based on
that list and the type of the group conversation? These changes create JSON
that is not valid when interacting with channel and group resources.
—
Reply to this email directly or view it on GitHub
https://github.com/nlopes/slack/pull/42#issuecomment-136509004.

Does the API fail when we send an "is_group": false in a channel context ? - I am going to test this because this is something I was thinking as well.
On the other hand, I really don't like giving the ability to people to set IsGroup to true on a Channel by mistake. @joefitzgerald brings some valid points to the conversation and they're probably a bit saner (from a developer perspective) so I am going to re-analyse this merge and might revert it.

In the same vein, I need ReactionEvent to be opened up.. for the same
reason. I want to be able to deal with both reactions with a single API.
Le jeu. 10 sept. 2015 14:48, Norberto Lopes<EMAIL_ADDRESS>a
écrit :

Does the API fail when we send an"is_group": falsein a channel context ?

I am going to test this because this is something I was thinking as well.
On the other hand, I really don't like giving the ability to people to set
IsGroup to true on a Channel by mistake. @joefitzgerald
https://github.com/joefitzgerald brings some valid points to the
conversation and they're probably a bit saner (from a developer
perspective) so I am going to re-analyse this merge and might revert it.

—
Reply to this email directly or view it on GitHub
https://github.com/nlopes/slack/pull/42#issuecomment-139341933.

In which case do people create Channel objects ? Those objects are read into.. and in that case theirs fields are appropriate with my changes. We always refer to channels with their ID in API calls.
When I create Channel objects.. it is to avoid duplication of my code, by considering a Group as a Channel, which it is conceptually  (and most probably in Slack's implementation).
I'm sorry to say, I don't see the point being made by "groupConversation shouldn't be exported". I'm presenting a use case, "it shouldn't" is not a compelling reason.
Again, having IsChannel and IsGroup is absolutely useless in Go if we only have it on their respective objects, because the type of the object already tells us that. IsChannel and IsGroup is only useful if it can discriminate against something else, which it can help do in a GroupConversation.
I'd prefer not to maintain my own fork because of issues like this. Can we settle on this matter ? Especially in the light of a similar change regarding ReactionEvent I'm about to propose.

Ok folks, I'm willing to revert the groupConversation changes if you want.. I needed to have the same support for IMand IsIM but making it clean in the slack codebase was becoming very ugly.. so I reverted to create my own abstraction in my bot.. This means I wouldn't need the GroupConversation to be open (as I'm not going to use the slack.Channel for the abstraction), it can be closed up, and we can put back the IsChannel only on the Channel object.  Just beware that this PR included the HTTP_PROXY support too.. so maybe we want to revert only the two concerned commits.

Awesome, thank you for this. I'll be reverting that either today or tomorrow.

Argh, I ended up spending more time away from this than I wished.
The two commits have been reverted, the change for HTTP_PROXY has been left in.
Thank you so much @abourget


feat: EmbeddingsBuilder redesign

Todo:

[x] Give trait and macro same name like serde

[x] implement Embeddable trait for many primitive types

[x] macro fails when there are no embed tags

[x] macro fails when embed with is empty string

[x] need to handle error in custom embed function

[ ] review borrow and owning eveywhere. done for embeddings.rs

[ ] update docstrings. done for embeddings.rs

[ ] clean up embedding builder definition with traits maybe?

[x] should build() return Embedding object or just string? return Embedding object - document string used for debugging

[ ] in memory vector store, rethink type of document D --> move to another branch

[x] why is vector search of in memory vector store so bad? bug found

[ ] in memory store - implement from trait from both returns types of build into add_document

[ ]  tests

[ ] make macro as feature flag

@garance-buricatu can you add some formatting and a little bit more context to this issue? Thank you!


Fix activations rollout

Coverage decreased (-0.03%) to 94.828% when pulling 94d503aa20355d0d18db78d71e609f8f943a766f on lucmclaren:rollout_percentage_fix into e65cd57da85511cf3ff66d8095659b149941ee18 on AutoScout24:master.

Coverage increased (+0.5%) to 95.402% when pulling 534220ee0be9cd8bce6fab8be65d3697e4b8bffd on lucmclaren:rollout_percentage_fix into e65cd57da85511cf3ff66d8095659b149941ee18 on AutoScout24:master.


Added support for mysql2 adapter

This pull request also required an update to .rubocop-bundler.yml, but I left the satisfy-rubocop updates
for another PR to keep this one smaller.

Looks like rubocop is not happy with the changes, it just refuses to take conditionals at all.
I would suggest to drop the rubocop yml changes to get the CI green, then we can just merge it in.


A good example of using beta.2

I am looking for a good example to start writing my manifests using beta.2 at master branch. example/readme/hello-nginx.jsonnet is still beta.1 and some demo* files at sigapp branch don't work for master branch.

Working on it. Hoping to have time to do this next week.

@ngtuna I believe we can now close this issue, since we have an example of a production-ready use of beta.2 in the ksonnet/mixins repository.
What do you think?

Great. Thanks @hausdorff for the info. Yes, I am closing this


can't install playwright on mobile?

Hey I've been working through dependancies on my termux instances, main.go is running fine but derver.py depends on playwright which isn't available on termux's reduced version of pip (which can't be upgraded), only npm that I've found so far and it doesnt recognise the install by that means.
Any advice?

I'm not sure on how well this works. But maybe you could containerize the Application in like a Docker Container or something and then use it. Or order yourself a Cheap VPS to run it on.


Adding hits data to the chart

I think it will be nice to see hits data on the chart.
Here is some example:

Yeah, that is super cool. Open a PR? I’ll merge it.

I guess that this should be closed


Incorrectly capitalised words

https://www.developersfinance.guide/docs/tax/income-tax-and-capital-gains-tax
income tax and capital gains shouldn't be capitalised if im not mistaken.
Capital gains does enter the income tax calculation, in that a specific percentage of Capital gains are included in your taxable income when calculating Income tax.

Fixed - thanks @devinpearson :)


Fix missing .into() when parsing targets

This is an attempt to solve this issue. I hope this is the right way.
Credits goes to the team leader at my company - Vincent for quickly solving it.

Looks good! Thank you for your contribution!


bug in the alternative installation method of poliastro .

While trying the pip method to load poliastro on your desktop which is an alternative to the conda setup to do the installation process , the command provided there is to be reconsidered as it shows an error while running on the desktop .
the pip command  on this page https://docs.poliastro.space/en/latest/getting_started.html#alternative-installation-methods
here you find an  command written as -$ pip install https://github.com/poliastro/poliastro/archive/master.zip
if you follow the procedure you land up with error showing
<!---   ERROR: HTTP error 404 while getting https://github.com/poliastro/poliastro/archive/master.zippip

for me, when I was installing this setup using PIP command which is alternative to conda , the above error occured .

possible solutions -
instead of using this  command   -  $ pip install https://github.com/poliastro/poliastro/archive/master.zip
which is mentioned their in https://docs.poliastro.space/en/latest/getting_started.html#alternative-installation-methods documentation
use this command - $ pip install https://github.com/poliastro/poliastro/archive/main.zip
just replace this command and try , your command will definitely work
and the outcome would be something like-
successfully installed poliastro -0.15.dev0  this was what i got as output when i used the command
$ pip install https://github.com/poliastro/poliastro/archive/main.zip
instead of
$ pip install https://github.com/poliastro/poliastro/archive/master.zip

Closed in #1129


Cannot connect to Mongo Atlas

Describe the bug
Seems like Stackblitz do not support Mongo Atlas?
I get this error:
Operation books.countDocuments() buffering timed out after 10000ms
MongooseError: Operation books.countDocuments() buffering timed out after 10000ms
at Timeout.eval (file:///home/projects/stackblitz-starters-mmvnoi/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:185:23)
Link to the blitz that caused the error
https://stackblitz.com/edit/stackblitz-starters-mmvnoi?file=package.json,app.js
Steps to reproduce
Just let the application start up using : npm run devstart
The error shows in the browser window.
Expected behavior

Parity with Local

[X] I have run the project in my local machine and I could not reproduce the issue.

Screenshots
No response
Platform
Browser name  = Chrome
Full version  = <IP_ADDRESS>
Major version = 114
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
performance.memory = {
  "totalJSHeapSize": 67303865,
  "usedJSHeapSize": 64988405,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Hash = 9ff9f275

Additional context
No response

ThanksYes would be a great feature Sent from my iPhoneDen 22. jun. 2023 kl. 10.31 skrev Roberto Vidal @.***>:
@larhou Thanks for the report. Unfortunately, we don't support databases like Mongo out of the box, b/c that would require something akin to low-level networking in the browser (e.g. TCP/UDP sockets, DNS, etc.), which don't currently exist.
We are thinking about ways around this, but we don't have any concrete roadmap about it. If you're interested, we can leave this open as a venue for updates in case anything changes.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

I'm consolidating all of the database feature support requests into issue #749 for ease of tracking and due to @d3lm's excellent explanation of the current state.


Insert all link types from the link component

A user should be able to insert all link types from the link component e.g the banner block. Currently the only option is linking to a page on the site:

After some consideration we have decided to slightly redesign the link component to cater for these options. See the Styleguide for the new designs. Unsure if this link component should be moved into core? cc @robbieaverill

The component is to borrow the same dropdown component from the TinyMCE insert link option.
Remove "Changes will be visible upon save" (if possible) after saving link details as "Link title" and "URL" should be present after inserting:
Current CMS link component:
Link fields to be reordered so 'Link text' appears first.
Note: text-muted for "Link type" text.
@clarkepaul recalls that the "Anchor from a page" option in the TinyMCE dropdown was added as there were limitations to being able to combine "Page on this site" and "Anchor on a page" together. See https://github.com/silverstripe/silverstripe-cms/issues/2379 for more details of removing the anchor dropdown option and the new modal designs.

After some consideration we have decided to slightly redesign the link component to cater for these options. See the Styleguide for new designs. Unsure if this link component should be moved into core? cc @robbieaverill

See https://github.com/silverstripe/silverstripe-elemental-bannerblock/issues/10

I've created a wider discussion on how to proceed with this in terms of a reuseable link moudle: https://forum.silverstripe.org/t/new-links-module/1642

We won't be putting any effort into this given that we are about to ship linkfield.


RabbitListenerEndpointRegistry.isRunning violates the Lifecycle contract.

Hello,
We are dealing with problem because RabbitListenerEndpointRegistry.isRunning returns true if any of registered MessageListenerContainer is started.
In case when RabbitListenerEndpointRegistry contains started and not started containers then method isRunning returns true and method start is not called, so not started containers don't start.
It's possible to fix this problem.
Thanks,

That is by design; you can use registry.getListenerContainers() and iterate over them to manage containers individually.


Teacher dashboard

Link to user story: https://trello.com/c/cPOFSuKn/48-1-as-a-teacher-i-can-view-my-dashboard

There will be no screenshots available until we have the new teacher role established.
Moved dashboard styles out from underneath headmaster into the styles folder so they can be accessed when building all role dashboards.
Created skeleton for teacher dashboard with nav buttons to student registration, profile and logout commented out for now. I will add links once these components are built out.
Created empty placeholder components for teacher profile and teacher profile form (where the teacher will edit their profile details) following the format established in headmaster for consistency.

Nice work moving a component for more reuseability that will become handy in the future!

Nice work moving a component for more reuseability that will become handy in the future!


.n() The first argument must be a function

Hi team,
Currently I'm facing this error with n function, because such as we can see in the documentation, we can use any chance function into the n function but right now I getting this error:

and based on the documentation we can do this:
let chance = require('chance').Chance()
let fn = chance.pickone(['text', 'naohter','ohter','more'])
let r = chance.n(fn, 3)
console.log('r', r)

Or
let chance = require('chance').Chance()
let r = chance.n(chance.pickone(['text', 'naohter','ohter','more']), 3)
console.log('r', r)

But it's not working as expected, so I really appreciate to know if there is any workaround for this issue.

@djom20 Please look at https://runkit.com/jonathansamines/5d883d8845f343001bf97fb1 for a reference example of how to use chance.n in this scenario.
I would suggest taking the time to understand how this function works by reading the library documentation: https://chancejs.com/miscellaneous/n.html


add a json output option for ksync get

we've added ksync support into Jenkins X and its working really well when folks use DevPods so that all your building and running takes place in the cloud while you use your desktop IDE.
This works particularly well in the VS Code extension - opening a DevPod terminal sets up ksync behind the scenes for you.
We want to be able to query easily what the current ksync results are and we've been using ksync get and then parsing the text that comes back which is a little fiddly to parse; you often get an extra line with starting or watching in there; so we're filtering out the last line and any with <= 2 columns which is a bit of a hack really - there's sometimes newlines in the rows ;).
e.g.
$ ksync get
        NAME                     LOCAL                           REMOTE                 STATUS           POD
+-------------------+------------------------------+---------------------------------+----------+-------------------+
  jstrachan-jx-base   /workspace/java/builder-base   /home/jenkins/java/builder-base
                                                                                watching   jstrachan-jx-base
  jstrachan-maven     /tmp/cheese/hipster3           /home/tmp/cheese/hipster3
                                                                                starting   jstrachan-maven

I wonder if we could have a simple json output CLI option for ksync get so its easier to parse what actual specs really are created currently so we can more reliably reason about which ones need to be created/deleted?
Something like...
$ ksync get -ojson
[
  {
    "name": "foo",
    "local": "local",
    "remote": ....
  }
]

@timfallmk and @jstrachan I think that'll great addition to the Ksync as I'm working to incorporate it into MLT and I'm facing the same challenge of manually reading the output and parsing it into some format like json and then query from there.
So basically having an option for ksync get like --table, or --json would be great.

Interesting idea. The -q output might help you a bit in the meantime, but I’ve been wanting to add output formatting options to all commands to a while.
I’ll trade that work for an Atom.io extension instead of VS Code 😛

@jstrachan I should also add that the newlines are intentional (I ran into that myself, but @grampelberg  did the right thing). I think it's the provide cleaner output should the fields run long.

I'm a huge +1 to this. Should probably follow the kubectl pattern of -o=json.
@jstrachan @ashahba mind posting some sample JSON for what you're thinking of?
Also, what's a better serialization format: YAML, JSON, ....?

I vote for at least yaml, json, pretty.

Thanks @timfallmk and @grampelberg
How about this one for JSON:
{
   "simple-sol":{
      "LOCAL":"source_code/IntelAI/mlt/my-hello-world",
      "REMOTE":"/src/app",
      "STATUS":"watching",
      "POD":"my-hello-world-e64fe2fc",
      "CONTAINER":"my-hello-world:latest"
   },
   "moderate-sol":{
      "LOCAL":"source_code/IntelAI/mlt/my-hello-world-sync",
      "REMOTE":"/src/app",
      "STATUS":"starting",
      "POD":"my-hello-world-sync-e64fe2fc",
      "CONTAINER":"my-hello-world-sync:latest"
   }
}

and this for YAML:
---
-
  simple-sol:
    CONTAINER: "my-hello-world:latest"
    LOCAL: source_code/IntelAI/mlt/my-hello-world
    POD: my-hello-world-e64fe2fc
    REMOTE: /src/app
    STATUS: watching
-
  moderate-sol:
    CONTAINER: "my-hello-world-sync:latest"
    LOCAL: source_code/IntelAI/mlt/my-hello-world-sync
    POD: my-hello-world-sync-e64fe2fc
    REMOTE: /src/app
    STATUS: starting

LGTM

Question: We could use similar output formatters? https://github.com/vapor-ware/synse-cli/tree/master/pkg/formatters

Leaving some notes:

https://github.com/buger/goterm
https://github.com/hokaccha/go-prettyjson
#179

I dunno if we need any pretty output (though go-prettyjson looks pretty great). Since we're just going to be using this for machines, the first version should probably just serialize the protobufs and see how it looks.

@timfallmk for me it doesn't matter but if I want pretty output I go with prettyjson

@everyone I've added a simplistic first pass at this in 89dd3102450486cfd9c14db4e4abb46804c746cd
Let me know what you think.
A question I have so far is whether I should add a newline after squirting the output. I assume I should, but I dunno if that will really mess with anyone's Mario piping.
Binaries attached
Darwin x64
Linux x64
Windows x64

@timfallmk my first pass looks good:
{
   "items":{
      "simple-sole":{
         "details":{
            "name":"simple-sole",
            "selector":"app=e64fe2fc-a82d-4de0-acf6-50ffcc577124",
            "namespace":"ashahba",
            "localPath":"/Users/ashahba/source_code/IntelAI/mlt/my-hello-world-sync",
            "remotePath":"/src/app",
            "reload":true
         },
         "services":{
            "items":[
               {
                  "specDetails":{
                     "name":"simple-sole",
                     "selector":"app=e64fe2fc-a82d-4de0-acf6-50ffcc577124",
                     "namespace":"ashahba",
                     "localPath":"/Users/ashahba/source_code/IntelAI/mlt/my-hello-world-sync",
                     "remotePath":"/src/app",
                     "reload":true
                  },
                  "remoteContainer":{
                     "id":"eca40d3eba7aab365d3073476706a73572a0a9983b257c4179834ce3680f8e50",
                     "nodeName":"MY_CLUSTER_NAME",
                     "podName":"my-hello-world-sync-e64fe2fc-a82d-4de0-acf6-50ffcc577124-7dfzx"
                  },
                  "status":"watching"
               }
            ]
         },
         "status":"running"
      }
   }
}

Let me play with this a bit more and will ping you  with more feedback.


#985 Exclude various non video related dependencies from tika

0e52a04 added a dependency on org.apache.tika:tika-parsers:1.12 which has updated org.ow2.asm:asm:5.0.3 to org.ow2.asm:asm:5.0.4. This has caused some tests to fail (see #985)
Excluding org.ow2.asm:asm:5.0.4 fixes the failing tests but there are still a number of other dependencies that aren't required.
TIKA-1367 recomends explicitly excluding dependencies that arent required so I've removed the dependencies that seem to be used for non audio/video file types.
I've also added a test that verifies that the content type is still detected for images and videos when the dependencies are excluded.

Very cool! thank you for this


nixos/tests: implement a trivial test for sudo

This is an alternative to NixOS/nixpkgs#6721, with improvements suggested by @edolstra

Tested the job?

Yes, it passes here.
machine# [  135.451402] sudo[769]:    sybil : TTY=unknown ; PWD=/home/sybil ; USER=root ; COMMAND=/run/current-system/sw/bin/true
machine# [  135.520832] sudo[769]: pam_unix(sudo:session): session opened for user root by (uid=0)
machine# [  135.690844] sudo[769]: pam_unix(sudo:session): session closed for user root
machine# [  135.778424] su[756]: pam_unix(su:session): session closed for user sybil
machine: exit status 0

Looks to me like everything is in working order.


[Bug] : RBAC Permissions

Checklist

[X] I've searched for similar issues and couldn't find anything matching
[X] I've included steps to reproduce the behavior

Affected Components

[X] K8sGPT (CLI)
[X] K8sGPT Operator

K8sGPT Version
v0.0.22
Kubernetes Version
v1.26.8 (EKS)
Host OS and its Version
No response
Steps to reproduce
Previously, I installed and used the CLI with the operator, but I modified the configuration file by activating Slack. There was no notification in the slack, and this error occurred in the operator pod.
Expected behaviour
Successful Slack Notification
Actual behaviour
k logs -n k8sgpt-operator-system pod/release-k8sgpt-operator-controller-manager-748c47b497-mfp4q

Finished Reconciling k8sGPT with error: [clusterroles.rbac.authorization.k8s.io](http://clusterroles.rbac.authorization.k8s.io/) "k8sgpt" is forbidden: user "system:serviceaccount:k8sgpt-operator-system:release-k8sgpt-operator-controller-manager" (groups=["system:serviceaccounts" "system:serviceaccounts:k8sgpt-operator-system" "system:authenticated"]) is attempting to grant RBAC permissions not currently held:
{APIGroups:["[apiextensions.k8s.io](http://apiextensions.k8s.io/)"], Resources:[""], Verbs:[""]}
2023-10-26T07:37:18Z ERROR Reconciler error {"controller": "k8sgpt", "controllerGroup": "[core.k8sgpt.ai](http://core.k8sgpt.ai/)", "controllerKind": "K8sGPT", "K8sGPT": {"name":"k8sgpt-sample","namespace":"k8sgpt-operator-system"}, "namespace": "k8sgpt-operator-system", "name": "k8sgpt-sample", "reconcileID": "50807cd7-8c6a-404d-bebb-6d05d2856f37", "error": "[clusterroles.rbac.authorization.k8s.io](http://clusterroles.rbac.authorization.k8s.io/) "k8sgpt" is forbidden: user "system:serviceaccount:k8sgpt-operator-system:release-k8sgpt-operator-controller-manager" (groups=["system:serviceaccounts" "system:serviceaccounts:k8sgpt-operator-system" "system:authenticated"]) is attempting to grant RBAC permissions not currently held:\n{APIGroups:["[apiextensions.k8s.io](http://apiextensions.k8s.io/)"], Resources:[""], Verbs:[""]}"}
[sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler](http://sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler)
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.15.0/pkg/internal/controller/controller.go:324
[sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem](http://sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem)
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.15.0/pkg/internal/controller/controller.go:265
[sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2](http://sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2)
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.15.0/pkg/internal/controller/controller.go:226``

Additional Information
I followed the existing guide, and I also proceeded with the reinstallation, but I couldn't solve it.

I believe this occurs on an upgrade scenario as we have modified the rbac completely
Can you please try to uninstall the release completely then install?
Alternatively run this step
git clone https://github.com/k8sgpt-ai/k8sgpt-operator.git
cd k8sgpt-operator
make undeploy
make uninstall

Let me know how you get on

I add below rbac rule to the clusterrole "xxx-manager-role", problem solved

verbs:

'*'
apiGroups:
apiextensions.k8s.io
resources:
'*'

Thank you. I will continue to help K8sGpt become a better open source through many tests.

@AlexsJones I was thinking that it makes sense to remove cluster role from our code base and move it as part of the helm chart, wdyt ?

@junskeep can you share your K8sGPT manifest please?

The actual issue is coming from K8s behavior with updating/creating roles. The RBAC API prevents users from escalating privileges by editing roles or role bindings. Because this is enforced at the API level, it applies even when the RBAC authorizer is not in use.

There were no modifications other than this code.
`apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
name: k8sgpt-sample
namespace: k8sgpt-operator-system
spec:
ai:
enabled: true
model: gpt-3.5-turbo
backend: openai
secret:
name: k8sgpt-sample-secret
key: openai-api-key
# anonymized: false
# language: Korean
noCache: false
version: v0.3.17
#integrations:
trivy:
enabled: true
namespace: trivy-system
filters:
- Ingress
sink:
type: slack
webhook: https://hooks.slack.com/services/${webhookURL}
extraOptions:
backstage:
enabled: true
`

There were no modifications other than this code.
apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
  name: k8sgpt-sample
  namespace: k8sgpt-operator-system
spec:
  ai:
    enabled: true
    model: gpt-3.5-turbo
    backend: openai
    secret:
      name: k8sgpt-sample-secret
      key: openai-api-key
    # anonymized: false
    # language: Korean
  noCache: false
  version: v0.3.17
  #integrations:
  # trivy:
  #  enabled: true
  #  namespace: trivy-system
  # filters:
  #   - Ingress
  sink:
    type: slack
    webhook: https://hooks.slack.com/services/${webhookURL}
  # extraOptions:
  #   backstage:
  #     enabled: true

I raised a PR to fix the RBAC and in the meantime we can work on this to manage RBAC controls from Helm
https://github.com/k8sgpt-ai/k8sgpt-operator/issues/259

There is a fix now, please upgrade to latest operator's version.


[Example] How to use ory kratos with wundergraph

Please add an example showcasing how to setup ory kratos login/signup with wundergraph

can I expect a working demo within this month?

It depends. Are you interested in becoming a customer of our support plans this month? We're not making commitments of any sort to non-customers. So if you're not a customer, please be patient. We're investing heavily into open source, but this doesn't mean that we're doing this for free. We have to build and sustain a business too. Please don't demand features or demos if you're not a paying customer. It's not the right kind of behavior towards a company that invests into open sourcing. Thank you.