Terminal

Currently, /command-center executes one command at a time on the server.
We need a fully functioning terminal instead of that.
It should be reusable on other parts of the UI as well, for example by opening a terminal to a specific docker container (like WordPress) to edit files.

/bounty 100

/bounty 50

/bounty 5

I don't think I have the energy and time to fully work on this but I guess sharing ideas is a form of contributing too:
You can use XTerm.js which is a fully featured implementation of a terminal in JavaScript.
Here's the docs for it
https://xtermjs.org/docs/
I have a bit of experience in it (not too much) so if anybody need help feel free to contact me here or anywhere else (obviously no part of the bounty required lol, just here to help)

I'd be interested in working on this, but I'll have to dig more into how Coolify technically works before I'll attempt this if someone that already knows the bells and whistles wants to try. I write PHP for work but haven't used Laravel before.
I have experience of similar implementations with Xterm as I have created the ohjelmoi.fi development environment's interactive terminal with it.

Very nice idea.

/bounty 30

I'd like to contribute too, I'm switching to Coolify and this feature would be very helpful indeed.
I did take a peek at how other tools are implementing this feature, Portainer takes a fairly simple approach, which is to simply proxy all requests to the Docker api.
There's a little bit of logic in the frontend to send and receive via a websocket and setup the session, on the backend it checks if the session has been terminated via command or hotkey.
The frontend calls a .../docker/containers/{hash}/exec endpoint which gets proxied by the backend to the Docker API, converted to a WS session and then the rest is handled by Xterm.
I'm not an expert of Laravel and in this time I haven't been able to find how to implement this, but if the reverse-proxy aspect cannot be easily implemented I would guess a simple forward of the websocket messages could be the solution, even reusing the existing infrastructure that handles the logs

/attempt #2298
Followed your ideas, xterm.js and @Thanzex approach.
I've attempted to implement WebSockets in PHP, but it turned out to be more challenging than expected. I then switched to using Node.js with XTerm and pty, which has been working well. I like the architecture, but I think @andrasbacsai should review it to assess any potential security risks, as I'm not fully aware of them.
https://github.com/coollabsio/coolify/assets/22579355/f717a407-6c3d-4167-88e6-fabdd1d2cbf3
Currently, the terminal only appends to a server, but I don't see any issues with extending this functionality to containers as well.
Later on, I'll post the wip branch here

Wow @LEstradioto, that looks very promising! I know my fair share of Laravel and security, feel free to whip up a draft PR and I will take a look and address possible concerns.
How do you feel about that? Happy to help!

I would really appreciate it! Here's the PR #2586.
I'm still getting used to Laravel, but this draft works. I think a review would really help !

@LEstradioto On a sidenote - you dont have to use websockets with xterm.js, you can also use good old request-response cycling with ajax/fetch long-polling. While it not be as performant as with websockets (con), it would also inherit security mechs of you normal site setup (pro).

Oh yeah. Nice to know. That PR have some good additional observations too. But terminal worked nicely

Its still open. But, Ive open a PR #2586 and awaiting @andrasbacsai position on this
I think, the challenge right now is to re-use services that exists without adding a new service. Ive added a nodejs websocket to work with the xterm.js terminal.
Do you have any suggestions on this? Or, If you want to take a shot, no problem for me at all

Its still open. But, Ive open a PR #2586 and awaiting @andrasbacsai position on this
I think, the challenge right now is to re-use services that exists without adding a new service. Ive added a nodejs websocket to work with the xterm.js terminal.
Do you have any suggestions on this? Or, If you want to take a shot, no problem for me at all

I will test it with the current implementation (node) and if it works and does not take up too much resource, then I will merge it.

guys thank you brilliant work, please make this terminal comes to live, cuz there is a lot of cases when we want to use vim/nano, which is impossible with the current versions

The PR is concluded, waiting @andrasbacsai on a new review.
Just a bump here.
Terminal process runs within Soketi service, so no more extra container
About security concerns Ive added authentication on Websocket using verifyClient option to authenticate user on Laravel
So its pretty much done!

I have only just scanned the comments here, and lightly glanced over additional remarks in the PR, and I wonder has anyone considered or already attempted to do this using Laravel Reverb?.. seems if that could fit the bill for websockets, it would alleviate the need for an extra container and soketi dependency (if I'm following along well enough).

Hi @emjayess. I dont know Reverb well enough, it just seems the same as Pusher.
Problem is that we need to use node-pty as pseudo-terminal. If we use PHP we must create that lib from the ground, to be compatible/synced with xterm.js
Another one, is creating a long running process inside a Laravel Event. Ive tried and failed, perhaps its possible, but even with this we need a pseudo-terminal then, meaning, need somethin similar to node-pty

Hmm I just checked PHP corelibs  and indeed - seems PHP has no support for spawning PTYs. Thats a bummer, it means that any PHP-related solution needs to be a native/C module. Bad.
Here is such a lib for PHP, idk whether it is any good or bad in quality/maintenance.
Idk your tech stack, is writing/maitaining your own C module within your goals or far overstretched?

Hi @jerch ! Great work! 👍 I saw TeaOpenPTY during my research, but C modules were out of my comfort zone. Your solution is much more elegant.
Quick question: Is there a way to reconnect to an existing process/PTY across requests? I tried using Symfony/Laravel Process to start a PTY, it worked, but couldn't figure out how to reattach on subsequent requests. Any thoughts on this?

Yep yep, two big PHP Laravel challenges. Well, @andrasbacsai should evaluate this 👀

https://www.supertechcrew.com/wetty-browser-ssh-terminal/ or maybe https://github.com/yudai/gotty ?

I've seen those libraries as well. They were definitely inspirational for that PR, which essentially has the same logic as well, but adapted to Coolify's ssh. However, they still requires websocket and node-pty

Here's what I'm thinking for next steps (and a summary for future suggestions):

I'll finish the PR to adapt the Dockerfile. This should serve as a good starting point for version 1.

For a future version of Terminal, we could consider:
2. Rewriting node-pty in PHP (would require expertise in both C and PHP)
3. Replacing node websocket with PHP equivalent
This would be a challenge but real fun!
(Apologies to issue followers - this seems to evolved into more of a discussion than a typical issue)

https://github.com/coollabsio/coolify/discussions/3362

For a future version of Terminal, we could consider:
2. Rewriting node-pty in PHP (would require expertise in both C and PHP)
3. Replacing node websocket with PHP equivalent

Well if you are really up for your own low level impl, I can help you with the C part. But I'd need some guidance with your process/thread model in coolify, esp. where to put a long living PTY (must survive a request/response cycles).

Any further iteration / feature will be handled in a different issue.

Please also do the Algora reward @cloudgakkai, @muhammedaksam, @saint

Please also do the Algora reward @CloudGakkai, @muhammedaksam, @saint

will be process by 25th this month from our side.

Thank you!

hi @LEstradioto @andrasbacsai , idk why on my Algora account there is no "Reward" button that usually used to send the reward

Please also do the Algora reward @CloudGakkai, @muhammedaksam, @saint

I am still trying to pay but it won't let me process.

Please also do the Algora reward @CloudGakkai, @muhammedaksam, @saint

I am still trying to pay but it won't let me process.

I think Algora has an issue, I also cannot process because the "Reward" button didn't appear

No problem, guys! I've sent an email to them. Let's wait a bit.

is there any updates on this? the Reward button still won't appear on my side

Hey @DeVoresyah @muhammedaksam :wave:  sorry about the reward button not showing
We have resolved the issue now, the bounties can be paid out from your dashboard once you log in

Thanks @algora-pbc


Sik-Ho Tang | Review: NIN -- Network In Network (Image Classification).

Sik-Ho Tang. Review: NIN — Network In Network (Image Classification).

Overview
Using Convolution Layers With 1×1 Convolution Kernels.

A few example images from the CIFAR10 dataset.
Inthis story, Network In Network (NIN), by Graduate School for Integrative Sciences and Engineering and National University of Singapore, is briefly reviewed. Micro neural networks with more than complex structures to abstract the data within the receptive field. This is a 2014 ICLR paper with more than 2300 citations.

Linear Convolutional Layer VS MLP Convolutional Layer
Linear Convolutional Layer

Linear Convolutional Layer.
$$
f_{i,j,k}=max(w_{k}^{T}x_{i,j},0).
$$

Here $(i, j)$ is the pixel index in the feature map, $x_{ij}$ stands for the input patch centered at location $(i, j)$, and $k$ is used to index the channels of the feature map.
However, representations that achieve good abstraction are generally highly nonlinear functions of the input data.
Authors argue that it would be beneficial to do a better abstraction on each local patch, before combining them into higher-level concepts.

MLP Convolutional Layer

MLP Convolutional Layer.

$n$ is the number of layers in the multilayer perceptron. Rectified linear unit is used as the activation function in the multilayer perceptron.
The above structure allows complex and learnable interactions of cross channel information.
It is equivalent to a convolution layer with 1×1 convolution kernel.

Fully Connected Layer VS Global Average Pooling Layer

An Example of Fully Connected Layer VS Global Average Pooling Layer.
Fully Connected Layer

Usually, fully connected layers are used at the end of network.
However, they are prone to overfitting.

Global Average Pooling Layer

Here, global average pooling is introduced.
The idea is to generate one feature map for each corresponding category of the classification task in the last MLP Convolutional Layer. Instead of adding fully connected layers on top of the feature maps, we take the average of each feature map, and the resulting vector is fed directly into the softmax layer.
One advantage is that it is more native to the convolution structure by enforcing correspondences between feature maps and categories.
Another advantage is that there is no parameter to optimize in the global average pooling thus overfitting is avoided at this layer.
Furthermore, global average pooling sums out the spatial information, thus it is more robust to spatial translations of the input.

Global Average Pooling Layer is used to remove spatial translation along the convolution axises, where Conv*D Layer is used to remove spatial translation along the channel axis!!!

Enforcing correspondences between feature maps and categories means that feature maps are not correlated to contribute the final classification, leading to disentangled representation!!!

Overall Structure of Network In Network (NIN)

Overall Structure of Network In Network (NIN).

Thus, the above is the overall structure of NIN.
With global average pooling at the end.

Results
CIFAR-10

Error Rates on CIFAR-10 Test Set.

NIN + Dropout got only 10.41% error rate is better than Maxout + Dropout.
With data augmentation (Translation & Horizontal Flipping), NIN even got 8.81% error rate.
(If interested, there is a very short introduction of Maxout in NoC.)

As shown above, introducing dropout layers in between the MLP Convolutional Layers reduced the test error by more than 20%.

CIFAR-100

Error Rates on CIFAR-100 Test Set.
Similarly, NIN + Dropout got only 35.68% error rate which is better than Maxout + Dropout.

Street View House Numbers (SVHN)

Error Rates on SVHN Test Set.
However, NIN + Dropout got 2.35% error rate which is worse than DropConnect.

MNIST

Error Rates on MNIST Test Set.
In MNIST, NIN + Dropout got 0.47% error rate which is worse than Maxout + Dropout a bit.

Global Average Pooling as a Regularizer

Error Rates on CIFAR-10 Test Set.
With Global Average Pooling, NIN got 10.41% error rate which is better than fully connected + dropout of 10.88%.

In NIN, with 1×1 convolution, more non-linearity is introduced which makes the error rate lower.

Reference
[2014 ICLR] [NIN] Network In Network.

1x1 Convolution: Demystified
Anwesh Marwade. 1x1 Convolution: Demystified.

Overview
Shedding light on the concept of 1x1 convolution operation which appears in paper, Network in Network by Lin et al. and Google Inception.
Having read the Network in Network (NiN) paper by Lin et al a while ago, I came across

a peculiar convolution operation that allowed cascading across channel parameters, enabling learning of complex interactions by pooling cross-channel information.

They called it the “cross channel parametric pooling layer” (if I remember correctly), comparing it to an operation involving convolution with a 1x1 convolutional kernel.
Skimming over the details at the time (as I often do with such esoteric terminology), I never thought I would be writing about this operation, let alone providing my own thoughts on its workings. But as it goes, it's usually the terminology that seems formidable and not the so much the concept itself; which is quite useful! Having completed the back-story and a pause for effect, let us demystify this peculiar but multi-purpose, 1x1 convolutional layer.

1x1 Convolution:
As the name suggests, the 1x1 convolution operation involves convolving the input with filters of size 1x1, usually with zero-padding and stride of 1.
Taking an example, let us suppose we have a (general-purpose) convolutional layer which outputs a tensor of shape $(B, K, H, W)$ where,

$B$ represents the batch-size.
$K$ is the number of convolutional filters or kernels.
$H$, $W$ are  the spatial dimensions, i.e. Height and Width.

In addition, we specify a filter size that we want to work with, which is a single number for a square filter i.e. size=3 implies a 3x3 filter.
Feeding this tensor into our 1x1 convolution layer with $F$ filters (zero-padding and stride 1), we will get an output of shape $(B, F, H, W)$ changing our filter dimension from $K$ to $F$. Sweet!
Now depending on whether $F$ is less or greater than $K$, we have either decreased or increased the dimensionality of our input in the filter space without applying any spatial transformation (you’ll see). All this using the 1x1 convolution operation!
But wait, how was this any different from a regular convolution operation? In a regular convolution operation, we usually have a larger filter size like say, a 3x3 or 5x5 (or even 7x7) kernels which then generally entail some kind of padding to the input which in turn transforms it’s spatial dimensions of $H\times W$ to some $H'\times W’$; capisce? If not, here is the link for my go-to article for any (believe me) clarification on Convolutional Nets and its operations.

Benefits?
In CNNs, we often use some kind of pooling operations to

spatially down-sample the activation maps of a convolution output in order to keep things from becoming intractable.

The danger of intractability is due to the number of generated activation maps which increases or rather blows up dramatically, proportional to the depth of a CNN. That is, the deeper a network, the larger the number of activation maps it generates. The problem is further exacerbated if the convolution operation is using large-sized filters like 5x5 or 7x7 filters, resulting in a significantly high number of parameters.
Understand: A Filter refer to the kernel that is being applied over the input in a sliding window fashion as a part of a convolution operation. An Activation Map on the other hand is the output result of applying a single filter over the input image. A convolution operation with multiple filters usually generates multiple (stacked) activation maps.

Spatial downsampling (through pooling) is achieved by aggregating information along the spatial dimensions by reducing the height and width of the input at every step.

While it maintains important spatial features to some extent, there does exist a trade-off between down-sampling and information loss. Bottom line: we can only apply pooling to a certain extent.

The 1x1 convolution can be used to address this issue by offering filter-wise pooling, acting as a projection layer that pools (or projects) information across channels and enables dimensionality reduction by reducing the number of filters whilst retaining important, feature-related information.

This was heavily used in Google’s inception architecture (link in references) where they state the following:

One big problem with the above modules, at least in this naive form, is that even a modest number of 5x5 convolutions can be prohibitively expensive on top of a convolutional layer with a large number of filters.

This leads to the second idea of the proposed architecture: judiciously applying dimension reductions and projections wherever the computational requirements would increase too much otherwise. This is based on the success of embeddings: even low dimensional embeddings might contain a lot of information about a relatively large image patch. Besides being used as reductions, they also include the use of rectified linear activation which makes them dual-purpose.

They introduced the use of 1x1 convolutions to compute reductions before the expensive 3x3 and 5x5 convolutions. Instead of spatial dimensionality reduction using pooling, reduction may be applied in the filter dimension using 1x1 convolutions.
An interesting line of thought was provided by Yann LeCun where he analogizes fully connected layers in CNNs as simply convolution layers with 1x1 convolution kernels and a full connection table. See this post from 2015:

In Convolutional Nets, there is no such thing as "fully-connected layers". There are only convolution layers with 1x1 convolution kernels and a full connection table.
It's a too-rarely-understood fact that ConvNets don't need to have a fixed-size input. You can train them on inputs that happen to produce a single output vector (with no spatial extent), and then apply them to larger images. Instead of a single output vector, you then get a spatial map of output vectors. Each vector sees input windows at different locations on the input.
In that scenario, the "fully connected layers" really act as 1x1 convolutions.

Implementation
Having talked about the concept, time to see some implementation, which is quite easy to follow with some basic PyTorch experience.
class OurConvNet(nn.Module):
    def __init__(self):
        super().__init__()
        self.projection = None
        # Input dims expected: HxWxC = 36x36x3

        self.conv1 = nn.Conv2d(in_channels=3, out_channels=32, kernel_size=3, stride=1, padding=1)
        # Output dims: HxWxC = 36x36x32

        # softconv is the 1x1 convolution: Filter dimensions go from 32 -> 1 implies Output dims: HxWxC = 36x36x1
        self.softconv = nn.Conv2d(in_channels=32, out_channels=1, kernel_size=1, stride=1, padding=0)

    def forward(self, input_data):
        # Apply convolution
        x = self.conv1(input_data)
        # Apply tanh activation
        x = torch.tanh(x)
        # Apply the 1x1 convolution
        x = self.softconv(x)
        # Apply sigmoid activation
        x = torch.sigmoid(x)
        # Save the result in projection
        self.projection = x

Here, I’ve used softconv to denote the 1x1 convolution. This is a code snippet from a recent project, where the 1x1 convolution was used for projecting the information across the filter dimension (32 in this case) and pooling it into a single dimension. This brought three benefits to my use-case:

Projecting the information from 32 two-dimensional activation maps (which are generated by convolving the filters of the previous convolution layer over the input) into a single activation map (remember, the output from the softconv layer has filter dim = 1). Why did I need such a projection, this is explained along with the images below.
Reducing the dimensionality using 1x1 convolutions, allowed for keeping computational requirements in check. This is based on the intuition and success of low-dimensional embeddings which have worked quite well in the Natural Language Processing domain.
Offers better tractability in terms of ease of visualising the filter weights which will be learned i.e. being able to answer what the layer is actually doing to a given input and understanding what model is learning.

To drive home the idea of possibly using a 1x1 convolution, I am providing an example use-case from a model trained on the DEAP emotion dataset without delving into many details. The model is trained to predict heart rate signals from facial videos (images). Here, the pooling of information from 32 filters (obtained from previous convolutions) using the 1x1 convolutional layer into a single channel

allows the model to create a mask whereby it is able to differentiate between skin and non-skin pixels.

This is a work in progress but hopefully one can see the point of using a 1x1 convolution here.

A facial image being used as input. Image from DEAP dataset.

State of 32 filters after applying the regular convolutional layers. Image by Author.

The output as obtained from the softconv layer where 32 filters have been pooled into a single channel. Image by Author.

Key Takeaways:

$1\times 1$ convolution can be seen as an operation where a $1\times 1\times K$ sized filter is applied over the input and then weighted to generate $F$ activation maps.
$F > K$ results in an increase in the filter dimension whereas $F < K$ would cause an output with reduced filter dimensions. The value of $F$ is quite dependent on the project requirement. Reduced dimensionality might help in making things more tractable and there may be a similar use-case for increasing the number of filters using $1\times 1$ convolutions.
Theoretically, using this operation, the neural network can ‘choose’ which input ‘filters’ to look at using the $1\times 1$ convolution, instead of force-multiplying everything.

References:

Stats StackExchange: https://stats.stackexchange.com/questions/194142/what-does-1x1-convolution-mean-in-a-neural-network
Google Inception Architecture: Going Deeper with Convolutions by Lin et al.
Article: https://iamaaditya.github.io/2016/03/one-by-one-convolution/
https://machinelearningmastery.com/introduction-to-1x1-convolutions-to-reduce-the-complexity-of-convolutional-neural-networks/
”DEAP: A Database for Emotion Analysis using Physiological Signals”, S. Koelstra, C. Muehl, M. Soleymani, J.-S. Lee, A. Yazdani, T. Ebrahimi, T. Pun, A. Nijholt, I. Patras, IEEE Transactions on Affective Computing, vol. 3, no. 1, pp. 18–31, 2012.


Secret generated Too long

hi~
thank you for your very useful library!
There are some strange stuff about SecretGenerator Class,
it generate to much long bits than expected..
I think this code is weird.

byte[] bytes = new byte[bits * 8];

    /**
     * Generate an OTP base32 secret
     *
     * @param bits length, this should match the length of the HMAC algorithm type:
     *             SHA1: 160 bits
     *             SHA256: 256 bits
     *             SHA512: 512 bits
     * @return generated secret
     */
    public static byte[] generate(final int bits) {
        if (bits <= 0)
            throw new IllegalArgumentException("Bits must be higher than 0");

        byte[] bytes = new byte[bits * 8];
        SecureRandom random = new SecureRandom();
        random.nextBytes(bytes);

        Base32 encoder = new Base32();
        return encoder.encode(bytes);
    }

And I have one question about Custom Key.
is it okey to generate the combination key with custom seed ( like ID, email etc ) without using SecretGenerator.class
even if bit length is matched with algorithm type
for example,
in case SHA1 -<EMAIL_ADDRESS>( 160bit )
in case SHA256 -<EMAIL_ADDRESS>.... ( 256bit )

Thank you, I will look into it!
Preferably, the key should be completely random. But you could generate a key based on a custom seed, it would work, but it wouldn't be as secure. But that's a trade of. May I ask why you want to add a an id / email in your key?

@BastiaanJansen
because if multi users request a OTP at the same time for emails verify, in my case,
same master key generate same OTP with in 30sec.
so different OTP per user at the same time, need to store different generated key per email(user) or use the custom combination key ( email + generated secret )

@whsoul Ah, that makes sense! Yes, that should work!

@BastiaanJansen
thank you for your feed back!

@whsoul I created a new release for the secret generator fix.

@BastiaanJansen
oh, great!
I will check with new version 1.1.3
thanks!


nixos-rebuild error: function 'anonymous lambda' called with unexpected argument 'nix'

Describe the bug
When trying to rebuild nixos with the latest nixos-unstable changes there is an error, which I assume might occur due to devenv 1.1 making it into nixos-unstable.
Here is the error message:
┏━ 1 Errors:
┃ error:
┃        … while calling the 'head' builtin
┃          at /nix/store/2pw5bsq1r80lcvvh2wp89m142nln1zpl-source/lib/attrsets.nix:1575:11:
┃          1574|         || pred here (elemAt values 1) (head values) then
┃          1575|           head values
┃              |           ^
┃          1576|         else
┃
┃        … while evaluating the attribute 'value'
┃          at /nix/store/2pw5bsq1r80lcvvh2wp89m142nln1zpl-source/lib/modules.nix:821:9:
┃           820|     in warnDeprecation opt //
┃           821|       { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
┃              |         ^
┃           822|         inherit (res.defsFinal') highestPrio;
┃
┃        (stack trace truncated; use '--show-trace' to show the full trace)
┃
┃        error: function 'anonymous lambda' called with unexpected argument 'nix'
┃        at /nix/store/2pw5bsq1r80lcvvh2wp89m142nln1zpl-source/pkgs/by-name/de/devenv/package.nix:1:1:
┃             1| { lib
┃              | ^
┃             2| , stdenv
┃        Did you mean lib?
┣━━━
┗━ ∑ ⚠ Exited with 1 errors reported by nix at 15:15:50 after 13s

Version
Current version I have installed is 1.0.8
This error occurs when trying to update to 1.1

@ddogfoodd I confirm, has the exact same issue. Maybe will use upstream for now.

@ddogfoodd are you using Lix? If so, believe there's a conflict between this bit in their overlay and this nixpkgs PR that causes this issue -- the PR removed nix as an input to the devenv derivation, but the overlay still passes it.

Thanks @devusb

https://git.lix.systems/lix-project/nixos-module/pulls/34 fix is in main, sounds like a release with it is still pending.

Ohhh okay my bad, thx ^^


renderError not working with v.2.2.0

hello @alan2207
renderError does not work on vite example.
How should I implement this?
First, update the version of react-query-auth to v.2.2.0.
yarn remove react-query-auth
yarn add react-query-auth

examples/vite/package.json
  "dependencies": {
    "@tanstack/react-query": "^4.24.6",
    "@tanstack/react-query-devtools": "^4.24.6",
    "cross-env": "^7.0.3",
    "msw": "^1.0.1",
    "react-app-polyfill": "^3.0.0",
    "react-query-auth": "^2.2.0"
  },
  "devDependencies": {
    "@types/node": "^18.14.0",
    "@types/react": "^18.0.28",
    "@types/react-dom": "^18.0.11",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "typescript": "^4",
    "vite": "latest",
    "vite-preset-react": "latest"
  },

Add renderError.
examples/vite/src/App.tsx
const SampleApp = () => {
  const [queryClient] = React.useState(() => new QueryClient());

  return (
    <Container>
      <QueryClientProvider client={queryClient}>
        <AuthLoader
          renderLoading={() =>
Loading ...
}
          renderUnauthenticated={() => <AuthScreen />}
+          renderError={(error) => <AuthScreen />}
        >
          <UserInfo />
        </AuthLoader>
        <ReactQueryDevtools initialIsOpen={false} />
      </QueryClientProvider>
    </Container>
  );
};

A warning is displayed.

type '{ children: renderLoading: () => Element; renderUnauthenticated: () => Element; renderError: (error: any) => Element; }' type 'IntrinsicAttributes & { children: ReactNode; renderLoading: () => Element; renderUnauthenticated?: (() => Element). | cannot be assigned.
  Property 'renderError' is of type 'IntrinsicAttributes & { children: ReactNode; renderLoading: () => Element; renderUnauthenticated?: (() => Element) | Undefined; }' The following is not present in the

Translated with www.DeepL.com/Translator (free version)

Is there a problem with renderError not being present in index.d.ts in node_modules?
examples/vite/node_modules/react-query-auth/dist/index.d.ts
declare function configureAuth<User, Error, LoginCredentials, RegisterCredentials>(config: ReactQueryAuthConfig<User, LoginCredentials, RegisterCredentials>): {
    useUser: (options?: Omit<UseQueryOptions<User, Error, User, QueryKey>, 'queryKey' | 'queryFn'>) => _tanstack_react_query.UseQueryResult<User, Error>;
    useLogin: (options?: Omit<UseMutationOptions<User, Error, LoginCredentials>, 'mutationFn'>) => _tanstack_react_query.UseMutationResult<User, Error, LoginCredentials, unknown>;
    useRegister: (options?: Omit<UseMutationOptions<User, Error, RegisterCredentials>, 'mutationFn'>) => _tanstack_react_query.UseMutationResult<User, Error, RegisterCredentials, unknown>;
    useLogout: (options?: UseMutationOptions<unknown, Error, unknown>) => _tanstack_react_query.UseMutationResult<unknown, Error, unknown, unknown>;
    AuthLoader: ({ children, renderLoading, renderUnauthenticated, }: {
        children: React.ReactNode;
        renderLoading: () => JSX.Element;
        renderUnauthenticated?: (() => JSX.Element) | undefined;
    }) => JSX.Element;
};

How can the problem be resolved?

Sadly this is still not working. I also do not understand why the error is handled separately from a successful response without data? To me it seems the API call for an unauthenticated user should result in a 403, not a 200 without content.

Following on from here, possibly relate, when running tscafter a simple import of configureAuth I'm getting:
src/App.tsx:5:31 - error TS7016: Could not find a declaration file for module 'react-query-auth'. '/Users/wml/Projects/work/test-vite/vite-project/node_modules/react-query-auth/dist/index.mjs' implicitly has an 'any' type.
  There are types at '/Users/wml/Projects/work/test-vite/vite-project/node_modules/react-query-auth/dist/index.d.ts', but this result could not be resolved when respecting package.json "exports". The 'react-query-auth' library may need to update its package.json or typings.

5 import { configureAuth } from "react-query-auth";
                                ~~~~~~~~~~~~~~~~~~

Found 1 error in src/App.tsx:5


Split up UniversePackageCache

While fixing #270, I discovered that UniversePackageCache is quite difficult to write unit tests for due to its tight coupling with the file system. To make writing tests easier, it should be split up into at least two traits/classes:

A trait (and corresponding implementation class) to manage the file system state. It would own the package cache directory and take care of synchronizing repository state. It would define public methods that provide access to the parsed and validated package files. This trait could then be mocked in unit tests.
A class that would implement the current public methods of UniversePackageCache, using the above trait to obtain package file data.

With the imminent demise of UniversePackageCache, this issue isn't relevant anymore.


SAK-23521 - Adding endorsed project from svn/contrib to Git inside Co…

…nfig.

I don't know if this should be in /config. There isn't any code currently there. I feel like putting it at the top level as endorsed/i18n instead of config/endorsed/i18n is better.

Following Matthew Jones recommendation, I have moved all to the top level. I have removed the redundant code in poms also.

I've done the changes proposed by Earl.


Unable to connect to WebSocket realtime HTML

ive been attempting to connect to the Real time HTML but I believe im doing it completely wrong
im starting the server over SSH under Super User using
goaccess /var/log/apache2/access.log -o /var/www/html/ProjectModal/CDN/Models/Myrkur/report.html --log-format=COMBINED --real-time-html --ws-url=https://argonopenreach.ddns.net:7890 --ssl-cert=/etc/letsencrypt/live/argonopenreach.ddns.net/fullchain.pem --ssl-key=/etc/letsencrypt/live/argonopenreach.ddns.net/privkey.pem

I have built using openSSL so thats not the issue the issue is me trying to actually connect to the websocket at https://argonopenreach.ddns.net:7890/
does it not support using a ddns? or am I configuring wrong
console reads
WebSocket server ready to accept new client connections

I plan to use --daemonize it later when I get it Realtime working
im running a headless install of Ubuntu 18.04 bionic beaver with an install of webmin using apache2 webserver which i am using as basic public file storage for me aswell as video storage
ive opened the port on https://argonopenreach.ddns.net:7890/ to make it easier to test but all i get is a HTTP error 400 ive even tried using the servers local ip as its hosted on the same network
Edit
ran telnet to try to connect to the port using
telnet https://argonopenreach.ddns.net 7890
and I get "Name or service not known" but connects fine without https:// ive tried going to argonopenreach.ddns.net:7890 and that provides an empty response
so still have no idea

I did nothing and it works all of the sudden time wasted great software

Just adding to the notes, it should be --ws-url=wss://argonopenreach.ddns.net:7890 no https but wss.


[How-To] Add basic auth

For everyone who wants to deploy to Vercel but does not pay for premium features like basic auth, here a little template on how to add basic auth via nextJS middleware.
I normally program in python and have no idea about nextJS, so any feedback is more than welcome. For example, if I am protecting all the relevant pages in my middleware config.

Hi @LennardSchwarz, I'm thinking of merging this. A couple of questions:

do you think the API routes should be authed as well? I don't know if they're authed or not, but this will prevent someone just using the backend. But I leave it to your expertise here
do know if this feature can be added without adding the api/auth/auth.ts function? maybe headers can be returned by the middleware, 'centralizing' this feature
the changes to the README would delete the existing README, so cannot be merged

Hey @enricoros,
I am glad that you think this feature adds value!
This feature definitely needs more work before it can get added though. I honestly just blindly copied a couple of pieces of code I found without having much understanding of how nextJS or your application work:
https://stackoverflow.com/questions/64316886/how-do-i-add-basic-authentication-to-nextjs-node-server
https://github.com/vercel/examples/tree/main/edge-middleware/basic-auth-password
Regarding your questions:

Yes, the API routes should definitely also be covered. There is a more sophisticed matcher option for the routes I have not looked into to make this more dynamic as well
The auth functionality is a middleware call. I think this can definitely merged with other middleware functionality you already have
I think it makes more sense fore you to add this feature via your own feature branch and then close this PR. I do not know enough NextJS to do this myself well

Acceptance criteria for this feature in my opinion:

Basic auth should cover all routes which could be used to incur costs (i.e. calling third party APIs) or expose any private information (i.e chat messages, etc.)
It should be possible to disable basic auth, i.e. by not providing env vars for username and password

I appreciate your work with this!

Thanks @LennardSchwarz - I've merged, tested and documented.
By default, the auth is off (see docs/deploy-authentication.md), and the user will need to:

Rename middleware_BASIC_AUTH.ts to middleware_BASIC_AUTH.ts
Build the app
Set the env vars HTTP_BASIC_AUTH_USERNAME and HTTP_BASIC_AUTH_PASSWORD
Start the application/container

Thanks again!

@enricoros: Thanks for the shoutout and your work!
I hope this project and your business plan behind it thrive.


relax "Versioned formulae should not have a HEAD spec"

Verification

[X] This issue's title and/or description do not reference a single formula e.g. brew install wget. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.

Provide a detailed description of the proposed feature
When a versioned formula has a head entry, brew audit complains
  * Versioned formulae should not have a `HEAD` spec

I suggest that this should be relaxed. In many cases, version formulae such as gcc, postgresql have well-maintained upstream branches for each version, and it would be useful to be able to install those.
Perhaps that check should just be removed, but maybe it's there for a reason, but I wasn't able to find any explanation.
What is the motivation for the feature?
Install head version of a versioned formula.
How will the feature be relevant to at least 90% of Homebrew users?
The head specifications are probably themselves not relevant to 90% of Homebrew users, but for those users that make use of the head specifications, they should be able to have the some option for versioned formulae.
What alternatives to the feature have been considered?
n/a

You can add a versioned formula to the versioned_head_spec_allowlist to add a head spec to it.


Instagram_

Overall, this code provides a basic structure for a photo sharing application with features for uploading images, liking them, and adding comments. It demonstrates the use of HTML, CSS, and JavaScript to create a simple interactive web application.

Overall, this code provides a basic structure for a photo sharing application with features for uploading images, liking them, and adding comments. It demonstrates the use of HTML, CSS, and JavaScript to create a simple interactive web application


add sonic platform

Im having a little look at adding sonic to the list of supported platforms so I can use Boxen to stand up Sonic relatively quickly on MacOs (and anywhere else). I really like the minimalist/streamlined code here and have largely scaffolded from the PanOS material because it looks so similar. No Go expert and welcome stewarding of my ability wherever its needed!

Hey @fire-ant
Nice work! Looks like there are a few things to get sorted out, then we should be good to go.

We'll need to get the test "data" added... this can be sort of annoying and isn't really documented anywhere (sorry!), but TL;DR the tests will load up text output of what the devices would actually send from the test_data dir -- there are two types of things in here, the actual expected final output (the easy part), and the actual output the device would send. Here is an example of the eos "short" send command session data. Basically when I set things up I enable the channel log and then steal from that and stuff that data into the test output folders. The channel log should be only what scrapli "sees" so it should slot right in.
Few little linter complaints to address -- make lint should run everything (you may need to install golangci-lint) that gets ran in CI so you can address those nits locally or of course just check the GitHub actions output. We may need to add an ignore for dupl due to the NewDriver being similar/same as eos/pan/csr/whatever.

Thanks for the work on this -- looking forward to getting sonic running in boxen too!
Carl

Fantastic, these are much appreciated. This is a passion project (though it is also adjacent to my professional interests) and I want to give it as much as I can, time permitting, all the helpful pointers are super useful.
I've managed to get the local vm install working to the point where it reaches login and fails with the 'instance never reaches start ready state' error in the CLI. Im using debug flags to see what else is up and when I run the QEMU command (without the -display flag so I see the console as Im on a Mac) It brings up the host just fine. What's the best way of stepping through the code in your opinion? Delve debugger or something else?
My guess is that there's something Im not seeing in the regex in using for the loop to catch the consoles up. I maybe need to vet how Boxen is actually accessing the host but I dont see it behaving any differently to OCNos in terms of being a 'not currently supported' platform. If you have ideas based on prior experience they'd be appreciated.
Will keep at it!

My guess is that there's something Im not seeing in the regex in using for the loop to catch the consoles up

Yep probably. If you have the BOXEN_DEV_MODE env var set with logging level at debug, boxen should be writing out the tmp directory where the build is working. Its some wonky path on Darwin like /var/folders/2f/jcvtqld14sv7q0d59b95w3_80000gn/T/boxen1660205506/ or something like that. In there you can tail the console and any stdout/stderr output.
You should have something similar to this where you are reading until "something" happens. If you elect to use the "built-in" scrapligo console thing (you probably should) and you are using that readUntil method, you are just reading until some output as a string. The next "initial config" phase you may or may not end up using the ReadAndCallback method of scrapligo, or whatever else depending on your need.

What's the best way of stepping through the code in your opinion? Delve debugger or something else?

TBH, I'm not super savvy w/ delve or any go debugging -- I usually just wish it was Python if I get to that point :)

maybe need to vet how Boxen is actually accessing the host

Unless you did something not "standard" it is telnet'ing to the serial port and using scrapligo, nothing too fancy, but it does suck because it is not a "normal" telnet/ssh connection, so scrapligo is set to disable auth and transport timeout so boxen can just continually read and not timeout (in this way it is much more like using paramiko than scrapli).
HTH

Going to close this for now. I'm working on a big overhaul for scrapligo --that will make adding platforms even easier (as in just a yaml file) so if there is interest we can reopen/rediscuss after the 1.0.0 release in the next few weeks/month or two.
Carl

Thanks for letting me know. My todo list was getting bigger each week and this was getting pushed down. If you want some end user testing/feedback feel free to ping me. Happy to help the project any way I can!


[object Generator]

25.3 Generator Objects
http://www.ecma-international.org/ecma-262/6.0/#sec-generator-objects
C:\Users> node
> GF = function* (){}
[Function: GF]
> GF.constructor.name
'GeneratorFunction'
> G = GF()
{}
> G + ''
'[object Generator]'

Fixes #

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

Function is specifically special-cased in our spec. Sounds like FunctionGenerator should be as well.
For the record, (...args: any[]) => any is not equivalent to Function. The latter is not assignable to the former. Check out this sample.

then why is it working?
bug:

not a bug:

Sorry for the delay, a few comments:

Generator function needs a construct signature as well
From spec

Thus the function call GeneratorFunction (…) is equivalent to the object creation expression new GeneratorFunction (…) with the same arguments.

More importantly, this file should not be edited manually, it is auto-generated from a script in . The change should rather be done in src/lib

For future references, please file an issue first to track changes.

then why is it working?

It's working as intended - like I said, Function isn't assignable to (...args: any[]) => any. Your GeneratorFunction definition adds an explicit signature of (...args: any[]) => Generator, which satisfies (...args: any[]) => any

This fix will be automatically assembled and updates in VSCode with these fixes? Or the lib directory is collected separately?


add upgrade paths and release terminology

Fixes DOC-524.
Realizing that this draft does not yet work if:

- The docs version corresponds to a testing release (i.e., the docs are being viewed on DEV before the major release is GA)
- The docs version is the initial major release (i.e., with the `0` patch number).

I'll account for these in a new commit.

EDIT: Above should be handled correctly now.
The logic in this PR is summarized here: https://cockroachlabs.atlassian.net/wiki/spaces/~5d815e4401e2cb0c301faf7e/blog/2022/08/03/2665447546/Dynamic+upgrade+docs

This change is

@nickvigilante Would you mind checking over the liquid syntax I used here? I added a few since we last spoke.

EDIT: I just noticed that the syntax to pull the given upgrade version is page.release_info.version. I could use your help in determining whether this will always produce the same value as latest_production.version, which I added to use. If so, I should probably just stick with one of these.

Both page.release_info.version and latest_production.version should produce the same value. The former gets fed from _config_base.yml and uses the version plug-in in the _plugins folder. the latter is calculated based on the data in the _data folder. Either can be used, although I eventually want to retire the need for the version plug-in. However, I opt for less code where possible, so I suggest using page.release_info.version.

@BramGruneir I've written this blog to explain what I'm doing with the variables in this PR: https://cockroachlabs.atlassian.net/wiki/spaces/~5d815e4401e2cb0c301faf7e/blog/2022/08/03/2665447546/Dynamic+upgrade+docs
Let me know whether this fulfills what you had in mind for an upgrade path!

@BramGruneir friendly ping for review!


Quick question on selection probability

Hi Devs,
Thank you so much for continuing to work on this important project. How does the selection probability translate to feature selection in practice (i.e. how to use it to identify a minimal set of feature that can well represent the input)?
https://github.com/fabian-sp/lassonet
Also, I discovered this custom implementation of LassoNet but with varying architectures; it could be useful for general research purposes and I don't know if you've already seen this work.

Thank you for your question. The answer will appear in the latest version of this paper that we have to put online in the following weeks @garcia-mc
https://arxiv.org/abs/2206.06885
We exchanged a few emails back then with @fabian-sp
I think @p-smirnov explored the idea of L1 for convnets but I'm not sure if it led to a publication.

Glad that you guys are still working on this. Thank you!


mxnet install page for linux mentions two different versions of Cuda

this may very well not be the right place for this, but I didnt see a webpage specific repo for mxnet
https://mxnet.apache.org/install/index.html?platform=Linux&language=Python&processor=GPU
it says to get CUDA 9.0 at first, and then step 2 says install mxnet using CUDA 9.2.
it also says to be very sure which one it is, and I am about as far from sure as possible,
should I just gather all the latest libraries or is it imperative to use the older 9.0 library.
I dont expect my installation questions to be answered, just pointing out a possible error on the webpage.
Note: Providing complete information in the most concise form is the best way to get help. This issue template serves as the checklist for essential information to most of the technical issues and bug reports. For non-technical issues and feature requests, feel free to present the information in what you believe is the best form.
For Q & A and discussion, please start a discussion thread at https://discuss.mxnet.io
Description
the mxnet.apache.org website has a possible error, where it points out multiple
versions of CUDA as neccesity for installation.
Environment info (Required)
Ubuntu 18.04, Chromium, x86_64, NVIDIA GT 10 series
Steps to reproduce
(Paste the commands you ran that produced the error.)

go to https://mxnet.apache.org/install/index.html?platform=Linux&language=Python&processor=GPU
search CUDA, and you will find it in 1, 2, and 5 out of ten results

What have you tried to solve it?

Let you lot know
Attempting to install with cuDNN for 9.0 and what looks like the latest cuda library (9.2?)

@smokytheangel0 thanks for bringing this to our notice.
@mxnet-label-bot [Doc, Installation]

Hello @smokytheangel0 - looks like this issue has been resolved. Could you please close it accordingly?

@smokytheangel0 Can you confirm if the issue got resolved ? If yes, please close this issue :)

@sandeep-krishnamurthy Seems like PR #12388 resolved this issue. Can you please close this issue ?
@smokytheangel0 Feel free to re-open if closed in error.
Thanks!


Multi-module: ERROR (tsgen) : Component is not an object: enum

Description of the bug
Cannot generate enum
Expected behavior

Minimal reproducible example

Versions
Hilla: 23.2.0.rc1
Flow: 23.2.0.rc2
Java: JetBrains s.r.o. 17.0.2
OS: amd64 Windows 10 10.0
Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
Live reload: Java active (HotswapAgent): Front end active

Minimal reproducible example:

Run npx @vaadin/cli init --hilla --auth hilla-with-auth
Add com.vaadin.experimental.hillaEngine=true to src/main/resources/vaadin-featureflags.properties
Run npm install
Run mvn spring-boot:run

You will get the described failure for the RoleModel file (model representation of src/main/java/com/example/application/data/Role.java).
What happens:
Model plugin cannot consume enums, so it just generates nothing. However, TS wants to import the result of generation which leads to application failure.

The old generator just produces an empty class for enum. I wonder how it should look for the Hilla Engine.
Proposal
Since enum cannot have model at all, we could  just analyze the link to the enum, understand that it is an enum and import the original file created by BackbonePlugin. So instead of RoleModel we will just have a Role enum import here.


Hall of fame Grid

Hall of Fame grid has been created within a hall of fame page. It maps over available flavours and creates a grid of hall of fame thumbnails/cards
#13

Now that this is resolved, can you approve it please @pearlescence-m and @thelmaboamah


helm chart v3.17.0 results in v3.12.0

I ran helm template nri-bundle newrelic-infrastructure --repo https://newrelic.github.io/nri-kubernetes --version 3.17.0 --set global.licenseKey=x --set global.cluster='CLUSTER_NAME' --namespace=newrelic --set newrelic-infrastructure.privileged=false --set ksm.enabled=true --set kubeEvents.enabled=false > output.yaml
Even though I asked for v3.17.0, the output says app.kubernetes.io/version: 3.12.0.
If I install v3.22.0, then I get app.kubernetes.io/version: 3.17.0.
Clearly there is some discrepancy between the release tags and the versions themselves.

Helm has the concepts of version and appVersion:
https://helm.sh/docs/topics/charts/#the-chartyaml-file
What you requested is the Helm chart newrelic-infrastructure with version 3.17.0, which contains the app nri-kubernetes with appVersion 3.12.0:
https://github.com/newrelic/nri-kubernetes/blob/newrelic-infrastructure-3.17.0/charts/newrelic-infrastructure/Chart.yaml
If you request the Helm chart newrelic-infrastructure with version 3.22.0 you get nri-kubernetes with appVersion 3.17.0:
https://github.com/newrelic/nri-kubernetes/blob/newrelic-infrastructure-3.22.0/charts/newrelic-infrastructure/Chart.yaml

@juanjjaramillo That is needlessly confusing. Please fix the version numbers to be in alignment.


Support for parsing dictionary GET parameters

Hey, I'm attempting to pass through and parse a dictionary structure via get parameters.  It seems that the reqparse does not support doing this however?
From what I saw in the source this may just not be currently implemented.
Is there implementation for parsing GET parameters structures formatted like this?
&query_filter[active]=true&query_filter[name]=product1

Nothing I know of supports the exact syntax you gave an example of, but I think this is pretty close:
https://webargs.readthedocs.io/en/latest/advanced.html#custom-parsers

I had the same issue, this is what I endup doing:
reqparse.add_argument('type[]', type=str, required=False, location='args', action='append', dest='types')

This is the parser I build for webargs to handle square bracket query string parameters. Perhaps this will help you build something for your use case @riguy724.
    BRACKET_PARAM = re.compile(r'(\w+)\[(\w+)\]')

    def parse_querystring(self, req, name, field):
        # pylint: disable=line-too-long
        """ Handle JSON API filter parameters:
        https://github.com/marshmallow-code/marshmallow/issues/133
        http://jsonapi.org/recommendations/#filtering
        Ex: filter[post]=1,2&filter[author]=12&include=author&fields[articles]=title,body&fields[people]=name
        Args: {'filter': {'author': '12', 'post': '1,2'}, 'include': 'author', 'fields': {'people': 'name', 'articles': 'title,body'}}
        """
        # webargs get_value uses some MultiDict methods so we can't just use a dict
        args = werkzeug.datastructures.MultiDict()
        for key, value in req.args.items(multi=True):
            matches = self.BRACKET_PARAM.match(key)
            if matches:
                key = matches.group(1)
                args.setdefault(key, {})
                # Dict field values must always be a comma Delimited List
                value = value.split(',') if value else []
                args[key].update({matches.group(2): value})
            else:
                args[key] = value
        return webargs.core.get_value(args, name, field)


jscs warning when building the boiler plate code

Hello Maintainers,
I get this error when i try to build the generated boiler plate code. I tried searching the source code for any usage of Vow but I couldn't find anything.
Workaround: If i build with --force, everything works.

grunt jscs
Running "jscs:src" (jscs) task
Warning: Vow.promise is not a function Use --force to continue.
Aborted due to warnings.
Thanks for your time!

@ashishkumarshah just fixed this issue; this will land in next release (due shortly). Thanks for reporting this.


[PowerShellV2] Log warnings as warnings

Required Information
Entering this information will route you directly to the right team and expedite traction.
Question, Bug, or Feature?
Type: Feature
Enter Task Name: PowerShellV2
list here (V# not needed):
https://github.com/Microsoft/azure-pipelines-tasks/tree/master/Tasks
Environment

Server - Azure Pipelines or TFS on-premises? all

Issue Description
Add the ability to log powershell warnings as azure devops warnings.

closed by #13122


Make metadata optional in barplot

Improvement Description
The sample metadata should be optional. If not provided, the viz will just plot the Sample IDs on the x axis, and not include the sample metadata columns in the the "sort" dropdown. This would be useful for plotting "grouped" feature tables.
Current Behavior
Metadata is required.
Proposed Behavior
Metadata is optional.

fixed in #134


Feature Request: Add json output option

I would like to have an option to get the json report, and then further modify this output to generate a styled markdown comment. An example of such comment could be a markdown with links to the markdown files with errors.

You can use --format json to change the output file format of the status report to JSON. Does that answer your question?

If I add -- format json it will override the standard markdown output?

Yup, it will use JSON instead. (Just fyi: there may be no extra space between -- and format. Otherwise lychee treats format and json as input files and not as one argument. This is a POSIX standard.)

Thanks

You can use --format json to change the output file format

this isn't true anymore
https://github.com/lycheeverse/lychee-action/blob/53aae90c425dd7e50ea3cda9b3e551be2cabfb08/entrypoint.sh#L12
When I ran lychee --format markdown --format json I got this error:
error: The argument '--format <format>' was provided more than once, but cannot be used multiple times

USAGE:
    lychee <inputs>... --config <config-file> --format <format> --max-concurrency <max-concurrency> --max-redirects <max-redirects> --method <method> --timeout <timeout> --user-agent <user-agent>

For more information try --help

I guess it would be cool if we have an optional FORMAT env. var. to define the value for --format option. Or maybe an input will be better, like:
     - name: Link Checker
        uses<EMAIL_ADDRESS>        with:
          args: --verbose --no-progress **/*.md **/*.html
          format: json

Oh my. Sorry about that regression.
@micalevisk would be comfortable creating a PR for that? Otherwise I can also do it.

I did understand that something like
# ...
LYCHEE_FORMAT=${INPUT_FORMAT:="json"}

lychee --format "$LYCHEE_FORMAT" --output "$LYCHEE_TMP" "$@"

# ...

would work. But I'm unsure on how could remove any ocurrence of --format option on that "$@" :/ so I can't create a PR

actually, I just figure this out. I'll create the PR.

Don't think there's an elegant way.
Given that --format is a new flag I doubt that anyone overwrote it already.
But to be 100% sure we could introduce the format input behind a v2.

Oh okay. 😆

so I'll fix that regression but detecting if $@ has an occurrence of --format. Is this fine?

Yeah that's fine. Thanks for the quick fix @micalevisk. 🥳


Feature request. Running on xorg or wayland and show gnome version

Description
Is there any chance to implement in future version display Gnome version and it's running on Wayland or Xorg?
Neofetch version: 7.0.0-1.1
Config file: https://pastebin.com/S5L93Z5U
Verbose log: https://pastebin.com/vEnup3hq
Screenshot:

Displaying the version is disabled in your config, change it to de_version="on".
Regarding Wayland I'm not sure if @dylanaraps would like to implement it.

Adding [[ $WAYLAND_DISPLAY ]] && de="$de (Wayland)" at the end of the get_de() function (right above the run_de=1 line) should do it.

Three simple steps are needed to show the display server:
1. Open the configuration file
sudo nano ~/.config/neofetch/config.conf

2. Paste this between info lines
prin Session "$XDG_SESSION_TYPE"

3. Save changes.

I would suggest something like this above de_run=1:
case $XDG_SESSION_TYPE in
    wayland*) de="$de ($WAYLAND_DISPLAY)" ;;
    x11*)     de="$de ($DISPLAY)"
esac

However, it might be preferable to add a separate "DS" (display server) info line, with output resembling the following:
DS: Wayland (wayland-0)
DS: Xorg (:0)


Support linking static dependencies when building with MSVC

Motivation
Currently it's impossible to build Pulsar C++ client on Windows with LINK_STATIC=ON. It means users have to package all 3rd-party DLLs as well as pulsar.dll, which harms the experience.
Modifications
Enable LINK_STATIC when the Vcpkg triplet is xxx-static. In this case, find the 3rd party libraries with correct names on Windows. And replace Threads::Threads with CMAKE_THREAD_LIB_INIT.
The most important change is replacing the /MD compile option with /MT. It should have been done by setting the
MSVC_RUNTIME_LIBRARY property, but it seems not work. So this PR just modifies the CMAKE_CXX_FLAGS_<CONFIG> variables.
For pulsarWithAllDeps.lib, add the actual library (*.lib) to COMMON_LIBS instead of the target name (dlfcn-win32::dl).
Some warnings on Windows caused by incorrect compile options are fixed as well.
A workflow is added to verify the static build for x64 and x86 Windows. And a simple example is added as win-examples to show the pulsarWithAllDeps.lib can be linked without any other dependency to run an executable.
Change the existing release workflow to release two *.zip files:

pulsar-client-cpp-x64-windows-static.zip
pulsar-client-cpp-x86-windows-static.zip

Each zip file consists of:
bin/pulsar.dll         - The dynamic library that links statically to dependencies
include/pulsar/        - Headers
lib/
  pulsar.lib           - The import library of pulsar.dll
  pulsar-static.lib    - The static library
  pulsarWithDeps.lib   - The static library with all dependnecies included
dependencies.txt       - The vcpkg outputs, which contains the dependency versions

Do we need to support LINK_STATIC when releasing windows artifacts?
https://github.com/apache/pulsar-client-cpp/blob/main/.github/workflows/ci-build-binary-artifacts.yaml

Do we need to support LINK_STATIC when releasing windows artifacts?
https://github.com/apache/pulsar-client-cpp/blob/main/.github/workflows/ci-build-binary-artifacts.yaml

I think need it.

@yaalsn Yes. I think we'd better provide a package whose structure is like:
include/pulsar/*.h
lib/pulsar/
  pulsar.dll
  pulsarWithDeps.lib

FYI, I'm also working on the Windows packaging CI based on this PR.
https://github.com/BewareMyPower/pulsar-client-cpp/actions/runs/3328649258

@yaalsn Yes. I think we'd better provide a package whose structure is like:
include/pulsar/*.h
lib/pulsar/
  pulsar.dll
  pulsarWithDeps.lib

Would you add this to this PR?

@shibd I'm debugging the packaging workflow. There is still a problem. I think both including it in this PR por opening another PR are okay.

@BewareMyPower @merlimat  Can this PR go into 3.0? The packaging of the Windows Node js client depends on this.

Mark it as draft for adding support for debug build. Waiting for https://github.com/apache/pulsar-client-cpp/pull/7 being merged first.

Hi @merlimat @yaalsn @Demogorgon314 @RobertIndie , I made some changes just now and this PR is ready to build debug version libraries. So I think #75 can be closed by this PR. Could you take a look at this PR? In addition, this PR also reverts changes of #72, please also take a look.

ping @merlimat @Demogorgon314 @RobertIndie

There is something wrong with the binary upload, I will fix it soon.

The example WIndows artifacts built by the new workflow can be found here: https://github.com/BewareMyPower/pulsar-client-cpp/actions/runs/3342437635

ping @merlimat @RobertIndie @Demogorgon314


impot host_from_gpu does not work with Theano 0.7.0

cc_layers.py tries to import host_from_gpu from theano.sandbox.cuda. This throws an import error. Changing the import statement to
from theano.sandbox.cuda.basic_ops import host_from_gpu
resolved the problem for me.

@bstadie fixed in last patch


License file missing the copyright owner

The license file says "Copyright [yyyy] [name of copyright owner]"

Each file has its own copyright header.

Yeah, nvm.

However, some were missing. Thanks for bringing that to attention :)
b72f44e9770014


security vulnerability in stringify

Snyk is complaining about a security issue with the stringify dependency. See the report here:
https://snyk.io/test/github/dataarts/dat.gui
It seems that the stringify npm package is no longer being maintained. Maybe there's another package or way of not requiring stringify in the build?

It appears the vulnerability only affect a daemon mode in node 0.8 or earlier so it's not a big deal...


fix(obstacle_stop_planner):delete default values

Description
Removed default values defined in declare_parameter function.
obstacle_stop_planner_delete_param.webm
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[ ] I've confirmed the contribution guidelines.
[ ] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@yamazakiTasuku Thanks :+1: I'll review this PR.


Benchmarks

Prior to the official release, we should perform some benchmarks of performance(and others) to clarify the non-functional requirements for the next phase.
These are some of the things that may need to be done:

Design a workload so as to represent common usage scenarios
Design environments for benchmarks, e.g. high load environments
Testing, Collecting and Plotting
Analyze the data

We have @WYXsb to help us on this. Also looking forward to any relevant proposal and help.
Thanks!

Currently we plan to move forward with benchmark by following these steps:

[ ] research related to how the project is done, give a draft
[ ] Advance benchmark implementation, collect and analyze data
[ ] Development of improvement plans


Plugin is incompatible

Plugin hub is showing "Plugin is incompatible and requires its author to update it."

https://github.com/runelite/plugin-hub/pull/4911 closes this issue

This is wildly embarrassing- but how do i actually do that? <3

@cmartinmooney nothing for you to do really. That link I posted needs to be approved by the runelite devs and once it is approved and added to their code the plugin will continue to work again.

what is this? 0cac95c6937e0c3fb29e45d50e73e57042a2c347...BraveH:06f6240ee9bfbeaeb96490309dbf2b825cd90707#diff-fd35dcdaae

what is this? 0cac95c6937e0c3fb29e45d50e73e57042a2c347...BraveH:06f6240ee9bfbeaeb96490309dbf2b825cd90707#diff-fd35dcdaae

Oh yea thanks for the find, I forgot to remove that from the test file. I was just trying to write plugins to solve the minipuzzles for the zebak and akkha puzzle rooms but i failed miserably so I stopped. And then found out other plugins that make life easier there anyways lol

You left the imports in.

I miss your plugin, can we fix? :(

@raiyni thanks again, removed the import but runelite staff hasn't seen the PR yet anyways so still stuck on their approval.
@aLatif01  Still waiting for plugin approval, all up to runelite team really...

@BraveH got it, goodluck hopefully approved soon! 😄

I don't recall other plugins taking this long update, is there anything we can do?

@raiyni Can you help merging the update?

Changes merged and is fixed now!


Incorrect word in second paragraph

The word "complimentary" used in this document (e.g., in the second paragraph) should be "complementary".  Completely different meaning.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a47ca7d5-2598-0c06-03fd-854f94cf6bbe
Version Independent ID: a57408f6-16ca-3fcb-0c04-48a7a5f9942d
Content: New-ApplicationAccessPolicy (ExchangePowerShell)
Content Source: exchange/exchange-ps/exchange/New-ApplicationAccessPolicy.md
Service: exchange-powershell
GitHub Login: @chrisda
Microsoft Alias: chrisda

@et01267 , fixed. In the future, you too can make simple fixes like this yourself without opening a GitHub issue first. For instructions, see https://github.com/MicrosoftDocs/office-docs-powershell/blob/master/README.md.
Thanks for the feedback.
Closing


Tabs

Move over tabs from https://github.com/hlxsites/caesars/tree/main/caesars-palace/blocks/tabs

https://www.caesars.com/careers/apply


Build with CMake

I could not build the example using the Makefile so I added CMake scripts.
Building V8 is not included. I tested it with V8 branch-heads/6.8 on Ubuntu.
Should hello.c really be hello.cc? Since we're linking to V8 (which is C++) it really is a C++ program using C interface.

I don't think that hello.c should be hello.cc. It is a C source program. The fact that it gets linked against a library not written in C does not change that. Its whole point is to demonstrate that you can use the API from regular C.

While hello.c is a C source program it links to a C++ library and hence the linker needs to expect mangled symbols, right? I'm not sure what the best practice is in such cases.

Linking C against C++ is perfectly supported by extern "C" declarations in C++ code, which prevent name mangling. The linker itself shouldn't care.

Great. Can you merge this?


cmd/compile: bad error message for argument missing type

Go version
1.23
Output of go env in your module/workspace:
N/A

What did you do?
https://go.dev/play/p/hgKdYn08tsY
I forgot to add the type to the last argument of a function definition:
func f(a int, b) {
}

This should have some type name after b.
What did you see happen?
./prog.go:7:15: syntax error: mixed named and unnamed parameters

What did you expect to see?
All parameters are named here, the actual problem is the missing type, so I expected something like: "syntax error: parameter 'b' missing type"

cc @golang/compiler

Related Issues and Documentation

cmd/gc: Improve error message when no types in function signature #10762 (closed)
cmd/compile/internal/syntax: unclear error message for function type have type parameters #48382 (closed)
cmd/gc: incorrect error message #10671 (closed)
cmd/compile: confusing (but accurate) error message for function with variadic arguments if argument is not the last #28450 (closed)
cmd/compile: no need to complain about missing type arguments after type inference error #50588 (closed)
cmd/compile: generic error does not identify relevant type #64276 (closed)
cmd/compile: misleading error message when struct lacks expected type parameters #49541 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

Thanks @gabyhelp. #10762 points out that this could be ambiguous. If b is a type, then the error message would be accurate.
Still, as a user I know b is not a type, so the error message is not very helpful.

This error comes from the parser, so it can't use knowledge of what kind of symbol b is. I suppose the type checker could emit a second error:
./prog.go:7:15: syntax error: mixed named and unnamed parameters
./prog.go:7:15: type error: parameter b has no type

We don't want to report two errors for a single bug; also the type checker is not run if there are syntax errors. But perhaps the error message can be improved.

We don't want to report two errors for a single bug; also the type checker is not run if there are syntax errors. But perhaps the error message can be improved.

Hi @griesemer , I have created a CL to improve the error log. I cannot find a better name than "named function parameter declaration" here as the go spec actual doesn't provide a good naming for it as well. The EBNF ParameterDecl mixes the unnamed/named parameter declaration together and describes the limitation in the description part.
I plan to change the spec description as well so users could find the error quickly by checking the specification based on the error message.

also the type checker is not run if there are syntax errors.

If the compiler tolerates some errors in the parsing stage and checks them in the type check stage, the compiler could report more accurate error messages. For this specific case, I don't think it's worth doing as the possible huge code changes.
But in a general sense, do you think it's a correct direction to continue type check to check some errors that the parser cannot report accurately?


[Event Request] Codeunit 5980 Service-Post - OnAfterWareHouse

Hi, would it be possible to get an event OnAfterWareHouse in codeunit 5980 Service-Post, like this :
var
        IsHandled:Boolean;

            if WhseShip then begin
                if TempWarehouseShipmentLine.FindSet then
                    repeat
                        WarehouseShipmentLine.Get(TempWarehouseShipmentLine."No.", TempWarehouseShipmentLine."Line No.");
                        WhsePostShpt.CreatePostedShptLine(WarehouseShipmentLine, PostedWhseShipmentHeader,
                          PostedWhseShipmentLine, TempTrackingSpecification);
                    until TempWarehouseShipmentLine.Next = 0;
                if WarehouseShipmentHeaderLocal.Get(WarehouseShipmentHeader."No.") then
                IsHandled:=false
                OnAfterWareHouse(IsHandled);
                if not IsHandled then
                    WhsePostShpt.PostUpdateWhseDocuments(WarehouseShipmentHeader);

    [IntegrationEvent(false, false)]
    local procedure OnAfterWareHouse(var IsHandled:Boolean)
    begin
    end;

Thanks!

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Split SeekRelative to SeekForward and SeekBackward

In the Stream API, perhaps we should split SeekRelative to SeekForward and SeekBackward.
Currently the bounds checking is proving to be a nuisance. Some of that comes from trying to figure out all the corner cases when mixing a signed offset with an unsigned position.
Another difficulty, perhaps more theoretical, is seeking all the way across a long stream, which might need the full unsigned range. By using a signed offset, a relative seek might require two seeks to reach the intended position.
Finally, I think it's generally clear when making a seek call if you intend to go forward or backward, so perhaps that decision should be encoded in the function name, rather than the parameter. This is similar to the decision to split Seek from SeekRelative, rather than encode the starting position as a parameter (which usually ends up being a hardcoded constant, or default value).

Additionally, this might be a good place to break up the interface. Some streams, notably compression/decompression streams, or encryption/decryption streams have complicated state, and transitions that are only intended to go one direction. It may be difficult (decompression) to impossible (decryption) to seek in the opposite direction. It might make sense to have a ForwardSeekableStream and a BidirectionalSeekableStream.

I like the idea of SeekForward and SeekBackward.
Perhaps Seek belongs in BidirectionalSeekableStream then because one could easily use it to seek backwards.
Brett

Hmm, I think you might be right.
This seems very similar to the distinction between various Iterator types. Of note, the ForwardIterator can be copied, allowing you to reset your position to an earlier saved point. We might want to allow that with certain ForwardSeekable streams. You can't seek backwards, but you could save the stream state at some point (for example, the position and state of various decompression tables), and resume reading from that position at a later point in time. That would enable multiple passes over the same data, while still only moving forward, though at the cost of memory and time to copy the stream object.
Note that Iterators make a distinction between BidirectionalIterators and RandomAccessIterators. That stems from having only increment/decrement operations on the base iterator type, rather than movement by arbitrary amounts. Since we allow seeking and reading by arbitrary amounts, we would have no distinction between these two types.
From another viewpoint, the bidirectional versus random iterator distinction seems to correspond with relative versus absolute seeking, but that distinction is really about the efficiency of large jumps through the data. A stream interface necessarily has to support large reads, and hence large jumps through the data. That's what makes it convenient to read arbitrarily sized data types.
Comparing against the Iterator types, we would have the following correspondence:
InputIterator -> StreamReader
ForwardIterator -> ForwardSeekableStreamReader
{ BidrectionalIterator, RandomAccessIterator } -> SeekableStreamReader
OutputIterator -> StreamWriter


Questions before submitting a bunch of patches

As I port python-zstandard to Rust, I'd like to use zstd-safe rather than zstd-sys. It is quite apparent that a lot of APIs are not yet available in zstd-safe. Before I submit a number of patches to implement missing functionality, I have a few questions:

Will you accept PRs adding safe wrappers for most/all zstd API primitives?
Is there a reason zstd_safe uses individual functions instead of grouping functionality for types via impl T { }. e.g. why define fn create_cctx() instead of impl CCtx { pub fn create() }?
Related to the prior question, do you mind if I use impl T { } to hold functionality for new types? (If not, I totally understand and don't mind following existing conventions.)
I noticed that the pointer returned by various ZSTD_create* APIs is never checked for NULL. This seems like a potential NULL access bug. Are you aware of this? This will likely necessitate using Result on functions that could fail. Are you OK with patches that change the non-robust functions to return Result<T> instead? (This will be a backwards incompatible break.) Alternatively, we could introduce new APIs that return Result<T> and preserve the existing APIs for backwards compatibility.

Thank you for maintaining this project!

Hi, and thanks for the interest!

Will you accept PRs adding safe wrappers for most/all zstd API primitives?

Absolutely! I started with the minimal amount needed for zstd-rs, but the goal is indeed to cover the entire API.

Is there a reason zstd_safe uses individual functions instead of grouping functionality for types via impl T { }. e.g. why define fn create_cctx() instead of impl CCtx { pub fn create() }?

I've been thinking about grouping it like that. I tried at first to be as thin as possible, and to mimic the C API almost 1-for-1, but it probably makes sense to at least use inherent implementation.

Related to the prior question, do you mind if I use impl T { } to hold functionality for new types? (If not, I totally understand and don't mind following existing conventions.)

Sure, let's try to get a nice API!

I noticed that the pointer returned by various ZSTD_create* APIs is never checked for NULL. This seems like a potential NULL access bug. Are you aware of this? This will likely necessitate using Result on functions that could fail. Are you OK with patches that change the non-robust functions to return Result<T> instead? (This will be a backwards incompatible break.) Alternatively, we could introduce new APIs that return Result<T> and preserve the existing APIs for backwards compatibility.

True, I didn't think much about that. I think I would panic on null returns in the default functions, and provide Result-returning ones for when the user wants to recover - much like the default allocation API from the rust std lib.

Thank you for maintaining this project!

Thank you for helping and contributing! :)

Some time has passed, and the situation has a bit improved:

zstd_safe now has a slightly more idiomatic API with methods on the various types rather than free functions
we now use NonNull<T> rather than just *mut T, which automatically checks for null pointers. As such, all the create() method now have a try_create which returns None when zstd returns a null pointer.

We're still not covering 100% of the C library, so things can still improve.


Iterating resource representation returns same resource term multiple times

Ideally fixed with a future clownface#distinct() zazuko/clownface#20

Dupe of #239


Don't use an explicit global variable for $real*

Suggestion:

realchars:

$realchars{$keycode}  --> __($keycode), so the translator coul choose freely and select the most appropriate special characters in its country

realbuttons:

if ($realbuttons[$_[0]]) --> if ($_[0] < 6)
return $realbuttons[$_[0]] --> __("mouse".&_[0]) (mouse1, mouse2, ...)
leave return "Click mouse button $_[0]" as is (but don't forget to translate)

Solve e along with #12


How to set legend's alias?

The fileds in Data are English, but i want to show Chinese on page.

I find the fucntion 'itemFormatter', but what's data type of this function's return value

Would you like to paste you code here?

I guess you want to display legend in Chinese but the original data's key is in English. Here is a recommend solution: just use Chinese as data key. Like below:
// Before
[{ weight: 60 }, { weight: 50 }, { weight: 80 }]

// After
[{ 重量: 60 }, { 重量: 50 }, { 重量: 80 }]

You can just use DataSet's transform method to do such action.

ItemFormatter can solve this problem, but i think it's better to return a array which as fields' reflect. It looks like your suggestion is better. （开始以为itemFormatter返回数组，是和transform中（type: 'fold'）fields一一对应的，实际上是需要判断。因为Tooltip里也需要转换，所以还是采用你说的transform（type: 'map'））
 {
    if(item == 'businessIncome') return '营业收入';
    else if(item == 'cardSellingIncome') return '售卡收入'
 }}/>

Yep, that's the point. Use formatter only affect in component's display, but the way use DataSet to do data pre-processing would affect the whole procedure to display a chart include a lot of internal logics like position calculation.


obs-studio: 21.0.3 -> 21.1.1

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/obs-studio/versions.
These checks were done:

built on NixOS
ran /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1/bin/obs -h got 0 exit code
ran /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1/bin/obs --help got 0 exit code
ran /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1/bin/.obs-wrapped -h got 0 exit code
ran /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1/bin/.obs-wrapped --help got 0 exit code
found 21.1.1 with grep in /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1
directory tree listing: https://gist.github.com/08175928e798aeee1fb0326677000c7c

cc @jb55 @MP2E for review

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: obs-studio
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: obs-studio
Partial log (click to expand)
shrinking /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1/lib/obs-plugins/obs-transitions.so
shrinking /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1/lib/obs-plugins/rtmp-services.so
shrinking /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1/lib/obs-plugins/text-freetype2.so
shrinking /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1/share/obs/obs-plugins/obs-ffmpeg/ffmpeg-mux
shrinking /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1/bin/.obs-wrapped
strip is /nix/store/fzcs0fn6bb04m82frhlb78nc03ny3w55-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1/lib  /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1/bin
patching script interpreter paths in /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1
checking for references to /build in /nix/store/3dqzcmdm5caax4gqr61k05hmxrs1ca5w-obs-studio-21.1.1...
postPatchMkspecs

Failure on aarch64-linux (full log)
Attempted: obs-studio
Partial log (click to expand)
   Compiling backtrace v0.3.4
   Compiling proc_macro v0.0.0 (file:///build/rustc-1.24.0-src/src/libproc_macro)
   Compiling rustc_const_math v0.0.0 (file:///build/rustc-1.24.0-src/src/librustc_const_math)
   Compiling syntax_ext v0.0.0 (file:///build/rustc-1.24.0-src/src/libsyntax_ext)
building of '/nix/store/whsyh46wr0zfkw420xcc8ffgahszsd80-rustc-1.24.0.drv' timed out after 3600 seconds
cannot build derivation '/nix/store/nfjkyviyyy9ly6hq1pj5wzy6qxmd491n-cargo-0.24.0.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/bbqaq71xj30lggbbbf6calm3g7g56c02-librsvg-2.42.2.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/syp60jp3487fpf730g1bl9zic8dhdvkz-vlc-2.2.8.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/dbwrry4mxbijmvyqf766cqs2pbav20n4-obs-studio-21.1.1.drv': 1 dependencies couldn't be built
error: build of '/nix/store/dbwrry4mxbijmvyqf766cqs2pbav20n4-obs-studio-21.1.1.drv' failed

Thanks for the PR! Reviewed and merged as of e42ae4e586cc7e1e76387d5c6b14382a83ee1c64


TSC Infrastructure Meeting Agenda 27 July 2021

Agenda
Randall will present on his activities

separation of Geneva and SAFR parts
universal build approach for both streams
delivery of binaries

Meeting complete


Port changes of [#16998] to dora(main)

What changes are proposed in this pull request?
Manually port the changes from https://github.com/Alluxio/alluxio/commit/8cbcbcd6d3f3451f2bfeb326efadfd1372c9351e to dora(main) and resolve conflicts.
Why are the changes needed?
Please clarify why the changes are needed. For instance,

If you propose a new API, clarify the use case for a new API.
If you fix a bug, describe the bug.

Does this PR introduce any user facing changes?
Please list the user-facing changes introduced by your change, including

change in user-facing APIs
addition or removal of property keys
webui

alluxio-bot, merge this please


Add "for_json" method to support simplejson serialization.

Hi,
I have added a for_json method to the arrow.Arrow class then serialize the Arrow instances inside a dictionary will be possible.
>>> import arrow
>>> import simplejson as json
>>> json.dumps({'start': arrow.get(0)}, for_json=True)
'{"start": "1970-01-01T00:00:00+00:00"}'

Please review it. Thanks.

Looks good, can you please add the corresponding test case?

@andrewelkins done in https://github.com/tonyseek/arrow/commit/912c04a26229a2b188632005552e6017c4224d54.

Merged, We'll get it in the next release.


Write functional and non-functional requirements

I've added a list of functional and non-functional requirements.

Everything seems to be perfect! Ewentually, i would extend notifications requirements by telling, what type of Notifications it should be. Push notifications, or SMS.


ARROW-4622: [C++][Python][GLib][Ruby] MakeDense and MakeSparse in UnionArray should accept a vector of Field

TODO:

[x] Write tests for existing behaviors
[x] Support to supply field names
[x] union_(field_names, children, mode)
[x] Support to supply type codes
[x] make format
[x] Fix GLib binding
[x] Fix Ruby binding
[x] Fix Python binding
[ ] Make CI green

The reason of the CI failure is same as https://github.com/apache/arrow/pull/3760

I think this pull-request is ready for review.

@kou

Can we create arrow::UnionArray::Make() instead of adding parameters for union_() to MakeDense() and MakeSparse()?

My understanding of what you mean is:

the changes for MakeDense and MakeSparse should be reverted
we should add UnionType::Make so that we can create UnionArray by the code like below:

arrow::UnionArray array;
auto array_type = arrow::union_(children, field_names, type_codes, UnionMode::SPARSE);
arrow::UnionArray::Make(array_type, type_ids, value_offsets, children, &array);

Is this interpretation correct?

Yes. It's what I suggest.

@wesm @pitrou @fsaintjacques How do you think about this PR?

I'll give a look.

@mrkn It looks ok on the principle. Can you rebase on latest master?

@pitrou I've rebased the branch onto the latest master, and fixed against two kou's comments.
I haven't added arrow::UnionArray::Make kou suggested, but I'd like to do it if the suggested approach is better than my approach.

Codecov Report

Merging #3723 into master will increase coverage by 1.34%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #3723      +/-   ##
==========================================
+ Coverage   87.84%   89.18%   +1.34%
==========================================
  Files         734      500     -234
  Lines       90436    60332   -30104
  Branches     1252        0    -1252
==========================================
- Hits        79439    53808   -25631
+ Misses      10880     6524    -4356
+ Partials      117        0     -117

Impacted Files
Coverage Δ

cpp/src/arrow/type.h
94.59% <ø> (-1.36%)
:arrow_down:

cpp/src/arrow/union_array-test.cc
100% <100%> (ø)

cpp/src/arrow/array.h
98.71% <100%> (+0.1%)
:arrow_up:

cpp/src/arrow/array.cc
84.68% <100%> (-6.26%)
:arrow_down:

cpp/src/arrow/type.cc
91.13% <100%> (-4.07%)
:arrow_down:

cpp/src/arrow/csv/reader.h
0% <0%> (-100%)
:arrow_down:

cpp/src/arrow/array/builder_union.h
0% <0%> (-100%)
:arrow_down:

cpp/src/arrow/array/builder_union.cc
4% <0%> (-96%)
:arrow_down:

cpp/src/arrow/csv/reader.cc
0.56% <0%> (-92.14%)
:arrow_down:

cpp/src/arrow/adapters/orc/adapter.cc
0.24% <0%> (-75.68%)
:arrow_down:

... and 288 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 72ce489...e3906af. Read the comment docs.

@mrkn Are you sure the rebase is ok? There seem to be some Rust conflicts...
Once the rebase is fixed, I'll take a look. Thank you :-)

@pitrou Rebased.

Perhaps it's easier to make separate PRs for C++/Python and the rest?

@pitrou OK. I'll separate GLib and Ruby changes into a different pull request.

Thanks @mrkn. The CI failures are unrelated (see ARROW-5148). I will make a few changes and then merge.


3: QA Review

Summary
Update the code review guidelines to document that QA review now occurs after Dev review completes, as per the discussion at https://community-release.mattermost.com/core/pl/mjnexpqgetna5bfkm1xd9nhwjy.
Note that I have not yet effected the GitHub label change from 2: QA Review -> 3: QA Review, but will hopefully accomplish that shortly. There are also other automation tickets to be filed from the agreed changes.
Apologies for the noisy diff -- I took the opportunity to tidy things up given the scope of the necessary changes.

Thanks for the reviews, @lindalumitchell & @hanzei! Updated and comments above -- let me know your thoughts on the outstanding items.

Thanks very much, @lieut-data! Also appreciate the tidy consolidation. All looks good to me, with the one outstanding item about 4: Reviews Complete (my comment re: wanting to keep it in use is above, in-thread).

I hope you don't mind me jumping in on this and adding a few minor suggestions, @lieut-data (I saw the editor review label when I was scanning through PRs) :). This looks great. :)

Thanks, @justinegeffen! @lindalumitchell, I've added a mention of 4: Reviews Finished, though I didn't tie it directly to QA since it can be added by other reviewers or even the author as needed.
Reading through this, I'd love to see us add a section entitled, If you are a QA tester asked to give a review to codify the flow for both sides. Perhaps a future contribution?

@saturninoabril I removed the QA Review label before I realized that you're also assigned to review this PR. If you'd like to review it please go for it; if not, I think we're good to go from the QA perspective.

Thanks, Linda. LGTM.


feat: 🎸 Add support for spec range 5.3.x

Description
Updates supported spec version and node version to 5.3.x
Breaking Changes
NA
JIRA Link
DA-571
Checklist

[ ] Updated the Readme.md (if required) ?

:tada: This PR is included in version 19.2.0-alpha.3 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 20.0.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 20.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


macro-crate code sharing

@austinabell, to avoid using a new crate to host shared code between the base crate and the proc macro crate, we can host the code inside the base crate and use #[path = ''] to inject it into the proc macro crate.
In a sense, it's equivalent to duplicating the code without actually duplicating the code.

Closing in favour of the original PR (feel free to re-open if there is an argument for this)


Drools 1180 Migrate QE tests upstream.

This is second in a series of PRs that migrate some tests from QE regression test suite upstream (there will be more).

Migrated test classes that inherit from EnginesTest class in QE regression test suite.

First PR (already merged) from the series is here if somebody is curious: https://github.com/droolsjbpm/drools/pull/788


Is this dead?

When I watched Jason's video about this concept I couldn't wait to try it out. Sadly it has been an exercise in frustration. I have been slowly going through the code, fixing errors but I still haven't had a successful run.
 Error is Cannot resolve the path .*.psds1' to a single .psd1 file.
Is this dead? What did Microsoft change that made this unworkable? I was really anticipating the suggested Azure Autolab but I haven't seen anything on that either. Can anyone point to a working resource for the autolab concept?

you need to switch the path from where you start the setup-lab. You need to be in the path which contains the config. Still. most of the configs are not working anymore cause the needed module labibility is not working properly anymore.

Thanks for the reply. That is a shame though as I think the concept is great. Any idea if the anticipated Azure version will ever be developed?

Sorry but I do not know. I think problem with this Lab here are to many dependencys to windows, powershell and other modules. Tried to find errors and fix them, got only frustrated by more and more errors...

It look like this Project is Dead.
No one is answering any question.

This project is now under new ownership. The 3.x version line is obsolete. Version 4.0.0 has been published to the PowerShell Gallery with new updates, configuration, and documentation. It is expected that this version will resolve most if not all of the problems you were experiencing. Read Updating for more information.
No further action will be taken on this issue and it will most likely be closed at some point. If you still have the same issue with the new version, then go ahead and open a new issue.


Understand why -1.0d as the default?

https://github.com/microsoft/gctoolkit/blob/8d88dfc64891b1a877ddaeeab104d9e94119e6f4/parser/src/main/java/com/microsoft/gctoolkit/parser/JHiccupTrace.java#L22

these numbers should never be negative and if they are then they've never been set. This is used in cases where data may, or may not show up.. or we want to set the value once and once only

@kirk-microsoft - did you replace the comment in the code with your explanation?

Adding comments to the code is an ongoing group effort that is being addressed in each additional pull request.