Bug 1793325: Fix permissions in the Dockerfile of /etc/passwd [release-4.1]

Describe what this PR does and why we need it:

Fix vet error msg
Fix permissions in the Dockrefiles of /etc/passwd

Motivation: https://bugzilla.redhat.com/show_bug.cgi?id=1793325

/test operator-molecule-e2e

Bug 1793325 was closed wontfix. Closing this PR now.


figure out why bitfield enum order is different

in navigate-h_REF.gc should-display
it also should use logtest I think.

both fixed in https://github.com/water111/jak-project/pull/775


Reference go-localtunnel (issue #163)

this client implementation supports net.Listener, so no need to use a port on localhost.

Would you be interested in moving this to the localtunnel org? You would retain commit access (obviously) and ownership, it would just be easier for others to discover it.

@defunctzombie, sure I don't mind transferring it..
I think you need to give me permission to create repos on the localtunnel organization to facilitate it.
@defunctzombie, curious, to what extend is this being maintained? I mean shouldn't we add websockets at some point... and support streaming requests (by flushing periodically).
I do like the simplicity of the protocol, compared to many other things. But it could probably use a tiny cleanup too, to avoid stealing of subdomains (and related bugs). Could maybe be done serverside by looking at remote IPs..

mean shouldn't we add websockets at some point

Can you elaborate on this? Localtunnel server and client support websockets.

to avoid stealing of subdomains

In what sense? Subdomains are ephemeral and part of the service is that anyone can use whatever subdomain they want. I think a design decision I would do differently today is preventing users from selecting their subdomains. This has led to developers treating localtunnel as a more "permanent" setup than it is meant to be. The tunnels are meant to be on demand and short lived (for a development session).

I think you need to give me permission to create repos on the localtunnel organization to facilitate it.

I believe if you add me as admin on the repo that needs to be moved I can move it. I cannot add you as a collaborator to no repos so that you can perform the move (at least after looking at the team settings I have not figured out a way to do so, if you know the steps I can perform them).

Subdomains are ephemeral and part of the service is that anyone can use whatever subdomain they want. I think a design decision I would do differently today is preventing users from selecting their subdomains.

yeah, some variant of that... Notably you do want to support reconnecting...

I believe if you add me as admin on the repo that needs to be moved I can move it.

Hmm, I could only invite you as a contributor. but I filed a request to transfer it to you, then you can add it to the organization.

@jonasfj Please update this to point to https://github.com/localtunnel/go-localtunnel and then ping me to merge.


Option to disable lion style fullscreen windows on OSX/macOS

Currently going into fullscreen mode on OSX does a zoom animation and start a new desktop.
A desired workflow, however, might be to have a semi transparent background on hyperterm and/or shortcuts to activate it, and have it be full screen 'on top' of the current content of the screen.
iTerm has this option, but I'm not sure if it's possible to do this with the electron windows.

I don't think changing the default OS experience is a good idea, nor integrating a feature such as this into the main app. I assume this feature would only be used by a few and suits a plugin more, since that's exactly what plugins are for.
There might even be a plugin for it somewhere already! 😄

FWIW, I use it in iTerm all the time.

Yep, would like to see this at some point. Overlayed over sublime would be the best 👍

This is the only reason I'm have not used Hyper, please make this happen.

I've been trying to do some research on the side of how iTerm does this. I haven't really done Cocoa development but it looks like they use a setting for making and NSWindow that makes the fullscreen not open a new space like Lion though I can't really follow much from there.
Probably relevant iTerm implementation...
This would probably have to be added to electron itself, and then used in hyper, but any pointers from anyone would be cool.

@jalvarado91 This is diffidently electron related. I suggest you make an issue directly to electron and link it to this curent issue

Quick update on this issue: simple (pre-Lion) fullscreen support has just been added in electron/electron#10254 and will most likely be released in Electron 1.8.x. Electron 1.8.0 is still in beta, so it will probably be a little while before this feature can actually make it into Hyper, but I thought some people would be happy to hear that it's now at least one step closer ☺


Upgrade to 1.0: Undefined method `user_omniauth_authorize_path'

After upgrading omniauth gem to 1.0 and adding omniauth-facebook gem I started to get this error:
ActionView::Template::Error (undefined method `user_omniauth_authorize_path' for #<#Class:0x00000004c7b510:0x00000004c6daa0>):
This user_omniauth_authorize_path is used for the facebook login button on the page. I wonder what might be wrong and how this should be fixed?
My User model is omniauthable.
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:omniauthable

OmniAuth does nothing to create Rails route helpers like the one you're using, so if there is a change it must be on the Devise side of the line. You might try asking there. :)

Ok, thanks!


[Bug] [WEB] Workflow instance page forms cannot be paginated

Search before asking

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

What happened
Workflow instance page forms cannot be paginated

What you expected to happen
normal paging.
How to reproduce
alway
Anything else
No response
Version
3.2.x
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

Fixed in #15619


Update Histogrammer.cc for array channel/gap sized bins in Ex/E_vs_z 2D histograms

I've just read it in a bit more detail and you count from 0 up to and including 128, so this gives the inter-wafer gap... So it works for now, but I am guessing my suggested change would make the bin widths of those edge strips a bit more consistent. You can then change the condition that it counts from 0 up to 127...

Ah yeah, I will change bin number definition.
I am not sure what you mean by the edge strip bin width consistency though. The bin widths of array channels are all 0.953 mm and the bin widths of inter-wafer gap are all 3.516 mm using this method.

There is also a 0.5 mm gap between the wafers. But that is included in your distance between wafers (125.5 mm), which are 125.0 mm long.
From ROOT documentation: xbins | array of low-edges for each bin. This is an array of type float and size nbins+1.
As far as I read this, you are correct. I assumed that we needed the bin centres, but we actually want the low edges, so the bin representing the gap, i.e. ch==128, has it's low edge equal to the upper edge of the last strip.
Ok then, just update the number of bins and we're done. Thanks very much for this improvement!!


finish unit tests

Full unit tests
Clean up updateLayout a bit
Make some reusable functions
Consistent example titles + meta descriptions

May need a rebase?  (there's a bunch of commits at the beginning that aren't actually text component related?)

rebased

much cleaner thanks!


Giveaway Filters: points to enter unfiltered GAs get increased every time you re-extract

See screenshot:

Just head to any GA or thread where the extractor can be useful and follow the steps.

Have GA extractor and GA filters on.
Extract some train or list of GAs with GA extractor.
Check the amount of points you need to enter all unfiltered GAs.
Press re-extract.
Notice how the amount of points increased. More specifically, since you're extracting the same GAs, it should double.
Repeat 2-4 a few times and notice how it keeps increasing. Eventually it will go high enough to surpass the amount of GAs and of points the extractor found to begin with.

Conclusion: the extractor is starting from the beginning but not resetting the number of points/GAs to zero.
Note: tested with "Only extract from the current giveaway onward." off, in case it matters.

Oh yes: 8.3.0 release version on latest Pale Moon x64 for Windows.

I probably messed something up while fixing #1201. Will take a look.


Include header  in connection.h to avoid compiler erros with msvc2019 16.4

Even though newer MSVC 2019 version compile perfectly fine it's worth including this header since it's used in 'Connection' class.

Thanks @chehrlic!


Support for Black Parrot -- FPGA and cosim

We should probably add make tools in BP to the README instructions as well (for verilator)


Allow taps with its formula in the same repository to be installed via brew install someuser/someformula

Provide a detailed description of the proposed feature
This would allow users to install taps that contains its formula in the same repository. The command would look like
brew install somerepo/sometap.

This assumes the tap and the repository have the same name.
We could also look for HomebrewFormula/ and equivalent directory to find the formula when they do not share the same name.

What is the motivation for the feature?
Currently, this kind of repository requires users to run two lines of command.
brew tap user/formula URL
brew install formula

With this, it could be done as a oneliner
brew install user/repo

So this could potentially save some of the users' time.
How will the feature be relevant to at least 90% of Homebrew users?
Since we can do brew install user/repo/formula, it feels unnatural that we cannot do brew install user/formula and it is potentially creating confusion.
What alternatives to the feature have been considered?
Using brew tap user/formula URL && brew install formula

brew install user/repo/formula already does this 🎉

Currently, this kind of repository requires users to run two lines of command.
brew tap user/formula URL
brew install formula

With this, it could be done as a oneliner
brew install user/repo

If you have to specify the tap URL explicitly, brew tap needs to be explicit too.
And if your formula is at https://github.com/user/homebrew-tap/Formula/formula.rb, you already have a one-liner:
brew install user/tap/formula

@MikeMcQuaid
Hi, thank you for your quick reply!
I should have included this in the first place but I meant taps like salesforce/policy_sentry: IAM Least Privilege Policy Generator and I believe this kind of taps cannot be installed via brew install user/repo/formula because Homebrew assumes homebrew- prefix which results in failure in resolving the repo name.
@gromgit
You're right but I still think this could be useful since many repositories use the same name for their formula so if we could assume that repo has the same name as formula, I think explicit tap won't be needed.
Please let me know what you think!
Thank you in advance.

Not a maintainer, but the mandated homebrew- prefix has a number of benefits:

it greatly increases the likelihood that the repo auto-tapped this way is a proper Homebrew tap
it eliminates the need to guess and try multiple repo URL options
the formula files are separated from the main software repo, minimizing the tap size

The salesforce/policy_sentry repo you linked to illustrates that final point brilliantly. Few folks want to permanently tap multiple megabytes of source code that's only needed once (and will be pulled down separately during the brew install anyway), and multiple megabytes of .git directory contents that's never needed by most Homebrew users, just to save a few keystrokes in a command that's only run once.

Few folks want to permanently tap multiple megabytes of source code that's only needed once (and will be pulled down separately during the brew install anyway), and multiple megabytes of .git directory contents that's never needed by most Homebrew users, just to save a few keystrokes in a command that's only run once.

This does make sense a lot. Thanks, @gromgit for your comment!

Agreed with @gromgit here!


Add chat tests and update validation of message creation.

This includes:

Validating that a chat message was sent by a valid user before saving it (i.e. by a member of a study group and not by someone outside the group, or by the teacher or student of a private lesson).
Tests for the ChatManager.
Tests for the chat's Message model.

The chat app is dependant on the StudyGroup and Course apps, which are not merged as of now. For this reason, the tests and Model fields related to those apps are commented out.
The tests have been ran locally and passed with the changes in the other apps PRs (which are not added as part of this PR). After the merging of the other apps and conflicts resolution the commented out fields and tests will be restored.
fixes #61
depends on #47

Please resolve conflicts

Please resolve conflicts

Done

LGTM, please squash the commits

Done


Issue #45

Issue: Icebreaker Chat with user doesn't work for guest users
Fix: To be able to resolve this issue, I have created an extension method called CaseInsensitiveContains which takes the parameter of the extension #ext# and check it against the UserPrincipalName. If the extension exists - we will use the EmailAddress, otherwise we will default to using the UserPrincipalName.

Abandoning this PR


Add "zoom" functionality

It'd be cool if Resonance supported zoom transitions as per Mike Bostock's example here: https://bl.ocks.org/mbostock/9656675, to smoothly interpolate between different views.

I'd like to have this as well, but it will be awhile before I can work on it.
The thing with D3 zoom is that it actually is animating just a single element (it animates the translation and scale on the inner g element).  Resonance, right now, works on arrays of data.  It really needs to export an Animate component that can work on a single item and render its children.  In the zoom example you linked to the state paths are just static except for highlighting when selected.
The zoom interpolator is exported from d3-interpolate, so I can see it's possible to get the same transitions from point to point, but it would require quite a bit of work to get draggable panning.
Here's the zoom interpolator:
https://github.com/d3/d3-interpolate/blob/master/src/zoom.js
That would get you the basic transitioning from point to point on the map.  Click on a state, zoom in.  Click on that state again zoom out.  If you don't need the panning/dragging stuff.
For the panning you would need to setup event listeners like in d3-zoom which is fairly complex:
https://github.com/d3/d3-zoom/blob/master/src/zoom.js
If I was going to do it I would probably:
(1) Add the Animate component to Resonance for a single element that renders it's children.
(2) Then create a higher level component that was a stand alone npm module like resonance-zoom or something.  That's where all the events listeners etc would get setup dragging/panning.

Moving this project to react-move.  Resonance is now react-move 2.0.


Explain why const and static methods are useful

Let's explain a little of why D is the way it is, so that people encountering these ideas for the first time know why the tools in the toolbox are useful and worth learning.

Great. Thank you!


Row pages should show linked foreign keys

Refs #1518 refactor.

Twitter: https://twitter.com/dracos/status/1481290103519592459


nixos/mattermost: huge rewrite/refactor

Description of changes
For a couple of months/weeks now I've been working on a (sort-of) rewrite of the mattermost module to make it use better practices. The biggest change in this PR is the removal of the plugins option which doesn't work as expected anyway as it requires the user to manually install the plugins via mmctl which defeats its purpose. I decided to just remove it for now and later on use the binary inside an FHS env or patch the Go code to support plugins directly from the nix store. I don't think that functionality should delay this PR.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

The biggest change in this PR is the removal of the plugins option which doesn't work as expected anyway as it requires the user to manually install the plugins via mmctl which defeats its purpose

This isn't how it works. We actually build a plugin derivation and link it at startup. Did you have another usecase in mind?

That being said, the general thrust of using systemd to make the majority of the state directories is pretty good. But the removal of the plugins option is kind of a huge breaking change. If there's a better way to do it than patchelf, I'm interested.

The biggest change in this PR is the removal of the plugins option which doesn't work as expected anyway as it requires the user to manually install the plugins via mmctl which defeats its purpose

This isn't how it works. We actually build a plugin derivation and link it at startup. Did you have another usecase in mind?

But that does not actually work as it is read-only and mattermost tried to unpack the bundle and move it to somewhere else and also write to it which it can't do because it's inside the store.

Patchelfing is the best way of doing it, I initially made a fetchMattermostPlugin fetcher but then I realized that the Go code can't use plugins that are from the Nix store because they are read-only.

Yeah. I ran into the same thing. You kind of have to set that directory up beforehand :-(

Yeah. I ran into the same thing. You kind of have to set that directory up beforehand :-(

Which is why I think the current plugins "support" is kinda meaningless so we should take it out before we do it properly by either patching the Go code or running mattermost inside an FHSUserEnv.

The problem with the current approach of patchelfing is that it's dynamically linked to libraries in the current state of the nix store, so if you GC it should break, I think? Too much manual work for a barely functioning implementation.

While that's true, AFAIK most plugins are statically linked, which means that we may be able to get away with changing the interpreter path.

These are our current options:

Run mattermost inside FHSUserEnv so we can install and use plugins directly from the marketplace
Patch Go code so we can populate our patchelfed plugins managed via Nix and it will be able to read them from the Nix store
Drop the current poorly implemented plugins "support" until we figure out the previous two options

I am personally in favor of the last option for now.

(Sorry to poke in, but occasionally I check to see if we're getting new stuff yet.)
@Kranzes I hear what you're saying, but removing plugins support (however imperfect the implementation may be) would break my community's Mattermost instance that's been working with Nix for a while now. The current thing "just works" once we've figured out the location/shas/etc. of the plugins we want to use.
(Does this play well with plugins more generally? Ehhhhhh. Does it make the marketplace survive updates or whatever? eeeeeeehhhhhhhhhh. Does it work Well Enough and would removing it hurt us? Yes.)
Please don't break userspace and existing functionality in the pursuit of purity. How else could we move forward?

How else could we move forward?

Try the work on the first two options I listed, I have already done some research about them.

My community's Mattermost instance that's been working with Nix for a while now.

Care to share how you do it? :wink:

If you'd like me to cover what I figured out about how we should tackle this plugin support DM me on the NixOS Matrix and we can chat there, I feel like chatting here could become an issue because of the amount of messages.

@Kranzes just noting--haven't forgotten about getting you those configs; it's just been a bear of a week.

@Kranzes here's the sample config we use:
 services.mattermost = {
    enable = true;
    listenAddress = "<IP_ADDRESS>:8065";
    mutableConfig = true;
    preferNixConfig = true;
    extraConfig.PluginSettings.AutomaticPrepackagedPlugins = false;

    plugins = [
      (pkgs.stdenv.mkDerivation rec {
        version = "2.1.0";
        name = "mattermost-plugin-giphy";
        src = pkgs.fetchurl {
          url = "https://github.com/moussetc/mattermost-plugin-giphy/releases/download/v${version}/com.github.moussetc.mattermost.plugin.giphy-${version}.tar.gz";
          sha256 = "0i0jazihzvsf2as3lc0x8xpff2hd9j4kn4cxa3qv2gp4shxfnqaj";
        };
        installPhase = ''
          rm -f public/powered-by-giphy.png
          cp ${./mattermost/powered-by-nixos.png} public/powered-by-giphy.png
          ${pkgs.pngcrush}/bin/pngcrush -rem alla -ow -brute public/powered-by-giphy.png
          tar czf $out .
        '';
      })
      (pkgs.fetchurl {
        url = "https://github.com/wbernest/mattermost-plugin-rssfeed/releases/download/0.2.5/rssfeed-0.2.5.tar.gz";
        sha256 = "0kx5q0s3dkvv974c5zj89g6dr5i7glahfxsmbd5718w084gmgd5j";
      })
      # old version of plugin do to us not using MM 7+ yet
      (pkgs.fetchurl {
        url = "https://github.com/mattermost/focalboard/releases/download/v0.15.0/mattermost-plugin-focalboard.tar.gz";
        sha256 = "1l887qd5ancxc0rqc2ljwv2ah2fpfa90h7s1xi054njilwxfsh1c";
      })
    ];
  };

This demonstrates both plugins and doing a bit of fiddling with the install phase of one of them to override an image. This is an extracted service that we package up in a nix container and ZFS volume elsewhere, but this sample config should illustrate how to use plugins.

and then how do you make mattermost aware of these plugins?

As I recall I believe it will auto-install them upon startup.

@Kranzes @crertel See #208181 for a refactor with plugin support.

Haven't forgotten about #208181, btw. This will get a second life at some point, just need to spend a few hours getting the database stuff working again.

I no longer use mattermost.

No worries, and appreciate the work. 🙂


Assumer Error "sh: xdg-open: command not found" Week4 Lab 1

In order to fix this, I ran the command "sudo yum install xdg-utils". No confirmation on this being a proper fix though. The command fixed one error, but now the box is onto another.

@GrahamMThomas can you provide a screenshot of the error?


feat(MAT-BUTTON): Make _theme-property SASS mixin public

Feature Description
Make existing _theme-property SASS mixin from button-theme publicly accessible.
Use Case
We have a custom theme that uses the _theme-property mixin from the button-theme SASS class. Prior to v12 this worked fine. In v!2 this is disallowed because it is considered a private member. "Private members can't be accessed from outside their modules".
It would be useful to have this mixin accessible to theme creators.

_theme-property is a private mixin since it's there only to save us some typing. You can use the color mixin instead which includes all of the necessary styles to change the button color.


Questions on ToolManager plugin

Is the ToolManager plugin now replaced with the ToolManager in the Controls project?

No it has not been replaced. The Toolmanager plugin is used to load the ToolManager from the Controls project into the tab that you can see.

From a user´s perspective I think it is rather confusing with the same name. The ToolManager plugin should be called for example ToolManagerLoaderPlugin.


enum for credit car verification methods

I took these values from here:
https://github.com/fitpay/fitpay-webapp/blob/ccb47dd7230653d7aea8a5e1174c8ff654de59ab/src/modules/creditCard/cardVerification/views/idv.html#L27-L52

Right. I think the new one is only for Discover and I'm guessing the webapp hasn't been updated yet.


SMPL mesh to world coord

As I know provided smpl dataset is defined wih camera-coordinate.
but i'd like to see smpl mesh in world coordinate.
so i converted
root_rotation = smpl_pose_parameter[:3]
root_rotation = inverse(extrinsic parameter)@root_rotation
smpl_pose_parameter[:3] = root_rotation
smpl_mesh, smpl_joint = smpl.layer['female'](smpl_pose_parameter,smpl_shape_parameter)
projected_2d_vertices = projection_matrix @ smpl_mesh

but rotation was different with original rgb image.
how do i convert root rotation?

Actually, the root_rotation we provided is already considering the camera pose. So you don't need have to multiple the extrinsic matrix.

Thank you for your reply.
then as I know,
mosh_data = np.load(annots_train_bilinearf.npz)['params'][()]
cam = mosh_data[:3]
theta = mosh_data[3:75]
beta = mosh_data[75:]

smpl_mesh, smpl_joint = smpl.layer['female'](smpl_pose_parameter,smpl_shape_parameter)
projected_2d_vertices = projection_matrix @ smpl_mesh

Is it Right? I didnt do any conversion, But i got this result

How to get global oriented SMPL mesh...?
and What is cam?

Please don't multiply any camera matrix, such as projection_matrix you mul.
The rendered 3D mesh in the right is just captured by the camera placed in a wrong place. Please adjust your rendering camera parameters, especially the translation.
If you shoot the 3D mesh from a camera in the back and exchange the x and y axis, you will get the right rendering.
The cam is (scale, trans_x, trans_y). They are weak-perspective camera parameter we predict to describe the mesh location in the image.

well , I should use 'annot.npz' not 'annots_train_bilinearf.npz'.
It has global rotation. Thank you


Default keys to something enumerable

Right now, we default to using Blake2-256 for maps and double-maps. This guarantees security but comes at a cost of being unable to enumerate the keys (we can enumerate the values but only the hashes of the keys).
We should replace this default with Blake2-128-Concat. This provides 128-bits of security against trie-unbalancing attacks which should be just as secure as Blake2-256 since we were never going to be worrying about all 256 bits being equal, while at the same time, is secure against birthday attacks as it concatenates the preimage and also (for the same reason) includes the key.
First PR (pre-2.0):

Alter the pallets that are relying on defaults to explicitly specify Blake2-256 hasher.
Change the default to Blake2-128-Concat

Second PR (post-2.0)

Prepare migration code to allow Blake2-256-based maps to be translated to Blake-128-Concat. This will be a multi-phase migration where initially the key preimages of the origin Blake2-256 map are injected, then later (in an initialize_block, along with an upgrade) they are moved wholesale into the Blake2-128-Concat map and the original map destroyed.

Why not provide some new parameter to a decl storage line that stores the key with the value in a tuple? For the user it would make no difference, up to the point where he wants to iterate the keys. We could implement an extra trait, if the new attribute is set.

that's another way, yeah. in both cases there should be no significant change for the user. this way is slightly more space efficient (fewer bytes stored as it's 16 + len(key) + len(value) rather than 32 + len(key) + len(value) and it may be slightly faster since we're only computing a hash of half the size.


Bring addon-contexts to Vue

Vue and React all share a common API signature as in createElement. This make it easy for porting this addon to Vue community.

v1.20 release (#14-Bring addon-contexts to Vue) #17


🏛 [EPIC] : Platform & General Interface

Summary
The basic application framework and consistent interface patterns across the experience.
JIRA Epic
https://input-output.atlassian.net/browse/NPG-7772
Description
The Catalyst Voices platform will be delivered as a Flutter application, written using Dart and Material3. The MVP will be a responsive web app that is optimized for desktop, with limited functionality on mobile. Wallet connect (and therefore most features) will be available only on desktop browser. Future iterations of the platform will include native applications for iOS and Android, dependent on development of new SDKs to enable wallet connect and other key features on mobile.
Users will enter the MVP webapp from a variety of sources, including but not limited to...

Direct URL (likely subdomain of ProjectCatalyst.io)
ProjectCatalyst.io ("Launch App)
Contextual Deep Linking

Across the Voices platform, a consistent general interface will allow users to navigate the experience with context and confidence, even as they take on new roles & actions, or interact with new brands & spaces. Pieces will include:

Header: logo, main call to action, inventory, account / profile
Left Rail: expandable hamburger menu with navigation that changes based on application context
Right Rail: expandable panel with just in time tips to complete actions with ease & quality based on application context
Footer: static key links

The interface will not only be responsive to application context, but also to user context. Users may see different information or actions available in the general interface based on...

Account connected state
Registered / active roles
User preferences

A note on existing website vs Voices:
Some overlap may exist between these two interfaces for the MVP of Voices, including the ability to browse events and proposals. Over time, it is anticipated that features currently in the website - like the ability to explore funded project progress & results - will be incorporated into the Voices platform post-MVP. In a mature state, it is envisioned that the website will hold high-level descriptive information relevant to Catalyst as a process and as a service, while all user-driven interactions will live inside the platform. Open question: how is existing website built, and is there compatibility with how app will be built?
TODO: consider desirability & feasibility for MVP of super admin user interface for allowing non technical platform operators to perform management functions like template editing, moderation, etc.
TODO: define how UX components will be reusable across brands. Need to implement components in such a way that they can pull in logo and other assets from either Catalyst, or any other user / customer. Might consider achieving this using ThemeData from flutter: https://api.flutter.dev/flutter/material/ThemeData-class.html
Todo

[x] #379
[x] #380
[x] #381
[x] #382
[ ] Application architecture & setup
[ ] New user onboarding flow
[x] [TASK] Develop proposal workspace navigation drawer component
[x] #469

@mike-mcnulty "Contextual Deep Linking" has nothing to do with the initial implementation of UIKit. Can we de: scope it, please?

TODO: split deep linking into its own epic

completed with mve1


Dynamically set marker size on Scatter plot

I am trying Holoviews by recreating the Scatter economic example holoviews.org/gallery/demos/bokeh/scatter_economic.html
Except for the marker size and the padding, I got the example to work on Holoviews version 1.10.4. So,
How to set marker sizes based on the Unemployment?
dim does not work in 1.10.4 so this did not work:  size=dim('Unemployment`)*1.5 .  hv.Dimension also did not work in 1.10.4
How to set padding? And, a related question, what is the correct way to set options? Is it options or opts?
Using options seems to work in 1.10.4 (opts , which is shown on lot of examples did not work on 1.10.4). Is options the preferred way to set options (as shown below)?
overlay = gdp_unemp_scatter.overlay('Country').options(legend_position='left', width=800, height=400, show_frame=False)
Any help will be much appreciated.

Is there a particular reason you want to use 1.10.4?  That release is a year old, and I think there have been 12 full releases since then.  In any case, the current holoviews release is 1.12.1, and holoviews.org will show you  how to use that version, not older ones.  Nowadays we recommend .opts over .options.  We already have a HoloViews version of that example along with most other Bokeh examples:
http://holoviews.org/gallery/demos/bokeh/scatter_economic.html#bokeh-gallery-scatter-economic
If have to use 1.10.4, e.g. because you're in an airgapped environment with nothing more recent, you should build your own copy of the docs locally and use that. Code you write for 1.10.4 should still work with more recent versions, but not vice versa...

Thank you will upgrade to the latest version.


Automatically resolve class-ids with autloading

It could be useful for mocking in tests to automatically resolve $container->get(Foo\Bar::class) to an instance of that class using PHP autoloader currently registered.

This is not PSR-11 compliant; unless we return true for $container->get(Foo\Bar::class) for any class that can be autoloaded.
This functionality could easily be implemented by a lightweight container wrapper, that consumes a PSR11 container and catches the appropriate exceptions and manually instantiates those classes (with the help of the PSR11 container and dependency resolver).

Indeed.


BLD: Fix precommit action version to 3.0

Codecov Report

Merging #61 (9ab4ec7) into master (0981c7a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #61   +/-   ##
=======================================
  Coverage   97.57%   97.57%
=======================================
  Files          22       22
  Lines         947      947
  Branches      149      145    -4
=======================================
  Hits          924      924
  Misses         11       11
  Partials       12       12

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 0981c7a...9ab4ec7. Read the comment docs.


Add dynamic check for infinite loops

From Alex's comment in issue 209:

we should also implement a dynamic check that (say) throws an "bad kleene-* exception" when the expression under a Kleene-* succeeds w/o consuming any input. The message for this exception would explain that there is a problem in the grammar. What do you think?
(The place where I'd add this dynamic check is pexprs.Iter.prototype.eval, when this.minNumMatches === 0.)

To clarify, this should really be an error, not just a match failure -- that way the author of the grammar will know that something is wrong, and will have a chance to fix it.
(Pull requests welcome!)


[Feature request] querying the database schema

SQLancer queries the DBMS under test to retrieve the database schema. From what I saw, there is currently no way of listing the columns and data types of a view, which blocks me from testing views. It would be great if there was something like PRAGMA table_info to get this information. It seems that there is also no way of listing the tables and views in database. I'm currently just trying names of a fixed format to check if they exist. Having something like SHOW TABLES would be useful. The same goes for indexes.

Good idea, I will expand the PRAGMA table_info to support views in the PR I am making right now.
As for querying the schema - we support SELECT * FROM sqlite_master() (note: as a function) that has the same semantics as sqlite_master from sqlite. We do plan to add SHOW TABLES and such as well. Currently there is nothing yet for indexes - I will look into adding something for that later as well.

Okay, great! Thanks for pointing out SELECT * FROM sqlite_master(). That is really helpful for me!

Is there current implementation of SHOW TABLES/DESCRIBE [table] sufficient? Or are there more features w.r.t. schema querying that you are missing?

I just tried it and it works as needed for SQLancer. Thanks for implementing this!

No worries :) Thanks for all the bugs you are finding! It is extremely helpful. I will close this issue then.


Updates docs build

Fixes build of csproj doc tools to not include the strong name signing
Fixes some namespaces issues in the JavaDocToMarkdownConverter
Re-executes the JavaDocToMarkdownConverter and commits updated files (incuding whitespaces so on next run there's no changes)
Fixes UI auto-expanding quirk with docfx and the docs (hamburger menu)
Fixes some links from the docs home page and removes the ICU to be completed note

I have upload the result of this to our temporary docs site https://lucenenetdocs.azurewebsites.net/
@NightOwl888 just regarding your comments here https://github.com/apache/lucenenet/pull/206#issuecomment-519378752
home page/package names
Can you elaborate a bit more on this:

It would probably be easier to understand if we updated the names on the home page to reflect the package names

... I've moved the Kuromoji and SmartCn headings outside of the big Analysis heading since they are separate packages and linked to them properly from the home page, is this the type of thing you mean? I also fixed the ICU link on the home page.
(there's currently still an issue with docfx when there is overlapping namespaces between packages, i haven't yet researched into how to fix this but i can, the docfx team are very responsive)
build/build times
A full clean build takes about 20 mins on my machine so should be ok for the build server. On the build server you'd want to run the powershell:
./websites/apidocs/docs.ps1 0 1

which is shorthand for
./websites/apidocs/docs.ps1 --ServeDocs 0 --Clean 1

The output website is in ./websites/apidocs/_site
versioning
I know that in the JavaDocToMarkdownConverter there's a TODO for passing in a tab/version which is for the method RepoLinkReplacer ... but, this method is looking for links in files like overview.md with this syntax src-html, but as far as i can see there is only 2x places in all of the source that contains these types of links which is in the Lucene.Net/overview.md file which is supposed to link to some demos. For this method it would prob just be easier to fix this file, unless there are more inline links i'm unsure of.
Apart from that is there another area where we need to have the version number/tag injected in places?
update: just noticed a version link here https://lucenenetdocs.azurewebsites.net/index.html#reference-documents ... so we'd need to pass a version into the build for that one, do you know of others?
hosting
The docs are currently just hosted on my azure subscription which is also why it has that temporary dns name. I'm fine to leave it there for any length of time but we should look at getting these hosted properly, it's just static files so nothing special.

Can you elaborate a bit more on this:

It would probably be easier to understand if we updated the names on the home page to reflect the package names

What I meant was the docs (on the home page here) don't reflect the actual names of the NuGet packages/assemblies. We should probably sync them up to make it less confusing. Here is how they should be mapped:

core > Lucene.Net
analyzers-common > Lucene.Net.Analysis.Common (note that the Thai analyzer functionality was moved to Lucene.Net.ICU)
analyzers-icu > Lucene.Net.ICU (Should probably order this package alphabetically instead of sticking it here)
analyers-kuromoji > Lucene.Net.Analysis.Kuromoji
analyzers-morfologik > Does not exist, probably never will because it is obscure and has a huge dependency
analyzers-phonetic > Lucene.Net.Analysis.Phonetic
analyzers-smartcn > Lucene.Net.Analysis.SmartCn
analyzers-stempel > Lucene.Net.Analysis.Stempel
analyzers-uima > Lucene.Net.Analysis.UIMA (Ported, but also depends on a huge library. The idea was to use IKVM to convert the dependency, which would only give .NET Framework support. Low priority, might not happen.)
benchmark > Lucene.Net.Benchmark
classification > Lucene.Net.Classification
codecs > Lucene.Net.Codecs
demo > Not a NuGet package. Runnable through lucene-cli, where the source code can also be viewed/exported. End users should also be made aware they can view the source directly on GitHub. It looks like some of the docs there are relevant (not the part about setting a classpath), but it might make sense to roll the "Location of the source", "IndexFiles" and "Searching Files" into the lucene-cli docs for the demos. The facet commands for lucene-cli should have "location of the source" as well.
expressions > Lucene.Net.Expressions
facet > Lucene.Net.Facet
grouping > Lucene.Net.Grouping
highlighter > Lucene.Net.Highlighter (Note that the Postings Highlighter and the BreakIteratorBoundaryScanner of Vector Highlighter were moved to Lucene.Net.ICU.)
join > Lucene.Net.Join
memory > Lucene.Net.Memory
misc > Lucene.Net.Misc
queries > Lucene.Net.Queries
queryparser > Lucene.Net.QueryParser
replicator > Lucene.Net.Replicator
sandbox > Lucene.Net.Sandbox
spatial > Lucene.Net.Spatial
suggest > Lucene.Net.Suggest
test-framework > (I started chipping away at this, needs lots of API work, bug fixes, doc updates, and a review to make sure it is all there. See: LUCENENET-614. Eventually, the main packages users install will be Lucene.Net.TestFramework.NUnit, Lucene.Net.TestFramework.xUnit, and Lucene.Net.TestFramework.MSTest. Will probably focus on this for the next release.)

We also have lucene-cli, which is also a NuGet package, but contains a dotnet tool. It actually wraps functionality from

Lucene.Net
Lucene.Net.Analysis.Kuromoji
Lucene.Net.Analysis.Stempel
Lucene.Net.Benchmark
Lucene.Net.Demo

and makes it runnable from the command line. In Java, the commands can be run directly on the packages that contain them, lucene-cli was created as a way to fill the gap in functionality between Java and .NET.
Note that the functionality that was wrapped into Lucene.Net.ICU exists in its original namespace, but in a different assembly than the original. Only the stuff that depends directly on ICU4N was moved (well, some of the classes from Postings Highlighter didn't depend on it, but they couldn't be used without the rest of the classes that had been transplanted to Lucene.Net.ICU, so all of them were).
The name Lucene.Net.ICU was chosen to be less specific than Lucene.Net.Analysis.ICU because it contains not just analysis functionality, but also functionality from highlighter.
As for your other questions, let me review and try massaging my memory muscles...

@NightOwl888 ok great, i can certainly make the landing page listing reflect the actual package names, that's easy to do.
As for the interlinking namespaces between packages, i'll have to investigate the best way to deal with this. I'll try to get the site updated again this week and we can review from there.

versioning
I know that in the JavaDocToMarkdownConverter there's a TODO for passing in a tab/version which is for the method RepoLinkReplacer ... but, this method is looking for links in files like overview.md with this syntax src-html, but as far as i can see there is only 2x places in all of the source that contains these types of links which is in the Lucene.Net/overview.md file which is supposed to link to some demos. For this method it would prob just be easier to fix this file, unless there are more inline links i'm unsure of.
Apart from that is there another area where we need to have the version number/tag injected in places?
update: just noticed a version link here https://lucenenetdocs.azurewebsites.net/index.html#reference-documents ... so we'd need to pass a version into the build for that one, do you know of others?

I did a search using NotePad++'s "Find in Files" feature and here is the entire list
Search "src-html" (7 hits in 2 files)
  \\Boggle\F\Projects\_Test\lucene-solr-4.8.1\lucene\core\src\java\overview.html (2 hits)
	Line 147:  IndexFiles.java creates an
	Line 151:  SearchFiles.java prompts for
  \\Boggle\F\Projects\_Test\lucene-solr-4.8.1\lucene\demo\src\java\overview.html (5 hits)
	Line 101:
IndexFiles.java: code to create a Lucene index.
	Line 102:
SearchFiles.java: code to search a Lucene index.
	Line 110: "src-html/org/apache/lucene/demo/IndexFiles.html">IndexFiles class creates
	Line 181: "src-html/org/apache/lucene/demo/SearchFiles.html">SearchFiles class is
	Line 186: "src-html/org/apache/lucene/demo/IndexFiles.html">IndexFiles class as well)

My thought on the versioning was to pretty much copy what Lucene did. You can access any version by simply changing the version number in the URL:

https://lucene.apache.org/core/4_8_0/index.html
https://lucene.apache.org/core/7_4_0/index.html

This should include beta versions. We don't want to remove documentation that might be relevant only to a specific version if someone is still depending on that version. Especially if there have been breaking API changes between them.

https://lucenenet.somewhere.com/4.8.0-beta00005/index.html
https://lucenenet.somewhere.com/4.8.0-beta00006/index.html

Each version of the docs should point only to its own version of the source (using the tag)

https://lucenenet.somewhere.com/4.8.0-beta00005/index.html > https://github.com/apache/lucenenet/blob/Lucene.Net_4_8_0_beta00005/src/Lucene.Net.Analysis.Common/Analysis/Ar/ArabicAnalyzer.cs
https://lucenenet.somewhere.com/4.8.0-beta00006/index.html > https://github.com/apache/lucenenet/blob/Lucene.Net_4_8_0_beta00006/src/Lucene.Net.Analysis.Common/Analysis/Ar/ArabicAnalyzer.cs

This ensures the docs for a specific version stay static and point to the right code for that version even though the code is changing and new versions of docs are being released over time. We don't want to point to the head of the repository, because by the time the reader clicks the link, the doc could be years behind the code.
Perhaps there should even be an index page/directory listing at the root that shows all of the versions that are available (at https://lucenenet.somewhere.com/). Also, it might make sense to make a copy (or redirect) of the latest version at https://lucenenet.somewhere.com/latest/ so we can have links that never need to drift in some places.
The fact that you are hosting them in a temporary location is fine, but they shouldn't be at the top level of the site, they should be in a directory with the version number on it (or at least one that is escaped in a way that works in the URL).
building
I am having issues getting this working.

The first obstacle I ran into was that it prompted for the credentials for the NuGet feeds I have referenced that aren't public. I think the appropriate way to fix this is to add a NuGet.config file to the appropriate folder to temporarily override what is configured on the machine. It looks like you are trying to restore both Lucene.Net.sln and LuceneDocsPlugins.sln? I was able to work around this by disabling those feeds on my machine.
After that, it seems that vswhere isn't correctly identifying the location of MSBuild on my machine. I only have VS2019 Community and VS2017 Community installed. I tried downloading and installing the VS2015 build tools as per the comments, opening a new instance of Powershell and running again, but get the same result.

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Users\shad> f:
PS F:\> cd projects/lucenenet
PS F:\projects\lucenenet> ./websites/apidocs/docs.ps1 0 1

    Directory: F:\projects\lucenenet\websites\apidocs

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        8/13/2019   5:28 PM                tools
Cleaning tools...

    Directory: F:\projects\lucenenet\websites\apidocs\tools

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        8/13/2019   5:43 PM                tmp
d-----        8/13/2019   5:43 PM                docfx
Retrieving docfx...
d-----        8/13/2019   5:44 PM                nuget
Download NuGet...
d-----        8/13/2019   5:44 PM                vswhere
Download VsWhere...
Feeds used:
  https://api.nuget.org/v3/index.json
  C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\

Installing package 'vswhere' to 'F:\projects\lucenenet\websites\apidocs\tools\tmp'.
  GET https://api.nuget.org/v3/registration3-gz-semver2/vswhere/index.json
  OK https://api.nuget.org/v3/registration3-gz-semver2/vswhere/index.json 867ms

Attempting to gather dependency information for package 'vswhere.2.7.1' with respect to project 'F:\projects\lucenenet\websites\apidocs\tools\tmp', targeting 'Any,Version=v0.0'
Gathering dependency information took 25.38 ms
Attempting to resolve dependencies for package 'vswhere.2.7.1' with DependencyBehavior 'Lowest'
Resolving dependency information took 0 ms
Resolving actions to install package 'vswhere.2.7.1'
Resolved actions to install package 'vswhere.2.7.1'
Retrieving package 'vswhere 2.7.1' from 'nuget.org'.
Adding package 'vswhere.2.7.1' to folder 'F:\projects\lucenenet\websites\apidocs\tools\tmp'
Added package 'vswhere.2.7.1' to folder 'F:\projects\lucenenet\websites\apidocs\tools\tmp'
Successfully installed 'vswhere 2.7.1' to F:\projects\lucenenet\websites\apidocs\tools\tmp
Executing nuget actions took 200.65 ms
Cleaning...
MSBuild path = C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
MSBuild not found!
At F:\projects\lucenenet\websites\apidocs\docs.ps1:112 char:2
+     throw "MSBuild not found!"
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (MSBuild not found!:String) [], RuntimeException
    + FullyQualifiedErrorId : MSBuild not found!

Not sure where to go from here.
Do we need to use MSBuild? Can this be done using dotnet.exe?
code samples
I had a thought about how we might automate the code samples more easily and reliably than a code converter, since lack of using blocks will totally make what a code converter gives us irrelevant, anyway. If the java code sample block can be isolated as a single block of text, we could generate a hash for it and put that hash into a text (markdown?) file along with the sample, for example:
<hash>C34406A7F4070BC61B9256F6239E2B251CE691F83C2F4A6DD1ADC846FC9847A2</hash>

    Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);

    // Store the index in memory:
    Directory directory = new RAMDirectory();
    // To store an index on disk, use this instead:
    //Directory directory = FSDirectory.open("/tmp/testindex");
    IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_CURRENT, analyzer);
    IndexWriter iwriter = new IndexWriter(directory, config);
    Document doc = new Document();
    String text = "This is the text to be indexed.";
    doc.add(new Field("fieldname", text, TextField.TYPE_STORED));
    iwriter.addDocument(doc);
    iwriter.close();

    // Now search the index:
    DirectoryReader ireader = DirectoryReader.open(directory);
    IndexSearcher isearcher = new IndexSearcher(ireader);
    // Parse a simple query that searches for "text":
    QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "fieldname", analyzer);
    Query query = parser.parse("text");
    ScoreDoc[] hits = isearcher.search(query, null, 1000).scoreDocs;
    assertEquals(1, hits.length);
    // Iterate through the results:
    for (int i = 0; i < hits.length; i++) {
      Document hitDoc = isearcher.doc(hits[i].doc);
      assertEquals("This is the text to be indexed.", hitDoc.get("fieldname"));
    }
    ireader.close();
    directory.close();

Then these text files can be manually converted to c# and vb (the latter using the roslyn online code converter) and can be committed to the lucenenet repo. A converted file may look something like:
<hash>C34406A7F4070BC61B9256F6239E2B251CE691F83C2F4A6DD1ADC846FC9847A2</hash>

    Analyzer analyzer = new StandardAnalyzer(LuceneVersion.LUCENE_CURRENT);

    // Store the index in memory:
    using (Directory directory = new RAMDirectory())
    // To store an index on disk, use this instead:
    //using (Directory directory = FSDirectory.Open("/tmp/testindex"))
    {
        IndexWriterConfig config = new IndexWriterConfig(LuceneVersion.LUCENE_CURRENT, analyzer);
        using (IndexWriter iwriter = new IndexWriter(directory, config))
        {
            Document doc = new Document();
            string text = "This is the text to be indexed.";
            doc.Add(new Field("fieldname", text, TextField.TYPE_STORED));
            iwriter.AddDocument(doc);
        }

        // Now search the index:
        using (DirectoryReader ireader = DirectoryReader.Open(directory))
        {
            IndexSearcher isearcher = new IndexSearcher(ireader);

            // Parse a simple query that searches for "text":
            QueryParser parser = new QueryParser(LuceneVersion.LUCENE_CURRENT, "fieldname", analyzer);
            Query query = parser.Parse("text");
            ScoreDoc[] hits = isearcher.Search(query, null, 1000).ScoreDocs;
            Assert.AreEqual(1, hits.Length);
            // Iterate through the results:
            for (int i = 0; i < hits.Length; i++)
            {
                Document hitDoc = isearcher.Doc(hits[i].Doc);
                Assert.AreEqual("This is the text to be indexed.", hitDoc.Get("fieldname"));
            }
        }
    }

    Dim analyzer As Analyzer = New StandardAnalyzer(LuceneVersion.LUCENE_CURRENT)

    Using directory As Directory = New RAMDirectory()
        Dim config As IndexWriterConfig = New IndexWriterConfig(LuceneVersion.LUCENE_CURRENT, analyzer)

        Using iwriter As IndexWriter = New IndexWriter(directory, config)
            Dim doc As Document = New Document()
            Dim text As String = "This is the text to be indexed."
            doc.Add(New Field("fieldname", text, TextField.TYPE_STORED))
            iwriter.AddDocument(doc)
        End Using

        Using ireader As DirectoryReader = DirectoryReader.Open(directory)
            Dim isearcher As IndexSearcher = New IndexSearcher(ireader)
            Dim parser As QueryParser = New QueryParser(LuceneVersion.LUCENE_CURRENT, "fieldname", analyzer)
            Dim query As Query = parser.Parse("text")
            Dim hits As ScoreDoc() = isearcher.Search(query, Nothing, 1000).ScoreDocs
            Assert.AreEqual(1, hits.Length)

            For i As Integer = 0 To hits.Length - 1
                Dim hitDoc As Document = isearcher.Doc(hits(i).Doc)
                Assert.AreEqual("This is the text to be indexed.", hitDoc.[Get]("fieldname"))
            Next
        End Using
    End Using

During doc generation, the hash can be re-generated based off of the Java code and checked against this file, and if it has not changed, no change will be made and the code in the converted text file will be used in the documentation. If it has changed, then the java code block can be inserted/appended to the text file, the hash updated to the new value, and a warning/log generated so the code changes can be manually propagated to the c# and vb code blocks, then we can manually remove the java code block.
We will need to do 2 passes to generate the docs if the original Java code changes, but since that will only happen if we upgrade to target a new version of Lucene it won't be a common case. We should have the build process write warning messages to stdout and also to a log that gets uploaded as a build artifact just to ensure we don't miss this during deployment. We could do the second stage offline:

Download the build artifacts from the automated generation.
If we have any code changes, update the files manually and commit those files to the lucenenet official repo.
Regenerate the docs locally based on the changes.
Deploy.

We don't necessarily have to use <hash> and  elements, I am just giving that as an example. Whatever is easiest to integrate into the doc generator would be fine.
Of course, it would be best if the end user had some way to switch between the VB and C# code sample in the generated documents, but for now we should focus on C# if VB is going to be too difficult or time consuming to deal with.
The original doc could then have some specially constructed token that the doc generator knows how to use to grab the code sample from the text file and insert it into the right place in the generated HTML. Some more thought will need to be put in to the exact layout and number of text files in relation to number of code samples per generated document, but I am sure you can work that out. Maybe using a GUID as both a filename and a placeholder in the documentation is the appropriate way to go, but we don't want to use the hash because that may change over time.

For the building we can't use dotnet because the plugin system for docfx is netframework only. I've tried updated the project to use PackageReference but it still fails and i guess netframework projects are just not supported by dotnet
But the problem is that I can see you are using an older revision. I fixed a bunch of the build stuff a couple of days ago. Your log output currently has
MSBuild path = ....

which is no longer logged. If you update to latest it hopefully should work.

Yes, you are right I was using an older version. I had just realized that when I got your reply. I will try the latest from this branch and see if that helps.

I just submitted a PR to your branch. There were some issues with some of the arguments showing up in the lucene-cli markdown docs as well as some that were missing altogether.
I also added a job to azure-pipelines.yml to build the docs in the PR. They are disabled by default, until the variable GenerateDocs is defined and set to true.
The docs seem to build fine locally, but when I pushed to Azure DevOps there was a problem:
Build failed.
[19-08-15 03:47:36.933]Error:Referenced TOC file D:\a\1\s\websites\apidocs\obj\docfx\api\Lucene.Net\toc.yml does not exist.
	0 Warning(s)
	1 Error(s)

You can view the full logs at: https://dev.azure.com/LuceneNET-Temp/Lucene.NET/_build/results?buildId=154
Hopefully you can work out what is going on - perhaps a missing dependency?
Also, I noticed that the markdown for the benchmark index.md has a strange blurb at the top:
---
uid: Lucene.Net.Cli.Benchmark
summary: *content
---

Is this something that is required by the doc generator, or an errant commit?

Nice, just got that merged.
Regarding the strange blurb: This is a common format for metadata with markdown which uses Yaml in it's headers. I think the term is "YAML Front Matter" . Each document can contain a uid which is how the xref links work.  For example, the benchmark doc is linked to from the docs home page using the format [benchmark](xref:Lucene.Net.Cli.Benchmark): System for benchmarking Lucene and the special summary: *content metadata is a special value for docfx to support 'overrides' which is used when clicking the "Improve this doc" button (but in this example overrides aren't a thing since that is only for api doc overrides, so the summary: *content could be removed from this md file). The reason the other CLI md docs might not have this metadata is just because we aren't currently linking to them so they don't really need a uid. The docs converter automatically adds uid metadata to all generted .md based on the lucene overview html files so that we can xref them.
For the build issues on the server, i think docfx fails right away, the first logs when docfx runs is:
Building metadata...
[19-08-15 03:47:25.597]Info:[ExtractMetadata]Environment variable VSINSTALLDIR is set to C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools, it is used as the inner compiler.
[19-08-15 03:47:26.114]Info:[ExtractMetadata]Loading projects...
[19-08-15 03:47:28.354]Warning:[ExtractMetadata](D:/a/1/s/src/Lucene.Net/Lucene.Net.csproj)Workspace failed with: [Failure] Msbuild failed when processing the file 'D:\a\1\s\src\Lucene.Net\Lucene.Net.csproj' with message: The SDK 'Microsoft.NET.Sdk' specified could not be found.  D:\a\1\s\src\Lucene.Net\Lucene.Net.csproj

AFAIK this is because the version of docfx being used requires VS 2017 build tools installed.... BUT I've just run some tests locally and now for whatever reason it works by passing in the 2019 msbuild version to the env variable.
I've also realized that docfx builds the sln in the background anyways so the build script doesn't actually need to build the lucene sln at all which will save some time.
I've pushed changes for that and will check on the build.

Looks like the build server doesn't execute with changes based on PRs so you might have to give it a nudge and see how it goes.

Looks like the build server doesn't execute with changes based on PRs so you might have to give it a nudge and see how it goes.

That would be because I haven't investigated setting up the PR options yet.
I pulled down your changes and pushed them up to Azure DevOps. This time it failed much quicker: https://dev.azure.com/LuceneNET-Temp/Lucene.NET/_build/results?buildId=155
BTW - You could potentially setup your own Azure DevOps account, add a Lucene.NET project to it pointing to your GitHub fork, and use the azure-pipelines.yml to run the build. This will allow you to check whether it works and iterate more quickly. On the last step of the "Create build pipeline" workflow, you see the "run" button but it doesn't give you any options to enter variables. After you click it, you can cancel the first build, then enter variables. They have hidden them pretty well, though.

Navigate to <your organization> > <your project> > Pipelines > Build
Select the pipeline on the left, then click the "Edit" button on the right
If you setup your project as "public", you will see a "Variables" button at the top right of the page. If it is private, you need to click the ellipsis in the corner and choose "Triggers", then once that page opens there will be a "Variables" tab.

You will probably want to set:

GenerateDocs = true
RunTests = false

We will probably end up changing the exact location the doc generation happens in the pipeline, but for now this will get you started so you can work out how to get it running.
Once it runs all the way through, the files will be zipped and added as a docs build artifact on the Summary tab of the build, which you can then download and verify.

Cool, i have some investigation to do. I 'think'  it's because the VS 2017 build tools are required to be installed with this docfx version. The latest docfx version doesn't have this requirement apparently but i ran into some trouble getting it work on the latest version so first I need to figure out that issue and then go from there.
I'll see what i can do on monday - but i'm on holidays from next wed until beginning of sept so just a heads up on that :)

No problem. Let's try to get this PR merged before then.

@NightOwl888 I've commented on a currently logged issue on DocFx here https://github.com/dotnet/docfx/issues/4869
Any chance you can configure the build server to run VS 2017 for this particular build step and see if that works?

Actually, it is pretty easy. Just change the azure-pipelines.yml file which looks like:

Oops. Submitted that before it was done by accident. See my edit above.

While going through and cleaning up the code in the test framework, I was reminded about an important c# syntax that is not demonstrated on the home page (https://lucenenet.apache.org), that probably should be.
// Add to the index

var source = new
{
    Name = "Kermit the Frog",
    FavouritePhrase = "The quick brown fox jumps over the lazy dog"
};
var doc = new Document();
// StringField indexes but doesn't tokenise
doc.Add(new StringField("name", source.Name, Field.Store.YES));

doc.Add(new TextField("favouritePhrase", source.FavouritePhrase, Field.Store.YES));

writer.AddDocument(doc);
writer.Flush(triggerMerge: false, applyAllDeletes: false);

can be simplified to:
// Add to the index

var source = new
{
    Name = "Kermit the Frog",
    FavoritePhrase = "The quick brown fox jumps over the lazy dog"
};
Document doc = new Document
{
    // StringField indexes but doesn't tokenize
    new StringField("name", source.Name, Field.Store.YES),
    new TextField("favoritePhrase", source.FavoritePhrase, Field.Store.YES)
};

writer.AddDocument(doc);
writer.Flush(triggerMerge: false, applyAllDeletes: false);

Not urgent, but could we make sure this is updated eventually?
VS2019 is smart enough to give you a hint to do this, but it would be great if the main samples showed how much we have bent the Java-ness toward .NET.

Note to self: Now that I think about it, there is probably a way to add an extension method to IndexWriter so the whole document initialization and addition can be done in a single operation. Food for thought...

Side note: could we normalize it to US English?

favorite instead of favourite
tokenize instead of tokenise

Or, just change the samples so they are culture neutral instead, then there doesn't need to be a debate about it.

🎉that worked on my personal azure pipelines build. Have pushed a change to the yaml file. Just FYI you will noticed a boat load of warnings during the build (approx 665) and that's because some of the cross links in the docs and in the other md files have some issues. I'll have to go through and fix them up prob on a case by case basis with our converter tool. In some cases it's probably just namespace imports. In many other cases it's because the docs are cross linking types that are in the .Net types which we don't link to so i think we can just ignore those but i'll see if i can suppress the warnings for those at some stage.

I'll look at updating the main page with the package links now.
I can update the home page example, that's just in md.

... will push an update for this soon.
I won't have time before my hols to do anything with the version number stuff but can look into that when i'm back (2nd week of sept).
Re: the code samples idea: DocFx has a nifty way to replace or extend parts of docs with external files. I sort of mentioned this above with the content* syntax. I think we might be able to leverage that for the code samples stuff too but i'll need to look into that when I'm back.

Alright. Just a heads up I have made lots of changes to the docs in test framework (but nowhere else). So be sure to skip that module. I am trying to get to a point where I can merge it so we can sync up.
Some of the issues with the warnings are due to the fact some types don't exist in .NET Standard 1.6.
I found a workaround that we might be able to use for ConcurrentMergeScheduler. In the test framework, some of the docs refer to NUnit-specific types, such as AssertionException, so I did this:
// LUCENENET NOTE: These are primarily here because they are referred to
// in the XML documentation. Be sure to add a new option if a new test framework
// is being supported.
#if TESTFRAMEWORK_MSTEST
using AssumptionViolatedException = // Whatever the type is in MSTest
#elif TESTFRAMEWORK_XUNIT
using AssumptionViolatedException = // Whatever the type is in xUnit
#else // #elif TESTFRAMEWORK_NUNIT
using AssumptionViolatedException = NUnit.Framework.InconclusiveException;
#endif

Unfortunately, that will only work for classes. Some of the warnings are due to methods that don't exist in .NET Standard 1.6 and I am not sure what to do in that case. It may be that duplicating the entire documentation that refers to the methods may be the only choice.

@NightOwl888 I've pushed a bunch of changes:

Updates to the docs converter to deal with more cases (still plenty more to do but ... baby steps)
Pushes changes made from the docs converter

some dealing with the Demo stuff - but there's prob quite a bit to change in that doc which will need to be part of the docs converter in some way, otherwise by using a docfx 'override'
removes unnecessary surround  sections
fixes up named anchors (in some cases, not all yet)

I've changed the docs home page to list the packages, i've categorized this by "Packages" and "Tools" where demo + cli are under tools. I'm unsure about the UIMA package since I don't know what project that belongs too so it's not actually part of the docs build right now which means it doesn't currently link anywhere
Have updated the website home page example code - sent a PR for that change to he site repo, we should automate this too some day, see: https://github.com/apache/lucenenet-site/pull/4
I've pushed up these changes to the docs site https://lucenenetdocs.azurewebsites.net/

Looking good.

I've changed the docs home page to list the packages, i've categorized this by "Packages" and "Tools" where demo + cli are under tools. I'm unsure about the UIMA package since I don't know what project that belongs too so it's not actually part of the docs build right now which means it doesn't currently link anywhere

Packages is sort of a Java-ism. I think it would make more sense to call them libraries, or the more generic "modules". Libraries is probably the most specific and indicates they are not executable.

Sounds good, will update and push.

I've changed the docs home page to list the packages, i've categorized this by "Packages" and "Tools" where demo + cli are under tools. I'm unsure about the UIMA package since I don't know what project that belongs too so it's not actually part of the docs build right now which means it doesn't currently link anywhere

UIMA - probably not a thing. If it is possible, just leave it there, but make it generate HTML comments so it is not visible.
Demo - I thought it, but forgot to mention that these are all included in Lucene-CLI. What I'd like to do is pull some of the documentation from that module into the CLI docs (maybe I could just do that manually). I was also thinking that it would be simpler if instead of linking to the code in the repo, just grab it and put it directly into the docs (MSDN style). Each file is a standalone console app and would just need to be pasted inside of the docs.
Come to think of it, I already put in some special tokens so only the code sample is grabbed and none of the surrounding junk that isn't important for the sample. They are used by the CLI tool itself to display the code on screen.

Come to think of it, I already put in some special tokens so only the code sample is grabbed and none of the surrounding junk that isn't important for the sample. They are used by the CLI tool itself to display the code on screen.

Scratch that, looks like the files don't have any tokens. The entire contents can be grabbed and inserted except for maybe the license header (I think the CLI supports exclusion tokens, but I ended up not using them). Is there some kind of placeholder we need in the doc files so you can grab the latest code from the demo (looks like the demos could use some updates to the cleaner APIs)? The demos map one-to-one to each one of the files in Lucene.Net.Demo. Would those "blubs" happen to look exactly like the one in the benchmark docs, and if different, could you go through and link them? Then I can go through the docs and pull out what is needed and arrange the text around the code as appropriate.

I've pushed another update: hides UIMA and removes the API Docs header so we just have Libraries and Tools.
Since Benchmark isn't a lib and it's part of the CLI, I was going move that under tools too?
I'm trying to get my head around exactly what you want but TBH I'm not quite sure :)
I understand we have the CLI Demo stuff here for example: https://lucenenetdocs.azurewebsites.net/cli/demo/simple-facets.html
and the demo's more or less map 1:1 with the c# demo files: https://lucenenetdocs.azurewebsites.net/api/Lucene.Net.Demo/Lucene.Net.Demo.Facet.SimpleFacetsExample.html and I get that the c# demo code is actually in source code not in displayable docs files.
Based on your comments above I'm just unsure what the end result is that you are after?
I don't have much more time today and then I'm overseas for 3 weeks but can see what i can do in the next hr or 2.

Sorry if I am a bit scatterbrained :).

Since Benchmark isn't a lib and it's part of the CLI, I was going move that under tools too?

Actually, it is both a library and a tool. The library is available if someone wants to extend it to do customized benchmarks. So, looks good as-is.

I understand we have the CLI Demo stuff here for example: https://lucenenetdocs.azurewebsites.net/cli/demo/simple-facets.html
and the demo's more or less map 1:1 with the c# demo files: https://lucenenetdocs.azurewebsites.net/api/Lucene.Net.Demo/Lucene.Net.Demo.Facet.SimpleFacetsExample.html and I get that the c# demo code is actually in source code not in displayable docs files.
Based on your comments above I'm just unsure what the end result is that you are after?

Basically, I am hoping to get some of the documentation from the original JavaDocs into markdown (which I can do manually), and get the code into the same markdown files (which I am hoping you can achieve). So, the end user will basically have 4 ways to get the demo code:

View it on screen with the CLI
Export it using the CLI
View it on the markdown doc (1:1 - I am hoping to have you automate getting the code from the .cs files in the repo into the markdown so they stay up to date)
They can view the code directly on GitHub

The on-screen and export from the CLI embed the code as resources, so it is always the same version as the lucene-cli tool.
Is that clear?

So, the end user will basically have 4 ways to get the demo code:

View it on screen with the CLI
Export it using the CLI
View it on the markdown doc (1:1 - I am hoping to have you automate getting the code from the .cs files in the repo into the markdown so they stay up to date)
They can view the code directly on GitHub

Gotcha. So I'll need to do is: Take all of the *.cs files in the Lucene.Net.Demo project and automatically output the code into .md files that we can use to directly display this code in our docs. For example, on this page: https://lucenenetdocs.azurewebsites.net/api/Lucene.Net.Demo/Lucene.Net.Demo.Facet.SimpleFacetsExample.html ... we'd want to have the actual cs code shown there. The user could then still click on "View Source" to navigate to the source file in GitHub.
Correct?
If so, we can definitely do that by using the DocFx "overwrite" feature.

So, the end user will basically have 4 ways to get the demo code:
View it on screen with the CLI
Export it using the CLI
View it on the markdown doc (1:1 - I am hoping to have you automate getting the code from the .cs files in the repo into the markdown so they stay up to date)
They can view the code directly on GitHub

Gotcha. So I'll need to do is: Take all of the *.cs files in the Lucene.Net.Demo project and automatically output the code into .md files that we can use to directly display this code in our docs. For example, on this page: https://lucenenetdocs.azurewebsites.net/api/Lucene.Net.Demo/Lucene.Net.Demo.Facet.SimpleFacetsExample.html ... we'd want to have the actual cs code shown there. The user could then still click on "View Source" to navigate to the source file in GitHub.
Correct?

Yes, that is correct.

You don't have to do this today, but one thing that I think is crucial for the .NET ecosystem is to put the books that have been published about Lucene and Lucene.NET on the home page. A few people have asked for a "user manual" of sorts on the user and dev mailing lists, and I think that is about as close as our team can get to answering that request. There is even a "Lucene 4 cookbook" that I think should go front and center. Not sure if they have updated these books since then.
https://www.amazon.com/s?k=lucene&ref=nb_sb_noss_1


Add more tracing to Paragraph Layout

On weaker devices, laying out simple paragraphs can take upto 1.5ms. Additional information of where that time is spend would be helpful in the trace.
/cc @jason-simmons @chinmaygarde

Per the internal thread, @goderbauer is working on adding these traces.

There's a danger here of adding too much tracing -- on a fast device, drawing a thousand paragraphs that mostly hit the caches, the tracing could be a significant part of the cost...

We can add them behind a trace category like we did for shader compilation in Skia.

@goderbauer Are you still working on adding these traces or are you all set? From conversions offline, it seemed like you were investigating other forms of text layout.
There have been additional investigations on this front in this issue https://github.com/flutter/flutter/issues/94419. A ton of traces were added there. Not all of them may be useful to add but some may. Perhaps we can distill a list of traces (possible empty) from that issue and add them to fix this issue. In that case, I am going to assume that this issue is blocked on that one.

Closing this as obsolete. We have added the needed traces and don't know of any areas where more would be helpful.


[Media (image, and video)] scroll animation design exploration

Overview
Continuing the work of #4873 this work explores the detailed design aspects of introducing scroll animations into this component. We need to figure out what settings are used, when, and too what parts of this component if at all.
Here is a list of components that could potentially be impacted by this work and should be considered at some level.

Card
Content block simple
Content block media ?
Contetnt block segmented
Content group simple
Logo grid

Acceptance

[ ] design exploration
[ ] design review
[ ] design approval
[ ] design specs updated

Resources

Scroll animation [box][codepen][research]
Scroll into view [box]

See https://github.com/carbon-design-system/carbon-for-ibm-dotcom/issues/5170#issuecomment-882494867


private-gpt: tensorflow-2.13.0 not supported for interpreter python3.12

Describe the bug

Reproduce steps:

nix-shell -p private-gpt

@GaetanLepage

Yes, unfortunately, we have an outdated version of tensorflow in nixpkgs.
Nobody  seems to have the necessary time and/or skills to tackle this highly non-trivial task.
In the meantime, we can maybe pin private-gpt's python to 3.11, but this is a flaky, short-term solution.
I don't know for how long 3.11 will be supported.
At some point, we might just use the binary version of tensorflow by default tensorflow-bin.

With python 3.11 is also not working :(

With python 3.11 is also not working :(

Well, that's another problem...

Is it possible to make tensorflow optional?  since as a recommended usage, the model is running in Ollama or something else, and this project is just a frontend.

Is it possible to make tensorflow optional? since as a recommended usage, the model is running in Ollama or something else, and this project is just a frontend.

You can solve this issue by disabling keras in wandb for python 3.12 or bigger.

Looks like tensorflow was updated to point to tensorflow-bin (https://github.com/NixOS/nixpkgs/pull/345658). This no longer has a build failure.


Notifications block window operations

Neogit windows won't close when notifications are present.
Is it possible to provide an option to reduce the timeout of successful notifications?
It makes sense for error notifications to have longer timeouts.

Not sure if this is related to this issue but I've been seeing a E5601: Cannot close window, only floating window would remain when using neogit in a tab whilst also using nvim-notify. I believe the reason is because trying to close the only window in the tab whilst the notification are still present causes this error. Looking at the PR to fix this, the notifications are now only being close after the window is closed which is too late/still triggers this error. I think they should be closed before the window is closed.
Alternatively I've tested using tabclose to close the neogit tab and that doesn't throw any error, so I'm guessing neogit is attempting to close the window not the tab.
N.B. I had thought this might relate to the notify plugin but I think it just reveals this issue because it's notifications are on a time delay whereas neogit's are immediate so they go away straight away

It's the same issue. I had to switch from nvim-notify to using the native neogit notification.

The easiest fix would be to just use the provided close binding q instead of whatever builtin vim operation.

Alternatively I've tested using tabclose to close the neogit tab and that doesn't throw any error, so I'm guessing neogit is attempting to close the window not the tab.

I'll change to tabclose 👍

Using tabclose makes it possible to just leave the notifications open until they close on their own 👍

Awesome 👍🏿 that resolves things on my end it seems 🚀 . Just wondering though is this change specific to the tab layout or will this break for split users? also regarding

The easiest fix would be to just use the provided close binding q instead of whatever builtin vim operation.

Not sure what you meant exactly but just wanted to clarify that I wasn't actually using a special binding just the default neogit q mapping although maybe you mean something else

Just wondering though is this change specific to the tab layout or will this break for split users? also regarding

I always forget about 🤦. Thank you!

Didn't even know you could use q to close the main window. I only use for the commit window. Good to know.

Think maybe this can be closed?

A quick test indicates this is no longer a problem. I'm closing.


[Bug] triton.runtime.autotuner.OutOfResources: out of resource: shared memory, Required: 108672, Hardware limit: 101376. Reducing block sizes or num_stages may help.

Checklist

[X] 1. I have searched related issues but cannot get the expected help.
[X] 2. The bug has not been fixed in the latest version.
[X] 3. Please note that if the bug-related issue you submitted lacks corresponding environment info and a minimal reproducible demo, it will be challenging for us to reproduce and resolve the issue, reducing the likelihood of receiving feedback.

Describe the bug
你好，我尝试通过lmdeploy部署DeepSeek-Coder-V2-Lite-Instruct，报错如下：triton.runtime.autotuner.OutOfResources: out of resource: shared memory, Required: 108672, Hardware limit: 101376. Reducing block sizes or num_stages may help.
我的电脑是A6000 48G,我想部署16B的模型应该是可以的。
代码如下：
            backend_config = PytorchEngineConfig(tp=1, block_size=32)
            LLM = pipeline(self.MODEL_PATH,backend_config=backend_config)

我尝试减少了block_size，也尝试更换成了 turbomind backend，也尝试修改了cache_max_entry_count但这并没有帮助到我。
Reproduction
1
Environment
1

Error traceback
1

我在vllm上能正常部署

https://github.com/InternLM/lmdeploy/blob/edcdd8e36520b8bf7dbc99feecd2d2822c4cb5ba/lmdeploy/pytorch/kernels/cuda/pagedattention.py#L35
https://github.com/InternLM/lmdeploy/blob/edcdd8e36520b8bf7dbc99feecd2d2822c4cb5ba/lmdeploy/pytorch/kernels/cuda/pagedattention.py#L583
可以试试看把这些地方的 num_stages 改成 1

我尝试进行了修改，但很遗憾， 这不奏效


Vet new indexer setup using data directory support

Problem
The upcoming release is going to implement data directory support for configurations. For a preview of this, see:
https://github.com/algorand/indexer/pull/1012/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
We should learn about these changes, as well as figure out how to implement in cluster.
Solution
Set up a temporary indexer using an ephermeral DB, and experiment with setting up a new helm chart for this indexer install.
Dependencies
Learning how to upgrade the helm chart for indexer for internal services.
Urgency
Medium - High - needed before the next release.

Modified the indexer image to include the data directory flag.
Created an empty directory and bulit the indexer image. Pushed the image to ECR and was able to successfully deploy it using helm.
The data directory stays empty.
Stephen said in the future, we expect to write to the data dir and it would be stateful.

I set up a meeting  to review the changes for ephemeral indexer helm chart/scripts/deployment. It kind of works, but I did have two concerns since it uses:

Stateful Sets instead of Deployment now, so there may need to be a process for deprecating before deploying the new indexers.
and it worked with gp2 storage class, but I had some issues getting gp3 working.

Need to split the indexer reader and writer files. Writer will be a statefulset while reader can be a regular deployment.


⚠ ClamAV has degraded performance

In 18d8f72, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 68 ms

Resolved: ClamAV performance has improved in 6d82251.


Payload 2.0 with Postgres -  website template seeding error

Link to reproduction
NA
To Reproduce

npx install Payload website template
choose postgres during install process
edit .env file to point to postgres URI
yarn dev to start the app
visit localhost:3000/admin and create first user
click seed database after login from previous step
ui says seeding succeeded but network tab shows error

Describe the Bug
The seeding process fails with error:
{"error":"inArray requires at least one value"}
Error Log in console:

[07:12:57] ERROR (payload): TypeError: Cannot read properties of undefined (reading 'referencedTable')
    at normalizeRelation (/Users/junior/LocalRoot/Dev/repos/my-projects/dummyproject-repos/payload-dummyproject/node_modules/src/relations.ts:428:55)
    at PgDialect.buildRelationalQueryWithoutPK (/Users/junior/LocalRoot/Dev/repos/my-projects/dummyproject-repos/payload-dummyproject/node_modules/src/pg-core/dialect.ts:1106:32)
    at PgDialect.buildRelationalQueryWithoutPK (/Users/junior/LocalRoot/Dev/repos/my-projects/dummyproject-repos/payload-dummyproject/node_modules/src/pg-core/dialect.ts:1118:32)
    at /Users/junior/LocalRoot/Dev/repos/my-projects/dummyproject-repos/payload-dummyproject/node_modules/src/pg-core/query-builders/query.ts:105:31
    at Object.startActiveSpan (/Users/junior/LocalRoot/Dev/repos/my-projects/dummyproject-repos/payload-dummyproject/node_modules/src/tracing.ts:27:11)
    at QueryPromise._prepare (/Users/junior/LocalRoot/Dev/repos/my-projects/dummyproject-repos/payload-dummyproject/node_modules/src/pg-core/query-builders/query.ts:83:17)
    at /Users/junior/LocalRoot/Dev/repos/my-projects/dummyproject-repos/payload-dummyproject/node_modules/src/pg-core/query-builders/query.ts:139:16
    at Object.startActiveSpan (/Users/junior/LocalRoot/Dev/repos/my-projects/dummyproject-repos/payload-dummyproject/node_modules/src/tracing.ts:27:11)
    at QueryPromise.execute (/Users/junior/LocalRoot/Dev/repos/my-projects/dummyproject-repos/payload-dummyproject/node_modules/src/pg-core/query-builders/query.ts:138:17)
    at QueryPromise.then (/Users/junior/LocalRoot/Dev/repos/my-projects/dummyproject-repos/payload-dummyproject/node_modules/src/query-promise.ts:31:15)

Payload Version
2.0
Adapters and Plugins
No response

Confirming that I can reproduce this error as well. The console logs this when pressing the seed link:
[07:39:39] INFO (payload): Seeding database... [07:39:39] INFO (payload): — Clearing media... [07:39:39] INFO (payload): — Clearing collections and globals... [07:39:39] ERROR (payload): inArray requires at least one value

hi @DanRibbens , thanks for looking into this.
just FYI there is also a problem with the seeding logic when using mongo.
[18:49:23] INFO (payload): Seeding database...
[18:49:23] INFO (payload): — Clearing media...
[18:49:23] INFO (payload): — Clearing collections and globals...
[18:49:24] INFO (payload): — Seeding demo author and user...
[18:49:26] INFO (payload): — Seeding media...
[18:49:27] INFO (payload): — Seeding categories...
[18:49:28] ERROR (payload): The requested resource was not found.

@junteudjio @DanRibbens, I had the same problem when trying to seed from the admin page:

I was using Atlas (not sure if that's the issue - I did not test with a local MongoDB) and the e-commerce template.
I also tried to use yarn seed but without success. There was a "WriteConflict":

Then I refactored the code from src/payload/seed/index.ts to make all operations sequentially instead of using Promise.all, and the "WriteConflict" error was gone, but then there was this one:

Is this expected when working with Atlas? I'll try with a local instance of MongoDB when I have a chance.

@andersonfpcorrea , that's exactly the setup I tried in my most recent comment: Payload 2.0  website template + Mongodb Atlas and got all the issues you pointed out. The seeding logic fails whether you run it from CLI or click the link in the admin dashboard.

I don't have this problem using MongoDB. Only w/ postgres. Seems like there's a redundancy going on, or possibly a key mismatch

For mongoDB are you connecting using a replicaSet? I am thinking there is an issue with the transactions, which this PR aims to address in this https://github.com/payloadcms/plugin-nested-docs/pull/29.
For postgres, transactions are also an issue so that PR is important to get released. Additionally, the PR linked above solves an issue for the field structure needed.


Column schema - new optional attribute "dropdown" & "allow_duplicates"

New attribute dropdown defines possible values for column values.
Validation method ignores null values in column.
Error message returns list of values that are not allowed, and dropdown list.
Test for schema and dataset with dropdown is passed.
Default value is "None"
New attribute allow_duplicates defines if column allows duplicated values.
Validation method ignores null values in column.
Error message returns columns names with duplicated values.
Test for schema and dataset with allow_duplicates is passed.
Default value is "True"
I made check for old schemas without new attributes. After retrieval from DynamoDB, parser adds new attributes to schema. It prevents errors caused by schema update.
I updated dynamoDB adapter test to new schema.

UI needs to reflect these changes.
We need playwright tests to ensure behaviour is as expected.
We should revisit the naming of "dropdown list" -> This is currently acting as a method by which we can enforce a fixed set of keys
We don't want the duplicate checks on tables that allow append. Can you implement so that a schema with APPEND behanviour is rejected if any columns do not allow duplicates.

Hi, thanks for looking into this.
I will make the changes you requested.


update Fenix weekly

Why
now that we have a rust-nightly module it'd be good to update it regularly. i also figured out why the pr's created for https://github.com/replit/nixpkgs-replit wasn't working - i was using env: instead of with: 🤦
What changed
new github action workflow that updates fenix every monday at 8 am and opens a PR with the change
Test plan
if there's a PR for me to review first thing monday :)
Rollout
Describe any procedures or requirements needed to roll this out safely (or check the box below)

[ ] This is fully backward and forward compatible

@replit/micromanager imagegen rundmc playing factorio


Migrate enrivonment from Cattle to Docker Swarm

Rancher Version: v1.3.0
Docker Version: 1.12.5
OS and where are the hosts located?: local
Setup Details: single node rancher
Environment Type: Cattle
Previously I have created an environment with Cattle, today I have upgraded Rancher to v1.3.0, and now I want to try the new integration with Docker Swarm mode.
Is there a way to migrate the enrivonment from Cattle to Docker Swarm without recreating the entire setup?

Maybe I'm wrong, but I think it's not an impossible thing.
You have the an api to create containers which is orchestration agnostic, so it's the same api for Cattle and for Docker Swarm.
You only need to re-run the same calls on the new orchestration service.

Migrating is not possible, basically you can save some time by cleaning the hosts (docker rm -f $(docker ps -qa), docker volume rm -f rancher-agent-state, rm -rf /var/lib/rancher/state) and re-adding them to the new environment.


Issue while calling another API from my console

Hi,
I have tried your sample which works fine. but when i try to use the console application alone with required changes to access the another api (hosted as cloud service) which is available in the same Azuer AD as an application. I was unable to process getting the below error.
Any idea how to overcome from this issue.
System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
at System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)
at System.Net.PooledStream.EndWrite(IAsyncResult asyncResult)
at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
--- End of inner exception stack trace ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at azureb2bsample.Program.d__0.MoveNext() in c:\POC\azureb2bsample\azureb2bsample\Program.cs:line 117
Thanks,

Please read the README

https://github.com/Azure-Samples/active-directory-dotnet-daemon-certificate-credential#step-5--trust-the-iis-express-ssl-certificate

@saravanabharathi : closing this issue as I suppose you don't have the problem any longer.


Pagination controls can not be before the paginated content

If I place <paginagtion-controls ... /> before the element with paginate pipe the app crashes with
TypeError: Cannot read property 'currentPage' of undefined
    at PaginationControlsCmp.updatePages (pagination-controls-cmp.js:60)
    at PaginationControlsCmp.ngOnChanges (pagination-controls-cmp.js:82)

because this.service.getInstance(this.id) returns with undefined instead of the pagination service instance.

Thanks, I'll look into this as soon as I get time to work on it.

Please see the latest version (beta.1), this should be fixed.


A phenomenon that shuts down itself when you run vscode.

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.18.2
OS Version: macOS 13.5

Steps to Reproduce:

Run vscode and exit.
If you run vscode for the second time, it will shut down by itself after 2-3 seconds.
I tried it with the previous release just in case, but the same phenomenon occurred as number 2.
It's the same even if you delete ~/.vscode and install it again.

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.82.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

The version I'm currently using is 1.18.2?

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.82.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

The version I'm currently using is 1.18.2?

@soonee VSCode is currently on version 1.82.2. Can you run code --version and let me know what the output from that is


Add a new overloading function completeWith to EventLoopPromise class.

Add a new overloading function completeWith to EventLoopPromise class.
Motivation:

Replace global helper function executeAndComplete() with class method for better encapsulation.
Get rid of the repeated pattern of checking whether the event loop is "current".

Modifications:

Removed global function executeAndComplete().
Added a new overloading of the completeWith() method to EventLoopPromise class.

Result:
Simplified the consumers of this functionality in code. And the new added overloading supports crossing event loop as well.

Thanks for this patch! Out of curiosity, is it necessary to hop the loop? EventLoopPromise is entirely thread-safe and can absolutely be executed on any thread. Unless you have a specific reason to want to do the loop hopping, I think we can safely remove that from this.

Thanks for this patch! Out of curiosity, is it necessary to hop the loop? EventLoopPromise is entirely thread-safe and can absolutely be executed on any thread. Unless you have a specific reason to want to do the loop hopping, I think we can safely remove that from this.

The original logic of the exact function you're replacing didn't do if eventLoop.inEventLoop and then conditionally call execute. This is not really necessary, and can be removed.


Organize release notes into a smaller number of pages

This mockup provides the release notes in two pages per series ("latest" and "historical").
@brianhlin asked to see what this route would look like; the remaining OSG 3.4 pages can be done if we like the approach.
@edquist

We decided to go with #164 and add a release notes overview page (see https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/ReleaseNotes) and hide the other release notes from the ToC


Add optional 'onClose' callback

I have added an optional onClose callback that is called whenever an individual notification is removed.

please merge :+1:


pm: device: Several fixes

Don't wake up devices unnecessarily
Fix concurrence issues with k_poll_signal. Using k_condvar instead.
Fix pre-kernel API usage
Some code guideline fixes
Use spin lock instead of semaphore to protect critical sessions, since it was the semaphore with K_FOREVER which is not allowed from ISR.
Change API signature for clarity sake

What is the advantage of using spinlocks here? Can you explain in some more detail?

What is the advantage of using spinlocks here? Can you explain in some more detail?

You cannot use K_FOREVER with semaphores form an ISR.

@sjg20 is not clear for me what changes were requested, there is anything other than the typo that needs to be changed after my answers ?

Looks good. I do think a comment on the operation (like you provided in the response) would be useful

will add it, thanks for the feedback