nixuser: declarative user environments

What is Nix User Profile (NixUP)? NixUP is a declarative configuration for the user environment. It is an equivalent to the NixOS configuration method that is based around 'nixos-rebuild' and '/etc/nixos/configuration.nix'. NixUP provides a module system for configuring the user environment and is intended as a replacement for the imperative 'nix-env' commands. NixUP allows to, e.g., install packages, manage user defined services and to manage resources.
NixUP consists of a new program, called 'nixup' and a declarative configuration rooted at '$XDG_CONFIG_HOME/nixup/profile.nix' (e.g. ~/.config/nixup/profile.nix). Basically, the workflow for managing the NixUP user profile is the same as how the NixOS system configuration is being managed. The 'profile.nix' is edited by the user, and then turned into an active environment through 'nixup'.
The important commands for using 'nixup' are:
nixup build
-- Builds a user profile. By default the profile is defined
in $XDG_CONFIG_HOME/nixup/profile.nix.
nixup login
-- Builds a user profile that will be activated on the next login.
That is similar to nixos-rebuild boot.
nixup switch
-- Builds a user profile and immediately switches to it.
nixup edit
-- Opens an editor with the current configuration.
NixUP also brings an small program that helps to install and to remove software packages. If 'config.imperativeNix.enable=true' is set in the 'profile.nix' configuration, then a program 'nix-package' becomes available that manages a list of packages to be installed into the user environment. By default the list is maintained at '$XDG_CONFIG_HOME/nixup/packages.nix', from where the list is read by a module of the NixUP system.
The commands for using 'nix-package' are:
nix-package install hello
nix-package remove hello
Note that the packages are not pinned at a particular version but are linked to the currently active nixpkgs channel. A way to pin a package will be provided later.
Besides managing software packages, NixUP also provides a way to manage user controlled services. NixUP allows to define services for 'systemd --user', similarly to how NixOS allows to define services for 'systemd'. That means that the feature of managing services within NixUP is bound very tightly to 'systemd', and will not be available on other platforms like OSX or Windows.
The last interesting feature of NixUP is that is allows to manage resources. That means, it allows to define files in 'profile.nix' that are then linked into the $HOME directory of a user, or into any sub-directory of $HOME. The necessary sub-directories and links are created as needed, and automatically removed when the 'profile.nix' changes. Automatically created sub-directories are removed if they are empty after all links have been removed. So NixUP has a built-in way for managing, e.g., dot-files.

Could I get some feedback and ideas about how to name the configuration tree for nixuser, please?
@nbp Can it be merged with #4594?

Great work! :+1:

Why do we need this when we have .nixpkgs/config.nix where we can write our environments?
I think that's an redundant work and can confuse people.

Just to preempt a discussion about WHY we need it, don't be tricked by the simplicity of the settings that are available so far. Nixuser is intended as a central place where user environment related configuration options can be collected. So it goes beyond an individually created .nixpkgs/config.nix.

That's an extra thing. I really don't see anything we don't have now that you want there.
The only thing we miss --- managing user dotfiles.

For instance, per-user declarative systemd services (with e.g. the same start/stop and restart-if-config-changed logic that nixos-rebuild has) is something that needs to be in nixuser-rebuild.

@jagajaga maybe you want to write a nixuser module to manage dot-files?---It would be great contribution!

The Obligatory Bikeshed: The filename configuration.nix is sort-of already taken, in particular man configuration.nix already brings up the NixOS manual. Maybe something like ~/.nixuser/user-config.nix?

Could I get some feedback and ideas about how to name the configuration tree for nixuser, please?

I will look deeply into it later.

@nbp Can it be merged with #4594?

I think so.
The problem I wanted to avoid is that we have to edit a configuration file to add packages.
I think nix-env is a convenient tool for installing new packages.  But nixuser-rebuild only provide a NixOS like approach, which is not a user friendly CLI for installing/uninstalling packages.

@dezgeg Thanks for pointing that conflict out! I hoped we could mirror nixos-rebuild as much as possible and that motivated ~/.nixuser/configure.nix. Also, what do you think about nixup (nix user profile) instead of nixuser? It's used in #4594 and would also be a good choice. I'm just trying to collect opinions :)
@nbp Thanks for going to have a look! Let me know once I can go ahead with merging our two PRs. However, having an explicit configuration file where all installed packages have to be listed is exactly what I want to achieve! To me it is one of the most important features of NixOS that the whole configuration is in one file or place, and if possible I would like to have (exactly) the same for nixuser/nixup. And, text editors are still a very good CLI based configuration tool, i think ;) But of course you're right that a nice GUI would be highly appreciated! Maybe we can generate one semi-automatically from the module definitions, I think @matejc has been working on something like that.

cc @edolstra

Does this depend on NixOS, or could it work on other Nix platforms?

@copumpkin I think it should work on other platforms as well, but I haven't tested it.

@nbp Can it be merged with #4594?

Apart from the options for managing the nixpkgs configuration, and the user packages / path, it seems that our implementations can safely be merged, except for renaming integration.
Honestly, I prefer the approach taken in NixOS, which is to have a central list of build targets stored in user.build, and then the top-level script nixuser-rebuild should pull any installable targets from this attribute set.
The interesting part of NixUP is the implementation of the activation script and the resources files, which ideally should be executed by the shell at the start-up of the shell.  This activation script serves as an init-system for the user home directory.
I am not convinced by the -rebuild in the nixuser-rebuild name, as I consider this to be an implementation detail.

However, having an explicit configuration file where all installed packages have to be listed is exactly what I want to achieve! To me it is one of the most important features of NixOS that the whole configuration is in one file or place, and if possible I would like to have (exactly) the same for nixuser/nixup. And, text editors are still a very good CLI based configuration tool, i think ;) But of course you're right that a nice GUI would be highly appreciated! Maybe we can generate one semi-automatically from the module definitions, I think @matejc has been working on something like that.

I agree, being able to define packages declaratively is nice, but the imperative style provided by nix-env is convenient.
What I was thinking about was to let the CLI tool generate the modules which are adding the packages in the environment.

@nbp Thanks for your feedback, I'll take it into account! I already had a closer look at how to merge the two implementations, and I have to say, I just started to fully understand and appreciate all the nice details that you put into NixUP! I think you've done an amazing job! Thank you very much for putting it together, it would be a shame if your work wouldn't make it upstream. I just hope I don't break too much while merging the two PRs.
I was reading up on the mailing list again about your introduction of your PR, especially the question when to activate a new user environment. I think it should be possible to have different options like nixup switch or nixup login or nixup shell to distinguish between an immediate activation, an activation with a new login or an activation just for the current shell. What do you think?
I like the idea about your CLI very much. What about a hidden configuration file outside of the nixup/nixuser configuration tree that is only managed by an CLI, and then sourced appropriately? I could imagine to have, e.g., ~/.nixup/profile/managed/{permanent,temporary} where packages are added or removed. The difference could be that the temporary packages are only available until the next rebuild of the declarative environment, whereas permanent packages are kept until they are removed. Could that work?

I was reading up on the mailing list again about your introduction of your PR, especially the question when to activate a new user environment. I think it should be possible to have different options like nixup switch or nixup login or nixup shell to distinguish between an immediate activation, an activation with a new login or an activation just for the current shell. What do you think?

The problem, is that as opposed to NixOS, we can have multiple instances of the shell, which can share some common configuration, such as agent program which are running in the background, as long as there is one session open.
Doing it for the current shell sounds interesting, but then the question is how do you ensure that the configuration files are only visible within the current shell and only within any application started by this shell.
Since I read about buildFHSUserEnv, I was wondering if we could use a mount-point namespace solution to make such testing mechanism possible.  Then the question, is why do we have a different solution for the testing mechanism and the standard mechanism.  If we are going that way, then we should do it for everything.  The problem, is that mount-point namespaces are a Linux only feature, as far as know, which makes this unpractical for MacOS users.

I like the idea about your CLI very much. What about a hidden configuration file outside of the nixup/nixuser configuration tree that is only managed by an CLI, and then sourced appropriately?

Yes, that's what I was thinking about, which is to have a ~/.nixup/generated/user.packages.firefox.nix module generated when you install firefox from the command line.  And do the same for every option which is defined from the command line.
Basically, the name of the file is used as a simple way to manipulate each definition without having any knowledge on how modules are written & handled.

I could imagine to have, e.g., ~/.nixup/profile/managed/{permanent,temporary} where packages are added or removed. The difference could be that the temporary packages are only available until the next rebuild of the declarative environment, whereas permanent packages are kept until they are removed. Could that work?

That's sounds doable, but I would not worry about that right now.

I've pushed an updated version of the declarative user environment. I tried to merge with #4594. Have a look and give me some feedback, please!

(I haven't had the time read everything, so I hope I'm not saying something silly, or something already suggested.)
Is it planned to be able to hook into user environments from /etc/nixos/configuration.nix?
I'm thinking that if "~/.nixup/profile.nix" contains
{ config, pkgs, ... }:
{
  user.packages = with pkgs; [ vim firefox thunderbird ];
}

then a similar option can exist in /etc/nixos/configuration.nix (options gets merged):
{ config, pkgs, ... }:
{
  users.extraUsers.<name>.packages = with pkgs; [ vim firefox thunderbird ];
}

Basically, options in "~/.nixup/profile.nix" can be rooted in configuration.nix at "users.extraUsers.<name>.*" (or something like it).

@bjornfor Thanks for your interest! Indeed, it is planed to make all NixUP options that are available under "~/.nixup/profile.nix" also available in the NixOS configuration, probably under "users.extraUsers..profile". However, I'm just not so sure how to merge the options defined in NixOS and NixUP, yet. Should they just be added up? Should the options defined in NixOS be defaults that can be overwritten with NixUP, or should that be prohibited? If you have any suggestions or ideas that would be great! :)

Basically, options in "~/.nixup/profile.nix" can be rooted in configuration.nix at "users.extraUsers..*" (or something like it).

This can be done quite easily, as by design modules are valid submodules.

I would love to be able to use something like this on non-NixOS systems, fwiw.  One can approximate it with buildEnv in ~/.nixpkgs/config.nix, but it would be very, very nice to have something that actually handles user dotfiles.

The first version does not have to be perfect, it just has to handle basic features on which we can iterate.
If you want to eliminate dead code, rewrite everything in another language, share the logic with other part of the repository, … then we can still do these after these modifications are merged.
The most important part is to have something which is working, and merged.
Do anybody see any blocker which might prevent this from working?

Thank you all very much for your feedback! Especially @nbp and @anderspapitto for your detailed review, it's highly appreciated! I will get back to it as soon as possible.
As Nicolas said, the current aim is to get something merged that we can build up on. That means, I'm particularly interested in suggestions concerning the "front-end", that is the interface that nixup modules are written against. The "back-end" stuff is mostly copied from NixOS and can be changed later without too much disruptions, I think.
Concerning the question of how to support non-NixOS systems. I think that basic functions like, e.g., the abstractions around nixpkgs, might be quite NixOS-independent, and so could work on other systems. When it comes to the support of nixup user services, I'm not so sure though. Like NixOS, it will be based around systemd, like it or not. So in order to make that feature available on non-NixOS systems, there would have to be a way to run a systemd user session, or something compatible at least. I don't know if projects like systembsd could be useful for that. But that won't be anything that I'll be working on.

I insist on rewriting to c++ now, before merging. Because if we merge now that will not soon be rewritten.

@jagajaga I think it will be quick to switch the "back-end" of NixUP to C++ once it is available from NixOS. If you insist on C++ right away, how long will it take YOU to provide a working solution?

Hm, does this actually need to be merged into the Nixpkgs repo? Any reason why it can't work fine in  a branch or a separate repository? I ask because I'm hesitant about merging these kinds of major experimental additions into the Nixpkgs repo, until we're confident that a) we're convinced this is the right approach; and b) we want to commit to maintaining it. (Plenty of examples in the Nixpkgs repo of stuff that ended up bitrotting or only used by one person...)
Technical comment: there is a lot of cut&paste in this PR, in particular switch-to-configuration.pl and the systemd modules. That's obviously pretty bad for maintainability.
Also, the PR seems to contain a lot of stuff that has nothing to do with the PR (such a openxpki and the Perl modules).

if/when this is merged into NixOS, all of the systemd.services.user.* options should probably be removed/deprecated, so that user-level systemd services are configured through a single mechanism

Also
[anders@gurney:~]
$ wget -q https://raw.githubusercontent.com/ts468/nixpkgs/upstream.nixuser/nixup/modules/nixup/switch-to-configuration.pl
[anders@gurney:~]
$ md5sum switch-to-configuration.pl
5554ec89848531c8bcb1cc66b4a9607d  switch-to-configuration.pl
[anders@gurney:~]
$ md5sum /etc/nixos/nixpkgs/nixos/modules/system/activation/switch-to-configuration.pl
5554ec89848531c8bcb1cc66b4a9607d  /etc/nixos/nixpkgs/nixos/modules/system/activation/switch-to-configuration.pl

there is certainly some low-hanging fruit with regards to code reuse

if/when this is merged into NixOS, all of the systemd.services.user.* options should probably be removed/deprecated

This is highly debatable. It is perfectly valid for an admin to want to provide predefined user services for its users through configuration.nix.

Any progress on this?

I hope to have some discussions about it during the NixOS Conference. Maybe I can make some progress during the sprint after the conference.

I'd prefer the configuration files to live in ~/.nixpkgs by default.

Let's make that ~/.config/nixpkgs to take it into the 21st century :-)

Yes, $XDG_CONFIG_HOME would be a good idea!

I would prefer the directory to be named .nix, and on OS X it would be best to put it at ~/Library/Nix.

An updated version of NixUP ready to be tested :)
That is included:

[✓] Generate an activation script.
[✓] Abstract the creation of resource files.
[✓] Option to list installed packages.
[✓] Command line tool to manage profiles generations and updates.
[✓] Command line tool to install / remove packages without using an editor.

Please have a look at NIXUP_README.md for the commands to set up and run a NixOS container with NixUP included.
Please give me some feedback!

I'd agree with @geerds and @edolstra on ~/.config/nix[whatever]

@edolstra How should we move NixUP forward? I guess you would have to review the integration into NixOS, or? :) Is there anything I can do to help reviewing the code?
Maybe for now you would only need to review the changes that are made within the nixpkgs/nixos directory. There is some code that I copied from nixpkgs/nixos into nixpkgs/nixup to minimize the initial changes in nixpkgs/nixos. I would try to remove the duplicated code once NixUP is merged, so you wouldn't have to review all the parts under nixpkgs/nixup in too much detail. But of course I'm happy to get as much feedback as possible :)

Some comments:

Yeah, please unify the duplicated files (especially the systemd stuff).

This PR introduces several NixUP-specific files in the root directory, such as Makefile, NIXUP_README.md, configuration_nixup.nix and profile.nix. These should be moved into nixup/.

Using a Makefile for purely imperative actions seems weird to me. IMHO it's best to get rid of that Makefile. If it's just to help people set up a container for testing, it's better to be explicit in the docs (e.g. just tell people to run nixos-container start nixup etc.).

It might be possible to unify nixup-resources.sh with nixos/modules/system/etc/setup-etc.pl since they appear to serve a similar purpose. The latter has the advantage of being written in a sane language where you don't have to worry about what rm -rf $BLA will do when $BLA contains whitespace, etc. It already looks like user.resourceFiles has the same type as environment.etc.

Maybe rename user.resourceFiles to user.files or something like that?

I don't get the name imperativeNix, since it apparently manages a declarative configuration. nix-env -i == imperative, user.packages == declarative, and imperativeNix is just a tool for editing the latter.

nix-package install => nixup add-package or something like that, etc.

@edolstra Thank you so much for your time and efforts for reviewing NixUP! :) Your comments and suggestions are very helpful! I'll get back to you once I've worked through your list ;) Thanks!

Are there any news on this?

It has been reviewed, and I know what to do. Hopefully I can merge NixUP for 16.03.

I love this! That will be the best ever user environment manager ever. I'm very eager to integrate it into my dotfiles.

@ts468 any progress on this? :smile:

@ts468 I implemented a couple of the review suggestions above, feel free to cherry-pick whatever you like: https://github.com/zimbatm/nixpkgs/tree/upstream.nixuser

A nice addition to user services would be to allow lingering. Loginctl supports this, but it is not yet available in nixos config. See #3702.

Add me to the list of those interested in seeing this merged ASAP. This looks great! NixUP is a killer feature for me.

+1

+1

bump ;)
What is the status on this? I just asked about something similar on irc and this PR came up.

@zimbatm ? @ts468 ?

Thank you all for your interest and help on nixup! I'm very sorry that I couldn't work actively on it for so long, I feel really bad about that. I can't tell you exactly when, but I will definitely get back to it, probably in June.

I think for this to happen it needs to be broken down into smaller steps that can be individually merged. It's also not entirely clear if this is the right approach because I think it touches the user's home which is a bit scary in itself.

Maybe we should address it on the mailing list to get input.

" I really want this"
On 3 May 2016 at 20:57, Tobias Pflug<EMAIL_ADDRESS>wrote:

Maybe we should address it on the mailing list to get input.
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/NixOS/nixpkgs/pull/9250#issuecomment-216646542

+1

I'm in the process of Nixifying my home network right now and one of the things I want to do is start using nixup (based on the revisions by @zimbatm to the work @ts468 has done) to manage some local configuration stuff.
Currently, I use a tool called super-user-spark (also in nixpkgs) to manage my dotfiles. It has a lot in common with other simple link-based tools for dotfile management, but what I love about it is its very simple syntax. By default, it won't overwrite files that already exist, and it can use hardlinks as well as symlinks.
Anyway, I'm going to try switching some of my dotfile management over to nixup. I'll let y'all know how it goes, and of any changes I end up making along the way.

Currently, I use a tool called super-user-spark (also in nixpkgs) to manage my dotfiles. It has a lot in common with other simple link-based tools for dotfile management, but what I love about it is its very simple syntax. By default, it won't overwrite files that already exist, and it can use hardlinks as well as symlinks.
One thing I'm thinking about is maybe having nixup use SUS

There is an “official” GNU tool that does something similar, it’s called stow.

I am using nix to deploy services on Linux distros that don't provide
packages for those services.
example below is for apache mesos through nix, I deploy this to a suse12
box.
nix packages are installed by the user nix and I then add systemd startup
services to execute them.
https://github.com/Azulinho/ci_on_mesos_on_centos7/blob/ansibling_it/roles/nix-mesos-master/tasks/main.yaml
it would be great to be able to have the ability to run those services
directly through nix.
On 7 May 2016 11:50, "Profpatsch"<EMAIL_ADDRESS>wrote:
Currently, I use a tool called super-user-spark (also in nixpkgs) to manage
my dotfiles. It has a lot in common with other simple link-based tools for
dotfile management, but what I love about it is its very simple syntax. By
default, it won't overwrite files that already exist, and it can use
hardlinks as well as symlinks.
One thing I'm thinking about is maybe having nixup use SUS
There is an “official” GNU tool that does something similar, it’s called
stow https://www.gnu.org/software/stow/stow.html.
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/NixOS/nixpkgs/pull/9250#issuecomment-217628399

something that wasn't obvious to me before trying this out, is that the nixup-managed profile destructively replaces the default user profile - so any packages that have been installed through nix-env -i will vanish

as a user I would be happy with that.
my only use case of nix-env is that I can't install nix packages as a normal user without it, however the imperative form of nix-env lacks all the perks of using a declarative and functional pkg manager like nix.
I would happily give nix-env away if in return I got a way to manage my packages AND my conf files as a user through a .nix configuration file.

You can look at my comment from https://github.com/NixOS/nixpkgs/issues/1750#issuecomment-186385710 if you need something now without NixUP.

@ts468 I made a pr against your branch that fixes the lowest-hanging fruit for code duplication by symlinking a few files that are bit-for-bit copies
https://github.com/ts468/nixpkgs/pull/1
the three new files that I observed which are very similar but not identical to existing files are
eval-config.nix
nixpkgs.nix
systemd-unit-options.nix
but I didn't touch those here for simplicity

another non-obvious point is that nixup operations aren't atomic in the way that nixos operations are, because you have to modify multiple files in $HOME - you can't do it as switching a single root symlink, unless maybe if nixup took ownership of the whole $HOME directory

@anderspapitto /etc is similar, though! We could have an equivalent to /etc/.static, perhaps?

What if we let the dotfile management be handled in the following way:
Each generation of a Nix home directory consists of a union filesystem where the lower layer is generated entirely by Nix, and the upper layer contains user changes. These directories, union mounted, each get a store path. If there are any conflicts between the current upperdir and the next-generation lowerdir, Nix spits out an error and doesn't switch your home directory over to the new generation. Then we can either have home directories ordinarily be empty, and bind mount whole home directories (the union mounts) from the Nix store, or convert the home directory itself into a symlink, and for new generations of the home directory, point the link to the new fused home directory in the Nix store?

@therealpxc Does Nix support union filesystems? And aren't Nix store paths mounted readonly?

@akavel that's true. Only the lowerdir is generated by Nix, so maybe that's the only piece that goes in the Nix store.
OverlayFS is built into the Linux kernel. Does OS X have any overlay/union filesystems?

@therealpxc Interesting, didn't know about OverlayFS, thanks!

@kamilchm regarding  https://github.com/NixOS/nixpkgs/issues/1750#issuecomment-186385710
I already use collections to manage my user packages and some of my config files, works great, however collections still fail to address my usage case of having services defined within my user environment.
see https://github.com/NixOS/nixpkgs/pull/9250#issuecomment-217630034

so, one actual bug/issue with this is that when defining user units, there's no equivalent tosource ${config.system.build.setEnvironment}, without which a bunch of stuff doesn't work, like connecting to dbus. See for example various people's configs linked from https://github.com/NixOS/nixpkgs/issues/15807

@ts468 Seems like there's a lot of small/misc comments on grammar, spelling, etc. Do you need help fixing those up? I'm happy to branch/PR.

Is there any update for NixUP?

Definitely looking forward to this!

I'll join the chorus of "This is awesome" comments.
I would also love some status update.

Have a look at https://github.com/sheenobu/nix-home, it seems to be maintained

I'm a little confused about the features this pull request provides. I thought that it brought to the user level the declarative API that was formerly only available on the system level, so that packages can be specified in a config file and nix will download them, build them, and make them all available. In that sense it replaces the imperative nix-env. Is that all correct?
But it also seems like this pull request adds utilities for managing dotfiles; why does that go with the feature I described above? Could they be two pull requests, or are the fundamentally related somehow? Are there other features other than that "main" one, and how are they related two that main feature such that they couldn't be split into separate pull requests?

@jbaum98 It's more to do with bringing user-profile configuration inline with NixOS system configuration. Yes there's already functionality in NixOS to install user-packages based on ~/.nixpkgs/config.nix, but there's no functionality to manage .dotfiles.

How can we make this happen? Is there still hope that this PR will ever get merged?

Any updates?

@ts468 Lost interest?

This is relevant: https://github.com/rycee/home-manager

Hi everyone!
It's been quite a while since NixUP got proposed as a declarative configuration for user environments, and despite my constant lack of time to push it forward, I always hoped I could get back to working on it at some point.
Now it seems as I could manage to re-start working on NixUP, but before doing so I wanted to ask who would still be interested in it? In particular, I would be curious to know who would like to see progress of NixUP to the point to be willing to donate 5-10 Euro to the NixOS Foundation? Don't get me wrong, I don't want to be paid for working on it, but for making NixUP a success, it will need quite some effort from quite a few rather busy people, and so I think it is just fair to ask for more than just a quick and cheap "thumbs-up".
So if you could maybe just reply with the amount you'd be willing to donate, including "0 Euro" of course, that would be great and very helpful in judging where to take NixUP.
Thanks, and very best,
Thomas
PS: I've been in contact with Robert Helgesson (rycee) who is working on the amazing Home Manager, and I hoped that the Home Manager project could benefit from some of the future work on NixUP as well. In general, we're both interested in working towards a common solution as far as possible.

I am glad that you are interested in collaborating with Robert on
home-manager, and that you are interested in resuming this work! I would
donate 10 euros to the NixOS foundation just to see this and related work
pick up steam. If this feature makes it into a major release, I'll give
another 20 to celebrate.
On Mon, Aug 7, 2017, 11:14 PM ts468<EMAIL_ADDRESS>wrote:

Reopened #9250 https://github.com/NixOS/nixpkgs/pull/9250.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/pull/9250#event-1196600081, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADCJbmp7wEYAEJ-9HOkaGu278RYVjXnEks5sV_y8gaJpZM4FrpBB
.

I would happily donate 50 euro. I find the difference between package management for system and user environments pretty confusing and would be very happy if I could use declarative configurations for everything.

I would happily donate 30 euro towards this

50 EUR from me
On 8 Aug 2017 8:26 AM, "Casey Rodarmor"<EMAIL_ADDRESS>wrote:

I would happily donate 50 euro. I find the difference between package
management for system and user environments pretty confusing and would be
very happy if I could use declarative configurations for everything.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/pull/9250#issuecomment-320862629, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AACBocYwFJAgF0TGRNic7dzvBSQ3C3Slks5sV_-egaJpZM4FrpBB
.

I will match the median donation :)
On Tue, Aug 8, 2017 at 9:16 AM Gleb Peregud<EMAIL_ADDRESS>wrote:

50 EUR from me
On 8 Aug 2017 8:26 AM, "Casey Rodarmor"<EMAIL_ADDRESS>wrote:

I would happily donate 50 euro. I find the difference between package
management for system and user environments pretty confusing and would be
very happy if I could use declarative configurations for everything.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/pull/9250#issuecomment-320862629, or
mute
the thread
<
https://github.com/notifications/unsubscribe-auth/AACBocYwFJAgF0TGRNic7dzvBSQ3C3Slks5sV_-egaJpZM4FrpBB
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/pull/9250#issuecomment-320871704, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AADWliPGh40jbpV_r6TdN45bSvxHnTt-ks5sWAs3gaJpZM4FrpBB
.

20€ here.

This is just a user speaking, but I am incredibly interested in the idea
of user configuration. In fact it's the biggest thing I miss in nix.
Right now I'm trying to configure everything in configuration.nix, It
would be much cleaner to try and do it on a user level. Being able to do
things like edit the users shellrc, ssh config, gpg config, openbox
config, etc, would be really cool.
I'd happily donate 50€ if it helps. Do you just want people to contribute as mentioned on the NixOS Community Page?

I'd also happily donate 30€

50€ here
On Thu, Aug 10, 2017, 23:02 Kristoffer Søholm<EMAIL_ADDRESS>wrote:

I'd also happily donate 30€
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/pull/9250#issuecomment-321672501, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAVrHBiOTPTRdXIGlPvxYXXWLyLmzP4ks5sW2_3gaJpZM4FrpBB
.

10 euro. And another 20 when I'll be able to fully deploy my workstation using only configuration.nix

I will donate 85€ as this is a much needed feature.

I would love to see NixUP happen and donated €20.

I would be willing to donate 5€ if this happens.

I'd give 5€. I'm also happy to help with the coding.

I've just donated 40€. Make it happen!

10€. Separate dotfiles is a pain that nix can address.

Min 10€, this would be awesome!

I've donated 50 EUR to the NixOS Foundation. (I'd like to see NixUP/Home manager integrated with Nix eventually. One CLI to rule them all.)

I'd give an easy 50 bucks. Brand new to NixOS but I fell in love so quickly. As others have said, user management is the major stumbling block for me right now in my learning curve.

I would easily give 10€

FWIW, lots of dotfiles can be already replaced by wrappers like:
{
  users.users.root.packages = [
    (pkgs.writeScriptBin "htop" ''
      #! ${pkgs.bash}/bin/bash
      export HTOPRC=${pkgs.writeText "htoprc" ...}
      exec ${pkgs.htop}/bin/htop "$@"
    '')
  ];
}

Downside of the wrapper approach:

There might be applications that don't provide means to specify configuration. One could override $HOME, but then there might be applications that require $HOME for other stuff than configuration. (Personally, I haven't encountered any of these, yet.)
Applications cannot write their configuration anymore, e.g. htop will just terminate without error and nothing changed. (I suspect NixUP won't handle that either.)

I'm currently trying out an approach leveraging rcm.  I write a custom "dotFiles" package in my ~/.nixpkgs.  The source includes both static files and nix code that produces dynamic ones, all of which end up in $out at the end.  Then I write an install.nix with no build steps, but a shellHook ${rcm}/bin/rcup -v -d ${dotFiles}; exit, so it can be run with nix-shell.
I started doing this because I got sick of writing wrappers like the above, and even started running into programs that did not have a flag to override where they look for configuration.

I'm far from a NixOS expert, but I don't know if it's a good idea to put this into Nixpkgs master without testing it somewhere else first. As other people in this thread have mentioned there are already tools for managing dotfiles, and we can't know if NixUP will be better at this time.
Would it be possible to build this as a separate service or as a fork of Nixpkgs, and only merge it into master once we know it's the clear winner over the other options?

@ts468 - I will donate €50 for this cause, as soon as I figure out how to get PayPal to work xD

To sum up we have

https://github.com/rycee/home-manager/
https://github.com/sheenobu/nix-home
nixup
I am looking for a solution where I could do   programs.zsh.shellAliases = [ .. ] and it would generate it into $ZDOTDIR/.zshrc for instance.
nix-home looks very basic (like a versioned repo) while home-manager and nixup look better suited. I am tempted to go for the home-manager way as it seems easier to contribute (it has own repo with issues/PRs).

If anyone wants something waaaaaaaaaaay easier, then:

immutable user envs, declared in configuration.nix: https://github.com/michalrus/dotfiles/blob/bcc6d970c319568efc9ca25740d0d08f16217f6e/nixos-config/modules/user-profiles.nix

very primitive dotfiles w/ “profiles” declared in configuration.nix (you can still use them easily on non-NixOS): https://github.com/michalrus/dotfiles/blob/bcc6d970c319568efc9ca25740d0d08f16217f6e/nixos-config/modules/dotfiles.nix

sample usage: https://github.com/michalrus/dotfiles/blob/bcc6d970c319568efc9ca25740d0d08f16217f6e/nixos-config/machines/desktop/base-mine.nix#L156-L160

Cheers,

A new and re-based version of NixUP arrived!
It would be great if you could review and test the changes!
Special attention should go into reviewing:

nixos-rebuild.sh (verify to have no effect on NixOS)
switch-to-configuration.pl (verify to have no effect on NixOS)
resource-manager.c (security review as resource-manager runs with setuid=0)

Many thanks in advance!

Hydra for tests: https://hydra.nixos.org/eval/1410967?compare=1405848

This looks amazing. I also donated 50€.
Any progress since last comment?

Sorry if I am asking something that should already be clear but is this:

@bjornfor Thanks for your interest! Indeed, it is planed to make all NixUP options that are available under "~/.nixup/profile.nix" also available in the NixOS configuration, probably under "users.extraUsers..profile". However, I'm just not so sure how to merge the options defined in NixOS and NixUP, yet. Should they just be added up? Should the options defined in NixOS be defaults that can be overwritten with NixUP, or should that be prohibited? If you have any suggestions or ideas that would be great! :)

still a feature you intend to add? I like to define my system using a single git repository and would rather not link stuff to home directories manually. I read in another message, that this, based on how it's implemented, might "automatically" work, but I am not proficient enough at nix to judge that.

What is blocking this right now? Is there any way to help push this forward?

Yes, it is possible this gets into 18.03? Apart from some conflicts I don't see anything keeping it from merged

@ts468 status?

Is there a reason this has remained unmerged after nearly three years? The author's work is going to waste--it already needs another rebase and forward-porting effort now. It would be nice to at least hear from the Nix maintainers whether there are plans to integrate similar functionality.

I personally think home-manager would be a better basis for this, as it is more featureful and actively developped

Is there a reason this has remained unmerged after nearly three years? The author's work is going to waste--it already needs another rebase and forward-porting effort now. It would be nice to at least hear from the Nix maintainers whether there are plans to integrate similar functionality.

I personally think home-manager would be a better basis for this, as it is more featureful and actively developped

It would still be nice to hear something official from the maintainers, so that users of whichever system (be it nixup or homemanager) know which one is likely to be maintained and usable moving forward.

such a good project have

Bumped into this, any progress?

If I understand correctly, one trade-off of NixUP vs home-manager is that NixUP requires NixOS whereas home-manager supports eg Ubuntu. Is my impression accurate? Hopefully, whatever solution is decided on will support other linux distros for home management, as some users will always have to deal with some non-NixOS systems.

Are there any similar proposals for declarative user environment management (or simply declarative dotfile management) that would be configured on a system-wide basis, in /etc/nixos/configuration.nix (e.g., in the users option hierarchy), rather than on a per-user basis, in configuration files inside the users' managed home directories?

@8573 home-manager is capable of configuring dotfiles from the NixOS configuration located at /etc/nixos/configuration.nix. See the home-manager module here
Personally, I took it a step further. I made a home module (similar to NixOS modules) controlled by options under the namespace mine. I have another NixOS module that sets the home-manager.users.<name> to a function call that returns the set of options controlling the home module mentioned above. See this host as an example and I set the users here.
I set the options per-host in the home.nix files here
To give credit where credit is due, my system is inspired and based on @dustinlacewell's dotfiles and the IRC community.

Looks like @ts468 is not active for some time. Given the lack of larger consensus on this pull request, maybe we should close it and move on?

Sounds good, if somebody wants to pick up on the authors work they're still welcome to do so, probably best in a new PR. Note however that home-manager is doing a very good job at this already, in a way that doesn't need integration in nixpkgs.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/why-isnt-more-of-home-manager-merged-into-nixpkgs/6096/3


Fix for upstream change in rawler

A recent change to rawler to support monochrome dng broke compatibility with lib.rs. This is barely tested but seems to fix it.

Oops never mind, didn't see it was already fixed!


InvalidCastException when using a sub query

When using a sub-query I'm getting an InvalidCastException.
It only occurs when the sub queries predicate involves types other than the Id being selected.
For example, the BrokenQueryAsync method below query will work if the predicate.BirthDate and predicate.LastName clauses are removed.
The exception seems to occur before any SQL query is executed. When profiling my SQL database, no query was executed.
Exception message:
System.FormatException: Failed to convert parameter value from a String to a Int32.

Stack trace:
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at System.String.System.IConvertible.ToInt32(IFormatProvider provider)
   at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
   at System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType, Boolean& coercedToDataFeed, Boolean& typeChanged, Boolean allowStreaming)
--- End of inner exception stack trace ---
    at System.Data.SqlClient.SqlCommand.<>c.<ExecuteDbDataReaderAsync>b__174_0(Task`1 result)
   at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.<ExecuteAsync>d__26.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.EntityFrameworkCore.Query.Internal.AsyncQueryingEnumerable.AsyncEnumerator.<BufferlessMoveNext>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerExecutionStrategy.<ExecuteAsync>d__6`2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.EntityFrameworkCore.Query.Internal.AsyncQueryingEnumerable.AsyncEnumerator.<MoveNext>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Linq.AsyncEnumerable.SelectEnumerableAsyncIterator`2.<MoveNextCore>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Linq.AsyncEnumerable.AsyncIterator`1.<MoveNext>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.EntityFrameworkCore.Query.Internal.AsyncLinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.<MoveNext>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Collections.Generic.AsyncEnumerableHelpers.<ToArrayWithLength>d__1`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Collections.Generic.AsyncEnumerableHelpers.<ToArray>d__0`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at REDACTED.<BrokenQueryAsync>d__49.MoveNext() REDACTED
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at REDACTED.<ExecuteBrokenQueryAsync>d__39.MoveNext() REDACTED
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.ThreadOperations.ExecuteWithAbortSafety(Action action)

Steps to reproduce
I have created this method to help me diagnose the error.
public async Task BrokenQueryAsync(PredicateModel predicate)
{
    using (var database = new DatabaseContext(_settings))
    {
        var subQuery = from p in database.Policies
                        from pp in p.PolicyPeople
                        where (predicate.PolicyTypeId == null || p.PolicyTypeId == predicate.PolicyTypeId)
                            && (predicate.BirthDate == null || pp.BirthDate == predicate.BirthDate)
                            && (predicate.LastName == null || pp.LastName.Contains(predicate.LastName))
                        select p.Id;

        var query = from p in database.Policies
                    where subQuery.Contains(p.Id)
                    select new
                    {
                        // Field mappings...
                    };

        // System.InvalidCastException: Failed to convert parameter value from a DateTime to a Int32.
        var results = await query.ToArrayAsync();
    }
}

public class PredicateModel
{
    public int? PolicyTypeId { get; set; }
    public DateTime? BirthDate { get; set; }
    public string LastName { get; set; }
}

Further technical details
EF Core version: 2.0.0-preview1-final (I updated to 2.0.1 and the issue still occurred)
Database Provider: Microsoft.EntityFrameworkCore.SqlServer
Operating system: Windows 10
IDE: Visual Studio 2017 15.5.5

This seems to be fixed in current bits. Tried the following repro and got expected results without exception.
    class Program
    {
        static void Main(string[] args)
        {
            using (var ctx = new MyContext())
            {
                ctx.Database.EnsureDeleted();
                ctx.Database.EnsureCreated();
            }

            using (var ctx = new MyContext())
            {
                var person11 = new PolicyPerson { LastName = "Foo", BirthDate = new DateTime(1, 1, 1), PolicyId = 1 };
                var person12 = new PolicyPerson { LastName = "Bar", BirthDate = new DateTime(1, 1, 1), PolicyId = 1 };
                var pol1 = new Policy { PolicyTypeId = 1, PolicyPeople = new List<PolicyPerson> { person11, person12 } };
                var pol2 = new Policy { PolicyTypeId = 2, PolicyPeople = new List<PolicyPerson>() };

                ctx.Policies.AddRange(pol1, pol2);
                ctx.PolicyPeople.AddRange(person11, person12);
                ctx.SaveChanges();
            }

            var test = new Test();
            var task = test.BrokenQueryAsync(new PredicateModel { BirthDate = new DateTime(1, 1, 1), LastName = "Foo", PolicyTypeId = 1 });
            task.Wait();
        }
    }

    public class MyContext : DbContext
    {
        public DbSet<Policy> Policies { get; set; }
        public DbSet<PolicyPerson> PolicyPeople { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(@"Server=.;Database=10871;Trusted_Connection=True;MultipleActiveResultSets=True");
        }
    }

    public class Test
    {
        public async Task BrokenQueryAsync(PredicateModel predicate)
        {
            using (var database = new MyContext())
            {
                var subQuery = from p in database.Policies
                               from pp in p.PolicyPeople
                               where (predicate.PolicyTypeId == null || p.PolicyTypeId == predicate.PolicyTypeId)
                                   && (predicate.BirthDate == null || pp.BirthDate == predicate.BirthDate)
                                   && (predicate.LastName == null || pp.LastName.Contains(predicate.LastName))
                               select p.Id;

                var query = from p in database.Policies
                            where subQuery.Contains(p.Id)
                            select new
                            {
                                p.Id,
                                p.PolicyTypeId
                            };

                var results = await query.ToArrayAsync();
            }
        }
    }

    public class Policy
    {
        public int Id { get; set; }

        public int PolicyTypeId { get; set; }

        public List<PolicyPerson> PolicyPeople { get; set; }
    }

    public class PolicyPerson
    {
        public int Id { get; set; }

        public int PolicyId { get; set; }

        public DateTime BirthDate { get; set; }
        public string LastName { get; set; }
    }

    public class PredicateModel
    {
        public int? PolicyTypeId { get; set; }
        public DateTime? BirthDate { get; set; }
        public string LastName { get; set; }
    }


fix: webpack 5 support

Summary
In the last PR I made to enable Webpack 5 support in Next.js for this package, it worked for a bit locally, but when installing the package through npm the change I made was broken.
I've tested this implementation a bit more thoroughly now and this should now work when using enabling webpack 5 in your next.config.js.

I appreciate the help @nickrttn, but this PR includes multiple unrelated changes, so going to close for now.
Webpack 5 support has been added in 0.5.0 https://github.com/transitive-bullshit/react-static-tweets/commit/66824536a26ade4536182043b2def051f4f7aeb6
Please open an issue if you're still having troubles with webpack 5.
Thanks!


Enable pymssql dependancy

pymssql build is failing due to the below issue listed in their repo
https://github.com/pymssql/pymssql/issues/826
Enable back the dependancy once the above issue is fixed

@OnkarVO7 @ayush-shah any updates?

pymssql project needs to publish windows and linux wheels https://pypi.org/project/pymssql/2.2.8/#files. Once that is published, we can bump the version for this specific scheme


Replace builtin icons

@kai2ou
First of all, thank you very much for your Apple minimalism themed icons, really appreciated.

With your icons, I'm unable to change the icons while scanning, which is extremely strange, does it work for you?
We're still missing icons for WIFI and AirPortOff, are you planning on making those as well?

P.S. Could you please revert commit 030978c and open a separate PR for that? Or maybe you can leave it for us to handle since it's producing compilation errors. ATM I'm not sure how to implement icon highlight color reversing in macOS 10.13 and lower. contentTintColor seems to be the only solution. We may add if #available(OSX 10.14, *) {} as a temporary solution.

d

@kai2ou
First of all, thank you very much for your Apple minimalism themed icons, really appreciated.

With your icons, I'm unable to change the icons while scanning, which is extremely strange, does it work for you?
We're still missing icons for WIFI and AirPortOff, are you planning on making those as well?

P.S. Could you please revert commit 030978c and open a separate PR for that? Or maybe you can leave it for us to handle since it's producing compilation errors. ATM I'm not sure how to implement icon highlight color reversing in macOS 10.13 and lower. contentTintColor seems to be the only solution. We may add if #available(OSX 10.14, *) {} as a temporary solution.

It's my pleasure.
I put the files in here, https://kai2ou.lanzous.com/iWR1Hda7cwj, you can handle.
I have no idea now for WIFI and AirPortOff too, I'll give it to you if I make.


The simulator is working properly and the real machine is not working properly

The simulator is working properly and the real machine is not working properly

The progress bar animation is displayed all the time

SFAuthenticationSession start
The SFAuthenticationSession does not close when the in-app is open

Could you add screenshots to illustrate?


Inject into children from env

this will be particularly interesting because we have to not inject if there is some signal fuckery, and also we have to somehow transport the otel config into it

look at https://github.com/plengauer/opentelemetry-bash/blob/main/src/usr/bin/opentelemetry_shell.custom.inner.sh
probaly just another mentioning env.
however, there is a complication, we shouldnt inject if there are signal arguments used.

also please include a test using the -i option

exclude injection for -i and signals. find


fullReader is null error in Firefox, Expected a function error in Chrome

Attach (recommended) or Link to PDF file here:
https://www.panerabread.com/foundation/documents/nutrition/Menu-Retail.PDF
Configuration:

Web browser and its version:  Firefox 68.0.2, Chrome 77.0.3865.90
Operating system and its version: macOS Mojave 10.14.6
PDF.js version: 2.1.266
Is a browser extension: false

Steps to reproduce the problem:

Import pdf-dist and set worker:

import pdfjsLib from 'pdfjs-dist';
pdfjsLib.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjsLib.version}/pdf.worker.js`;

Call getDocument in componentDidMount:

  componentDidMount() {
    const loadingTask = pdfjsLib.getDocument(`https://www.panerabread.com/foundation/documents/nutrition/Menu-Retail.PDF`);
    loadingTask.promise.then((doc) => {
      console.log(`Document loaded ${doc.numPages} page(s)`);
    }, (error) => {
      console.error(`Error during loading: ${error}`);
    });
}

I know there's a zero-configuration way to import pdfjs-dist but I ran into issues with that and I'd like to set the workerSrc directly.
What went wrong? (add screenshot)
There are different errors for Chrome and Firefox although the error occurs in the same place (in the error callback passed to loadingTask.promise.then)
Firefox:

Chrome:

I'm wondering if I'm setting the workerSrc incorrectly.  If anyone has any insight I'd greatly appreciate some help.  Thank you!

https://www.panerabread.com/foundation/documents/nutrition/Menu-Retail.PDF

That brings up a page stating:

Access Denied
You don't have permission to access "http://www.panerabread.com/foundation/documents/nutrition/Menu-Retail.PDF" on this server.

Furthermore, please see https://github.com/mozilla/pdf.js/blob/master/.github/CONTRIBUTING.md (emphasis mine):

If you are developing a custom solution, first check the examples at https://github.com/mozilla/pdf.js#learning and search existing issues. If this does not help, please prepare a short well-documented example that demonstrates the problem and make it accessible online on your website, JS Bin, GitHub, etc. before opening a new issue or contacting us on the IRC channel -- keep in mind that just code snippets won't help us troubleshoot the problem.

I receive the same error no matter which PDF file I use.  I pulled the Panera pdf from their website and thought that it would be accessible to everyone.  Here are a few more that I tried:
http://www.africau.edu/images/default/sample.pdf
https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf
https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf

Also, I'm able to load the pdf successfully using this example (https://github.com/yurydelendik/pdfjs-react) and changing the way it's importing pdfjs-dist to the way I'm doing it in my app:
pdfjsLib.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjsLib.version}/pdf.worker.js`;```
I'm guessing there's something going on in my app where the web worker isn't running correctly.  I'm wondering if anyone has encountered this issue before or has an idea where I should look.

I'm guessing there's something going on in my app where the web worker isn't running correctly.

Yes, if the other example works it's most likely an integration issue. However, without a working demo we are not able to help out with this, as stated above.

I'm wondering if anyone has encountered this issue before or has an idea where I should look.

Not really, but note that nobody here is actively working with React, so this might not be the best forum to ask. In any case, we cannot help if we cannot run the full code unfortunately.

Yeah, I understand it would be difficult for your team to look into it without a working demo.  I'm unable to get one up since it would be on our dev servers.
I've done some more digging and believe the issue is coming from a fetch polyfill in my app, which is causing an error here: https://github.com/mozilla/pdfjs-dist/blob/8ca1faf26b3d0e0b9f6fdce0e282bb06735a9e9d/lib/display/fetch_stream.js#L158
Thanks for taking the time to respond to my issue @timvandermeij and @Snuffleupagus.


Download is too slow

I download test.zip from http://ptak.felk.cvut.cz/6DB/public/datasets/hinterstoisser/
but it is so slow that I need 7days to do it.
Any else way to get test.zip ?  Google Drive or Baidu NetDisk ?
Thank you!

Maybe you can contact the dataset provider. (http://cmp.felk.cvut.cz/sixd/challenge_2017/#datasets)


Revert "disable renovatebot automerges during the Christmas break"

This reverts commit 8f91f3432cf4825dc858ebc185751550f21a69f5. Please merge this in the new year.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 5.753%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/renovate/renovate.go
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
34

Relevant Lines:
591

💛  - Coveralls


Properly get dataset metadata from dummy dataset

This PR updates the dummy dataset to get the domain name properly, and return the correct metadata

Tests are passing. Unrelated linting is failing. I think we can fix it in another PR

Lint stage is failing due to base branch change -- for some reason github context doesn't change in this situation. I don't know how to fix it. Issue created.


⚠ Turnos 24x7 has degraded performance

In 9b3da6f, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 871 ms

Resolved: Turnos 24x7 performance has improved in dcef0c4.


Fix luarocks on Windows and add it to the continuous integration loop

Changes:

Fix CMake policy warnings with CMake > 3.0
Fix two problems with luarocks on Windows:

Defining the PREFIX var would prevent CMake from finding the MSVC compiler.
The luv module would always link with LuaJIT, instead of the Lua library used by LuaRocks.

Add shell scripts to the .ci folder to install both Lua/LuaJIT and LuaRocks on AppVeyor and Travis.
Add a LuaRocks "smoke test" to AppVeyor and Travis, where the luv rock is installed and then loaded, and the function uv_cwd() is called.

Some CI-related files have changed. It's now relatively easy to add multiple Lua/LuaJIT/MSVC versions to the continuous integration matrix, on both Travis and AppVeyor, thanks to the new CI scripts.
I only had one issue: in tests/test-dns.lua I had to disable the test at line 30 (Get only ipv6 tcp adresses for luvit.io) because it would always fail on AppVeyor. Since I haven't changed any code that could possibly affect that test, I have no idea what could fix it. Do you have any idea? Other than this disabled test I think there's no other regression.

No idea why AppVeyor is failing for this PR... it's passing in my fork :( https://ci.appveyor.com/project/tbastos/luv

That is strange.  It's trying the merge commit, but both commits have the exact same tree.  Even github agrees.  https://github.com/luvit/luv/compare/a20e8dcedc7bfd60d9be871957c375eeed978a08...06a3e2dd5305c416d3dfce4c6e010094d87a2e8f
I'll try pulling this and see if that helps appveyor.

Hmm, still failing.  We have the exact same code, it must be a difference in our appveyor configurations. @tbastos do you have anything custom in your appveyor setup?  Any custom environments or configurations?

No, I never changed any settings. I just forked the repo on GitHub, enabled it on Travis and AppVeyor, pushed a few commits and then sent the PR when both Travis and AppVeyor were passing.
Very mysterious... looks pretty much like a bug in AppVeyor... should I open a support ticket?

should I open a support ticket?

Sure, that would be great.

Mystery solved: http://help.appveyor.com/discussions/problems/4031-same-code-in-two-repositories-build-passes-in-one-repo-but-fails-in-the-other
I'll send a PR in a minute


Update dependencies to fix critical issues

Fixes security flaw in electron-packager.

This module requires Node.js 4.0 or higher to run.
https://github.com/electron-userland/electron-packager#installation

electron-packger requires Node.js 4.0 or higher and need to update .travis.yml.

Whoops, must've not been committed, that should fix it.

Okay, there we go, build passed. Thanks for the prompt reply btw.

@willyb321 Thanks for quick fix!

@azu and thank you for merging, and also making it!

Release https://github.com/azu/electron-zip-packager/releases/tag/2.0.0


[zlib] Build error on x64-windows

./vcpkg install cpr
Computing installation plan...
The following packages will be built and installed:
<EMAIL_ADDRESS>
<EMAIL_ADDRESS><EMAIL_ADDRESS>Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x64-windows...
Compiler found: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/cl.exe
Restored 0 package(s) from C:\Users\Анжелина\AppData\Local\vcpkg\archives in 250 us. Use --debug to see more details.
Installing 1/3<EMAIL_ADDRESS>Building<EMAIL_ADDRESS>-- Downloading https://github.com/madler/zlib/archive/v1.3.1.tar.gz -> madler-zlib-v1-8c964249.3.1.tar.gz...

CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:32 (message):
  Failed to download file with error: no such file or directory
  If you are using a proxy, please check your proxy setting. Possible causes are:

  1. You are actually using an HTTP proxy, but setting HTTPS_PROXY variable
     to `https://address:port`. This is not correct, because `https://` prefix
     claims the proxy is an HTTPS proxy, while your proxy (v2ray, shadowsocksr
     , etc..) is an HTTP proxy. Try setting `http://address:port` to both
     HTTP_PROXY and HTTPS_PROXY instead.

  2. If you are using Windows, vcpkg will automatically use your Windows IE Proxy Settings
     set by your proxy software. See https://github.com/microsoft/vcpkg-tool/pull/77
     The value set by your proxy might be wrong, or have same `https://` prefix issue.

  3. Your proxy's remote server is out of service.

  If you've tried directly download the link, and believe this is not a temporary
  download server failure, please submit an issue at https://github.com/Microsoft/vcpkg/issues
  to report this upstream download server failure.

Call Stack (most recent call first):
scripts/cmake/vcpkg_download_distfile.cmake:270 (z_vcpkg_download_distfile_show_proxy_and_fail)
scripts/cmake/vcpkg_from_github.cmake:106 (vcpkg_download_distfile)
ports/zlib/portfile.cmake:2 (vcpkg_from_github)
scripts/ports.cmake:175 (include)
error: building zlib:x64-windows failed with: BUILD_FAILED
Elapsed time to handle zlib:x64-windows: 90 ms

https://codeload.github.com/madler/zlib/tar.gz/refs/tags/v1.3.1


Clickability

element({interactable: true})
Each instance (globally) gets an auto-assigned ID
Vertex shader gets run after canvas drawing, drawn onto a downsized framebuffer with ID coloring
canvas pointer events trigger → gl.readPixels() from framebuffer → event gets forwarded to active instance

Decided to leave this out, as different projects will need different clickability solutions


Support for favicons

I've already overridden the default.html to add a <link rel="shortcut icon"..., but it would be nice if the theme came with support for a favicon out of the box.  Perhaps a favicon key could be added to the _config.yml to specify a path to the image asset.

Please reopen it :)


fetchEvent crashes when no relay connection could be established

Expected Behaviour
Throw an error.
Actual Behaviour
Crashes. In the snippet below, 'Before connect' and 'Before fetch' are logged, but 'After fetch' is not. No error is logged either.
Reproducible code
import 'websocket-polyfill';
import { generatePrivateKey, getPublicKey } from 'nostr-tools';
import NDK, { NDKPrivateKeySigner } from '@nostr-dev-kit/ndk';

const privateKey = generatePrivateKey();
const hexpubkey = getPublicKey(privateKey);
const signer = new NDKPrivateKeySigner(privateKey);
const ndk = new NDK({ signer, explicitRelayUrls: ['ws://localhost:7780'] });

const main = async () => {
    console.log('Before connect');
    await ndk.connect();

    console.log('Before fetch');
    const filter = { kinds: [5], authors: [hexpubkey] };
    const result = await ndk.fetchEvent(filter, { closeOnEose: true }).catch(err => console.log(err));
    console.log('After fetch', result);
}

main();

I know this is super old but this behaviour is expected. If you don't pass a timeout to the connect() function then it will just wait indefinitely to get a connection.


Error compiling TLevelScheme on Ubuntu 20.04

ErrorReport.sh
HOSTNAME     = cronos
SYSTEM       = Linux
OS           = Ubuntu
VER          = 20.04
GRSISYS      = /home/cnatzke/programs/griffin-collaboration/GRSISort
ROOTSYS      = /home/cnatzke/programs/cern/root
ROOT Version = 6.28/06
Computer and Path to File that failed:
GRSISort Branch = main
commit be2f60b0b4f788b45913f3be0b03f7466ea3d72f (HEAD -> main, origin/main, origin/HEAD)
Merge: d7b8bfb7 18b1f368
Author: Vinzenz Bildstein<EMAIL_ADDRESS>Date:   Mon Oct 9 10:48:31 2023 -0400
Merge pull request #1366 from e-j-w/main

Fix for time correlation between events on different digitizer types.

Describe the bug
I updated GRSISort to the current version and can no longer compile the program due to an error in TLevelScheme
I've attached a file with the error messages since they are numerous.
log.log

I was reading through the commit history and found this commit:
commit 7cb47846125c646204ff4e1dfe274986f8966586
Author: VinzenzBildstein<EMAIL_ADDRESS>Date:   Mon Jul 10 10:25:52 2023 -0400

    Don't use TLevelScheme with standard less than c++17

The precompiled ROOT binaries for Ubuntu 20.04 use the c++14 standard.

Yes, see also #1362

Mine looks the same:
#ifndef TLEVELSCHEME_H
#define TLEVELSCHEME_H

#if __cplusplus >= 201703L

#include <iostream>

I build ROOT from source using the cmake flag -DCMAKE_CXX_STANDARD=17 and could compile the latest version of GRSISort.

I did get this error when trying to run a helper that I used in GRSISort v<IP_ADDRESS>, but this may be a completely unrelated issue.
----------  starting compilation of user code  ----------
In file included from /data_fast/cnatzke/two-photon/72Ge/analysis/helpers/2019/TimingGateOptimizationHelper.cxx:1:
/data_fast/cnatzke/two-photon/72Ge/analysis/helpers/2019/TimingGateOptimizationHelper.hh:74:33: error: invalid covariant return type for ‘virtual ROOT::RDF::RResultPtr<TList> TimingGateOptimizationHelper::Book(ROOT::RDataFrame*)’
   74 |    ROOT::RDF::RResultPtr<TList> Book(ROOT::RDataFrame *d) override
      |                                 ^~~~
In file included from /data_fast/cnatzke/two-photon/72Ge/analysis/helpers/2019/TimingGateOptimizationHelper.hh:8,
                 from /data_fast/cnatzke/two-photon/72Ge/analysis/helpers/2019/TimingGateOptimizationHelper.cxx:1:
/home/cnatzke/programs/griffin-collaboration/GRSISort/include/TGRSIHelper.h:58:62: note: overridden function is ‘virtual ROOT::RDF::RResultPtr<std::map<std::__cxx11::basic_string<char>, TList> > TGRSIHelper::Book(ROOT::RDataFrame*)’
   58 |  virtual ROOT::RDF::RResultPtr<std::map<std::string, TList>> Book(ROOT::RDataFrame*) {
      |                                                              ^~~~
In file included from /data_fast/cnatzke/two-photon/72Ge/analysis/helpers/2019/TimingGateOptimizationHelper.cxx:1:
/data_fast/cnatzke/two-photon/72Ge/analysis/helpers/2019/TimingGateOptimizationHelper.hh: In member function ‘virtual ROOT::RDF::RResultPtr<TList> TimingGateOptimizationHelper::Book(ROOT::RDataFrame*)’:
/data_fast/cnatzke/two-photon/72Ge/analysis/helpers/2019/TimingGateOptimizationHelper.hh:76:57: error: could not convert ‘ROOT::RDF::RInterface<T, V>::Book(Helper&&, const ColumnNames_t&) [with FirstColumn = TGriffin; OtherColumns = {TGriffinBgo, TZeroDegree}; Helper = TimingGateOptimizationHelper; Proxied = ROOT::Detail::RDF::RLoopManager; DataSource = void; typename std::decay<T>::type::Result_t = std::map<std::__cxx11::basic_string<char>, TList>; ROOT::RDF::ColumnNames_t = std::vector<std::__cxx11::basic_string<char> >]((* & std::move<TimingGateOptimizationHelper&>((*(TimingGateOptimizationHelper*)this))), std::vector<std::__cxx11::basic_string<char> >(std::initializer_list<std::__cxx11::basic_string<char> >{((const std::__cxx11::basic_string<char>*)(& const std::__cxx11::basic_string<char> [3]{std::__cxx11::basic_string<char>(((const char*)"TGriffin"), std::allocator<char>()), std::__cxx11::basic_string<char>(((const char*)"TGriffinBgo"), std::allocator<char>()), std::__cxx11::basic_string<char>(((const char*)"TZeroDegree"), std::allocator<char>())})), 3}, std::allocator<std::__cxx11::basic_string<char> >()))’ from ‘RResultPtr<std::map<std::__cxx11::basic_string<char>, TList>>’ to ‘RResultPtr<TList>’
   76 |       return d->Book<TGriffin, TGriffinBgo, TZeroDegree>(std::move(*this), {"TGriffin", "TGriffinBgo", "TZeroDegree"});
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                         |
      |                                                         RResultPtr<std::map<std::__cxx11::basic_string<char>, TList>>
terminate called after throwing an instance of 'std::runtime_error'
  what():  Unable to compile source file /data_fast/cnatzke/two-photon/72Ge/analysis/helpers/2019/TimingGateOptimizationHelper.cxx using 'g++ -c -fPIC -g `grsi-config --cflags --GRSIData-cflags` `root-config --cflags --glibs` -I/data_fast/cnatzke/two-photon/72Ge/analysis/helpers/2019 -o /data_fast/cnatzke/two-photon/72Ge/analysis/helpers/2019/TimingGateOptimizationHelper.o /data_fast/cnatzke/two-photon/72Ge/analysis/helpers/2019/TimingGateOptimizationHelper.cxx
'

Aborted (core dumped)

This was an unrelated issue. The override statement in the header for the Book function changed between versions <IP_ADDRESS> and 4.0.03. I had to change
ROOT::RDF::RResultPtr<TList> Book(ROOT::RDataFrame *d) override

to
 ROOT::RDF::RResultPtr<std::map<std::string, TList>> Book(ROOT::RDataFrame* d) override

I think this issue can be closed unless there is anything else you would like me to check on.

Yes, we can close this issue. It's still unclear to me why this wouldn't work with ROOT compiled against c++14, the makefile should be set up now to use the same standard as ROOT, and when using c++14 the TLevelScheme files should have looked like empty files to the compiler.


Revert "Remove the deployed attribute from deployment"

This reverts commit 5a55c47a24fca6ac76ca08c72f9a0c69913379d9.
Without the status.Deployed boolean flag on OpenStackDataPlaneDeployment
there is no mechanism in place to prevert the full reconcile of a
Deployment. While the immutable annotation prevents user edits to the
spec, other changes could still trigger Deployment reconciles.
In the case of testing minor updates, it was discovered that when the
ansible runner image as specified by the
RELATED_IMAGE_ANSIBLEEE_IMAGE_URL_DEFAULT env var in the
openstack-operator csv is changed, it will re-execute the ansible for
all existing Deployments. This breaks the minor update workflow as
things are done out of order, and breaks the expectation that it is the
user who starts ansible executions as opposed to automatically.
Jira: OSPRH-8923
Signed-off-by: James Slagle<EMAIL_ADDRESS>

/cherrypick 18.0.0-proposed


Add language parameter

Add language parameter to .env, to retrieve data in other languages than English.

When will this be merged ?

Thanks for your addition.
It lacks unit testing, but I'm going to work on that.

Thanks for your addition.
It lacks unit testing, but I'm going to work on that.


Error: ReJSON class (JSON.SET): ReplyError: ERR unknown command 'JSON.SET'

Hi, I'm @wellmsan
I can't get out of this error. I'm new to Redis
Error: ReJSON class (JSON.SET): ReplyError: ERR unknown command 'JSON.SET'
Has anyone overcome this error?

@wellmsan Are you sure you have RedisJSON module on your Redis db?

@wellmsan  Hi, closing due to inactivity. If relevant please reopen.


sh: Adding script dependencies

Contribution description
PR dedicated to add the script bash/UNIX to auto download all required dependencies for static-test

Testing procedure
enter your repository m4ag-firmware and then execute
 ./depends.sh

Issues/PRs references
fix #47

Looks good,  go ahead with this 👌


Relay-style connections/pagination?

Sqlmancer looks great, but one missing functionality that would prevent me from adopting it is the lack of relay-compatible connection definition and pagination.  Unless I am missing something in the documentation or code, I don't see any way to do this.  Is this something that might be directly supported in the future, or made possible via a plugin?

Good question. The library does not currently support relay-style pagination and connections,
although it might in the future. Currently, Sqlmancer supports simple pagination as well as returning "Page" types that include results, aggregate, hasMore fields. Implementing relay-style pagination is doable, but would take considerable effort and it's not at the top of the backlog at the moment. I appreciate you opening this issue though -- if there's additional demand for this feature, I'll definitely circle back to it sooner rather than later.

I'm also interested in this feature and would like to help out if possible. @danielrearden what are your initial thoughts on the difficulties involved in implementing connections in Sqlmancer? What do you see as the big hurdles?

I think it would make sense to create a connection model method that would work roughly like the existing paginate method works now.
The biggest challenge is that we currently compose pretty much the entire JSON object necessary to resolve a root field inside the database itself -- with a few small exceptions, we don't modify what's returned by the database and we don't change any resolver logic. Ideally, we wouldn't deviate from that way of doing things just to implement this feature. But that also means constructing some pretty complex JSON structures via just SQL. There's also a number of questions to answer:

Is it necessary to support both forward and backward pagination when we already include an orderBy field?
How do the first/last arguments interact with the orderBy argument. Presumably using last would effectively invert the direction specified by orderBy.
How do we handle generating opaque cursors? Can this be done inside the database? How do we generate not only the cursors for each node, but also the startCursor and endCursor inside PageInfo efficiently?

@zth I'd really like to see this feature added, but it will definitely take some planning. I think the first question we need to answer is "what's the least amount of changes we'd need to make to be Relay-compliant". For example, if we can drop backward pagination, that may simplify things a bit.
I also want to be conscientious of the fact that Sqlmancer's API may be undergoing some pretty drastic changes in the near future, so it might be more efficient to implement any major new features like this against the new API. I'll have a better idea of the direction the library will be moving in after this week.

Seconding this!

Is it necessary to support both forward and backward pagination when we already include an orderBy field?

yes, otherwise the implementation would not be Relay-compliant.  also, the sql order doesn't necessarily have anything to do with whether you are pagination forward or backward... in fact the relay connection spec says that ordering should not change when changing pagination direction.

How do the first/last arguments interact with the orderBy argument. Presumably using last would effectively invert the direction specified by orderBy.

they aren't necessarily tied to each other, depending on the db.  with mysql, it's necessary to change the overall orderBy direction for backwards paginating connections (when last arg is given), since that's the only way to get a limited result set since there's not negative offsets with mysql (afaik). then, when constructing the connection.edges array, the rows from the mysql resultset need to be reversed, so as to match the spec.
consider this (not relay-specific, but generic cursor-pagination) diagram:

imagine this is a resultset that is order by createdDate DESC.  forward pagination (using first and after args) is moving left to right (newest to oldest) along this stream.  backward pagination (using last and before args) is moving right to left (oldest to newest).  at no point would it make sense to the client querying this data set if the items ordering somehow changed.  if we need to change actual db query ordering to deal with it as mentioned above, the client shouldn't be aware of that.

How do we handle generating opaque cursors? Can this be done inside the database?

I guess it could be done in the db, but then there'd be boilerplate or schema changes the developer would have to do to get this all to work.  it would be better that the library would autocreate any cursors, depending on the primary table being queried, and the primary column being sorted on (so that this cursor information can later be interpreted when using after or before args). I have typically generated cursors like so: base64(${tableName}:${sortKey}:${record[sortKey]}). later, when constructing the query, it's just a matter of saying where ${cursorTableName}.${cursorSortKey} > ${cursorRecordValue} when forward paginating, or where ${cursorTableName}.${cursorSortKey} < ${cursorRecordValue}

How do we generate not only the cursors for each node, but also the startCursor and endCursor inside PageInfo efficiently?

const generateCursor = (tableName, sortKey, record) => Buffer.from(`${tableName}:${sortKey}:${record[sortKey]}`).toString('base64');
const startCursor = generateCursor(tableName, sortKey, records[0]);
const endCursor = generateCursor(tableName, sortKey, records[records.length - 1]);


TE3.7 Added Drain Implementation Test and modified existing test.

TE3.7 Added Drain Implementation Test and modified existing Base Hierarchial NHG test.

Pull Request Functional Test Report for #1855 / 56473288bd82ea2381265c3eee6a87f69765fdae
No tests identified for validation.
Help

can we add otg_test changes as well .
Have added the otg changes, except for createflows and verify traffic.


Use non-interactive backend in nwl utils to avoid matplotlib cubit conflict

With the newest version of openmc (0.15.0) the previous conflict with Cubit seems to have been resolved. The remaining conflict with matplotlib can be resolved as in this PR, allowing the full NWL workflow to be performed in one script. In a future PR the nwl_utils example could be updated to be a single script.

We should perhaps consider including OpenMC v0.15.0 in the environment YAML file

I'm in favor of at least including some mention that OpenMC v0.15.0 is needed to use the NWL utility. I'm not opposed to including it as a hard dependency to prevent user error on that front, although I recognize it complicates the environment and may become a problem in the future, like it was in the past.

Looks good, thanks @Edgar-21


Fix links in ILMerge.nuspec

Fix <licenseUrl/> and <projectUrl/>.

Should we just make those links point to the .NET Foundation site now? We could use this for the project page: https://github.com/orgs/dotnet/teams/ilmerge. And the license URL could point to the license file in the repo itself. What do you think?

You are right. But https://github.com/orgs/dotnet/teams/ilmerge cannot be accessed from me, so use https://github.com/dotnet/ILMerge instead.
Please review the newest commit, which includes updates about <licenseUrl/>, <projectUrl/> and <repository/>.

Thanks for the changes!


Further implementation of rolling-update, add rename

Builds on top of https://github.com/GoogleCloudPlatform/kubernetes/pull/7268
Only review the 2nd commit (a2b1983...)
@smarterclayton @bgrant0607 @jlowdermilk @ghodss

@ironcladlou can you please look at the second commit in this pull?

Makes sense to me.

@ironcladlou is that an LGTM?  Or do you want to do a further review?

@brendanburns

@ironcladlou is that an LGTM? Or do you want to do a further review?

I hereby declare the looks of this PR to be: good!

rebased, @jlowdermilk, @ghodss, @bgrant0607 do you want to take a look?

Looking now.

Needs to be rebased.

Rebased.
Thanks
--brendan

@brendanburns can you check the test failure?

test fixed.
Thanks!
--brendan

@jlowdermilk ptal.
Thanks!
--brendan

One remaining nit to update the Use string, otherwise lgtm.

Thanks for the clarification.  Updated.  ptal.
Thanks!
--brendan

lgtm. will merge on green.

Filed #7402 to fix rename, assuming this is going to go in as is.

There's an unresolved comment in the diff for pkg/kubectl/cmd/delete.go that isn't showing up here for some reason. Please take a look and let me know if you can't see it or object to suggested change.

Comments on individual commits (rather than on the PR) are blown away when a subsequent change (e.g., squash/rebase) is force pushed.

Please ignore that last comment, I hit reply in wrong window. This still lgtm.


(api *Client) GetUsersContext() doesn't return error

Actual Behavior:
The (api *Client) GetUsersContext() method stops paginating if it encounters any errors during pagination, and returns a nil error.
Expected Behavior:
The method would return the actual error encountered so that we know that the returned data is incomplete.
Happy to provide more info if necessary, but it seems to be a simple issue w/ the for loop in GetUsersContext:
for p = api.GetUsersPaginated(options...); !p.Done(err); p, err = p.Next(ctx) {
	results = append(results, p.Users...)
}

p.Next(ctx) receives an error from t.c.userRequest() on line 328 and returns an error (that isn't the errPaginationComplete) without setting the t.previousResp. Since we're not done (!p.Done(err)), we continue paginating and hit p.Next(ctx) again. This time, line 314 evaluates to true (since we have a non-nil t.previousResp but an empty t.previousResp.Cursor b/c it was never set on line 334 when we returned early from the previous iteration.
A quick fix might be as simple as changing the for loop in GetUsersContext to:
for p = api.GetUsersPaginated(options...); !p.Done(err); p, err = p.Next(ctx) {
	if err != nil {
		break
	}
	results = append(results, p.Users...)
}

closing this in favor of armsnyder's issue.


Apply NetNative to Msbuild module, please.

We should need to fix module which combine other modules, can be reinstall nugit package and git initial.

@cyan92128505 Combine netnative into msbuild module at 7251c6e


Adding a few pip requirements I needed to get autogguf to run successfully

I think these requirements were needed in the llama.cpp make/compilation stage.

Thank you for your contribution! Let's create a separate file called 'external_dependencies.txt' to keep track of any future requirements that may arise. This way, we can easily add new dependencies to this file whenever needed, keeping our main requirements file clean and focused on the core dependencies.

Undestood. Also, I noticed that llama.cpp, though checked out doesn't get maked on a bare run.
Perhaps a install_external_dependencies.sh instead of a text file?

Undestood. Also, I noticed that llama.cpp, though checked out doesn't get maked on a bare run.
Perhaps a install_external_dependencies.sh instead of a text file?

We can run the external_dependencies.txt from the autogguf.sh file like this
pip3 install -r external_dependencies.txt

Oh, yeah. that's good.
One more thing:  putting a make call in the llama.cpp section "assume make" wouldn't cost much for compute time, and I end up having to do it each time (for some reason).  I've been nuking and recloning my local and running from scratch each time. You cool if I put the make call in there?

Oh, yeah. that's good.
One more thing: putting a make call in the llama.cpp section "assume make" wouldn't cost much for compute time, and I end up having to do it each time (for some reason). I've been nuking and recloning my local and running from scratch each time. You cool if I put the make call in there?

I was tying to avoid the make time for llama.cpp as it takes some time but if  [ doesn't get maked on a bare run. ] that's the case then we can put make there.

I'll start over, using the external_dependencies.txt and see why the make you run the first time doesn't seem to create quantize.. maybe running the pip step before the make.  I pulled my change request so I can start over.

I'll start over, using the external_dependencies.txt and see why the make you run the first time doesn't seem to create quantize.. maybe running the pip step before the make. I pulled my change request so I can start over.

Sure!!


Highlighting range moves cursor

When a range is highlighted, the cursor moves to the last line of the range until the command is executed. When using relative numbering this makes it hard to use commands like :t and :m, since the displayed relative numbers will change, but vim will still expect the relative numbers as displayed before the highlighting moves the cursor.
Is it possible to make a fix to keep the cursor position on the same line during the highlight, or alternatively create a setting to disable range highlighting for certain commands?

Cursor position is always restored after highlighting. See here. Try to comment out that line and let me now if that's the behavior you want.

The cursor position is restored after pressing Enter to complete the command, but not immediately after the highlighted range is created. Commenting out that line merely prevents the cursor position from ever being restored.

Please provide steps to reproduce. I don't use numbers at all so I'm having hard time grasping the issue.

What delimiter are you using when the issue happens? I you use ; cursor will be moved but if you use , it will not be moved.
Take a look at: h :;

Sorry for such a late reply. Here are a couple recordings that show the issue.
This recording shows the behavior without the plugin.
This other recording shows the behavior with the plugin. Note that after entering the range and move command, the relative line numbers change. However, when I hit enter, the command still works the same as it does without the plugin. This means that I need to remember which line to move to before I finish typing the range and command.

I uderstand now.  You can achieve that behavior with the following:
diff --git a/plugin/traces.vim b/plugin/traces.vim
index 77e23b1..1c25aa5 100644
--- a/plugin/traces.vim
+++ b/plugin/traces.vim
@@ -523,6 +523,7 @@ function! s:highlight(pattern_regex, selection_regex, last_specifier_pattern, ab
     silent! call s:set_cursor_position(a:pattern_regex, a:selection_regex, a:abs_range)
   endif

+  call cursor(s:cursor_initial_pos)
   redraw
 endfunction

I could add an option, but that approach has a flaw. Patterns and ranges which are not present on starting screen will not be highlighted. Perhaps, it's better to utilize newly introduced autocommands, CmdlineEnter and CmdlineLeave, to turn off relative numbers when inside command-line?

Thanks so much for your quick response! I confirm that does indeed fix the problem. Could you add it as an option, turned off by default? I like that behavior despite not highlighting patterns and ranges on the starting screen, and perhaps others will as well.


docs: bump dagger version to v0.2.11

Signed-off-by: Marcos Lilljedahl<EMAIL_ADDRESS>

Same as #2404, keep updating this until https://github.com/dagger/dagger/pull/2369 lands. cc @gerhard @helderco @TomChv  :eyes:


Add Django 1.8+ style Meta app_label to Avatar model

Add app_label to Avatar model in order to fix RemovedInDjango19Warning:

RemovedInDjango19Warning: Model class avatar.models.Avatar doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9.

Merged, thanks!


TechDocs: Add option to configure a sub-directory of the external Storage to be used

Feature Suggestion

Currently, TechDocs uploads the generated documentation files to AWS S3 or Google Cloud Storage assuming that the bucket/storage is solely created for the use of TechDocs. Hence, it uses the root of the bucket to store the files. However, some users may want to share their bucket with other services, and may have the following file structure in their bucket
# myS3Bucket

techdocs-files/
       <TechDocs uploads and reads from here>
service-a-files/
service-b-files/

So, it should be possible to tell TechDocs to not use / but instead use techdocs-files/ as the root path.
Possible Implementation

Make this configurable in app-config.yaml. Create optional configs techdocs.publisher.awsS3.bucketRootPath and techdocs.publisher.googleGcs.bucketRootPath. See TechDocs configuration reference.
The AWS/GCS publishers are defined here https://github.com/backstage/backstage/tree/master/packages/techdocs-common/src/stages/publish
The static fromConfig methods in both the classes receive the config object. Here, we can set the value of this.externalStorageRootPath by reading the app config. You need to update the constructor accordingly.
In the publish method, use the newly defined this.externalStorageRootPath property to construct the path of uploaded files. The default should be / i.e. root.
Update fetchTechDocsMetadata, docsRouter and hasDocsBeenGenerated to use the new root path when reading from the storage.
Some notes/TODOs -

The root path can be nested like /path/to/a/nested/directory
All of the following syntaxes should work and mean the same thing - /backstage-data/techdocs/, backstage-data/techdocs, backstage-data/techdocs/.
Update the config.d.ts of plugins/techdocs to reflect the change.
Add a changeset. Details in CONTRIBUTING.md
Update documentation configuration reference.
Add tests to verify this change.

Context

Refer to the TechDocs architecture and other documentation pages for more details. Feel free to ask any questions.
Credits to @andrewthauer for the suggestion.

There's also a 2nd use case which would be resolved by this.
There is a scenario where we run several backstages in development areas and it would be beneficial to be able to have a level of directory structure to allow multiple backstages in to a single S3, similar to how we can prefix the database to consume a single DB instance by multiple backstages.
I.e;
s3-bucket/backstage-test1/*
s3-bucket/backstage-test2/*
s3-bucket/backstage-test3/*

@camilaibs Is this issue resolved with #7554


Upside-down in GeoTiffs

When I used stitched field map to understand ply files, I notice that it seems upside-down in our field map creations: a higher X position shown in the bottom of the map.

In this field map, there is a moscaic in the right-bottom corner, the position of the source image is  x: 23.7335, y: 0.001. The right-top corner's mosaic has a position of x:22.683, y:0.495. So I think this might be unexpected.
@dlebauer I believe I made a mistake on those geotiff creations and I need to update this part of scripts. I am sorry about that, I didn't check carefully when I use demosaic.py as a base script.   The right visualization should be:

@max-zilla May I update to repo extractors-stereo-rgb and extractors-multispectral directly? And after that could you update it to Clowder and reprocess the existing creations on /ua-mac/Level_1/demosaic/ and /ua-mac/Level_1/flirIrCamera/.

@ZongyangLi yes, please update those repositories directly and let me know if you don't have permission. I'll push the updates to Clowder extractors. Thanks!
Reprocessing files can be included in the discussions I have this week with the NCSA team about running the extractors on old files as well (before we finished the code).

@max-zilla Yes, I don't have operate permission to those repo. Please give me the permission. Thanks!

@ZongyangLi just added you to both as a collaborator with write permissions.

@max-zilla I finished updating scripts.


LC0025 - Update Rule Title

The current title / message Procedure must be either local or internal. at a quick glance feels a bit lacking or even confusing at times ("why should this procedure which is clearly referenced in that other extension be local?").
Updating the wording to something like Procedure must be either local, internal or define a documentation comment. might be a bit clearer on the intent of the rule (without having to read the detailed rule description in the wiki).

Thank you for reporting this. I now see that the current description can be confusing indeed. The documentation comment part is later added I believe, where the description hasn't been adapted to that change.
In the (pre)release version of v0.30.11 of the LinterCop the rule will have the description you've suggested.


bug blurry images

Expected Behavior
Hello, i'd like to remove the blurry filter from the background in home.scss but removing the line doesn't seem to affect my page when i build it. My author image is also blurry.
Current Behavior
In the developer window in localhost, I see several errors that might be affect :
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (mulish-latin-400-normal.woff2, line 0)
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (mulish-latin-500-normal.woff2, line 0)
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (mulish-latin-700-normal.woff2, line 0)
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (mulish-latin-600-normal.woff2, line 0)
Furthermore in /theme/toha/assets/style/application.template.scss i have 6 similar issues that i am not able to fix.
one of them :
[{
"resource": "/Users/Melanie/melaniebrg.github.io/themes/toha/assets/styles/application.template.scss",
"owner": "generated_diagnostic_collection_name#4",
"code": "css-ruleorselectorexpected",
"severity": 8,
"message": "règle-at ou sélecteur attendu",
"source": "scss",
"startLineNumber": 41,
"startColumn": 1,
"endLineNumber": 41,
"endColumn": 2
}]
Possible Solution
I tried not importing The Mulish font but still get the errors.
Browsers Affected

Chrome
Safari

You don't have to modify any file inside /themes. The override.scss goes inside the assets folder of your root.

You don't have to modify any file inside /themes. The override.scss goes inside the assets folder of your root. Also, @import './sections/home' is not necessary. Also, this guide might be helpful https://toha-guides.netlify.app/posts/customizing/customize-css/

Thank you for your help it's working now !

@MelanieBrg If the issue is resolved, please consider closing this.


Dependency vulnerabilities

Let's exclude/update following dependencies:
org.apache.ant
org.apache.commons/commons-compress

done