chore(nix): cleanup

This commit introduced three changes:

Opt for a shallow clone whenever we run the update_flake workflow since there's no need to retrive past commits.
Deleted result from .gitignore bc I couldn't track down its source (correct me if I'm wrong!)
Ensure either XCode or the CLT is installed on macOS before running otool. These aren't included by default on a fresh macOS install, and using xcrun can sort out those dependency snags.

btw @CharlesChiuGit @misumisumi do u think it's worth considering enforcing library policies for the pre-built binaries that Mason uses on macOS, similar to our approach on NixOS? This enforcement could involve setting DYLD_*_LIBRARY_PATH or utilizing install_name_tool (see manual below). One potential concern I see with this change is that macOS often includes software that hasn't been updated in a long time, so transitioning to a new version could potentially cause disruptions.
man install_name_tool
INSTALL_NAME_TOOL(1)                     General Commands Manual                     INSTALL_NAME_TOOL(1)

NAME
       install_name_tool - change dynamic shared library install names

SYNOPSIS
       install_name_tool [-change old new ] ... [-rpath old new ] ... [-add_rpath new ] ...
       [-delete_rpath new ] ... [-id name] file

DESCRIPTION
       Install_name_tool changes the dynamic shared library install names and or adds, changes or deletes
       the rpaths recorded in a Mach-O binary.  For this tool to work when the install names or rpaths
       are larger the binary should be built with the ld(1) -headerpad_max_install_names option.

       -change old new
              Changes the dependent shared library install name old to new in the specified Mach-O
              binary.  More than one of these options can be specified.  If the Mach-O binary does not
              contain the old install name in a specified -change option the option is ignored.

       -id name
              Changes the shared library identification name of a dynamic shared library to name.  If the
              Mach-O binary is not a dynamic shared library and the -id option is specified it is
              ignored.

       -rpath old new
              Changes the rpath path name old to new in the specified Mach-O binary.  More than one of
              these options can be specified.  If the Mach-O binary does not contain the old rpath path
              name in a specified -rpath it is an error.

       -add_rpath new
              Adds the rpath path name new in the specified Mach-O binary.  More than one of these
              options can be specified.  If the Mach-O binary already contains the new rpath path name
              specified in -add_rpath it is an error.

       -delete_rpath old
              deletes the rpath path name old in the specified Mach-O binary.  More than one of these
              options can be specified.  If the Mach-O binary does not contains the old rpath path name
              specified in -delete_rpath it is an error.

SEE ALSO
       dyld(1), ld(1), otool(1)

Apple, Inc.                                   March 4, 2009                          INSTALL_NAME_TOOL(1)

man dyld
DYLD(1)                                  General Commands Manual                                  DYLD(1)

NAME
       dyld - the dynamic linker

SYNOPSIS
       DYLD_FRAMEWORK_PATH
       DYLD_FALLBACK_FRAMEWORK_PATH
       DYLD_VERSIONED_FRAMEWORK_PATH
       DYLD_LIBRARY_PATH
       DYLD_FALLBACK_LIBRARY_PATH
       DYLD_VERSIONED_LIBRARY_PATH
       DYLD_IMAGE_SUFFIX
       DYLD_INSERT_LIBRARIES
       DYLD_PRINT_TO_FILE
       DYLD_PRINT_LIBRARIES
       DYLD_PRINT_LOADERS
       DYLD_PRINT_SEARCHING
       DYLD_PRINT_APIS
       DYLD_PRINT_BINDINGS
       DYLD_PRINT_INITIALIZERS
       DYLD_PRINT_SEGMENTS
       DYLD_PRINT_ENV
       DYLD_SHARED_REGION
       DYLD_SHARED_CACHE_DIR

DESCRIPTION
       The dynamic linker (dyld) checks the following environment variables during the launch of each
       process.
       Note: If System Integrity Protection is enabled, these environment variables are ignored when
       executing binaries protected by System Integrity Protection.

       DYLD_FRAMEWORK_PATH
              This is a colon separated list of directories that contain frameworks.  The dynamic linker
              searches these directories before it searches for the framework by its install name.  It
              allows you to test new versions of existing frameworks. (A framework is a library install
              name that ends in the form XXX.framework/Versions/A/XXX or XXX.framework/XXX, where XXX and
              A are any name.)

              For each framework that a program uses, the dynamic linker looks for the framework in each
              directory in DYLD_FRAMEWORK_PATH in turn. If it looks in all those directories and can't
              find the framework, it uses whatever it would have loaded if DYLD_FRAMEWORK_PATH had not
              been set.

              Use the -L option to otool(1) to discover the frameworks and shared libraries that the
              executable is linked against.

       DYLD_FALLBACK_FRAMEWORK_PATH
              This is a colon separated list of directories that contain frameworks.  If a framework is
              not found at its install path, dyld uses this as a list of directories to search for the
              framework.

              For new binaries (Fall 2023 or later) there is no default fallback.  For older binaries,
              their is a default fallback search path of: /Library/Frameworks:/System/Library/Frameworks

       DYLD_VERSIONED_FRAMEWORK_PATH
              This is a colon separated list of directories that contain potential override frameworks.
              The dynamic linker searches these directories for frameworks.  For each framework found
              dyld looks at its LC_ID_DYLIB and gets the current_version and install name.  Dyld then
              looks for the framework at the install name path.  Whichever has the larger current_version
              value will be used in the process whenever a framework with that install name is required.
              This is similar to DYLD_FRAMEWORK_PATH except instead of always overriding, it only
              overrides if the supplied framework is newer.  Note: dyld does not check the framework's
              Info.plist to find its version.  Dyld only checks the -current_version number supplied when
              the framework was created.

       DYLD_LIBRARY_PATH
              This is a colon separated list of directories that contain libraries. The dynamic linker
              searches these directories before it searches the default locations for libraries. It
              allows you to test new versions of existing libraries.

              For each dylib that a program uses, the dynamic linker looks for its leaf name in each
              directory in DYLD_LIBRARY_PATH.

              Use the -L option to otool(1) to discover the frameworks and shared libraries that the
              executable is linked against.

       DYLD_FALLBACK_LIBRARY_PATH
              This is a colon separated list of directories that contain libraries.  If a dylib is not
              found at its install  path, dyld uses this as a list of directories to search for the
              dylib.

              For new binaries (Fall 2023 or later) there is no default.  For older binaries, their is a
              default fallback search path of: /usr/local/lib:/usr/lib.

       DYLD_VERSIONED_LIBRARY_PATH
              This is a colon separated list of directories that contain potential override libraries.
              The dynamic linker searches these directories for dynamic libraries.  For each library
              found dyld looks at its LC_ID_DYLIB and gets the current_version and install name.  Dyld
              then looks for the library at the install name path.  Whichever has the larger
              current_version value will be used in the process whenever a dylib with that install name
              is required.  This is similar to DYLD_LIBRARY_PATH except instead of always overriding, it
              only overrides is the supplied library is newer.

       DYLD_IMAGE_SUFFIX
              This is set to a string of a suffix to try to be used for all shared libraries used by the
              program.  For libraries ending in ".dylib" the suffix is applied just before the ".dylib".
              For all other libraries the suffix is appended to the library name.  This is useful for
              using conventional "_profile" and "_debug" libraries and frameworks.

       DYLD_INSERT_LIBRARIES
              This is a colon separated list of additional dynamic libraries to load before the ones
              specified in the program. If instead, your goal is to substitute a library that would
              normally be loaded, use DYLD_LIBRARY_PATH or DYLD_FRAMEWORK_PATH instead.

       DYLD_PRINT_TO_FILE
              This is a path to a (writable) file. Normally, the dynamic linker writes all logging output
              (triggered by DYLD_PRINT_* settings) to file descriptor 2 (which is usually stderr).  But
              this setting causes the dynamic linker to write logging output to the specified file.

       DYLD_PRINT_ENV
              If set, causes dyld to print a line of key=valule for each enviroment variable in the
              process.

       DYLD_PRINT_LIBRARIES
              If set, causes dyld to print a line for each mach-o image loaded into a process.  This is
              useful to make sure that the use of DYLD_LIBRARY_PATH is getting what you want.

       DYLD_PRINT_LOADERS
              If set, causes dyld to print a line whether each image is tracked by a JustInTimeLoader or
              a PrebuiltLoader.  Additionally, it prints if a PrebuiltLoaderSet was used to launch the
              process or if a PrebuiltLoader was written to make the next launch faster.

       DYLD_PRINT_SEARCHING
              If set, causes dyld to print a line about each file system path checked when searching for
              an image to load.

       DYLD_PRINT_INITIALIZERS
              If set, causes dyld to print out a line when running each initializer in every image.
              Initializers run by dyld include constructors for C++ statically allocated objects,
              functions marked with __attribute__((constructor)), and -init functions.

       DYLD_PRINT_APIS
              If set, causes dyld to print a line whenever a dyld API is called (e.g. dlopen()).

       DYLD_PRINT_SEGMENTS
              If set, causes dyld to print out a line containing the name and address range of each mach-
              o segment that dyld maps.  In addition it prints information about if the image was from
              the dyld shared cache.

       DYLD_PRINT_BINDINGS
              If set, causes dyld to print a line each time a symbolic name is bound.

       DYLD_SHARED_REGION
              This can be "use" (the default) or "private".  Setting it to "private" tells dyld to remove
              the shared region from the process address space and mmap() back in a private copy of the
              dyld shared cache in the shared region address range. This is only useful if the shared
              cache on disk has been updated and is different than the shared cache in use.

       DYLD_SHARED_CACHE_DIR
              This is a directory containing dyld shared cache files.  This variable can be used in
              conjunction with DYLD_SHARED_REGION=private to run a process with an alternate shared
              cache.

DYNAMIC LIBRARY LOADING
       Unlike many other operating systems, Darwin does not locate dependent dynamic libraries via their
       leaf file name.  Instead the full path to each dylib is used (e.g. /usr/lib/libSystem.B.dylib).
       But there are times when a full path is not appropriate; for instance, may want your binaries to
       be installable in anywhere on the disk.  To support that, there are three @xxx/ variables that can
       be used as a path prefix.  At runtime dyld substitutes a dynamically generated path for the @xxx/
       prefix.

       @executable_path/
              This variable is replaced with the path to the directory containing the main executable for
              the process.  This is useful for loading dylibs/frameworks embedded in a .app directory.
              If the main executable file is at /some/path/My.app/Contents/MacOS/My and a framework dylib
              file is at /some/path/My.app/Contents/Frameworks/Foo.framework/Versions/A/Foo, then the
              framework load path could be encoded as
              @executable_path/../Frameworks/Foo.framework/Versions/A/Foo and the .app directory could be
              moved around in the file system and dyld will still be able to load the embedded framework.

       @loader_path/
              This variable is replaced with the path to the directory containing the mach-o binary which
              contains the load command using @loader_path. Thus, in every binary, @loader_path resolves
              to a different path, whereas @executable_path always resolves to the same path.
              @loader_path is useful as the load path for a framework/dylib embedded in a plug-in, if the
              final file system location of the plugin-in unknown (so absolute paths cannot be used) or
              if the plug-in is used by multiple applications (so @executable_path cannot be used). If
              the plug-in mach-o file is at /some/path/Myfilter.plugin/Contents/MacOS/Myfilter and a
              framework dylib file is at
              /some/path/Myfilter.plugin/Contents/Frameworks/Foo.framework/Versions/A/Foo, then the
              framework load path could be encoded as
              @loader_path/../Frameworks/Foo.framework/Versions/A/Foo and the Myfilter.plugin directory
              could be moved around in the file system and dyld will still be able to load the embedded
              framework.

       @rpath/
              Dyld maintains a current stack of paths called the run path list.  When @rpath is
              encountered it is substituted with each path in the run path list until a loadable dylib if
              found.  The run path stack is built from the LC_RPATH load commands in the depencency chain
              that lead to the current dylib load.  You can add an LC_RPATH load command to an image with
              the -rpath option to ld(1).  You can even add a LC_RPATH load command path that starts with
              @loader_path/, and it will push a path on the run path stack that relative to the image
              containing the LC_RPATH.  The use of @rpath is most useful when you have a complex
              directory structure of programs and dylibs which can be installed anywhere, but keep their
              relative positions.  This scenario could be implemented using @loader_path, but every
              client of a dylib could need a different load path because its relative position in the
              file system is different. The use of @rpath introduces a level of indirection that
              simplifies things.  You pick a location in your directory structure as an anchor point.
              Each dylib then gets an install path that starts with @rpath and is the path to the dylib
              relative to the anchor point. Each main executable is linked with -rpath @loader_path/zzz,
              where zzz is the path from the executable to the anchor point.  At runtime dyld sets it run
              path to be the anchor point, then each dylib is found relative to the anchor point.

SEE ALSO
       dyldinfo(1), ld(1), otool(1)

Apple Inc.                                     June 1, 2020                                       DYLD(1)

Opt for a shallow clone whenever we run the update_flake workflow since there's no need to retrive past commits.

Do I remove fetch-depth: 0 simply ?

Deleted result from .gitignore bc I couldn't track down its source (correct me if I'm wrong!)

This was added to prevent accidentally committing this because when you run nix build without specifying --out-link, an artifact is generated in ./result.
You can delete this if you don't need it.

Ensure either XCode or the CLT is installed on macOS before running otool. These aren't included by default on a fresh macOS install, and using xcrun can sort out those dependency snags.

I add more code if necessary.
If the code gets any larger, split it into a separate file.

btw @CharlesChiuGit @misumisumi do u think it's worth considering enforcing library policies for the pre-built binaries that Mason uses on macOS, similar to our approach on NixOS?

Hmm.
I can't answer that question because I don't have a Mac environment at hand.
If it's a general question that doesn't depend on nixpkgs (such as when you installed dependencies with homebrew), I think it's a problem with mason.nvim or a symmetric package.

We can check if nixpkgs is linked with check-linker.
check-linker checks whether dependencies are linked to /nix/store in Nix environments, regardless of whether they are NixOS or non-NixOS.
Although it was not explained in #1250 , this script will scan $XDG_DATA_HOME/$NVIM_APPNAME/mason/bin under NVIM_APPNAME if it is specified, and $XDG_DATA_HOME/nvim/mason/bin if not.

This enforcement could involve setting DYLD_*_LIBRARY_PATH or utilizing install_name_tool (see manual below).

If we need DYLD_*_LIBRARY_PATH settings, it's easy to add them too.

tbh, i just know we can set DYLD_*_LIBRARY_PATH or utilizing install_name_tool lol, newbie me.
I think specifying DYLD_*_LIBRARY_PATH sounds like a gd idea to me, so we can make things more standardized.

One potential concern I see with this change is that macOS often includes software that hasn't been updated in a long time

i think this should be fine since those fundamental libs generally have gd backward compatibility?( correct me if i'm wrong lol

@misumisumi Can u tell me how to create a package using Nix, or what should I learn?

You can learn from official nixpkg manual.
There are also articles written by me, although they are in Japanese.
You can learn further understanding and application by referring to the actual package of NixOS/nixpkgs.

@misumisumi @CharlesChiuGit Apologies for the delayed response and the oversight in explaining the issue! Let me provide further detail on how shared libraries are located on macOS (Darwin). Unlike many other Unix-like operating systems, Darwin's dynamic linker, dyld, does not find dependent shared libraries based on their leaf filename (i.e., the one obtained using basename). Instead, it directly utilizes the paths hardcoded in the executable. For instance, consider these two examples (ld and dyld, with simplified output):
$ ldd a.out
	libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000fffff76c0000)

and
$ otool -L a.out
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)

The crucial difference is that on Darwin, dyld only[^1] tries to find libSystem.B.dylib at /usr/lib/libSystem.B.dylib. If it cannot find libSystem under /usr/lib/, it directly fails, displaying an error message like this:
dyld[48101]: Library not loaded: /usr/lib/libSystem.B.dylib
  Referenced from: <08197395-BB6E-33C2-BB73-C47F2C1C672E> /private/var/folders/jy/91xg_8j9169dydct2k4r7yw80000gn/T/a.out.cdBaJwRHju/a.out
  Reason: tried: '/usr/lib/libSystem.B.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/lib/libSystem.B.dylib' (no such file), '/usr/lib/libSystem.B.dylib' (no such file, not in dyld cache)
[1]    48101 abort      ./a.out

Which is why I mentioned earlier in https://github.com/ayamir/nvimdots/pull/1252#issue-2281283101 that on Darwin, we may only[^2] either use install_name_tool to change the hardcoded path on Mason's pre-built executables[^3] to point to the Nix store, or specify the DYLD_*_LIBRARY_PATH environment variable to make dyld operate akin to ld, dynamically locating libraries during runtime with specified paths. Hopefully this clears up some confusion regarding shared libraries on macOS :D
[^1]: Actually dyld would also search for libSystem.B.dylib inside its shared cache using symbol stubs, and scrutinize several MachO-specific load commands like LC_RPATH in an attempt to find it, but these complexities are all unnecessary here.
[^2]: Package managers following the "traditional" directory hierarchy are usually considered, with their paths automatically included in the executables' @rpath. These paths are prioritized first where applicable, such as /usr/local/lib/ for Homebrew formulas.
[^3]: Since they're not utilizing our dependencies installed with Nix, imo it diminishes the value of using Nix on macOS.

i think this should be fine since those fundamental libs generally have gd backward compatibility?( correct me if i'm wrong lol

@CharlesChiuGit Yeah u're absolutely right lol. Actually, what I meant to say was that those "new" features that come with some packages could alter the way Neovim operates. For instance, ncurses 6 introduces a bunch of new features (and databases) that ncurses 5 doesn't have. So, if we now instruct some executable to use ncurses 6, the display could look different (like with colors).

so set DYLD_*_LIBRARY_PATH to nix's lib should make things more compatible w/ new features?
for example, set DYLD_*_LIBRARY_PATH to .local/state/nix/profile/lib(xdg = true) or .nixprofile/lib(xdg = false)?

so set DYLD_*_LIBRARY_PATH to nix's lib should make things more compatible w/ new features?

Ye and IMO this should be the most straightforward method. However, the drawback here is that other processes spawned by Neovim (e.g., lazygit) that aren't managed by Nix could also be impacted during library resolution. On the other hand, using install_name_tool is more intricate but carries fewer side effects.

However, the drawback here is that other processes spawned by Neovim (e.g., lazygit) that aren't managed by Nix could also be impacted during library resolution.

That's true.
In addition, quickfix and command execution in the internal terminal are affected.
However, I decided that this problem could be avoided by using a multiplexer, so I adopted the current method.

On the other hand, using install_name_tool is more intricate but carries fewer side effects.

IMO, if we use this method to solve the problem on macOS, we should be able to use almost the same method on NixOS, so it is better to replace both.

just a side note, i just found out that upgrading macOS will mess up nix env setting, since it regenerate /etc/zshrc, but it's also easy to fix. see the fix here.

just a side note, i just found out that upgrading macOS will break nix, since it regenerate /etc/zshrc, but it's also easy to fix.

@CharlesChiuGit I just spotted this in my inbox and wanted to quickly mention that I managed to "circumvent" the issue by setting the system immutable flag on /etc/zshrc:
sudo chflags simmutable /etc/zshrc

bc I discovered that the file's content hasn't changed since Catalina (the first version to use zsh as the default shell). AFAIU this tweak ensures the installer tool (the underlying exec for system software updates) can't undo my changes with each update. But to make any modifications, the file has to be temporarily "unlocked" using:
sudo chflags nosimmutable /etc/zshrc

See chflags(1), installer(8).

The section on nixos in the wiki is out of date and needs to be updated
Also, lazy.nvim is not designed to be a read-only file, so the current arrangement will update the file, but it will give an error.
Should we fix this?
I will be busy until mid-June, so I may not be able to respond much

I'm still new to Nix(OS) so plz correct me if any of the following is conceptually wrong!

I settled on the current method because it was incomplete in various ways, but it should be a start for discussion it.
...
IMO, if we use this method to solve the problem on macOS, we should be able to use almost the same method on NixOS, so it is better to replace both.

So iiuc depending on how much extra work is needed, here are our options:

Utilize environment variables to help the linker locate the necessary dependencies.
* The drawback here is that it impacts every subprocess launched by Neovim, and there's no simple workaround. However, I'm not entirely convinced this is a critical concern.
Skip the entire package system (aka Mason) and utilize the executables provided by the native package manager instead.
* The downside is we might have to enhance the current LSP "framework" significantly to handle locally installed executables first (and bypass Mason when necessary). Also, not all Mason packages might be available through native package managers, and some users might have a messy local storage, leading to unexpected issues.
Modify the executables directly using the appropriate tools to ensure permanent changes.
* The downside is that it could be challenging to reliably parse the dynamic linker's output and then systematically feed it to another program (e.g., nix path-info).

Honestly, I actually lean towards option 2 bc it's the most stable one and also tries to be as Nix-ish as possible. It can accommodate existing executables and also conserve disk space. What do u guys think?

The section on nixos in the wiki is out of date and needs to be updated

I suggest postponing this until we reach a consensus on the implementation. IMO it's probable that our implementation will change in the future, and documenting those volatile configs doesn't sit well with anyone at all.

Also, lazy.nvim is not designed to be a read-only file, so the current arrangement will update the file, but it will give an error.

I think if we're dead set on making the entire config immutable, we could have GitHub actions handle the updates. Then, on the end user's local setup, they could simply do a :Lazy restore (as opposed to :Lazy sync/update) to stay in sync with the changes. This approach won't mess with the lockfile and could still guarantee periodic lockfile updates (which we could control using an actions cronjob).
Alternatively, if we're not too strict about restricted write access, we could stash the lockfile in a separate location[^1] like stdpath("state")/lazy-lock.json, keeping it apart from our config. This way, the existing config remains untouched, and all we have to do is tweak the install script to reroute the lockfile in our repository to this designated location for machines adhering to the traditional filesystem hierarchy.
[^1]: Specifically, by setting lockfile = vim.fn.stdpath("state") .. "/lazy-lock.json".

Honestly, I actually lean towards option 2 bc it's the most stable one and also tries to be as Nix-ish as possible.

I also think this is the best.
However, as you say, major changes are required around the LSP configuration.
This is because mason-lsp-config cannot be used.

they could simply do a :Lazy restore

I recently learned this.
Maybe you don't need to worry too much about the lazy.nvim error.

https://github.com/nix-community/neovim-nightly-overlay/issues/533

I think there were no problems as of last Friday, but I'll check.

I also think this is the best.
However, as you say, major changes are required around the LSP configuration.
This is because mason-lsp-config cannot be used.

I've got some free time now and can start working on this. But I probably won't finish before https://github.com/ayamir/nvimdots/pull/1260 gets merged in tho.

IMO, is better creating plugin for bypass when exsting global pkg.
Also valid for apt, pacman, homebrew (mac), scoop (win).
If it has already been installed globally using the mason.nvim API, it would be nice if it could be bypassed as installed.
Lack of experience and time to create plugins.
Other option, configuration native lsp. (without mason ecosystem.)

Thanks for this brilliant idea! It didn't even cross my mind lol

Given that #1293 is now open, shall we merge this PR first and continue our discussion there?


minikube 0.9.0 on mac with xhyve still names the node 'boot2docker' so gofabric8 volumes fails

as it doesn't think its a minikube created VM. This leads to bad PVs being created that breaks jenkins + gogs

a work around is to pass  --ssh-command=minikube into gofabric8 when running the deploy or volumes sub command


Added Generic instance

Ping. Can we merge this?

Uups. Just found out that it's a duplicate of #40


More Hold Breath automations

The Tortle's hold breath imports without an activation cost so it shows passive instead of activateable.  It does have the ae like I had suggested though, just needs an activation.  I'd suggest 1 Special

The Vedalken's feature that is like Hold Breath is "Partially Amphibious"

It should be 1 Special and do hold breath for 1 hour.  However it should have 1/1 uses that refreshes on a long rest.

Thanks


Plugin file location is unclear

In the README file, under Install, it says:

Copy sketch-mask-icon-export.sketchplugin to Sketch plugins folder.

But it's not clear how to get to sketch-mask-icon-export.sketchplugin ...
I wasted a lot of time trying to find it, because I was expecting a download link. It took me a while to catch on that I had to download the repo, since github only shows the folder structure, and I was expecting the sketchplugin icon instead of sketchplugin/Contents.
Anyway, just adding a download link to the file, or telling people to actually download the repo in the README text would be helpful :)

@JCLaHoot I totally agree.


Enabling HTTPS (SSL)

Hi Team,
I want to enable HTTPS in Lymph. where should i configure the SSL parameters for the same?

Hi Guys,
Waiting for the reply.

Hi @ankitsrivastava108, the best option would be to run lymph web services behind a reverse proxy such as nginx. If you insist on instances handling their own ssl you may be able to configure the wsgi server [1] accordingly (it's basically werkzeug's server, which does support ssl).
That being said, afaik lymph is currently unmaintained. If you're looking for an alternative, nameko is conceptually similar and still active.
[1] https://github.com/deliveryhero/lymph/blob/master/lymph/web/interfaces.py#L86


[Feature Request] [CLI] "pf flow init" to support "Azure connected" flow better

In "Azure connected" flow there are a few changes might be needed (and make sense):

The connection yaml files shouldn't be generated.
The connection name and deployment name in the flow.dag.yaml can be override instead of hard code ones.

So IIUC, the expect behavior:
For No.1  When run pf flow init, and when we need to create connection yaml, firstly check whether the connection provider config point to Azure, if so, don't generate local connection yaml file
For No.2 , do you mean we provide CLI parameter to let user override when run pf flow init?

yes, to both questions.

Discussed this feature request, here're some proposal plan:
We plan to provide 2 parameters to set connection : --connection , --deployment . These will be hidden parameter but available to use through CLI.
And the overall expected behavior when different connection provider set:

Connection Provider
No connection/parameter
Has connection/deployment parameter

Azure
Don't create local connection
Don't create local connection, Set the connection/deployment in   flow.dag.yaml

local
Create local connection.yaml
Create local connection.yaml, Set the connection/deployment in   flow.dag.yaml , set connection name in connection.yaml


Custom header comments don't display for Java

Or, rather, they display with a type that is not necessarily displayed first.

With just-types, the Converter class isn't generated, which is in the file that contains the leading comments.  So if the leading comments are overridden, they should be emitted in whatever the first file is.


How do we separate Staging/Dev vs Production analytics using this library?

Maybe you could try use if (!__DEV__){}. I have used it with Fabric and it works well. DEV is a RN Global.

That's how we do it. You can also use the environment file for handling that.


Fix a broken link to atom-typescript

This PR fixes a broken link to the atom-typescript's README section about the compileOnSave feature.

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


Profile analysis using V8 sampling profiler.

Closes #1157

:+1: perhaps you can show me for to interpret the results of the analysis?

@mikesherov For a good start: https://developers.google.com/v8/profiler_example.


stumpwm: Work around dependency load errors during build

Motivation for this change
The stumpwm package has been broken since late 2017. My guess is that this was caused by https://github.com/NixOS/nixpkgs/pull/28810 but it's a bit hard to pinpoint exactly.
Note that this patch is merely a work-around. Something seems to be wrong with how the stumpwm system's dependency are loaded. As you can see, I worked around this by loading them explicitly before the build. @bradleyjensen since you recently overhauled the quicklisp-to-nix / lisp-packages code, maybe you have an idea of how to properly address this?
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

The documentation says that "*module-dir* will default to ${HOME}/.stumpwm.d/contrib". For the nix package it points to a directory in the temporary build environment, so you need to set it in your ~/.stumpwmrc like so:
(set-module-dir (pathname-as-directory (concat (getenv "HOME") "/.stumpwm.d/contrib")))

Argh. That looks like tey save it at th ebuild-time…

On 19 April 2018 06:31 -0700, Michael Raskin wrote:

Argh. That looks like tey save it at th ebuild-time…

Indeed - whatever became of LISP being dynamic environment and all that? :-D


.sublime-project + config_path == 'Error: Configuration source ../developer/.jscsrc was not found.'

I've got a quick question regarding project specific settings; and then pointing to a project-dependand .jscsrc file.
I've got a structure like this:
- developer
- - gruntfile.js / .jscsrc / .sublime-project etc.

- webroot
- - website codebase

I'm trying to get SublimeJSCSFormatter to load a .jscsrc file from the .sublime-project (both resides in the same directory); but I can't get it to work. What I've tried so far (part of my .sublime-project file):
{
	"settings": {
		"JSCS-Formatter": {
			"config_path": "../developer/.jscsrc"
		}
	}
}

and
{
	"settings": {
		"JSCS-Formatter": {
			"config_path": ".jscsrc"
		}
	}
}

But both give me this error:
Error: Configuration source ../developer/.jscsrc was not found.

Thanks, and kind regards,
Gerben van Dijk, Qikker Online

Can you use an absolute path instead of the relative one? Sublime's working
directory may not be what you think it is.
On May 7, 2015 6:07 AM, "Gerben van Dijk"<EMAIL_ADDRESS>wrote:

I've got a quick question regarding project specific settings; and then
pointing to a project-dependand .jscsrc file.
I've got a structure like this:

developer

gruntfile.js / .jscsrc / .sublime-project etc.

webroot

website codebase

I'm trying to get SublimeJSCSFormatter to load a .jscsrc file from the
.sublime-project (both resides in the same directory); but I can't get it
to work. What I've tried so far (part of my .sublime-project file):
{
"settings": {
"JSCS-Formatter": {
"config_path": "../developer/.jscsrc"
}
}
}
and
{
"settings": {
"JSCS-Formatter": {
"config_path": ".jscsrc"
}
}
}
But both give me this error:
Error: Configuration source ../developer/.jscsrc was not found.
—
Reply to this email directly or view it on GitHub
https://github.com/TheSavior/SublimeJSCSFormatter/issues/30.

Absolute path's do work; but I'd also like to be able to point to the file relative from the .sublime-project file. Else it doesn't make sense when we work with multiple developers - as they then need to manually change the path and I can't have the .sublime-project file in version control then.
Thanks for the quick reply :+1:

With that setup, are devs only opening sublime text on the webroot folder? Or would they open it up on the parent directory that contains developer/ and webroot/?

If it's the latter, can you try setting the config path to developer/.jscsrc?

It is the latter - yhey would open it up in the parent directory.
I've changed the absolute path to:
"config_path": "developer/.jscsrc"

and it still gives the same error.
For more clearity; check out this screenshot: http://i.imgur.com/mOes8EB.png

Thanks for the screenshot. It would be more helpful to see the location of
the sublime-settings file and the .jscsrc in the sidebar of the photo. The
folder names look pretty long and I didn't see "developer" there, so I'm a
little confused.
Can you try to specify your jscsrc file in the terminal using jscs -c developer/.jscsrc some_file or some variant to see what works. This is
probably a quicker debugging cycle than modifying the plugin settings.
I'm still not convinced that this is an issue for the plugin to solve or if
the setting value supplied is incorrect.
Thanks for sticking with the debugging of this issue.
On Thu, May 7, 2015 at 7:27 AM, Gerben van Dijk<EMAIL_ADDRESS>wrote:

It is the latter - yhey would open it up in the parent directory.
I've changed the absolute path to:
"config_path": "developer/.jscsrc"
and it still gives the same error.
For more clearity; check out this screenshot:
http://i.imgur.com/mOes8EB.png
—
Reply to this email directly or view it on GitHub
https://github.com/TheSavior/SublimeJSCSFormatter/issues/30#issuecomment-99821469
.

A new screenshot: http://i.imgur.com/HmCNLIP.png
In the sidebar I've defined custom folders (to save time traversing folders manually), and on the main screen you'll see the contents of my .sublime-project file (where I've added the SublimeJSCSFormatter options. In the project file you'll see the references to the folders in the sidebars as well.
I've had some issues with this before (i've been playing with ST3 plugin development myself lately) and I think that it's possible to get the directory where the .sublime-project file resides in; and then check if a .jscsrc file is there. Might be a friendly fallback for people like me :grinning:

Thanks for the update. I'm reading up more about sublime-project files. In the mean time, do you think that the path having a trailing slash could cause a problem?

I notice that all other paths don't have a trailing slash. Worth a try; of course, you'd have to try your original, relative, config_path value.

@mrjoelkemp thanks; I've tried it like this before, and I get the same error:
{
    "settings": {
        "JSCS-Formatter": {
            "config_path": "../developer/.jscsrc"
        }
    }
}

The argument for config_path gets passed directly to JSCS as an argument. So I believe the way JSCS handles it is that the path is relative to the file you are linting. I believe that means that you kind of have to use an absolute path.
It is possible that Sublime gives you some sort of thing like %PROJECT_ROOT% or something that would help you accomplish this although I don't really have any idea if that is the case.

I'm going to try to take some time to look into it as well next week. Thanks again!

@TheSavior found this in one of my old (broken) plugins; might be worth the try:
ROOT_PROJECT_DIR = os.path.dirname(sublime.active_window().project_file_name())


BUG: Crash when built with Release-Configuration

When built with Release-Configuration, electrifier will crash directly at start.
No exception-handler seems to work, so it's hard to track the error down. Found out, that when starting with normal user privileges it will take some time to get the crash notifier. When starting with administrator privileges, it will appear at once.

As thought, this is where it hangs:
                // Create an instance of the application context
                appContext = Activator.CreateInstance(                     Assembly.LoadFile(electrifierCoreDLLFullPath).GetType(@"electrifier.Core.AppContext"),                     new Object[] { args, applicationIcon, splashScreen.SplashScreenBitmap, splashScreen }) as ApplicationContext;


added transcriptional umap (alpha)

Codecov Report

Merging #188 into master will decrease coverage by 1.78%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #188      +/-   ##
==========================================
- Coverage   81.77%   79.98%   -1.79%
==========================================
  Files          86       86
  Lines        3397     3473      +76
  Branches      718      746      +28
==========================================
  Hits         2778     2778
- Misses        617      693      +76
  Partials        2        2

Impacted Files
Coverage Δ

src/singlepage/UMAPVisualization.tsx
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


There is an infinite loop when running iree-translate tool for centernet model

centernet_iree_input.mlir.gz
Hi, I want to use iree-translate tool to translate centernet_iree_input.mlir file to vmfb file,  but it failed, there seems to be an infinite loop in llvm-project/mlir/lib/Dialect/Vector/VectorOps.cpp::foldExtractStridedOpFromInsertChain function.
Run the command as follows:
iree-translate \
  --iree-input-type=none \
  --iree-vm-bytecode-module-output-format=flatbuffer-binary \
  --iree-hal-target-backends=cuda \
  --iree-mlir-to-vm-bytecode-module \
  ./centernet_iree_input.mlir -o after_translate_cuda.vmfb

Thanks a lot!

Ok, it looks like this is actually a tar file, so the file extension was a bit confusing. But after correctly untarring, I can't repro your issue. It looks like your model file has a hal.tensor.cast which is an op that no longer exists.  Or can you try reproducing this from tot? An infinite loop certainly sounds like a bug. Could you also share how you came to that conclusion?

@ThomasRaoux wrote the code and may be able to spot something, but it look at first glance like it wouldn't be able to get into an infinite loop: https://github.com/llvm/llvm-project/blob/be0a7e9f27083ada6072fcc0711ffa5630daa5ec/mlir/lib/Dialect/Vector/VectorOps.cpp#L2144
perhaps it's just really slow/this model has a ton of these to run? (there was an issue for awhile where folding some things could take on the order of 5-10 minutes in certain build configurations and looked like an infinite loop)

Ok, it looks like this is actually a tar file, so the file extension was a bit confusing. But after correctly untarring, I can't repro your issue. It looks like your model file has a hal.tensor.cast which is an op that no longer exists.  Or can you try reproducing this from tot? An infinite loop certainly sounds like a bug. Could you also share how you came to that conclusion?

the commit id is 2601fa940dde3bc9bf12eedcd6cd096ea192daa9

Run for more than an hour and still run in that loop

I took a quick look and the problem is that we generate a huge amount of IR for one of the dispatch. It looks like it is a problem with a sort op that has copies, since we only pick the tile size based on the sort we don't tile all the dimensions of the copy and we end up creating vector<1x576000xf32> that gets unrolled.
I'll see if it still happens with latest code and if so I'll look at a fix tomorrow

I took a quick look and the problem is that we generate a huge amount of IR for one of the dispatch. It looks like it is a problem with a sort op that has copies, since we only pick the tile size based on the sort we don't tile all the dimensions of the copy and we end up creating vector<1x576000xf32> that gets unrolled.
I'll see if it still happens with latest code and if so I'll look at a fix tomorrow

OK, thanks a lot

Sent a PR to solve this: https://github.com/google/iree/pull/7892
We shouldn't vectorize dispatch regions with sort as they potentially create those large vectors.
Note that the code generated will be extremely slow with the current implementation of sort op as the sorted dimension is completely serialized. The PR solves the compilation but most likely the execution will run forever.
If you can give us some details on what we are trying to do we can try to figure out if this can be solved short term.
@MaheshRavishankar can you had some details about the sort performance problem?

We havent really looked at the specifications for the operation that allows sort to be executed efficiently. For all the cases that were blocking, the sorted dimensions itself was small enough and there were other parallel dimensions (essentially there were n-parallel sorts), that we punted on the problem of making sort itself efficient. If we need to make the sort distributed (as seems to be the case here where there are no parallel dimensions), then we need to rethink the way the sort op is represented in IR. This has some of the same characteristics as the FFT op. We dont represent FFT directly, but rather a stage of FFT as an operation in IR. This exposes the parallelism that we can use to distribute the op to threads etc. (even FFT, we have only looked at the CPU side, and not on the GPU side). We probably need something similar for sort. If we want to distribute sort, we want to represent each stage of a tree reduction as an operation in the IR. I am being scant on the details, cause the details matter here, and we arent looking at optimizing sort in the next few months (thats a whole different project by itself, that we are just not staffed to do).

+1, if we want to make sort op efficient, we're going to study some sort algorithms and represent it like FFT stage ops. If the sorting dim is small, then tile along parallel loops should be fine here.

@ThomasRaoux  after updating the latest code, iree-translate can be run, but iree-run-module takes a long time to run, it's not over for more than half an hour.
Run the command as follows:
iree-run-module   --module_file=after_translate_cuda.vmfb   --driver=cuda   --entry_function=serving_default --function_input="1x320x320x3xf32"

@sun2011yao  If I had to guess from the bug above, and as I mentioned, we have invested zero effort in parallelizing sort. Even the sequential sort is not very efficient. It is the bare minimum needed to connect things enough to run. If we need to make sort efficient it would be a project. We arent planning to do this in the next few months unless our priorities change. So I am again cautioning you against expecting anything w.r.t sort (especially on CUDA path).

@sun2011yao as mentioned before the current implementation will serialize the large sort op onto a single thread which will cause the model to run extremely slow.
Feel free to file an issue about improvement on sort op but as Mahesh mentioned this is currently not in current priorities.

@MaheshRavishankar @ThomasRaoux Okay, thank you very much for your careful answers


Fix typo in tabular_dataset.py

Fixes typo.

CIs, test this please.

Jenkins CI test (for commit 37665a32fe704eb785c9e161c038f7a72d444534, target branch master) succeeded!


Crash when defining sign-on policy action

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Thank you for opening an issue. Please note that we try to keep the Terraform issue tracker reserved for bug reports and feature requests. For general usage questions, please see: https://www.terraform.io/community.html.
PingOne Terraform provider Version
0.15.1
Terraform Version
1.4.6
Affected Resource(s)

pingone_sign_on_policy_action

Terraform Configuration Files
terraform {
  required_providers {
    pingone = {
      source  = "pingidentity/pingone"
    }
  }
}

locals  {
  region = "NorthAmerica"
}

variable "admin_environment_id" {
  type = string
}

variable "admin_username" {
  type = string
}

variable "admin_password" {
  type = string
  sensitive = true
}

variable "license_id" {
  type = string
}

variable "terraform_environment_id" {
  type = string
}

variable "terraform_client_id" {
  type = string
}

variable "terraform_client_secret" {
  type = string
  sensitive = true
}

provider "pingone" {
  client_id      = var.terraform_client_id
  client_secret  = var.terraform_client_secret
  environment_id = var.terraform_environment_id
  region         = local.region

  force_delete_production_type = false
}

resource "pingone_environment" "mfa_env" {
  name        = "P1MFA Terraform Lab"
  description = "P1MFA deployed with Terraform"
  type        = "SANDBOX"
  license_id  = var.license_id

  default_population {
    name        = "All Users"
    description = "all users"
  }

  service {
    type = "SSO"
  }

  service {
    type = "MFA"
  }
}

data "pingone_role" "identity_data_admin" {
  name = "Identity Data Admin"
}

data "pingone_role" "environment_admin" {
  name = "Environment Admin"
}

data "pingone_user" "admin_user" {
  environment_id = var.admin_environment_id
  username = var.admin_username
}

resource "pingone_role_assignment_user" "admin_sso_identity_admin" {
  environment_id       = var.admin_environment_id
  user_id              = data.pingone_user.admin_user.id
  role_id              = data.pingone_role.identity_data_admin.id
  scope_environment_id = pingone_environment.mfa_env.id
}

resource "pingone_mfa_policy" "mfa_policy" {
  environment_id = pingone_environment.mfa_env.id
  name           = "MFA Policy"

  mobile {
    enabled = false
  }

  totp {
    enabled = true
  }

  security_key {
    enabled = true
  }

  platform {
    enabled = true
  }

  sms {
    enabled = true
  }

  voice {
    enabled = true
  }

  email {
    enabled = true
  }
}

resource "pingone_sign_on_policy" "mfa_only_sop" {
  environment_id = pingone_environment.mfa_env.id

  name        = "MFA_Only"
  description = "Only includes MFA so that it can be used by the P1MFA adapter"
}

resource "pingone_sign_on_policy_action" "mfa_only_sop_action_1" {
  environment_id    = pingone_environment.mfa_env.id
  sign_on_policy_id = pingone_sign_on_policy.mfa_only_sop.id

  priority = 1

  conditions {

    last_sign_on_older_than_seconds = 1

    ip_reputation_high_risk      = true
    geovelocity_anomaly_detected = true
    anonymous_network_detected   = true

    user_attribute_equals {
      attribute_reference = "$${user.mfaEnabled}"
      value_boolean       = true
    }

    user_attribute_equals {
      attribute_reference = "$${user.lifecycle.status}"
      value               = "ACCOUNT_OK"
    }
  }

  mfa {
    device_sign_on_policy_id = pingone_mfa_policy.mfa_policy.id
    no_device_mode           = "BYPASS"
  }
}

resource "pingone_application" "mfa_app" {
  environment_id = pingone_environment.mfa_env.id
  name           = "Used by PingFederate"
  enabled        = true

  oidc_options {
    type                        = "WEB_APP"
    grant_types                 = ["AUTHORIZATION_CODE"]
    response_types              = ["CODE"]
    token_endpoint_authn_method = "CLIENT_SECRET_BASIC"
    redirect_uris               = ["https://console.pingone.com"]
  }
}

resource "pingone_application_sign_on_policy_assignment" "mfa_policy_to_app" {
  environment_id = pingone_environment.mfa_env.id
  application_id = pingone_application.mfa_app.id

  sign_on_policy_id = pingone_sign_on_policy.mfa_only_sop.id

  priority = 1
}

Debug Output
See attached
debug-output.log
Panic Output
See attached
Expected Behavior
No crash
Actual Behavior
Crash
Steps to Reproduce

terraform apply -var...

Important Factoids
I think this is just an issue with my code so I'm just reporting this for the crash.
References

Thanks for raising @milocarbol !  First glance nothing jumps out as being incorrect, but a panic crash will always be a bug in the code.  Will look to fix for the next release

Removing these blocks from the sign-on policy action fixed it.
user_attribute_equals {
      attribute_reference = "$${user.mfaEnabled}"
      value_boolean       = true
    }

    user_attribute_equals {
      attribute_reference = "$${user.lifecycle.status}"
      value               = "ACCOUNT_OK"
    }

They're documented here though: https://registry.terraform.io/providers/pingidentity/pingone/latest/docs/resources/sign_on_policy_action#example-usage---mfa

@milocarbol I see the problem - there a few issues here:

Your HCL - because the MFA sign-on policy action has priority = 1, the user_attribute_equals actually won't be able to evaluate during login, and the provider code is meant to catch this situation (see point 3 below).  This is consistent with the console, where the user attribute evaluation fields are hidden if MFA is the first action in the policy.  For the user_attribute_equals conditions, you'll need a login or identifier_first action as priority 1 instead, but as you have an MFA only policy the user_attribute_equals conditions can be safely removed.

Documentation - the docs will need to improve to call out the above case, we'll use this issue to track that update.

The provider code:

The provider does catch the situation that the user_attribute_equals is being set on a priority = 1 policy action, but is incorrectly setting it as a warning and not an error, leading to the crash we see.  This will be fixed as a bug.

The provider should actually warn about this on the plan phase as a schema validation, instead of erroring out in the apply phase.  So this will be an enhancement also tracked in this issue.

Remedial work has now been merged into main.  Because of limitations in Terraform's SDKv2 we're not able to detect and warn of this issue on plan until we upgrade the resource to Terraform's plugin framework SDK.  For now though, the provider responds with an appropriate error on apply instead of the panic.


Missing character when updating from pybo 0.4.0 to pybo 0.6.0, BoTokenizer to WordTokenizer

With pybo 0.4.0 and the BoTokenizer I'm able to tokenize the text that I'm working with.
With pybo 0.6.0 and the WordTokenizer I get the following error.
!pip install pybo==0.6.0
tok =pybo.WordTokenizer('POS')
...
tokens = [t for t in tok.tokenize(f.read()) if t.type != "non-bo" and t.pos != "punct"]
ValueError: The char "࿖" is expected to be in the tibetan table, but is not.
four.pdf
six.pdf
Attached are some outputs for jupyter notebooks, with the pybo version manually changed.

Thanks for the issue: I just saw that there are a few chars missing from my new implementation of the unicode table.
I will include them as soon as possible.
I also need to update the Readme and the documentation after the big refactoring that ended with the 0.6.1 release (yesterday). For example, you should not write anymore t.type != "non-bo", but t.chunk_type != "NON_WORD". Now, all the available variables are conveniently hard-coded in this file.
If you're ok with it, you could send me pybo-related code so I can update it with the new syntax, before our documentation is fully updated. If you don't feel posting it here, send it to me at<EMAIL_ADDRESS>

Please check that the missing char now parses as expected, with the 0.6.3 release.
Given the changes in my previous msg, you shouldn't have any problem anymore.

solved:
drupchen@drupchen-Inspiron-5558:~$ pybo string "࿖ བཀྲ་ཤིས་བདེ་ལེགས།།"
Loading Trie... (2s.)
࿖_ བཀྲ་ཤིས་ བདེ་ལེགས །།

Thank you!


[SPARK-37485][CORE][SQL] Replace map with expressions which produce no result with foreach

What changes were proposed in this pull request?
Use foreach instead of  map with expressions which produce no result.
Before
def functionWithNoReturnValue: Unit = {}
Seq(1, 2).map(functionWithNoReturnValue)

After
def functionWithNoReturnValue: Unit = {}
Seq(1, 2).foreach(functionWithNoReturnValue)

Why are the changes needed?
Use more appropriate functions.
Does this PR introduce any user-facing change?
No.
How was this patch tested?

Pass the Jenkins or GitHub Action

Test build #145718 has started for PR 34740 at commit 3ee3f02.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50186/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50186/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/50186/

Test build #145718 has finished for PR 34740 at commit 3ee3f02.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Looks fine; are there any more you know of?

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/145718/

This should be all changeable in the current code base

Merged to master.

thanks all


fix: widen version range of the tree-sitter dependency

This grammar seems to be working with tree-sitter v0.20.0 (although I have only tested highlighting), so if there is no requirement for v0.21.0 we should try and keep compatibility as much as possible.

The set_language function used in tests is incompatible.


push notification bug when the app is closed

When the app is totally closed, if the user receive a push notification and opened it nothing was happening
this PR to redirect the user to the notifications page if he clicked the received push notification even if the app is completely closed (not running in background)

LGTM


Support extra files?

It looks like the code does not include any "extra" files that aren't typescript.
For example, I have a "templates" directory of handlebars templates that are not included. I see the plugin supports the "exclude" part of the package directive, but nothing for "include".

Agree, there's no particular reason that this shouldn't be possible. We just haven't had this requirement ourselves yet. Would you be open to create a PR for this?

I'm actually working on this now, so I should have something shortly!


Add an explanatory comment to post_create_issue

It's duplicated with upstream, I think we should remove it from en.toml and use Docsy version.
https://github.com/google/docsy/blob/main/i18n/zh-cn.toml#L44
Originally posted by @Sea-n in https://github.com/kubernetes/website/pull/36774#discussion_r969683131

/retitle post_create_issue string already localized in upstream Docsy
Does Docsy cover all the localizations we have? If not, then I suspect that we should not remove it. We can add an explanatory comment though.

/area localization

Does Docsy cover all the localizations we have? If not, then I suspect that we should not remove it. We can add an explanatory comment though.

The strings in the Docsy file are mostly different from the ones in data/i18n/<lang>/<lang>.toml.
Other than de-duplication, I'm not sure what the reasons for preserving or removing post_create_issuemight be.
We can change the purpose of this issue to something like "Add an explanatory comment to post_create_issue".
@sftim It looks like you contributed post_create_issue as part of a PR you did a couple of years ago. What explanation would you proffer?

Given @sftim 's comment, and lack of further discussion (lazy consensus) it seems like we should preserve post_create_issue and add an explanatory comment.
@sftim what should the explanatory comment say?

/retitle "Add an explanatory comment to post_create_issue"

/triage accepted

We should explain that we have post_create_issue in our localization text so that people remember to customize it for their localization (even though in English we could rely on Docsy to provide this).
However, we only need to do this if we have at least one localization target that Docsy does not have.

I wonder if there are other strings we include for the same reason. I haven't checked.

BTW, if we want to find its history, we need to look at the history of the localization files in the parent commit before https://github.com/kubernetes/website/pull/27408 merged.

Hi @rolfedh @sftim
I don't consider adding an explanatory comment to post_create_issue as urgent or important. This is because, like post_create_issue, there are many other strings in a similar situation. In fact, we can infer the purpose of a string without comments to some extent, and many languages' *.toml have been localized in this way so far.
We could reuse the strings in *.toml from upstream Docsy, but this might extend the management scope for localization teams. While each team can choose, I don't think it's necessary for all localization teams to adopt this, considering the current localized *.toml are not problematic and not extensive.
Considering this, I intend to close this issue for now. If further discussion is needed, we can reopen it for discussion. :)
/close


Added mixed-line-ending to .pre-commit-config.yaml

Changelog / Overview
Added mixed-line-ending hook to .pre-commit-config.yaml, ensuring that all line endings are LF and that there are no CRLF endings.

Checklist

[x] I have read the Contributing Guidelines
[x] I have written a descriptive PR title (see top of PR template for examples)
[x] I have written a changelog entry for the PR or deem it unnecessary
[x] My new functions/classes either have a docstring or are private
[x] My new functions/classes have tests added and (optional) examples in the docs
[x] My new documentation builds, looks correctly formatted, and adds no additional build warnings

Reviewer Checklist

[ ] The PR title is descriptive enough
[ ] The PR is labeled correctly
[ ] The changelog entry is completed if necessary
[ ] Newly added functions/classes either have a docstring or are private
[ ] Newly added functions/classes have tests added and (optional) examples in the docs
[ ] Newly added documentation builds, looks correctly formatted, and adds no additional build warnings

Seems the hook is working. 😅


Support Spark 3.4.0

Is your feature request related to a problem? Please describe.
Spark 3.4.0 was released in April.  This version is now trickling into Bitnami and other Spark images, so we need to support it soon.
Describe the solution you'd like
The daily tests are already failing with the latest Bitnami image using Spark 3.4.0 (see #547).  We need to investigate what has changed and make code changes to be compatible with 3.4.0, while maintaining compatibility with previous Spark versions.

The best way to test what changed in Spark 3.4.0 would be to update docker-compose.yml to use the latest Bitnami Spark image, and recreate the dev Docker environment.  Then run the unit tests and functional tests locally (and the examples for completeness).
We know that at a minimum PartitionedFile.filePath changed:
https://javadoc.io/static/org.apache.spark/spark-sql_2.12/3.3.2/org/apache/spark/sql/execution/datasources/PartitionedFile.html
https://javadoc.io/static/org.apache.spark/spark-sql_2.12/3.4.0/org/apache/spark/sql/execution/datasources/PartitionedFile.html

When Spark 3.4.0 is supported, the test matrices and README under .github/workflows should be updated.  And the default version in docker-compose.yml to use the latest supported version.  As well, the supported versions advertised by the badge and elsewhere in README.md and other docs should be updated.


[PCF] PCF (methodology) KIT Update

Description
PCF KIT updates including the following:

Secondary Data EG Outcome (eventuell separately from the KIT)
Guidance on several PCF topics (not certain if all guidance topics will be finalized, Screening, Calculation, Battery Guidance)
Energy Modelling Guidance (not clear if part of KIT-update or separatly )
Electronic Industry PCF methods (TBC if part of the PCF KIT?)
further Sectoral guidance acceptance (new Annex before V4??, part of PCF KIT?)
Appointment of Certification & Verification bodys (Do we need a document for this Appointment Governance process? Or are the competence requirements in the Verification Framework sufficient??)

Impact
KIT will be up to date
Additional information

[X] The PCF Methodology and Verification Expert Group willing to contribute to this feature

Committer @danielmiehle , @maximilianong , @matbmoser ,@stephanbcbauer

Presented in the DRAFT Feature Freeze -> Committer needed

@stephanbcbauer we still have the problem here that we cannot assign @wern or @martinaprox can we figure out why? They had features assigned previously e.g.  #628

@stephanbcbauer I'm not involved in the Kits Updates anymore. My last one was/is 24.08. I would suggest to wait until the corresponding expert group is officially announced and assign to to on of their members?

Some hints from Release Management (@ther3sa) and Tractus-X Project Lead (@stephanbcbauer)

Status currently in Inbox. ⇾ Only features with status backlog are considered in open planning
Please add missing sections from the feature template, or fill them out
Please add contributor and committer
Please add assignee (overall responsible person who drives the feature)

@danielmiehle @maximilianong  @matbmoser  @stephanbcbauer
Dear Committers of this feature,
we have shifted it from the previous Release and I would like to check if you are willing to be a committer for it also in the 25.03 Release. If you can not remove yourself from the committers list.
Many Thanks


How to can I register a new function?

I'm trying to add a new function to use each function in my custom code

I was looking to add a modulo function, basically [variable] % 10 == 0.

Hey @jalite1991
you have two options. If you're using Symfony, there's a bundle with native support for custom functions.
The other option is to use a custom class and pass it as variable
<?php

$math = new class
{
    public function mod($x, $y)
    {
        return $x % $y;
    }
};

$rule = new Rule\Rule('math.mod(13, 3) === 1', ['math' => $math]);
var_dump($rule->isTrue()); // bool(true)

I hope this helps!


updating ip and node names of humble nodes

new alias
new address

LGTM — I've double checked it with the latest rep observation file and it checks out — https://nano.community/data/representative-observations.json


fix: point to xcall tag

Description
Commit Message
fix: point to xcall tag

see the guidelines for commit messages.
Changelog Entry
version: <log entry>

Checklist

[ ] I have performed a self-review of my own code
[ ] I have documented my code in accordance with the documentation guidelines
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have run the unit tests
[ ] I only have one commit (if not, squash them into one commit).
[ ] I have a descriptive commit message that adheres to the commit message guidelines
[ ] I have added version bump label on PR.

Please review the CONTRIBUTING.md file for detailed contributing guidelines.

Codecov Report

Merging #738 (3e54abc) into release (30566dc) will decrease coverage by 1.29%.
The diff coverage is 100.00%.

Additional details and impacted files

@@              Coverage Diff              @@
##             release     #738      +/-   ##
=============================================
- Coverage      70.09%   68.81%   -1.29%
  Complexity       409      409
=============================================
  Files            154      154
  Lines          13942    13986      +44
  Branches         293      293
=============================================
- Hits            9773     9624     -149
- Misses          4016     4209     +193
  Partials         153      153

Flag
Coverage Δ

rust
66.74% <100.00%> (-1.50%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Changed
Coverage Δ

...s/cosmwasm-vm/cw-xcall-ibc-connection/src/xcall.rs
100.00% <100.00%> (ø)

... and 9 files with indirect coverage changes


[WIP] refactoring getStates to use transition function

Working on refactoring ConsumptionSaving classes so that they use a transition function

[ ] Tests for new functionality/models or Tests to reproduce the bug-fix in code.
[ ] Updated documentation of features that add new functionality.
[ ] Update CHANGELOG.md with major/minor changes.

closing this PR, going to work on a new branch for it cut from master.


UKBiobank Sumstat Ingestion

UKBiobank Sumstat Ingestion
This PR has 2 parts:

The ingestion and preprocessing code needed for one dataframe
The merging of all 3,419 UK Biobank studies into one dataframe

1. UKBiobank sumstat ingestion and preprocessing changes:

Added to otg/dataset/summary_statistics.py

Added a from_ukbiobank_summary_stats() function to process the columns and create the variantId column

Created otg/ukbiobank_sumstat_preprocess.py
Added to otg/config.py

Added UKBiobankSumstatsPreprocessConfig

Added to gcp.yaml

Added ukbiobank_sumstats_path, ukbiobank_sumstats, and ukbiobank_study_id

Added to my_ukbiobank.yaml

Added ukbiobank_sumstats_preprocess default

Added to test_summary_statistics.py

Added test_summary_statistics__from_ukbiobank_summary_stats()
Added sample data of 10 rows from one GWAS for testing (100001_raw.neale2.gwas_sample.tsv)

The workflow runs for one dataframe with no problems and also runs with no errors on testing
The output schema is:
root
 |-- studyId: string (nullable = false)
 |-- variantId: string (nullable = false)
 |-- chromosome: string (nullable = true)
 |-- position: integer (nullable = true)
 |-- pValueMantissa: float (nullable = true)
 |-- pValueExponent: integer (nullable = true)
 |-- beta: double (nullable = true)
 |-- standardError: double (nullable = true)
 |-- effectAlleleFrequencyFromSource: double (nullable = true)
 |-- betaConfidenceIntervalLower: double (nullable = true)
 |-- betaConfidenceIntervalUpper: double (nullable = true)

2. Merging UKBiobank studies:

Created otg/ukbiobank_sumstat_merge.py
Added to otg/config.py

Added UKBiobankSumstatsMergeConfig

Added to gcp.yaml

Added ukbiobank_sumstats_dirs, ukbiobank_file_batch_size, and merged_ukbiobank_sumstats_out

Added to my_ukbiobank.yaml

Added ukbiobank_sumstats_merge default

My logic with this merge is that the Neale and SAIGE studies are in 2 separate folders on the GCP (genetics-portal-raw/uk_biobank_sumstats/neale_v2 and genetics-portal-raw/uk_biobank_sumstats/saige_nov2017). These have the same column names for all relevant columns that go into the ingestion step, so I create the code to:

Read in files in batches from one directory at a time
Create the studyId column from the ID found in their file name
Select the relevant columns
Merge dfs in batches and save to parquet

I've tested this by merging four summary stat files (2 per neale and 2 per saige that I take from folders I created gs://genetics-portal-dev-analysis/hn9/neale_sumstats and gs://genetics-portal-dev-analysis/hn9/saige_sumstats). I haven't tried merging more than 4 files, but my aim is that by setting batches of files to merge with each iteration this code should then run in a more memory-efficient way.
Although I suspect I have a few issues with how I am coding the merge in otg/ukbiobank_sumstat_merge.py that could be improved. For example, I use a nested for loop but I'm not sure if that's ok in this case as the outer loop will only iterate twice. I am also getting all the file names per directory via a gsutil command, I tried a couple of other ways (using glob and using google.cloud) but they both output an empty list of names.

Hi @DSuveges — we already talked this through with @hlnicholls — this was not intentional and will not be in the final PR

Hi @DSuveges and @tskir, thank you both for your comments and Daniel thank you for adding the pre-commit file back in.
For the next steps of this branch, would it be helpful for me to continue to work on the review comments here for it or leave it as it is for you to take on from @tskir?

The vast majority of the code in this PR is now obsolete due to major changes in architecture. This also uses the data which was already processed (as opposed to using only data that we can fully trace back to the source). So I'm closing this PR, and UKBB will be ingested in https://github.com/opentargets/issues/issues/3162.


Can't access ElasticSearch in docker container by domain name

Hi guys,
I found in docker container your lib can't access es by domain name directly, so I have to convert domain to ip address by "socket.gethostbyname".
This issue maybe relates to https://stackoverflow.com/questions/40347726/python-3-5-asyncio-and-aiohttp-errno-101-network-is-unreachable
Please check

I don't think this issue is due to this library. Closing this for now.


Feature Request: Tag Search Filtering

I sometimes quickly need to find something, but the size of the menu with 200+ mods loaded can leave me having to memorize certain mod names and what they do, it would be handy if there were buttons that I could toggle that filtered the results by:

mods that have a config button
mods that are tagged as APIs
mods that are tagged as Client-Only

This would make it a lot easier to manage the configuration and balance phase of creating a mod loadout.

The latter two are already a thing, actually. You can search for, "api" or "clientside" and it will filter accordingly. The config one is a good idea though.


Add ExodusII reader

Addresses #143 and pinging @daniellivingston: does this look like it addresses your needs?
import vtki

filename = 'mesh_fs8.exo'

dataset = vtki.read(filename)
# or
dataset = vtki.read_exodus(filename, enabled_sidesets=[0,1,3]) # Enable by index

dataset.plot(mulit_colors=True)

Codecov Report

Merging #145 into master will decrease coverage by 0.01%.
The diff coverage is 86.36%.

@@            Coverage Diff             @@
##           master     #145      +/-   ##
==========================================
- Coverage   89.09%   89.08%   -0.02%
==========================================
  Files          19       19
  Lines        5052     5074      +22
==========================================
+ Hits         4501     4520      +19
- Misses        551      554       +3

Impacted Files
Coverage Δ

vtki/examples/downloads.py
87.69% <100%> (+0.39%)
:arrow_up:

vtki/readers.py
86.45% <85%> (-0.39%)
:arrow_down:

Continue to review full report at Codecov.

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


[FEATURE REQUEST] Add Build Programs to the Environments Tab in Settings

Is your feature request related to a problem? Please describe.
I use ZHLT, and a custom version at that, which I compiled myself and made some modifications to, problem is, I cant set the path as there is no way to do that
Describe the solution you'd like
Just a simple text box where I can input the paths of the Build programs

i didnt even notice that it already existed.....


Chat participants available in inline chat

If an extension contributes a chat participant, it's available in the various chat areas (sidebar, editor, quick chat) but not the inline chat.
It would be good if they could also work there.

Dup of https://github.com/microsoft/vscode/issues/228177


MongoBackup is not a constructor

I get this error whenever I run this on NodeJS
TypeError: MongoBackup is not a constructor

My code:
const MongoBackup = require('mongodb-atlas-backup');
var backup = new MongoBackup({
    user: <USER>,
    password: <PASSWORD>,
    replicaSet: <REPLICA SET>
});
backup.dump();

Try:
const MongoBackup = require('mongodb-atlas-backup').default;

The suggested solution worked. Issue can be closed now.


mark duplicates using bamsormadup corrupt

I am using cancer variant calling pipeline on hg38 assembly. When I do not set the mark_duplicate parameter the pipeline run smoothy, but If I set it to true then corrupt due to the following error:

/bio/bcbio/galaxy/../anaconda/bin/bamsormadup inputformat=sam threads=12 tmpfile=/ngs/zhengu/project2/work/bcbiotx/tmptkFN4S/zhangyajuan-sort-sorttmp-markdup SO=coordinate indexfilename=/ngs/zhengu/project2/work/bcbiotx/tmptkFN4S/zhangyajuan-sort.bam.bai > /ngs/zhengu/project2/work/bcbiotx/tmptkFN4S/zhangyajuan-sort.bam
' returned non-zero exit status 139

Thanks for the report and sorry about the issue. Unfortunately this is not enough information to remotely debug the issue with your file. This line tells us bamsormadup fails but the traceback earlier on should have additional information about the cause of the failure that would be helpful. It would also be useful to know your configuration and input, as mark_duplicates: true is the default for variant calling pipelines. Is it possible you're hitting some data specific error causing the failure here? Hope this helps for debugging.

@chapmanb
This error looks very strange. Maybe it just occurred occasionaly. When I run the pipeline again, it went through this error. FYI, I have uploaded the whole log information.
log.txt

Thanks for following up with the full error message. It looks like bamsormadup is segfaulting here without a clear reason why. If it's intermittent there is likely something system specific on the machine you're running on. Hopefully it'll be more stable going forward, and thanks again for following up.


Possibility to remove a due date from a task

It seems like there is no possibility to remove a once set due date from a task at the moment. If i clear the date input field (so the default value yyyy-mm-dd is shown again) and hit Escape to save, the old date appears again.
Think it would be a nice feature to be able to unset the due date.

Hi @sdrwtf,
Thanks a lot for pointing it out 👍🏼
It's really an essential feature to have.
Regards,
Anis


Form Dialog doesn't adjust when keyboard is shown

On mobile device with a Form Dialog jeyboard overlaps the input fields.

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior 🤔

I expect that Form Dialog moves up to avoid being overlaped with keyboard
Current Behavior 😯

Form Dialog gets covered with a keyboard.
 The one thing I can remember for sure is that I was making the screen resize with the keyboard display: https://github.com/ionic-team/cordova-plugin-ionic-keyboard/tree/0691ad09f5b03861d73ca7c228e4efd2d691d5a3#keyboardresizemode, then I was handling the show even to hide some UI elements: https://github.com/oliviertassinari/SplitMe/blob/master/src/main/expense/add/Add.js#L177.
We have a related issue on this matter #2759 with the old v0.x dialog implementation.

@oliviertassinari Thank you for your feedback. I could not made plugin work for me. Maybe bacause I use hosted app in my cordova build.
So, I decided to put Dialogs on the top and it should do the trick.

The problem was in cordova status bar plugin. It was ruining correct behaviour. I removed status bar plugin and it all works fine now.


Multicputrain

run simulations for evaluating the models on all available cpus... bumping training time for 8x on my 8 core gcloud instance.

sorry


✨ Add ability to set MSW worker start options

There is currently no way to set worker start options. Export an optional setMswWorkerOptions function that will enable the end user to set the worker options.
Change support/index.js to:
import { setMswWorkerOptions } from '../../src/support'

setMswWorkerOptions({ quiet: true, onUnhandledRequest: 'bypass' })

This PR also:

Upgrades packages
Fixes an issue where MSW would warn about unhandled requests
Increases Cypress version to 11

@raphaeleidus would you be able to take this for a spin?

@deshiknaves, I don't think these changes were ever published to npm

Yep. Looks like the CircleCI image needs replacing. I'll have a look this evening.

@deshiknaves hello, I would also like these changes to setup the url property for the serviceWorker option. Let me know if I can do something to help.

@triglian @jameskraus this has now been published. Sorry for the delay.


HA says "The component is not configured"

Prerequirements
[X] I have connected my mower(s) to the Automower Connect App
[X] I have connected my Husqvanra developers account to the Authentication API
[X] I have connected my Husqvarna developers account to the Automower Connect API
Describe the bug
I had the Automover integration running up until today when I upgraded from 2022.7.2 to 2022.7.3 and restarted HA. After that the integration showed that it need to be reconfigured. Clicking the red "Reconfigure" button gave me the message indicated in the screenshot below.
After several reboots and attempts to reconfigure I completely removed the integration rebooted, recreated the API integration at husqvarna and tried adding it again in HA. Still the same issue, message is shown directly.
I have looked through configuration.yaml but found no references to automower.
Is there a way to make HA completely forget the configuration of the integration? Where should I look?
Expected behavior
Be able to follow the instructions from the docs.
Screenshots
When trying to add I get the following message and nothing more:

Additional context
HA 2022.7.3 running on HAOS 8.2
Trying with debug setting for logs but can only find this:
2022-07-11 09:48:22 WARNING (SyncWorker_1) [homeassistant.loader] We found a custom integration husqvarna_automower which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

Sorry, I've changed the documentation already, because I'm planning to enter this UI. But here is the old documentation:
https://github.com/Thomas55555/husqvarna_automower/tree/2022.7.0#home-assistant
You have to add client_id and client_secret in your configuration.yaml

Thanks!
Do you have any hints as what to put in the now required redirect field on the Husqvarna site?

I have tried my local non-http address and my habu casa but failed.

Yes, it's also in the link above. You have to enter this: https://my.home-assistant.io/redirect/oauth

OK - worked the second time! All good now, just need to reconfigure my automations.
Thank you!


[BUG] Rebase Main Branch w/ Refactors from upstream core

What is the bug?
Build fails with some latest dependency updates from core. This was caught by the compatibility checker on https://github.com/opensearch-project/OpenSearch/pull/9073.
How can one reproduce the bug?
Build with latest core Snapshot.
What is the expected behavior?
Build passes w/o any updateShas failures
Do you have any screenshots?
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':updateShas'.
> Could not resolve all dependencies for configuration ':runtimeClasspath'.
   > Conflict(s) found for the following module(s):
       - org.apache.logging.log4j:log4j-api between versions 2.20.0 and 2.17.1
       - org.apache.logging.log4j:log4j-core between versions 2.20.0 and 2.17.1
     Run with:
         --scan or
         :dependencyInsight --configuration runtimeClasspath --dependency org.apache.logging.log4j:log4j-api
     to get more insight on how to solve the conflict.

Do you have any additional context?
#5910

Issue with console logs. Neural plugin is good as per the final result:
Incompatible components: [https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/security-analytics.git]


Task to Finalize Publication

@josephholler, we have a few small tasks to complete to ensure that the repository and paper are ready for final publication in the Annals

[x] Confirm there is an active link to the online visualization in this repository
[ ] Final check of repository structure and internal referencing

I used an OSF project component for a doi link that redirects to the data visualization.
Holler, J., Luo, Y., Kedron, P., & Bardin, S. (2023, August 15). Reproducibility Survey Data Visualization. https://doi.org/10.17605/OSF.IO/B47XU
This can be cited in the paper

I think structure/referencing are good, except what to do with survey_resp.csv

well, that and we have a many of tables in the results folder, but none are listed in results_metadata.csv. I'm not sure if any of them match a table in the manuscript either. I'll leave it up to you whether to keep them or place a note.


[Fix #3363] Style/EmptyElse autocorrection removes comments from braches

This fixes the issue with Style/EmptyElse removing empty elses that also removed comments. The methodology for this fix is it checks for comments within the range of the else and end keywords.

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Used the same coding conventions as the rest of the project.
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] All tests(rake spec) are passing.
[x] The new code doesn't generate RuboCop offenses that are checked by rake internal_investigation.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[ ] Updated cop documentation with rake generate_cops_documentation (required only when you've added a new cop or changed the configuration/documentation of an existing cop).

@bbatsov @Drenmi anything I need to do to get the PR approved?

Looks good to me. Sorry about the slow turnaround - seems I forgot about it.


Activity Insight OA Workflow version checking job

Branched off of https://github.com/psu-libraries/researcher-metadata/pull/713 .
I added a version_checked boolean to ActivityInsightOAFile to be a status holder like downloaded.  This gets set to true when the job is queued so it doesn't get queued again.
I did my best to differentiate between the ScholarSphere deposit workflow job and this.  The name of this job ended up a little weird: AiOAWfVersionCheckJob
closes #717

@Smullz622 If you get a chance can I get a second set of eyes on the ActivityInsightOAFile scope tests and the OAWorkflowService tests?  I think I got everything in the merge.


Implement graph remove

Corresponds to the subgraph_remove json-rpc endpoint. Example invocation: yarn graph remove --node http://<IP_ADDRESS>:8020/ -n ens.
Depends on https://github.com/graphprotocol/graph-node/pull/512 landing on the node.

@Jannis done


Notify for 2 characteristics on different services

Hi,
I have a Sensortag here and trying to get notified for the temperature and light sensor.
If I use following code I only get notified for the light sensor:
var noble = require('noble');

function initLightService(peripheral){
		peripheral.discoverServices(['f000aa7004514000b000000000000000'], function(error, services) {
    console.log('light service discovered');
	    var service = services[0];
	    service.discoverCharacteristics(['f000aa7204514000b000000000000000'], function(error, characteristics) {
		    console.log('characteristic enable discovered');
    	var characteristic = characteristics[0];
		    characteristic.write(new Buffer([0x01]), false, function(error) {
		    	console.log('set enable to (1)');

			    service.discoverCharacteristics(['f000aa7104514000b000000000000000'], function(error, characteristics) {
				    console.log('characteristic value discovered');
    			var characteristic = characteristics[0];
				    characteristic.on('read', function(data, isNotification) {
				      console.log('light value is: ', data.readUInt8(0));
    			});
				    characteristic.notify(true, function(error) {
				      console.log('light value notification on');
    			});
  			});
    	});
  	});
		});
	}

noble.on('discover', function(peripheral) {
    peripheral.connect(function(error) {
	    console.log('connected to peripheral: ' + peripheral.uuid);
	    peripheral.discoverServices(['f000aa0004514000b000000000000000'], function(error, services) {
      	console.log('temp service discovered');
		    var service = services[0];
		    service.discoverCharacteristics(['f000aa0204514000b000000000000000'], function(error, characteristics) {
			  console.log('characteristic enable discovered');
    		var characteristic = characteristics[0];
			    characteristic.write(new Buffer([0x01]), false, function(error) {
			      console.log('set enable to (1)');

				    service.discoverCharacteristics(['f000aa0104514000b000000000000000'], function(error, characteristics) {
					    console.log('characteristic value discovered');
    				var characteristic = characteristics[0];
					    characteristic.on('read', function(data, isNotification) {
					      console.log('temp value is: ', data.readUInt8(0));
    				});
					    characteristic.notify(true, function(error) {
					      console.log('temp value notification on');
						    initLightService(peripheral);
    				});
  				});
    		});
  		});
	    });
  });
});
noble.startScanning();

Using this code I get notified for both sensors:
var noble = require('noble');

noble.on('discover', function(peripheral) {
    peripheral.connect(function(error) {
	    console.log('connected to peripheral: ' + peripheral.uuid);
	    peripheral.discoverServices(['f000aa0004514000b000000000000000', 'f000aa7004514000b000000000000000'], function(error, services) {
      	console.log('temp service discovered');
		    var service = services[0];
		    service.discoverCharacteristics(['f000aa0204514000b000000000000000'], function(error, characteristics) {
			    console.log('characteristic enable discovered');
    		var characteristic = characteristics[0];
			    characteristic.write(new Buffer([0x01]), false, function(error) {
			      console.log('set enable to (1)');

				    service.discoverCharacteristics(['f000aa0104514000b000000000000000'], function(error, characteristics) {
					    console.log('characteristic value discovered');
    				var characteristic = characteristics[0];
					    characteristic.on('read', function(data, isNotification) {
					      console.log('temp value is: ', data.readUInt8(0));
    				});
					    characteristic.notify(true, function(error) {
					      console.log('temp value notification on');

						    console.log('setup light sensor');
						    var service = services[1];
						    service.discoverCharacteristics(['f000aa7204514000b000000000000000'], function(error, characteristics) {
							    console.log('characteristic enable discovered');
				        	var characteristic = characteristics[0];
							    characteristic.write(new Buffer([0x01]), false, function(error) {
							      console.log('set enable to (1)');

								    service.discoverCharacteristics(['f000aa7104514000b000000000000000'], function(error, characteristics) {
									    console.log('characteristic value discovered');
				        			var characteristic = characteristics[0];
									    characteristic.on('read', function(data, isNotification) {
									      console.log('light value is: ', data.readUInt8(0));
				        			});
									    characteristic.notify(true, function(error) {
									      console.log('light value notification on');
				        			});
				      			});
				        	});
				      	});
    				});
  				});
    		});
  		});
	    });
  });
});
noble.startScanning();

In the first snippet the services are discovered one after another, in the second they are discovered with one call to peripheral.discoverServices.
I recognized that when I setup the notify for the temperature sensor all works until I discover a new service.
Maybe a bug and if not I hope it helps others with this issue.
Greetings

@Lock-up are you using OS X or Linux? Which version/distro?
It might be related to #169 ...

Im using OS X Yosemite (10.10.3)
Maybe its related, but my code is discovering the services and is reading/writing the characteristics sequentially.
I think the problem is calling peripheral.discoverServices multiple times.

I'm experiencing the same behavior on Yosemite, I can only read the latest notify.
Work-around by @Lock-up works though.

Hi
Having a similar issue on Intel Edison, edison 3.10.17-poky-edison+,  running node v0.10.38, and Nobel version 0.1.9. If I set 2 notify handlers on 2 different characteristics, it seems the 2nd one always points to the 1st. I've tried 1) using   discoverSomeServicesAndCharacteristics, with both services  and both characteristics as arguments, 2) calling discoverSomeServicesAndCharacteristics twice, with single service and characteristic, and 3) calling discoverServices along discoverCharacteristics for each pair of service and characteristic:

var serviceUUID=["481d178c10dd11e4","68b527384a0440e18f"]; var charUUID=["4e92f4abc01b4b5ab","7a5433056b9e4878"];
peripheral.discoverSomeServicesAndCharacteristics(serviceUUID,charUUID, sensNotify);
var serviceUUID=["481d178c10dd11e4"]; var charUUID=["4e92f4abc01b4b5ab"];
peripheral.discoverSomeServicesAndCharacteristics(serviceUUID,charUUID, sensNotify);...
peripheral.discoverServices(["481d178c10dd11e4"], function(error, services) {
services[0].discoverCharacteristics(["4e92f4abc01b4b5ab"], sensNotify01);
}); ...
Any thoughts?
Cheers,

@navesta you need to use 16-bit or 128-bit UUID's.

Thanks Sandeep. Indeed, I was in fact using 128 bit UUIDs - just did not copied them over - my bad. Problem was that I had not taken into account the async nature of Noble characteristics callback, i.e., I was just looping through the list characteristics. The solution was to use  async.whilst and loop through each characteristics handler serially.

Maybe me issue is related to this. I have one service with an 128 bit UUID, that contains 3 characteristics from which I expect to see notifications for two of them:
control_point_char.on 'data', (data, is_notification)->
    control_point_callback( data, is_notification )

progress_char.on 'data,', (data, is_notification)->
    progress_callback( data, is_notification )

control_point_char.notify true, (error)->
    if error
        cb(null, error)
    else
        progress_char.notify true, (error)->
            if error
                cb(null, error)
            else
                cb(peripheral, null)

In a sniffer, I see that my client subscribes to both characteristics and I see notifications send by the GATT server. I see that the first characteristics callback is called, while the second is not called.


position: 0 now makes model pushed to top?

After update i got weird issues with sorting.
After investigation i have found that new items got pushed to top, and not to bottom as described...
So model with position: 0 results into position: 1.
Is this new behaviour, or i have some issues in my code? Maybe with scope(i have scope on multiple fields) but how it relates to this?

Is this still a problem? Instead of a monkey patch it'd be good if we could fix it. New items should go at the bottom of the list by default. Have you tried removing the default value from that column?

Sorry, i'm not having access to that project anymore.

Ok, I'll close this. If someone can reproduce this with a failing test then we'll look into it.


custom elements: element property names must be < 16 characters long

I've got some JavaScript that registers a custom element which has a name that is >15 characters in length. When I attempt to use this custom element in a .templ file, the code fails to compile with the error:

failed to process path: /some/path/to/template.templ parsing error: element property names must be < 16 characters long

Are custom elements something that templ aims to support?

This should be fixed in main now:
#212

Released in https://github.com/a-h/templ/releases/tag/v0.2.408


How to ignore changes on tracked files

There is something to change on the local configuration files but don't want to commit.

Rob Wilkerson » Git Tip: Ignore Changes to Tracked Files

git - Can I get a list of files marked --assume-unchanged? - Stack Overflow

Ignoreing tracked files - Git Essential Training • Lynda.com

$ git rm --cached foo.txt


No "we" language. DC/OS, not The DC/OS

Not sure on your marketing, but DC/OS seems more common than The DC/OS. However, "The DC/OS cluster" is correct because you are describing the specific cluster.
Description

Urgency

[ ] Blocker
[ ] High
[ ] Medium

Requirements

Test all commands and procedures.
Build content locally and test for formatting/links.
Add redirects to dcos-website/redirect-files.
Change all affected versions (e.g. 1.7, 1.8, and 1.9).
See the contribution guidelines.

Can one of the admins verify this patch?

thanks!


[Bug]: Getting error if using json_extract in a MySQL query: Cannot invoke "Object.getClass()" because "columnValue" is null

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Getting error if using json_extract in a MySQL query, or just querying a field that is of json type.
SELECT
	id,
	createdAt as date,
	json_extract(details, '$.editor') AS editor
FROM
	`User`
ORDER BY
	id DESC
LIMIT 10

Steps To Reproduce

Run a MuSQL query on a table that has a json type field

Public Sample App
No response
Environment
Production
Issue video log
No response
Version
self host, V<IP_ADDRESS>

@patrioticcow
Could it be due to the null value returned by json_extract(details, '$.editor')?
Can you please give the following queries a try?
Using IFNULL
SELECT
	id,
	createdAt as date,
	IFNULL(json_extract(details, '$.editor'), 'N/A') AS editor
FROM
	`User`
ORDER BY
	id DESC
LIMIT 10

Using COALESCE
SELECT
	id,
	createdAt as date,
	COALESCE(json_extract(details, '$.editor'), 'N/A') AS editor
FROM
	`User`
ORDER BY
	id DESC
LIMIT 10

As Subrata has mentioned seems like the issue occurs when the queried key is missing from the column JSON value returning null as the value against the key:

Hi @patrioticcow sharing a work around, please mention here if this helps. Re-writing the query like this should filter out all the null value results:
select json_extract(c_json, '$.key3') as result from test_json_type where json_type(json_extract(c_json, '$.key3')) != 'NULL';