feat: panic for programmer error, more diagnostics, remove duplicated map lookup

@zkochan Can you test this with the package.json you used for https://github.com/pnpm/pacquet/pull/123 ?

Which package.json?
This change won't fix the circular dependency issue that I detected while doing #123

@zkochan I was assuming you tested https://github.com/pnpm/pacquet/pull/123 with a package.json.
Of course, I already tested it with my small package.json and it ran just fine.  But the package.json at https://github.com/pnpm/pacquet/pull/116#issuecomment-1722435115 meets a "deadlock" (same as https://github.com/pnpm/pacquet/pull/123). I assume that it contains circular dependencies?
Speaking of https://github.com/pnpm/pacquet/pull/116#issuecomment-1722435115, if I try it with low semaphore, it will runs forever, if I try it with the old codebase, it will panics with too many open files, and if I try it with https://github.com/pnpm/pacquet/pull/123 and later, it will hangs without logging.

Of course, I already tested it with my small package.json and it ran just fine. But the package.json at https://github.com/pnpm/pacquet/pull/116#issuecomment-1722435115 meets a "deadlock" (same as https://github.com/pnpm/pacquet/pull/123). I assume that it contains circular dependencies?

Yes, it contains circular dependencies, so I can't use it to test your changes. I tested your changes on a package.json without circular dependencies.

Speaking of https://github.com/pnpm/pacquet/pull/116#issuecomment-1722435115, if I try it with low semaphore, it will run forever, if I try it with the old codebase, it will panic with too many open files error, and if I try it with https://github.com/pnpm/pacquet/pull/123 and later, it will hangs without logging.

All the issues are most likely related to circular dependencies.


internal: Migrate to AsRef.

All of our shared code/utils should be using AsRef, so this starts that initial process.

Hey! What's the benefit of this?

@ofek It allows you to pass String and &str to an argument.

Oh and passing String would then not be a move?

@ofek It unfortunately does not, but allows all of these patterns to "just work".
test("foo");
test(String::from("bar"));
test(&baz);

Got it, thank you!!!


initial version of ms.extensions.logging and di

wip for #65 (logging integrated no new packages)
logging should work
the clientid should be in the scope now so all logs for one client should share that scope. im not shure if server is working but client looks good
i guess some of the stuff in server options could also be moved into di.
i also need to update wiki...

i cant view the guideline i broke. it says only repository owner may view so please provide feedback so i can improve

Is it possible to support the static logging event? I use this in my projects. Also in the UWP app in this repo I use it to move all traces to a text box. Or can you migrate this code as well?
We also have to update all Wiki entries after those changes are released 😄

Is it possible to support the static logging event?

shure i can create a LoggerProvider. then you can do something like:
//in startup code
serviceProvider.GetService<ILoggerFactory>().AddCallbackLogger();

//in your view
CallbackLoggerProvider.OnLog += (log) => {};

is that good enough?

Sure something like this. I need an easy way of just putting the traces somewhere.

oki i will add it

I also see no changes for the UniversalWindows library. Are there no changes at all or do don't migrate this project?

i added back the old api for consuming logs that should simplify migration.

I also see no changes for the UniversalWindows library

i will have a look at them.  (I dont have that projects loaded because uwp sdk does not work for some reason.)

The problem is that some concepts of the core library are designed in the way they are to support UWP as well. Beside adapters and channel not that much but I am afraid that the new logging may break the UWP implementation.

uwp projects should also be up and running (at least they build but i cannot start em on my machine)
how does the github flow for wikis work i never updated one?

I gave you access as a contributor to this project. You can now create branches in this repository. But merging from develop to master is still my part 😄

I assume you can directly update the Wiki via "Edit" and commit the changes...

The new trace approach works for the UWP app. Visually no difference but I cannot set the client ID anymore. This was a new requested feature. Using the factory I cannot pass an identifier which let the user distinguish between several clients running in the same process. Or did I make a mistake while setting up the logging?

the information is there i create a LogScope for each client with its clientid. I was not able to port that Information to MqttTrace see https://github.com/chkr1011/MQTTnet/blob/3529724bdc91f6591fa91ca3c49c38b31a70e4e1/MQTTnet.Core/Diagnostics/MqttNetLogger.cs#L37
the information is stored in callcontext so it flows to all loggers in that scope.
it should be visibile if you use serilog or ms.extensions.logging.console.
if you know how to port this let me know! i tried to view history of that file so i get the 1.1.2 version but i didnt get it compiling.
https://github.com/aspnet/Logging/blob/a42605cc0c51b36ac3dda10401e7ffea05c8d848/src/Microsoft.Extensions.Logging.Console/ConsoleLogScope.cs#L22

Ah there it is. OK. My initial implementation was detached from such protocol details. There you can specify a separate identifier. The use case was if a have 2 clients (also with the same ID) which are bridging two brokers I cannot distinguish. Is there any way to inject a separate ID like before with the factory constructor?

Adding a seperate property to MqttNetLogger would be possible but all other Libraries that interact with ILogger dont know it and so they wont use it, thats why i put it in the Scope.
If a separate Id is required we can add it to the options and create the scope with that Id.
Using a factory with parameter would also be possible.

Mhh it's up to you 😄 I would prefer the options with an additional LogId which falls back to the clientId if not set. Because this was a user request I also can only guess what makes sense. 😄


Fix wrong/forgotten copyright in a header-file

CI gfxreconstruct build queued with queue ID 228426.


Implement APIs for Git serialized commit graphs

The Git serialized commit graph should offer speed-up for certain types of history traversal. It was added as experimental feature in Git 2.18 and is greatly detailed in the blog series by Derrick Stolee. It would be nice if go-git could offer access to the feature, both at low-level (verifying, building and querying the commit graph file) and high-level (speeding up log traversals with it, if applicable).
I've started a proof-of-concept code at https://github.com/filipnavara/go-git/compare/perf-read...filipnavara:commitgraph?expand=1. However, the API is far from nice, the code is not tested (besides running it on my own repository) and it is generally messy.
Since go-git currently defines Commit objects as struct I was left with no other choice but to introduce a CommitNode interface, which is watered down version of Commit as present in the serialized commit graph. In ideal world there would be only one Commit interface and the commit graph implementation of it would lazy-load the real Commit objects if necessary.
Here's a rough approch of my implementation:
At the lowest level there is commitgraph package, which provides the Node and Index interfaces representing the data at the file level (https://github.com/git/git/blob/2d3b1c576c85b7f5db1f418907af00ab88e0c303/Documentation/technical/commit-graph-format.txt). There is implementation of the interface using random-access files / memory-mapped files (FileIndex), in-memory implementation (MemoryIndex) and an Encoder, which can write down the memory index into new file.
Building a memory index from all commits reachable from an existing commit could be accomplished by a code like this:
func buildCommitGraph(c *object.Commit) (*commitgraph.MemoryIndex, error) {
	idx := commitgraph.NewMemoryIndex()
	seen := make(map[plumbing.Hash]bool)
	return idx, addCommitToIndex(idx, c, seen)
}

func addCommitToIndex(idx *commitgraph.MemoryIndex, c *object.Commit, seen map[plumbing.Hash]bool) error {
	if seen[c.Hash] {
		return nil
	}
	seen[c.Hash] = true

	// Recursively add parents first
	err := c.Parents().ForEach(func(parent *object.Commit) error {
		return addCommitToIndex(idx, parent, seen)
	})
	if err != nil {
		return err
	}

	// Add this commit if it hasn't been done already
	node := &commitgraph.Node{
		TreeHash:     c.TreeHash,
		ParentHashes: c.ParentHashes,
		When:         c.Committer.When,
	}
	return idx.Add(c.Hash, node)
}

The access to the index is exposed through CommitGraphStorer interface in the storer package that is implemented by the memory storage and filesystem storage. The file system storage implements it using memory-mapped files for reading and using the encoder for writing. [Note to myself: The memory mapped files are currently not closed with the repository!]
In the object package CommitNode and CommitNodeIndex interfaces are added. The CommitNode interface is implemented by existing Commit structure and also a new lightweight graphCommitNode.  The CommitNodeIndex interface provides methods for looking up commit parents and getting a full Commit object from CommitNode. Two implementations of CommitNodeIndex exist. The first one is objectCommitNodeIndex, which only uses Commit objects and implements the interfaces to behave exactly as if no serialized commit graph existed. Second one, graphCommitNodeIndex, takes the additional commitgraph.Index object and implements the lookup methods by trying the commit graph first and falling back to loading full Commit objects if the commit is not present in the commit graph file.
I added NewCommitNodeIterCTime iterator as a counterpart to NewCommitIterCTime, which operates on top of the CommitNode and CommitNodeIndex interfaces. Similar thing could be done for other NewCommit*Iter* methods. In fact, it is easily possible to reimplement NewCommit*Iter* on top of NewCommitNode*Iter* and switch between the lookup implementations (graphCommitNodeIndex / objectCommitNodeIndex) based on the paricular workload at hand. When full commit information, such as Message or Author is needed, then it's more useful to load the objects directly. When only summary information is needed (eg. counting distance between two commits) then the commit graph implementation can be used.
Lastly, I added the method CommitNodeIndex to git.Repository, which returns either graphCommitNodeIndex or objectCommitNodeIndex depending on the presence of the serialized commit graph. [Note to myself: It should probably consult the gc.commitGraph config option.]

Example of walking the commit graph with the above APIs:
func getLastCommitForPaths(r *git.Repository, c *object.Commit, paths []string) ([]*object.Commit, error) {
	commitIndex := r.CommitNodeIndex()
	cIter := object.NewCommitNodeIterCTime(c, commitIndex, nil, nil)
	result := make([]*object.Commit, len(paths))
	remainingResults := len(paths)

	cTree, err := c.Tree()
	if err != nil {
		return nil, err
	}

	currentEntryHashes := make([]plumbing.Hash, len(paths))
	for i, path := range paths {
		cEntry, err := cTree.FindEntry(path)
		if err != nil {
			return nil, err
		}
		currentEntryHashes[i] = cEntry.Hash
	}

	cIter.ForEach(func(current object.CommitNode) error {
		newEntryHashes := make([]plumbing.Hash, len(paths))

		err := commitIndex.ParentNodes(current).ForEach(func(parent object.CommitNode) error {
			parentTree, err := parent.Tree()
			if err != nil {
				return err
			}

			for i, path := range paths {
				// skip path if we already found it
				if currentEntryHashes[i] != plumbing.ZeroHash {
					// find parents that contain the path
					if parentEntry, err := parentTree.FindEntry(path); err == nil {
						// if the hash for the path differs in the parent then the current commit changed it
						if parentEntry.Hash == currentEntryHashes[i] {
							newEntryHashes[i] = currentEntryHashes[i]
						} else {
							// mark for saving the result below
							newEntryHashes[i] = plumbing.ZeroHash
							// stop any further processing for this file
							currentEntryHashes[i] = plumbing.ZeroHash
						}
					}
				}
			}

			return nil
		})
		if err != nil {
			return err
		}

		// if a file didn't exist in any parent commit then it must have been created in the
		// current one. also we mark changed files in the loop above as not present in the
		// parent to simplify processing
		var currentCommit *object.Commit
		for i, newEntryHash := range newEntryHashes {
			if newEntryHash == plumbing.ZeroHash && result[i] == nil {
				if currentCommit == nil {
					var err error
					currentCommit, err = commitIndex.Commit(current)
					if err != nil {
						return err
					}
				}
				result[i] = currentCommit
				remainingResults--
			}
		}

		if remainingResults == 0 {
			return storer.ErrStop
		}

		currentEntryHashes = newEntryHashes
		return nil
	})

	return result, nil
}

I'm sharing my proof of concept implementation in hope that at some point a proper API could be implemented. It could be useful as a base for code reading/writing the commit-graph files, or perhaps it could influence design decisions for future go-git versions (such as moving over to interfaces instead of structs).

I added few more things to my branch:

Experimental implementation of bloom filters for filtering paths (idea taken from https://blogs.msdn.microsoft.com/devops/2018/07/16/super-charging-the-git-commit-graph-iv-bloom-filters/)
Example of listing a directory tree from a specific revision along with last commit for each entry
Example of building the commit graph using go-git, the output is verifiable using git commit-graph verify


Incorrect error wrapping

[here] (https://github.com/Intelworks/cabby/blob/master/cabby/abstract.py#L233) the original error gets casted to string, which is not an intended behaviour

fixed in 3d6508076a37297c7731c4a22d3c04dcf8debbc6


Prepare PHP 8.4

PHP 8.4.1 released officially on November 21th, 2024.
Docker image has been build: https://hub.docker.com/layers/library/php/8.4.1-fpm-bookworm/images/sha256-eb37f58646a901dc7727cf448cae36daaefaba79de33b5058dab79aa4c04aefb?context=explore

Possible additional enhancement: docker bake action

Superseded by https://github.com/ToshY/docker-php


Rocky Linux release 8.10

with the "update to dotnet 8" https://github.com/externpro/buildpro/issues/75 the bld image is now Rocky Linux release 8.10
smanders@bpbldlatest:/bpvol/buildpro (dev)
$ cat /etc/rocky-release
Rocky Linux release 8.10 (Green Obsidian)

however, the pro image also needs to be Rocky Linux release 8.10 (because nothing has changed it is still 8.9)

smanders/externpro needs a release built on this updated pro image https://github.com/smanders/externpro/releases
this is because the Findexternpro.cmake script calls xpCheckInstall() https://github.com/externpro/externpro/blob/24.05/cmake/Findexternpro.cmake#L76
and xpCheckInstall() produces a warning if the linux distribution used to build externpro differs from the linux distribution using that release of externpro https://github.com/externpro/externpro/blob/24.05/cmake/xpfunmac.cmake#L1327-L1343

all of the images (pro, bld, dev, run) are Rocky 8.10 now, verified by starting a container based on each image and running the command:
$ cat /etc/rocky-release
Rocky Linux release 8.10 (Green Obsidian)

closing as complete with commit to dev branch referenced above


feat(spid): Increase TPM RDFIFO depth to 16

This commit increases the TPM Read FIFO size to 64 Bytes (16 x 4B).
The previous impl of TPM Read FIFO relies on the SW latency. The SW
latency should not be long so that SW is able to write the Read data
continuously. In order to satisfy the assumption, SW shall turn off
interrupts.
The requirement above could not comply with SW architecture. So, this
commit increases the size for SW to write full 64 B at once.
Latter design change will follow. The design change is for HW to send
the TPM Read data only when full payload size is ready in the FIFO.

@zi-v

@eunchan just to quickly double check. When you say Latter design change will follow. The design change is for HW to send the TPM Read data only when full payload size is ready in the FIFO., you don't mean we only send out once we have 64B right? But rather whenever the software decides the full payload is "ready"?

@eunchan just to quickly double check. When you say Latter design change will follow. The design change is for HW to send the TPM Read data only when full payload size is ready in the FIFO., you don't mean we only send out once we have 64B right? But rather whenever the software decides the full payload is "ready"?

Right. The HW will check if the content in RdFIFO is greater than or equal to the TPM command header's xfer_size.

@eunchan just to quickly double check. When you say Latter design change will follow. The design change is for HW to send the TPM Read data only when full payload size is ready in the FIFO., you don't mean we only send out once we have 64B right? But rather whenever the software decides the full payload is "ready"?

I believe it'd be when the FIFO has the amount of data requested by the TPM master. If memory serves, the protocol has the master sending how much data it wants, and spi_device has just the one place to backpressure the master. So we'd fill the FIFO with the entire response before releasing from the wait state.

sounds good, thanks for explaining all.


Add enter packing date button

Description
Add an Enter packing button for TSP users when a shipment has been approved. I remove it once the actual pack date is set.
Setup
make db_dev_reset && make db_dev_migrate && go run ./cmd/generate_test_data/main.go -scenario=7
make server_run
make tsp_client_run

Code Review Verification Steps

[x] End to end tests pass (make e2e_test).
[x] Request review from a member of a different team.
[x] Have the Pivotal acceptance criteria been met for this change?

References

Pivotal story

Screenshots

@kahlouie - there were some really minor changes I made to this PR but you basically nailed it.  I'm going to see if @kilbergr will review it so we can get this into production.  Nice work!

@kilbergr - This PR should be ready to go now.


Setup Read The Docs

Setup RTD :D

@wiederm @chrisiacovella I have setup RTD to fail if there are warnings when building the docs, I really recommend this since it will catch things like broken links, BUT it is something you need to remember when you are looking at the build log and think "why does it have an error when there is no error"

I think the CI failures were due to a failure to connect to qcarchive.  I resubmitted one of the tests to see if that was the issue.

This appears to be an issue with qcportal 0.54 (mostly a change in behavior in ds.entry_names). I raised an issue with the qcportal folks: https://github.com/MolSSI/QCFractal/issues/817
Basically just need to add in an extra line of ds.fetch_entry_names() before querying ds.entry_names.

Took more than a single line addition to fix (had to switch to some local caching using the dict of a qcportal record).  But the CI now passing, so I think it is safe to merge.


[Bug] Wrong activity response type

Describe the bug
I send an array from my activity as a result, but in promise step then I get stdClass instead of array.
To Reproduce
Steps to reproduce the behavior:

Create activity that will send an associative array.
Create workflow where you call activity and add post-processing in then step.
Try to get value from result as if it array.

Expected behavior
I get value
Expected behavior
I get an error PanicError: Cannot use object of type stdClass as array (type: Error, retryable: true)
Screenshots/Terminal ouput

You can use this snippet:
#[\Temporal\Activity\ActivityInterface(prefix: "app.")]
class CommonActivity
{
    public function slow(string $name): array
    {
        return [
            'result' => 'Hello, ' . $name,
        ];
    }
}

#[\Temporal\Workflow\WorkflowInterface]
final class FastWorkflow
{
    #[\Temporal\Workflow\WorkflowMethod("wf")]
    public function run(string $name, int $count): \Generator
    {
        $activity = Workflow::newActivityStub(
            CommonActivity::class
        );

        $activity->slow($name)->then(function ($result) {
            $result['result'];
        });

        return 0;
    }
}

As I understand the problem is locating here. But I don't know how to solve it.

This is not a bug (More precisely, this is documented behavior). Please use DTO instead.
Related issue https://github.com/temporalio/sdk-php/issues/93

Then can you make behaviour more predictable:
if you return ['key' => 'test'] it will be converted to an object, but if you return ['test'] it will be converted to an array.

if you return ['key' => 'test'] it will be converted to an object, but if you return ['test'] it will be converted to an array.

Now that's how it works, isn't it?

Yes, it is. But it isn't clear.


Compilation failure with 1.83

We're seeing one specific failure of Boost.Signals2 in our Gentoo package tree: Bug 912309
This code used to compile fine under Boost 1.82. The offending line is:
stanzaChannel_->onPresenceReceived.disconnect(boost::ref(onPresenceReceived));

here stanzaChannel_->onPresenceReceived is of type boost::signals2::signal<void (std::shared_ptr<Message>)> and the onPresenceReceived argument on the right-hand side is of type boost::signals2::signal<void (std::shared_ptr<Message>)> too. The error boils down to an ambiguous overload
/usr/include/boost/function_equal.hpp:17:14: error: no match for 'operator==' (operand types are 'const boost::reference_wrapper<boost::signals2::signal<void(std::shared_ptr<Swift::Presence>)> >' and 'const boost::reference_wrapper<boost::signals2::signal<void(std::shared_ptr<Swift::Presence>)> >')
   17 |   { return f == g; }
      |

Do you have any ideas or guidance that could help us fix this locally? Upstream seems mostly gone, and this is the last bug for us in Boost 1.83. Paging in @pdimov who recommended I file a bug here.

To fix, you'd need to patch boost.function and boost.signals2 from development, or wait for boost 1.84, or compile against a version of the c++ standard which is not c++20

@fmhess thanks, could you point me to the commits that purport to fix this? I can try them locally, since boost 1.84 is still some time away

@fmhess ping. Could you please have a look, which commits are needed for fix? Thank you!

Ping

Unfortunately, the code still fails with boost 1.84 :cry:

Ok, I fixed disconnection by slots which are signals, and slots which are wrapped in a boost::reference_wrapper.  The fix is on the develop branch with the following two commits:
commit 2ba258f7b465e7bde14663ca3a966019b4ec3694
commit 4d994bbed820882059c7842ba5e230a26d68f2f0

I can confirm, that appliying those patches against boost-1.83 (haven't tested boost-1.84), makes it compiling again.


Negative Test Cases are missing for the Login functionality

Some of the Negative Test Cases are missing for the Login file, need to add if any

@rkpareek I logged in to LoginRadius idx and I have a few negative test cases. If no one is working on it, can you please assign this issue to me as well?


[POC] Configure setting ownerState on slots

DO NOT MERGE
This is a playground that illustrates an alternative way of accessing ownerState in slot components.
A SwitchUnstyled is used for this example.
Related issue: #32882
This is one of the possible solutions. The other one is described in #35654.
A new prop was added to SwitchUnstyled - provideOwnerStateToSlots. It controls whether ownerState is passed as a prop to slot components. Developers can set this prop when they intend to make rendering of a slot dependent on the state of the owner component (as shown in this PR and on the linked codesandbox). The prop would be set to false (or not set) when slot components don't expect ownerState in props. This will be especially useful when using 3rd party components as slots (for example React Router's Link as a root slot of a Button).
Advantages over the existing API:

3rd party components can be used in slots without wrapping them in custom code that strips out the ownerState from props.
Potentially better performance than #35654

Disadvantages:

Low granularity - the prop doesn't work per slot, but on the whole component. If one slot require customisation using ownerState and the other is a 3rd party component, they will require additional code to work together.
Low discoverability - it is not immediately obvious why slot components don't work with ownerState out of the box
Another prop to support on all components

Playgrounds
New API: https://codesandbox.io/s/recursing-turing-8m5yvj?file=/src/App.tsx
Existing API: https://codesandbox.io/s/confident-hermann-q1kiwf?file=/src/App.tsx

I don't think we should consider this alternative to https://github.com/mui/material-ui/pull/35654 as it is not as granular as the other one. If we add this option per slot that would be a clear mapping of the functionalities.

We could have something like:
<SwitchUnstyled slots={slots} slotConfig={{ thumb: { provideOwnerState: true } }} />

Do you think it's worth creating a playground?

<SwitchUnstyled slots={slots} slotConfig={{ thumb: { provideOwnerState: true } }} />

I was thinking more of allowing people to add them in the slotProps and intercept the provideOwnerState prop in the unstyled component. Something more towards:
<SwitchUnstyled slots={slots} slotProps={{ thumb: { provideOwnerState: true } }} />

Closing in favor of #35668


adding automated tests for non-UI demos

adding automated tests for non-UI demos

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Viacheslav Sytnyk seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


IHomieSetting::settings first, HomieNode-settings second!

Set initialization priority of IHomieSetting::settings to value of highest allowed priority (101).
This allows other static variables to be of type HomieSetting< T>.
See https://github.com/euphi/HomieNodeCollection/blob/master/src/RGBWNode.cpp for example.
Note: It makes sense to have a static HomieSetting member, if you have a class that may be instantiated multiple times. (e.g. two LED Strips connected to the same ESP8266, as shown in https://github.com/euphi/ESP-LEDCtrl).

Additional remark:
The C++ standard gives no information about initialization order of static object in different compilation units.
The attribute init_priority is a GCC extension that allows the linker to sort the objects; 101 ist the lowest value (highest priority) that is available for normal use.
In my case it seems that my static HomieSetting<long> RGBWNode::fadeDelay ("RGBfadeDelay", "fade delay");  was initialized before  IHomieSetting::settings . Interestingly the call to push_back in the constructor of HomieSetting<long> just did nothing?! (I expected a crash, but the vector just stayed empty).


Update to official Cpython wasi builds

I saw that as of 3.13, wasi is a tier 2 target, and there appear to be builds here: https://github.com/brettcannon/cpython-wasi-build
Would this solve the need for a fork with patches for sockets? Or are you patches still necessary?
Updating to 3.13 would also mean needing to update the wasi-wheels repo (as we've found the version of pydantic there doesn't build on mac on 3.13 at least), but I just wanted to get your feedback on if it is possible to start utilizing the new builds.
Happy to do the experiment, but wanted to check in first. Thanks!

My patches are still necessary to support sockets.  Brett considered adding WASI socket support upstream but decided not to since the vast majority of the sockets tests in the CPython test suite require multithreading, and WASI doesn't have that yet.  There's also the challenge of communicating to users that WASI has sockets, but that they're only really useful via asyncio.  In short, the requirements for supporting sockets upstream are more stringent than they are for this project, and we probably won't reach that bar until we have multithreading.
We can definitely rebase my (fairly trivial) patches onto 3.13, though.


fix(PageHeaderActions): remove suspend/resume for SDK service

Suspending a SDK service is not supported, so remove its actions from the service table and service actions.
This is very similar to @weblancaster PR from a few weeks ago.
Closes DCOS-17982.
Checklist

[ ] Did you add a JIRA issue in a commit message or as part of the branch name?
[ ] Did you add new unit tests?
[ ] Did you add new integration tests?
[ ] If this is a regression, did you write a test to catch this in the future?

run tests

run alfred

run alfred tests


Bump ramda to 0.28.0

Our project indirectly pulls ramda and our audit system flags v0.21.0.  Need to bump it to v0.28.0

jhamlet Can you please approve this?


eventOptionsApi should be true by default

In my opinion the eventsOptionsApi should be set to true by default or should be emphasized in README.md.
I banged my head at this for hours trying to figure out the weird behavior of  PrimeVue...
I bet that any framework out there needs the options API to be enabled!

You're right, I didn't realize it could break stuff.


Player Overlaps Content

IDK if it's just Youtube ES (spain) or just for my custom player sizes, but this is what I wope up to:

This solved the problem for me:
/* YoutubeCenter temporal fixes */

#placeholder-player .player-api {
    position:absolute;
}

#player-api {
    position:relative!important;
}

Hope it helps.

What version of YouTube Center are you using? If you're not using the developer version then try it.

Upgrading to developer version solved the problem. Thanks a lot, YePpHa.


Add NetworkPolicy for Prometheus

@k8s-bot ok to test

@mgoodness I've been trying to implement .Capabilities to automatically provide the correct networkPolicy apiVersion, but have been running into a lot of issues.
For starters, comparator functions (ge, le) do not accept strings. Only int. Which is quite confusing as there's a few places where charts are comparing strings.
I can get past that syntax error by casting them to integers. But then when I try to deploy my chart, .Capabilities.KubeVersion.Minor is always nil.
Any pointers on what's going on? I've tried using helm v2.4.2 and v2.5.1

/retest

Thanks for helping me to realize I wasn't passing the current context to my template functions @mgoodness .
I think I've addressed all feedback at this point. Look good? feedback is in 2nd commit. I can squash when ready to merge

/lgtm


FEATURE: 开启KeepAlive之后 切换tab选项卡，新增保留滚动位置功能

Version
Vben Admin V5
Description
切换tab选项卡，保留页面滚动位置
Proposed Solution
切换tab选项卡，保留页面滚动位置
Alternatives Considered
No response
Additional Context
No response
Validations

[X] Read the docs
[X] Ensure the code is up to date. (Some issues have been fixed in the latest version)
[X] I have searched the existing issues and checked that my issue does not duplicate any existing issues.

目前滚动是在body，这个应该是支持不了的


transform prop not working

svg transform prop not working

Can you make a reproduction with v9.2.4 ?

I'm already using version 9.2.4.

Repro?

yes I tried but still not working.

Same here, trying to apply zoom to the svg (with uri source)

I cannot help unless you provide the code that is failing... Do you imagine how your statements look for other people? One more useless reply and I'm closing this issue.

In my case it was my fault, i was passing transform as a prop, now i've just put it on the style prop and it's working.
<SvgUri                         width="400"                         height="400"                         source={{uri: 'http://thenewcode.com/assets/images/thumbnails/homer-simpson.svg'}}                         style={{                             transform: [                                 {translateX: left * resolution},                                 {translateY: top * resolution},                                 {scale: zoom},                             ]                         }}                     />
Anyway performance wise is a bit laggy in comparison with a webview with same uri and same transform applied (i've set a pan responder on the parent's view).


Is there a way to change the DNS server without TUNInterface

Hi, TUNInterface does not work any more. In this case, any way to change the global DNS server for iOS?  Thanks

You can set the dns to what ever server you want with network extension.

在 2018年4月3日，20:55，LambChop<EMAIL_ADDRESS>写道：
Hi, TUNInterface does not work any more. In this case, any way to change the global DNS server for iOS? Thanks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Thanks for the reply. You mean NEDNSProxyProvider?  This is available in iOS 11.

Just take a look at the configuration you can specify when you start vpn.

On 3 Apr 2018, at 21:33, LambChop<EMAIL_ADDRESS>wrote:
Thanks for the reply. You mean NEDNSProxyProvider? This is available in iOS 11.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.


Warn should return error object

Hey first of all I absolutely love logxi & feel bad about posting this first "issue" that is really a feature request!
Request: can we have Warn()  return the first error param like Error() does.
Reasoning by real example:-
I have a function that unpacks a packet received from the network, and analyzes its fields to make sure they are all legal in relation to the protocol and state transitions they will drive. In some circumstances, the packet will be illegal in the sense that it breaks a sequence of transitions, or something like that, and thus the function returns a predefined error describing what has happened, and higher level code resets the protocol. In this case the protocol is an overlay over and existing P2P network and such conditions are triggered quite naturally by various things and so resetting the virtual connection is quite normal and only merits a warning in the logs.  Nonetheless, I still want to pass up the error so the protocol can be reset.
Would there be any probs with having Warn return errors in the same way?
Best, Dominic

You're the second person to suggest it. I'll look closer tomorrow to see if there is any performance impact. If not, I'll add it.

Is this what you expect? If a warning entry has an error, return the error
// returns error
return logger.Warn("has an error", "err", error)

If a warning entry DOES NOT have an error it should return nil
// returns nil
return logger.Warn("plain warning", "key", value)

Please try and test branch issue-11

Yes, that works great, thanks.
On Sat, Jun 6, 2015 at 7:57 AM, Mario Gutierrez<EMAIL_ADDRESS>wrote:

Is this what you expect? If a warning entry has an error, return the error
// returns error
return logger.Warn("has an error", "err", error)
If a warning entry DOES NOT have an error it should return nil
// returns nil
return logger.Warn("plain warning", "key", value)
—
Reply to this email directly or view it on GitHub
https://github.com/mgutz/logxi/issues/11#issuecomment-109593346.

I'll leave this open for a bit to ensure stability. Will integrate in a week or so.


Some seo feedbacks

Hello nice theme,
i would like to suggest some changes:

the title and metadescription for the home page should be defined in the config.toml, otherwise the theme uses a default value: how do you configure theme ? Could you write an example ?
the internal pages get one of those possible values ".Description | default .Params.subtitle | default .Summary": i suggest cropping the final value to 150 characters to avoid very long descriptions. This is also useful to generate social media previews.

thanks !

Hi,
Thanks for compliment. Please find my comments:

Now the metadescription is the description in the post.
Default summary option will enable shortly.

Summary option is enabled.


Could the SSD model be training on multi-gpu?

Environment
Hardware Environment(Ascend/GPU/CPU):

Uncomment only one  /device <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:
/device ascend
/device gpu
/device cpu

Software Environment:

MindSpore version (source or binary):
Python version (e.g., Python 3.7.5):
OS platform and distribution (e.g., Linux Ubuntu 16.04):
GCC/Compiler version (if compiled from source):

Describe the current behavior
Describe the expected behavior
Steps to reproduce the issue

Related log / screenshot
Special notes for this issue
I have no Ascend cards. So i want to train ssd on GPU.

能不能尽快回复下？能不能一句话

Sorry，当前还不支持SSD在GPU上面训练


cannot select column value which contains tab

https://github.com/ClickHouse/clickhouse-jdbc/blob/5e6f74b89354e60af7d0c9437eef0520ee9ffda1/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/response/ClickHouseResultSet.java#L201

????
For TSV CH encode tab as \t. Tab  = 0x09 can be returned only as column separator.

????
For TSV Format CH encodes TAB as \t. Tab = 0x09 can be returned only as a column separator.

Sorry, I forgot the format. The sample query is "select x from db.tbl format csv", while x contains tab

JDBC driver does not support queries with FORMAT.

@den-crane, I'll enhance JDBC driver to support multi-format for better usability. Taking above query as an example, when a header is missing from response, we can use results Nullable(String) as default. Special character(e.g. delimiter of fields/rows) handling will be improved after switching default format from TSV to RowBinary in 0.3.2.
Will get back to this after I'm done with the two new modules: clickhouse-client and clickhouse-grpc-client :sweat_smile:


Tracking persists in typography tokens even when value is empty (ui)

From Slack:

Hey guys, how do I get rid of 'Tracking' if I delete its value? It is still shown in the documentation as "letterSpacing":""
This affects all properties when they get deleted

Slack Message

It seems like as soon as a user focuses on any input that is empty in typography tokens, we save that as an empty string.


Introduce Overflow & Displacement tracking.

Changes:

Introduce Overflow Trackers, with features to select the desired variant.
Introduce Displacements, conditional on the Overflow Tracker variant tracking removals.
Adjust insertion/removal of items in RawTable to properly track overflow and displacement.
Adjust find in RawTable to short-circuit probe sequence when overflow tracking ensure there is no need to probe further.
OF NOTE: enforce group alignment.

Motivation:
Overflow tracking allows cutting a probing sequence short, which may be beneficial.
The use of a multitude of variants makes it easier to test and benchmark all variants, thus making it easier to pick the right one... or not pick any.
The groups are now forcibly aligned because overflow tracking is performed on a group basis, and does not work with "floating" groups.
Design:
Overflow trackers and displacements are tacked at the end of the allocation, and their access is minimized, so that their performance impact is minimized.
In particular:

An element which does not overflow on insertion need not trigger a write to any overflow tracker, nor to its displacement.
Only if removals are tracked is the displacement read on removal.
Only if removals are tracked and the displacement is non-0 are overflow trackers written to on removal.

This follows the philosophy of "You Don't Pay For What You Don't Use", and makes the impact as minimal as can be.
Benchmarks:
Methodology: each variant was benchmarked 3 times, and for each benchmark the best result was picked. Then all results were normalized on the current master for ease of comparison.

The other variants show some promise, but the results vary quite a bit depending on micro-optimization. Aggressive (always) inlining of key methods seemed to help, for example, but I am not so sure whether may_have_overflowed should be inlined since it's expected to be rare.
Whether the benchmark "suffer" from high probe counts is unknown to me. Overflow tracking is only helpful to cut probing sequences short, and thus pure overhead if there's no quadratic probing.

In any case, at least with the scaffolding in place it should be possible to experiment further if there's any will to.

:umbrella: The latest upstream changes (presumably #525) made this pull request unmergeable. Please resolve the merge conflicts.


[6.1.0] Cannot complete OAuth process. Could not find an OAuth cookie for shop url

Issue summary
I am trying to demonstrate how to retrieve the Shopify store access_token using the following code, and I keep receiving this error. I reviewed another issue (https://github.com/Shopify/shopify-api-js/issues/582), and it mentioned the issue should be fixed. Unfortunately, I still experience this issue.
  shopifyAPI.auth.callback({
      isOnline: false,
      rawResponse: request,
      rawRequest: response
  })

Expected behavior
to have Shopify.auth.callback({ isOnline: true, rawRequest: req, rawResponse: res, }) to not throw an error
  const shopifyAPI = shopifyApi({
    apiKey: apiKey,
    apiSecretKey: apiSecret,
    scopes: getShopifyAppScopes(),
    hostName: getShopifyCallbackHostname(),
    hostScheme: SHOPIFY_APP_HOST_SCHEME,
    apiVersion: SHOPIFY_APP_API_VERSION,
    isEmbeddedApp: true,
  })
  const callbackResponse = await shopifyAPI.auth.callback({
    isOnline: false,
    rawResponse: {},
    rawRequest: {}
  })

Actual behavior
it throw the error :
Error: Cannot complete OAuth process. Could not find an OAuth cookie for shop url:
    at CookieNotFound.ShopifyError [as constructor] (/Volumes/work/workspaces/my-works/testing/node_modules/@shopify/shopify-api/lib/error.ts:4:3)
    at new CookieNotFound (/Volumes/work/workspaces/my-works/testing/node_modules/@shopify/shopify-api/lib/error.js:174:42)
    at Object.<anonymous> (/Volumes/work/workspaces/my-works/testing/node_modules/@shopify/shopify-api/lib/auth/oauth/oauth.ts:139:13)
    at step (/Volumes/work/workspaces/my-works/testing/node_modules/tslib/tslib.js:144:27)
    at Object.next (/Volumes/work/workspaces/my-works/testing/node_modules/tslib/tslib.js:125:57)
    at fulfilled (/Volumes/work/workspaces/my-works/testing/node_modules/tslib/tslib.js:115:62)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)

Could someone help to take a look at this issue? Thanks.

Thanks for flagging this ... we need to document this a bit better.  It's recommended to put the call to shopify.auth.callback inside a try...catch and redirect to OAuth if the the CookieNotFound error is thrown.
An example of this can be seen in an older non-Express version of the app template, here.

@mkevinosullivan I did like you suggest and it's always going inside a loop:
await shopify.auth.begin({
  callbackPath: "/auth/callback",
  isOnline: false,
  rawRequest: req,
  rawResponse: res,
  shop: req.query.shop
});

[shopify-api/INFO] Beginning OAuth | {shop: xxxxxx.myshopify.com, isOnline: false, callbackPath: /auth/callback}
[shopify-api/DEBUG] OAuth started, redirecting to https://xxxxxx.myshopify.com/admin/oauth/authorize?client_id=xxxxxx&scope=read_orders%2Cread_products&redirect_uri=http%3A%2F%2Fxxxxxx.ngrok.io%2Fauth%2Fcallback&state=656248294749758&grant_options[]= | {shop: xxxxxx.myshopify.com, isOnline: false}
const callback = await shopify.auth.callback({
  rawRequest: req,
  rawResponse: res
});

[shopify-api/INFO] Completing OAuth | {shop: xxxxxx.myshopify.com}
[shopify-api/ERROR] Could not find OAuth cookie | {shop: xxxxxx.myshopify.com}
CookieNotFound [Error]: Cannot complete OAuth process. Could not find an OAuth cookie for shop url: xxxxxx.myshopify.com
at CookieNotFound.ShopifyError

I don't see any cookie in the request header passed to the callback request.
So unless I'm missing something, we cannot execute the callback because of the cookie issue, and redirecting to the OAuth begin process doesn't seem to fix anything.

@mkevinosullivan I dig a little more and see that the call to /auth, which execute the "shopify.auth.begin" function return this:
Set-Cookie | shopify_app_state=xxxxx;sameSite=lax; secure=true; path=/auth/callback;expires=Thu, 26 Jan 2023 13:48:25 GMT

Set-Cookie | shopify_app_state.sig=xxxxx=;sameSite=lax; secure=true; path=/auth/callback;expires=Thu, 26 Jan 2023 13:48:25 GMT

Then, when shopify call the callback auth/callback, there no cookie in both the request & the response.

@mkevinosullivan - Currently testing and re-creating the OAuth process without the library. I don't know if it's strict rule, but I read in a few place that signed cookie start with "s:", which isn't the case with the library. The library instead rename the cookie name "shopify_app_state.sig".
Maybe it can help.

@mkevinosullivan - Ok, i confirm that the issue is based on how this library is setting up the signed cookie.
I followed the tutorial at https://shopify.dev/apps/auth/oauth/getting-started#ask-for-permission and it works perfectly.

One additional thing to try ... add the following
  logger: {
    level: LogSeverity.Debug,  // import { LogSeverity } from "@shopify/shopify-api";
  },

to the configuration you pass into the call to shopifyApi ... the debug level may reveal a bit more

LogSeverity.Debug does not help at all.
[shopify-api/INFO] Completing OAuth | {shop: XXX.myshopify.com}
[shopify-api/ERROR] Could not find OAuth cookie | {shop: XXX.myshopify.com}

Going to dig in further, but this is extremely annoying.

Anyway, I was able to get things working by implementing the oauth code manually.
interface AuthConfig {
  apiKey: string;
  secret: string;
  scopes: string[];
  callbackPath: string;
  homePath: string;
  onAuthStart: (shop: string) => void | Promise<void>;
  onAuthSuccess: (response: unknown) => void | Promise<void>;
}

export const shopify = ({
  apiKey,
  secret,
  callbackPath,
  scopes,
  onAuthStart,
  homePath,
  onAuthSuccess
}: AuthConfig) => {
  const verify = verifyWithKey(secret);

  return {
    async auth(ctx: Koa.Context, next: Koa.Next) {
      const params    = ctx.URL.searchParams;
      const shop      = params.get('shop');
      const timestamp = params.get('timestamp');
      const hmac      = params.get('hmac');

      if (!shop) {
        ctx.throw(422, 'missing shop');
      }

      if (!timestamp) {
        ctx.throw(422, 'missing timestamp');
      }

      if (!hmac) {
        ctx.throw(422, 'missing hmac');
      }

      params.delete('hmac');
      const query = params.toString();

      if (!verify(query, hmac)) {
        ctx.throw(401, `cant verify query ${query}`);
      }

      await onAuthStart(shop);

      const shopifyUrl = shopifyAuthUrl({
        apiKey,
        scopes,
        callbackPath,
        shop,
        host: ctx.host,
        grantOptions: 'value',
      });

      ctx.redirect(shopifyUrl);
      await next();
    },

    async callback(ctx: Koa.Context, next: Koa.Next) {
      const params = ctx.URL.searchParams;
      const shop   = params.get('shop');
      const host   = params.get('host');
      const hmac   = params.get('hmac');
      const code   = params.get('code');
      const grant  = params.get('state');

      if (typeof hmac !== 'string') {
        ctx.throw(422, 'bad hmac');
      }
      if (!shop || !shop.match(/[a-zA-Z0-9][a-zA-Z0-9\-]*\.myshopify\.com/)) {
        ctx.throw(422, 'bad shop');
      }

      if (typeof code !== 'string') {
        ctx.throw(422, 'bad code');
      }

      if (typeof host !== 'string') {
        ctx.throw(422, 'bad host')
      }

      params.delete('hmac');
      const query = params.toString();

      if (!verify(query, hmac)) {
        ctx.throw(401);
      }

      const tokenParams = new URLSearchParams();

      tokenParams.set('client_id', apiKey);
      tokenParams.set('client_secret', secret);
      tokenParams.set('code', code);

      const tokenResponse = await fetch(
        `https://${shop}/admin/oauth/access_token`,
        {
          method: 'post',
          body: tokenParams,
        }
      );

      if (!tokenResponse.ok) {
        console.error(tokenResponse.status);
        console.error(await tokenResponse.text());
        ctx.throw(401);
      }

      const response = camelKeys(await tokenResponse.json());

      await onAuthSuccess(response);

      if (grant === 'value') {
        const shopifyUrl = shopifyAuthUrl({
          apiKey,
          shop,
          scopes,
          callbackPath,
          host: ctx.host,
          grantOptions: 'per-user',
        })

        ctx.redirect(shopifyUrl);
        await next();
        return;
      }

      const isEmbedded = params.get('embedded') === "1";

      if (isEmbedded) {
        const shopifyHost = Buffer.from(host, 'base64').toString();
        const redirect    = `https://${shopifyHost}/apps/${apiKey}?host=${host}&shop=${shop}`;

        ctx.redirect(redirect);
        await next();
        return;
      }

      ctx.redirect(`/${homePath}?shop=${shop}&host=${encodeURIComponent(host)}`);
      await next();
      return;
    }
  }
};

type UrlProps = {
  apiKey: string;
  grantOptions: 'per-user' | 'value';
  callbackPath: string;
  shop: string;
  host: string;
  scopes: string[];
}

const shopifyAuthUrl = (props: UrlProps) => {
  const shopifyParams = new URLSearchParams();

  shopifyParams.set('client_id', props.apiKey);
  shopifyParams.set('scope', props.scopes.join(','));
  shopifyParams.set('redirect_uri', `https://${props.host}/${props.callbackPath}`)
  shopifyParams.set('grant_options[]', props.grantOptions);
  shopifyParams.set('state', props.grantOptions);

  return `https://${props.shop}/admin/oauth/authorize?${shopifyParams}`;
};

The only thing missing is the code for camelKeys and verifyWithKey but that shouldn't be the problem. I'm not setting cookies anywhere though. Are they strictly necessary? What are you using cookies for, and or should I be setting them?

Hitting the same issue, but the fix to catch the CookieNotFoundError and try again isn't helping. It's just not setting the cookie

I'm also hitting this same issue.  Restarting the auth process hen the error is an instanceof CookieNotFound also caused an infinite redirect.

We were able to reproduce the issue if the shop domain is not standard (like XXXXX.myshopify.com), but the custom one. Because, yeah, redirecting to the OAuth if the the CookieNotFound error found not helping if the cookie even wasn't set

could you also get around the issue by doing the following?

if shop exists then look for session in storage
if expired push through oauth and save new session
if not expired then push to app frontend

if !shop then run through oauth

then whenever you make a call you can check to see if the session is or isnt valid then perform following steps...

@zds97 - Thanks for your feedback. Again, what I was seeing was that on the first install the session did generate (using Chrome), however it wouldn't work afterwards, and thus I got the error.
Originally I implemented what I suggested, but then I remember that the isOnline allows for true or false. My app doesn't require such strict session requirements so I have set it to false, and thus far working as intended on Chrome.
I haven't tested, but I wonder if having the the isOnline set to false and trying to "re-oauth" will throw the error vs having it set to true may not throw the error. Just taking a stab in the dark here. Again, I would also hypothesize that once the session has been created the browser might be storing the session (unbeknown to us) and maybe clearing your browsing data might fix this in terms of unblocking your development.

@abharvey Sure.  All of our instances have shops, along with the rest of the Shopify install information associated with the request, so it doesn't seem like Google crawler is causing the issue.  It seems to just be missing the cookie as mentioned above.
Here's an example from yesterday and the userAgent logging:
userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
I can add additional logging if there's something specific you're looking for.

@zds97  Thanks for getting back to us quickly. We're having difficulty reproducing the error consistently with the exception of when Chrome tries to crawl the routes. As far as logs that could help, if you could provide some debug logs before and after the error you mentioned in the issue that may help.
If you're able to reproduce consistently perhaps an example app repo could help us debug as well.
@flamendless Could you provide any errors you're seeing in the server side logs?

@zds97 i dont get detailed logs (idky how to configure the loggers) but heres what i get same as others: (no access to pc right now so I'll just copy-paste from the other comments)
Error: Cannot complete OAuth process. Could not find an OAuth cookie for shop url:
And the
[shopify-api/ERROR] Could not find OAuth cookie | {shop: XXX.myshopify.com}
Im using the template provided by the shopify cli using shopify/shopify-express-app

@flamendless Thanks, since you're using the app-express template you can edit your config to add addition logging like this:
// in shopify.js (unless renamed)
// add import for the enum
import { LogSeverity } from "@shopify/shopify-api";

const shopify = shopifyApp({
  api: {
    logger: {
      level: LogSeverity.Debug,
    }
//... Rest of your config

@abharvey @zds97 Just tried again, now it works. I can install the app to my  dev store properly. Weird

Some people might find [this] (https://github.com/Shopify/shopify-api-js/issues/726#issuecomment-1518228755) useful.

Any updates or solutions for this issue? It's an emergency because of affecting old apps upgrading to catch up with the latest API. so in case this issue couldn't be resolved soon, the app couldn't be used, affecting to revenue of the business which develops the app on Shopify.

I've created a PR that, at least for our case, solves the issue by allowing to set an optional cookie domain (by default the library uses the domain that starts the oauth flow).

Experiencing the same issue with oauth flow when im routing the requests through a few services on different domains, hopefully @cmelendez PR gets in soon!

@wweksie for the WIN!
I want to confirm that changing the samesite within the Shopify oauth package from lax to none does indeed work to resolve the issue on Chrome.
Here is a screenshot of where this package live:

We have the same issue - sometimes getting "Could not find OAuth cookie" error, but not consistently.
Right now, this is blocking us from publishing a new app to the Shopify App Store, since the reviewers are rejecting it (!!)
I previously posted in what looks like a duplicate thread - https://github.com/Shopify/shopify-api-js/issues/933
We'd REALLY appreciate an update from the Shopify/core team on this issue. Exploring workarounds in the interim.
As you can see from this set of example logs, for the same shop, same setup, etc. back to back OAuth attempts. The first time fails, the second time succeeds.
oauth-logs.log

Can you guide me on How you did that, I am suffering from the same problem.
It works properly on the development server but it can not find the cookie while I run its production version on the server

have the same issue :(((
Error during OAuth callback | {error: Cannot complete
OAuth process. Could not find an OAuth cookie for shop url: **-test.myshopify.com}

Catching the CookieNotFound error and then redirecting to Shopify again (and back) solves the problem for me. Found it in an example.
    try {
      const session = (await this._shopifyAPI.auth.callback({
        rawRequest: params.request,
        rawResponse: params.response,
      })).session;

      return session?.toObject();
    } catch (e) {
      if (e instanceof InvalidOAuthError) {
        throw new BadRequestException();
      } else if (e instanceof CookieNotFound) {
        await this._shopifyAPI.auth.begin({
          shop: params.shop,
          isOnline: false,
          callbackPath: params.callback,
          rawRequest: params.request,
          rawResponse: params.response,
        });

        return undefined;
      } else {
        throw e;
      }
    }

Has anyone managed to find a fix? Tried this and doesn't work. Still getting same error.

Just ran into this problem, does anyone have a validated way to solve this?
I've got a non-embedded apps and here's what I got from the log
[shopify-api/INFO] Beginning OAuth | {shop: *.myshopify.com, isOnline: false, callbackPath: /api/v1/shopify/callback}
[shopify-api/INFO] Completing OAuth | {shop: *.myshopify.com}
[shopify-api/ERROR] Could not find OAuth cookie | {shop: *.myshopify.com}


U256 support for NUMERIC type

This PR adds support for U256 for NUMERICs in PGSQL. The PRed implementation uses BigDecimal under the hood and constructs the U256 from it.

We don't want to endlessly continue collecting integrations for various arbitrary crates as they present a significant semver hazard. I'd prefer to support something like this: https://github.com/launchbadge/sqlx/pull/1733#issuecomment-1058715718


Uncaught Error: ENOENT, open '/home/ftovaro/.atom/packages/save-session/projects/undefined/project.json'

[Enter steps to reproduce below:]

...
...

Atom Version: 0.186.0
System: linux 3.16.0-31-generic
Thrown From: Atom Core
Stack Trace
Uncaught Error: ENOENT, open '/home/ftovaro/.atom/packages/save-session/projects/undefined/project.json'
At fs.js:82

Error: ENOENT, open '/home/ftovaro/.atom/packages/save-session/projects/undefined/project.json'
  at Error (native)

Commands

Config
{
  "core": {},
  "editor": {
    "invisibles": {}
  }
}

Installed Packages
# User
save-session, v0.11.5

# Dev
No dev packages

This is caused by a bug in the save-session package. Follow that issue for updates.


[CPO] add Cpo docs and fixed tests

@fe1ixxu  feel free to merge this into your PR

@fe1ixxu also can you add some more info to the documentation I started?

@kashif Thank you very much for your efforts! I will begin working on the document shortly!


CI fixes

Closes https://github.com/dask/dask-ml/issues/870

Thanks for pushing through the PR @jrbourbeau . The current failures on this Branch were due to a scikit-learn change.  (details in comment) .
I added a PR https://github.com/jrbourbeau/dask-ml/pull/1/ to your branch which seems to fix all failures locally as well as on CI.

Thanks @VibhuJawa!


fix: Do not toggle NavigationView with boolean

If a boolean is used for the toggleExpanded function and the variable is the same as the current state (i.e. telling the NavigationView to close when it is already closed, or open when it is already open), the NavigationView would have toggled it's state in the past.
This (hopefully) fixes this issue.

@7coil thanks

If you've googled this and need a temporary workaround, just check if the current state is expanded.
if (this.navigationView.current.state.expanded) {
  this.navigationView.current.toggleExpanded(false)
}


Email templates with extra context

Is it possible to pass extra context to the rendering of the email templates ?
I would like to use some extra variables in the templates for customization, I've tried to look at the code but I don't see a way to do that.

Yes - it appears to be undocumented - but there is a mail_context_processor that will be called whenever an email is sent. See: https://flask-security-too.readthedocs.io/en/stable/customizing.html#views
for some details on context_processors.

works great, thanks !


URL handling for security.config-file on access-control.properties

As mentioned here https://trino.io/docs/current/security/file-system-access-control.html#configuration, the security.config-file can either be stored locally or remotely. Thus, this PR add the possibility to use a remote HTTP(S) endpoint to read the configuration file from.

@cla-bot check

@cla-bot check


Test debug configuration should use internalConsole

For #9259

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR)
[x] Title summarizes what is changing
[x] Has a news entry file (remember to thank yourself!)

Codecov Report

Merging #9260 into master will decrease coverage by 0.67%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #9260      +/-   ##
==========================================
- Coverage   57.63%   56.95%   -0.68%
==========================================
  Files         557      557
  Lines       29585    29212     -373
  Branches     4473     4473
==========================================
- Hits        17051    16638     -413
- Misses      11592    11630      +38
- Partials      942      944       +2

Impacted Files
Coverage Δ

...nt/datascience/jupyter/invalidNotebookFileError.ts
0% <0%> (-60%)
:arrow_down:

src/client/formatters/serviceRegistry.ts
50% <0%> (-50%)
:arrow_down:

src/datascience-ui/native-editor/redux/store.ts
50% <0%> (-50%)
:arrow_down:

src/datascience-ui/history-react/redux/store.ts
50% <0%> (-50%)
:arrow_down:

src/datascience-ui/react-common/logger.ts
0% <0%> (-40%)
:arrow_down:

...cience/jupyter/jupyterDebuggerNotInstalledError.ts
33.33% <0%> (-33.34%)
:arrow_down:

src/datascience-ui/react-common/locReactSide.ts
16.66% <0%> (-33.34%)
:arrow_down:

...jupyter/kernels/jupyterKernelPromiseFailedError.ts
0% <0%> (-33.34%)
:arrow_down:

...ience/jupyter/jupyterDebuggerRemoteNotSupported.ts
50% <0%> (-30%)
:arrow_down:

src/datascience-ui/react-common/arePathsSame.ts
33.33% <0%> (-29.17%)
:arrow_down:

... and 43 more

Continue to review full report at Codecov.

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

Looks like Github is not able to see that build succeeded. will try closing and re-open.

Weird. You may need to create a new PR.


Fix missing which-key-enable-extended-define-key symbol #48

This PR has backward compability compared to my commit. On the other hand I think that the comment in the README (basically update which-key if you have an old version) should be okay.

I wasn't sure what approach you'd prefer hence the backward compatibility option. Personally I'm in favor of just updating which-key.


Bubble sort code error

Hi Michael,
Just studying BubbleSort and I think you might have made a mistake in your pseudo code.
In BubbleSort, you're supposed to bubble up to the most currently sorted index, whereas it seems you're iterating to the end of the loop each time.
Your current code runs as such;
for i in range(n-1):
    for j in range(n-1):
         if list[j] > list[j+1]:
             tmp = list[j]
             list[j] = list[j+1]
             list[j+1] = tmp

    return list

Whereas, I believe it's supposed to run as the following; (where i cuts it off from iterating further)
for i in range(n-1):
    for j in range(n-i-1):
         if list[j] > list[j+1]:
             tmp = list[j]
             list[j] = list[j+1]
             list[j+1] = tmp

    return list

Cheers,
Nathan

Closed this issue as it seems some sites have different code examples on the matter. The wiki does seems to actually be looping to the end in the original version, while some present this as an altered optimized version of the original. :)


allow navigating files with keyboard

navigate each item with arrow keys and jump to location with key press. similar to windows file explorer.

Completed via https://github.com/gtsteffaniak/filebrowser/pull/205


Iterate.MountainDuck version <IP_ADDRESS>39

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

(refs/pull/25097/head): PR validation failed. Actual: 3010, Expected: 0. Please test your WinGet package inside of a virtual machine. For more infomation about error codes, please read https://docs.microsoft.com/en-us/windows/win32/msi/error-codes.

Exit code 3010 means success but a reboot is required. I have fixed it in the manifest.

99% sure /norestart worked

Ah great, thanks!


Upgrade terraform provider cloudinit to v2.3.3

Brings this provider out of the Dark Age.
Fixes #121.
Fixes #187.

Move provider to plugin framework. Move to bridge token mapping via metadata.json. Update upstream ref as pseudoversion.
make build sdks

/release minor


feat(label): add limitInPlot label layout

Checklist

[ ] npm test passes
[ ] tests and/or benchmarks are included
[ ] commit message follows commit guidelines

Description of change

limitInPlot 用来解决 label 和 坐标轴之类的组件出现的重叠遮挡问题：

before
after

配置方式：
view1.line().position('Year*Deaths').label('Deaths', {
      layout: [
        { type: 'limit-in-plot' },
        { type: 'path-adjust-position' },
        { type: 'limit-in-plot', cfg: { action: 'hide' } }
      ]
    });

Pull Request Test Coverage Report for Build 393241276

46 of 48 (95.83%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 93.35%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/geometry/label/layout/limit-in-plot.ts
35
37
94.59%

Totals

Change from base Build 391575205:
0.01%

Covered Lines:
10611

Relevant Lines:
11023

💛  - Coveralls

Pull Request Test Coverage Report for Build 393241276
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

46 of 48 (95.83%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 93.35%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/geometry/label/layout/limit-in-plot.ts
35
37
94.59%

Totals

Change from base Build 391575205:
0.01%

Covered Lines:
10611

Relevant Lines:
11023

💛  - Coveralls


NameError in add_license_headers script

I'm hitting a NameError exception when trying to run the add_license_headers script (see below)
Expected behavior
Script adds license headers
Actual behavior
Script fails without adding headers
Steps to reproduce the behavior
[repo-scaffolding (master)]$ python setup.py install
[twemoji-parser (master)]$ add_license_headers ./src
('Path detected :', '\x1b[1m/Users/ndowns/workspace/twemoji-parser/src\x1b[0m')
('Branch detected -', u'\x1b[1mmaster', '\x1b[0m', '\n')
* Please make sure that the source directory is tracked by git.
* Create a new branch before proceeding ahead.
* Make sure you do not have any uncommitted changes in your repository.
It will later enable you to run 'git checkout -- .' and revert all the changes made by this script.
Proceed ahead? (Don't worry, this won't make changes yet) [y/N] y
Traceback (most recent call last):
  File "/usr/local/bin/add_license_headers", line 9, in <module>
    load_entry_point('add-license-headers==0.1', 'console_scripts', 'add_license_headers')()
  File "build/bdist.macosx-10.13-intel/egg/add_license_headers.py", line 518, in entry
  File "build/bdist.macosx-10.13-intel/egg/add_license_headers.py", line 325, in query_yes_no
  File "<string>", line 1, in <module>
NameError: name 'y' is not defined

Bump. Was there any solution for this? I'm seeing the same issue

Hi @n8downs @brayniac! The script requires to be run on Python 3. Can you please let me know if the error persists?
python3 setup.py install
add_license_headers <path>

@OrkoHunter works for me on python3


[i18n] Names of files with non-latin characters are not displayed in "Failed to generate preview" dialog

Description
Files with only non-latin characters in name are not displayed in "Failed to generate preview" dialog
To Reproduce
Steps to reproduce the behavior:

Install Sidekick extension
Add project to Sidekick
Select document files with only non-latin characters in filenames ("பேச்சுவார்த்தைகளும் ஆண்பி", "ひらがな日本語カタカ")
Click on Preview > OK

Expected behavior
Names of files are displayed in "Failed to generate preview" dialog
Screenshots

You need to have at least 1 latin character or number in a filename.

@rofe Can I assume this excludes the extension name (eg. .doc, .pptx, etc)?
If so, is there something we can do to not need to add at least one latin character? I can't imagine that users in East Asia would think about this.


csi-nodeplugin-cinderplugin can't find instance-id

/kind bug
/kind feature

What happened:
While deploying https://github.com/kubernetes/cloud-provider-openstack/tree/master/manifests/cinder-csi-plugin
csi-nodeplugin-cinderplugin keeps crashing due to not able to find specific content.
I1012 11:04:30.120752       1 connection.go:140] GRPC error: rpc error: code = Unknown desc = open /var/lib/cloud/data/instance-id: no such file or directory
E1012 11:04:30.120773       1 main.go:159] rpc error: code = Unknown desc = open /var/lib/cloud/data/instance-id: no such file or directory

What you expected to happen:
/var/lib/cloud/data/instance-id should be filled with proper information from the OpenStack metadata service.
How to reproduce it (as minimally and precisely as possible):
Deploy the cinder-csi-plugin on kubernetes on an OpenStack Ocata platform.
Anything else we need to know?:
There was a short discussion on the slack channel:
https://kubernetes.slack.com/archives/C0LSA3T7C/p1539342540000100
Environment:

openstack-cloud-controller-manager version: Latest
OS (e.g. from /etc/os-release):

NAME="Container Linux by CoreOS"
ID=coreos
VERSION=1745.7.0
VERSION_ID=1745.7.0
BUILD_ID=2018-06-14-0909

Kernel (e.g. uname -a): Linux k8s-k8scluster-node10 4.14.48-coreos-r2 #1 SMP Thu Jun 14 08:23:03 UTC 2018 x86_64 Intel Core Processor (Broadwell) GenuineIntel GNU/Linux

Install tools: https://github.com/pblaas/nagoya

Others:

My current work arround:  curl http://<IP_ADDRESS>/2009-04-04/meta-data/instance-id > /var/lib/cloud/data/instance-id

/var/lib/cloud/data/instance-id seems created by cloud-init ,but we can't assume it always there or always correct path...
likely it's because we assume this file always existing in CSI but it's not,
in cloud provider seems readInstanceID will fall through to metadata service but CSI code branch didn't

@jichenjc yes, we have discussed same on sig-openstack slack channel, I am adding fix to fetch instance-id from metadata service as a fallback option.


5 profiili

User is able to update username, email and picture. Not password! (but there is a placeholder for it).
User image is shown on the header and name in profile page. These will update when saving.
Seed is updated so Alice and Bob can be used. (Remember to delete these from the database and run seed again npx prisma db seed, no migration should be needed)
All pages except login and register should be able to see when logged in and not when logged out.
Login and register will need their own task.

toimii


apply to multiple items broken

reported by @vgorman1 on commit 2dc665b:
When I select multiple items and hit APPLY, it doesn’t always give the labels to all.  It may have to do with the Syntax Descriptions, which I just turned on.  On this sentence, I chose three items and tried to label them all as AuxP.  When I hit APPLY, only two labeled correctly and only one got the Syntax Description. I didn’t see this before I turned on the syntax descriptions, but I will turn them off and see if I can replicate it.

I cannot reproduce this error. When I select multiple items and change the all labels through change all list and hit Apply, the labels and in tree and Syntax Descriptions all get updated. Am I checking the correct feature?

Again, this is probably in the staging platform.  I haven’t experienced it since I quit using Staging.
Vanessa B. Gorman
Professor and Undergraduate Chair
Department of History
University of Nebraska-Lincoln
619 Oldfather Hall
Lincoln, NE 68588-0327
From: Masoumeh Seydi<EMAIL_ADDRESS>Sent: Monday, July 13, 2015 5:02 AM
To: latin-language-toolkit/arethusa
Cc: Vanessa Gorman
Subject: Re: [arethusa] apply to multiple items broken (#666)
I cannot reproduce this error. When I select multiple items and change the all labels through change all list and hit Apply, the labels and in tree and Syntax Descriptions all get updated. Am I checking the correct feature?
—
Reply to this email directly or view it on GitHubhttps://github.com/latin-language-toolkit/arethusa/issues/666#issuecomment-120880121.

Yes, but I think @Masoumeh is testing this in the master branch of the code base, which included all of the changes that were in staging at the time.

Without going into the staging platform, I can only tell you that I haven’t seen this since I shifted back to the main platform.  Once the staging goes live, I am sure I will be able to reproduce it if it still exists.
Best wishes,
Vanessa
Vanessa B. Gorman
Professor and Undergraduate Chair
Department of History
University of Nebraska-Lincoln
619 Oldfather Hall
Lincoln, NE 68588-0327
From: Bridget Almas<EMAIL_ADDRESS>Sent: Monday, July 13, 2015 7:19 AM
To: latin-language-toolkit/arethusa
Cc: Vanessa Gorman
Subject: Re: [arethusa] apply to multiple items broken (#666)
Yes, but I think @Masoumehhttps://github.com/Masoumeh is testing this in the master branch of the code base, which included all of the changes that were in staging at the time.
—
Reply to this email directly or view it on GitHubhttps://github.com/latin-language-toolkit/arethusa/issues/666#issuecomment-120907673.

Ok. @Masoumeh just double checking -- did you have the Syntax Descriptions feature enabled when testing this? (i.e. via the settings options on the relations tab)

Yes. I enable the feature and then select 3 words. So, the description is shown for each word. I put a label through change all list and hit Apply. The labels in tree and syntax description change regarding the same chosen label.
(I'm still testing this under the main branch in http://localhost:8081/app/#/staging?doc=1)

Ok. Another possibility that seems likely is that it is triggered by some combination of cached user forms and the code.

I'm going to label this a "Testing" item for now, we should come back to it to confirm once we're ready to try to deploy a release from the master branch again.

confirmed introduced in e15ab9c028db524064f05931dde70e17c4133192
probably related to #667 and possibly also #698
relation.getLabelObj, called by the syntactical_description directive ,  is throwing an error because the ancestors aren't there for anything but the first selected token

Actually not sure if it has anything much to do with the fact that they are batched .. it might be happening when a relation label on a selected word doesn't match the currently loaded tag set.


Use page unique IDs

Now, slugs are used in SimpleStats, Kirby has a new page UID system.

Page UIDs seem not to be enabled by default in Kirby, how to keep compatibility with both ?
Provide a migration tool, probably move to a new DB file version ?
Currently nums are mistakenly stored in the slug : Do we need to remove them too ? (tracking probably breaks when page-sorting changes).

Hi there,
Please do not rely on Kirby UUID as some doesn't use them by design.

Hi, can you explain that a little further ? To me, they seem more reliable then slugs.

Hi,
The use of UUIDs is not mandatory with Kirby: it is an option: plugin must therefore provide for this case by considering that UUIDs are not used.

UUIDs (universally unique identifiers) are an additional way to refer to any model in Kirby – be it a page, a file or a user.

You can modify the UUID format or completely disable UUIDs using the content.uuid option in the config file.

https://getkirby.com/docs/guide/uuids#config-settings

Ok, thanks for sharing these thoughts, I'll keep them into consideration. :)


[BUG] "ValueError: buffer size must be a multiple of element size" when loading VTU file

Describe the bug
Hello,
I'm trying to open up a .VTU file that was generated from salome and elmer pipeline. The file opens successfully in Paraview, but I can't seem to open it with meshio on Python script loading in Salome or directly in ipython
To Reproduce
Minimal code example
meshio.read(FILE) # FILE is in https://github.com/frantic0/vtu_test/blob/main/case-40000_t0001.vtu
Traceback (most recent call last):
File "", line 1, in
File "\Python\lib\site-packages\meshio_helpers.py", line 69, in read
return reader_mapfile_format
File "\Python\lib\site-packages\meshio\vtu_vtu.py", line 554, in read
reader = VtuReader(filename)
File "\Python\lib\site-packages\meshio\vtu_vtu.py", line 393, in init
piece_point_data[c.attrib["Name"]] = self.read_data(c)
File "\Python\lib\site-packages\meshio\vtu_vtu.py", line 544, in read_data
data = reader(self.appended_data[offset:], dtype)
File "\Python\lib\site-packages\meshio\vtu_vtu.py", line 459, in read_uncompressed_binary
return np.frombuffer(byte_string[:total_num_bytes], dtype=dtype)
ValueError: buffer size must be a multiple of element size
Diagnose
Output of 'pip freeze | grep meshio' in the salome sandbox
meshio==4.4.6
Output of 'pip freeze | grep meshio' in the ipython environment
meshio==5.3.0

sorry, there was a problem with the VTU file. Tried with another file and it worked


[WFLY-17255] Remove source transformation for health subsystem

https://issues.redhat.com/browse/WFLY-17255

@bstansberry done :-)

Thanks @kabir


ORC-829: Optimize Serialization percentileBits

What changes were proposed in this pull request?
Optimize Serialization percentileBits method
Why are the changes needed?
Speed and simplicity
How was this patch tested?
Existing unit tests, no functionality changes.

Hey @belugabehr changes LGTM -- just wondering if we can/should incorporate the Perf tests you did when discovered this?

@pgaref Hey, thanks for taking a look.
Nothing special here.  I am just slowly working through the core-benchmark module.  I've examined the write side a bit (see: #734 #735 #736) and hope to find time next week to look at the read side.
To be clear, I think the biggest savings of this PR comes from using Long.numberOfLeadingZeros instead of implementing a loop that can loop as many as 64-times per value written.  The rest of the stuff I changed based on manual inspection of the code.  I did not test each piece individually, but as I mentioned, after making these changes this method didn't even register in the performance capture.


Fix dubbo-plugin-loom module groupId

What is the purpose of the change
Brief changelog
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #13130 (ba56e3d) into 3.3 (660d5a2) will decrease coverage by 0.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##                3.3   #13130      +/-   ##
============================================
- Coverage     68.38%   68.37%   -0.01%
  Complexity        6        6
============================================
  Files          1717     1717
  Lines         70668    70668
  Branches      10224    10224
============================================
- Hits          48326    48321       -5
- Misses        17647    17651       +4
- Partials       4695     4696       +1

see 33 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


ci: drop yarn

Yarn removed, replaced with npm.  We still have dependency conflicts to work through.  Temporarily, this package-lock was created with --legacy-peer-deps, which is bad.
UPDATE: There are a few conflicts around react-scripts, which are getting pulled in another PR.  Let's wait for that.

Thanks for the PR!
Any successful deployments (not always required) will be available below.
Backend
Frontend
Oracle-API
Once merged, code will be promoted and handed off to following workflow run.
Main Merge Workflow

Closing to prevent anyone from wanting to help too soon.  I'm looking at you @RMCampos!! :D

@RMCampos can you help with npm run build?
[vite:css] [sass] 2 arguments required, but only 1 was passed.
   ╷
19 │       xs: rem(24px),
   │           ^^^^^^^^^


out of memory when running on jetson nano

hi @phamvanhanh6720,
I tried your project on jetson nano, but I cannot load embbedding model because raise out of memory.
How can you run your project on jetson nano?
please, help me!

My system is combined with another database to load embeddings and store records for other tasks. So, you can read code to modify to fit your task. All weights of models are automatically downloaded when you run.
Ps: You can see the config file


Bug: derive_var_age_years() returns the output dataset invisible

What happened?
derive_var_age_years() returns the output dataset invisible. Therefore the output dataset is not displayed for the examples in the documentation.
Session Information
No response
Reproducible Example
No response

Thank you, @bundfussr, for reporting this issue. Please share with us some dummy data you are facing issues using the tribble function from the Tibble package. This will speed up someone picking up this issue to fix.

Also, please try to assign the output to some data frame or Tibble so you can see the output from the environment. An example is mentioned below.

`library(admiral)
data <- data.frame(
AGE = c(27, 24, 3, 4, 1),
AGEU = c("days", "months", "years", "weeks", "years")
)
data = data %>%
derive_var_age_years(., AGE, new_var = AAGE)
data = data.frame(AGE = c(12, 24, 36, 48)) %>%
derive_var_age_years(., AGE, age_unit = "months", new_var = AAGE)`

Hi all.  Please don't close issues unless they are part of a release or hotfix.  This is to minimize people reporting the same thing over and over again.
https://pharmaverse.github.io/admiraldev/devel/articles/git_usage.html#reviewingclosing-an-issue

@imaheshdivakaran Are you still intending to work on this?

Yes @thomas-neitmann

Hi @pharmaverse/admiral .  Can someone pick this up please?


Allow sending logs and web vitals from non-production deployments

👋
We would like to be able to send logs and web vitals from non-production Next.js deployments on Vercel.
Our use case is a canary deployment that we would like to open up to users for early feedback and testing. We would ideally receive logs and web vitals from that deployment so we can compare them with our production deployment and spot issues sooner rather than later.
Is this something you would consider supporting?

Hey @nickrttn, enabling the NEXT_PUBLIC_AXIOM_INGEST_ENDPOINT env on staging deployments as well should do the trick.
Note that we currently don't attach the Vercel environment to Web-Vitals (we're working on that) so distinguishing staging vitals from prod vitals could be an issue.
Let me know if that works 🙌

Closing for #65

@nickrttn the new version 0.16.0 has been released with this experimental feature to support non-Vercel deployments. Check it and let us know if it works the way you expected. We are all-ears for any feedback 👍


Switch to fully automated release based on nexus-staging-maven-plugin

What does this PR do?
Switches from the maven-deploy-plugin to the nexus-staging-maven-plugin for nexus deployment.
This makes the manual steps in the Nexus UI from our release process obsolete: The plugin automatically closed, releases and drops the repository in nexus. It should automatically perform a cleanup in case of a failure aswell.
I have the hope that his maybe fixes #2855 aswell.
Unfortunately this change can hardly be tested manually, I'll trigger a SNAPSHOT build after this is on stable to see if at least the snapshot deployment works properly.

:green_heart: Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2023-02-07T10:31:12.886+0000

Duration: 57 min 9 sec

Test stats :test_tube:

Test
Results

Failed
0

Passed
3483

Skipped
43

Total
3526

:green_heart: Flaky test report
Tests succeeded.
:robot: GitHub comments
Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.

run benchmark tests : Run the benchmark tests.

run jdk compatibility tests : Run the JDK Compatibility tests.

run integration tests : Run the Agent Integration tests.

run end-to-end tests : Run the APM-ITs.

run windows tests : Build & tests on windows.

run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)

This seems very appealing indeed and testing it through snapshot is a great idea.

The plugin automatically closed, releases and drops the repository in nexus

Does maven block and returns only after all these steps are completed?


OpenAPI code generation broken: "Attribute missing" & Broken PHP

Description
When trying the generate a php client, I get following error:
Errors:
	-attribute components.schemas.relationshipLinks.items is missing

Additional context
Codegen command:
openapi-generator generate -i openapi3.json -g php -o /tmp/php_api_client

I can deactivate the validation with --skip-validate-spec, but that throws several hundreds of lines of warnings, as well as generating broken PHP code.
Example using getProduct:
$config = Configuration::getDefaultConfiguration()->setAccessToken("myAccessToken");
$api = new ProductApi(null, $config);
$api->getProduct("someId");

Throws following exception:
In ObjectSerializer.php line 326:

  Attempted to load class "Success" from the global namespace.
  Did you forget a "use" statement for "OpenAPI\Client\Model\Success"?

I can fix that error by changeing the affected string 'Success'  to Success::class, but that just pushes the Exception to the next problem:
In ObjectSerializer.php line 326:

  Attempted to load class "map" from the global namespace.
  Did you forget a "use" statement?

Hello,
Within our company roadmap and work capacity, we try to address each bug or improvement request but admit that not each one will be resolved. To continue our culture of honesty and openness, we are closing this issue to focus on our roadmap on behalf of all Shopware users.
If you feel like this issue is still impacting you, please create a new issue and let us know.
Thank you again for your valuable feedback.


Reinforced tables require welding to construct/deconstruct

About the PR
Reinforced tables now require welding to construct and deconstruct.
Why / Balance
This is primarily intended to combat this issue raised in #33871.
Chemists often just wrench their own table or someone else's table to steal plasteel for plasma.
I think that the 10u vial solution, while solving the problem, kinda distracts from the point of the game, to be a social and roleplaying game. Giving a 10u vial bypasses one of the few reasons regular chemists leave their department.
Now, chemists will have to talk to departments to get their plasma.
Welding is required for both constructing AND deconstructing to promote a neutral time and resource balance if someone wants to spam reinforced tables for... whatever reason.
Technical details
Just added 3s doafter welding steps in the construction graph.
Media
https://github.com/user-attachments/assets/bcc226a1-3db8-4a51-87ef-0a44087716ff
Requirements

[x] I have read and am following the Pull Request and Changelog Guidelines.
[x] I have added media to this PR or it does not require an ingame showcase.

Changelog
:cl:

tweak: Reinforced tables now require welding to construct and deconstruct.

This is how it is in SS13 so :+1:

yeah... I changed a file and then reverted the change, leaving all of those tasty whitespace changes... poor Rider loves inflicting formatting on everything it touches

I guess chemists are guaranteed to have oculine made every shift now so that's a win :)


Custom asset_path

Middleman has few options for customize pathes to images, styles and js scripts:
:css_dir
:js_dir
:images_dir
But what if I want to register custom path (for  videos or documents for example) with ability to have :relative_assets routings?
Is it possible to register custom pathes or it is better to use helpers for such a feature?
Thanks.

Probably better to use a helper. It's not well documented, but you can "register" your own asset_url method which is what image_tag and other asset helpers use to find files. This method acts as a stack so you could register your handler at the first position and then the other handlers should run after (adding cache busting, relative paths, etc).
Here's an example:
module MyAssetHandler
  class << self
    def registered(app)
      app.send :include, InstanceMethods
    end
    alias :included :registered
  end

  module InstanceMethods
    def asset_url(path, prefix="")
      if prefix == "video"
        # Do something fancy
      else
        # super (get the results of higher up the stack, may not be necessary)
      end
    end

    def video_path(my_video)
      asset_path :video, my_video
    end

    def video_tag(my_video)
      tag(:video, :src => video_path(my_video))
    end
  end
end

activate MyAssetHandler


Typescript users get compiler errors about missing types for request

Originally reported by @dauledk on https://github.com/google/google-auth-library-nodejs/issues/177#issuecomment-342891199.
However I still get a ton of compile errors when building. A lot of them comes from the google-auth-library. Like this one
<full-path-to-project>/node_modules/google-auth-library/types/lib/transporters.d.ts(1,23): error TS2688: Cannot find type definition file for 'request'.`

@dauledk tracked down the reason to an bug in types in one of our dependencies: #179. That issue can be used to investigate switching dependencies.
Let's use this bug for adding a test to make sure our type definitions are actually usable by users.


Render "Transfer" operators differently

Airflow "Transfer" operators could be created differently:
E.g.

two nodes ie. from & to
no node and add the label to an edge (between nodes)

Similar to your first idea, render the transfer operator as a cluster containing the from and to nodes?


Lock connector in CP state B defined by config

Describe your changes
Since state B is already detected when user plugs in the cable for some boards, it makes sense to not lock the cable in state B. Making this configurable gives us more flexibility
Issue ticket number and link
Checklist before requesting a review

[X] I have performed a self-review of my code
[X] I have made corresponding changes to the documentation
[X] I read the contribution documentation and made sure that my changes meet its requirements

Hi and thank you for your PR :)
This PR violates violates IEC61851-1:2019 D.6.5 Table D.9 line 4. But I think this can be made configurable with an appropriate warning.
Warning text: This violates IEC61851-1:2019 D.6.5 Table D.9 line 4 and should not be used in public environments!

@wku12 I think you can update your branch and then we can merge it

@wku12 I think you deleted my commit with a force push

@wku12 I think you deleted my commit with a force push

Oh yes, my bad. I did the rebase on my local fork without syncing here. Adding it now

The Codacy warning is a false positive