text:
Noop Authenticator bypasses pipeline

Description
Updated the request handler to skip other parts of the pipeline when the noop authenticator is ran. This will no longer evaluate any authorizers or mutators as a part of the rule you configured if the noop authenticator is evaluated. This means moving forward if we would want to continue to use this we would need to do something like the anonymous authenticator in order to still trigger the other parts of the pipeline.
Further Comments
Tests could probably be improved to check out IF a given authorizer or mutator has been ran to ensure that the noop authenticator will skip them.
Some tests were producing inconsistent results locally such as TestFetchRulesFromObjectStorage and TestFetcherWatchRepositoryFromKubernetesConfigMap from the rule pkg.

I am seeing the related errors from the main / master branch of the repo when running the tests locally so I think it may be related to running the tests on my local machine.
=== RUN   TestFetcherWatchRepositoryFromFS/case=1                                                                                fetcher_default_test.go:258:                                                                                Error Trace:    fetcher_default_test.go:258
                Error:          Received unexpected error:                                                                                open /var/folders/tz/f06dmfs950b1d59yhk_pzbjr0000gn/T/6d0663f9-4a27-44fe-b46a-78d3df945242/access-rules-29ae9431-1029-4380-94bb-cbd75f409a23.json: too many open files                                                               Test:           TestFetcherWatchRepositoryFromFS/case=1

After running the tests in a local docker container I was able to verify that these test failures were introduced from running the tests on my local mac. When they ran in the container I was able to get consistent passing tests.

repo: censys/oathkeeper


text:
Support writing to separate files

There is a fork which implements writing the result to separate files at https://github.com/jedwards36/poi-mail-merge, we could incorporate this in the main version via a commandline option.

Another fork also implemented this, see https://github.com/pon300/poi-mail-merge/commit/e1a317cef54746933b8b2046f4923a1d42fe1ec0

source: gharchive/issue

license_type: permissive

license_source: bigquery


text:
Add prefixes to Signing and CoreDoc trees

Issue Link: #755

@lucasvo Will wait until identity updates are merged to merge this
cc @mikiquantum

source: gharchive/pull-request

repo: centrifuge/go-centrifuge

license: MIT

license_source: github-api


text:
[css classes] cellClass with singleClickEdit duplicates classes on every focus

A grid with editable cells that have cellClass definitions duplicates the classes on every focus when singleClickEdit is enabled.
Here is a modified example from the site to highlight the issue: https://jsfiddle.net/tvtuz6sq/1/
Here is an example of the Firebug DOM inspector and multiple focuses:

thanks. will take a look.

@ceolter Further testing shows it happens regardless of singleClickEdit.
Double clicking around multiple cells, slowly you will start to notice classes duplicating.
It's just more consistent with singleClickEdit enabled.
And welcome back from your holiday!

@Bodom78  thanks for the welcome back!!!
As a workaround, you can consider using cellClassRules, as far as i remember, it is more robust with regards adding / removing classes.
eg cellClassRules = {
   'my-class-black-background': 'true' // expression is true, ie always use this class
}

@ceolter Excellent, cellClassRules works well. I overlooked that property and it will defiantly be useful down the road.

tracked by https://ag-grid.atlassian.net/browse/AG-95

Hi,
We are changing the process and closing all issues with a ticket number since they can be tracked from our pipeline https://www.ag-grid.com/ag-grid-pipeline/
Thanks
===============
If you are an ag-Grid Enterprise Customer, please raise this in our Zendesk support system - contact info@ag-grid.com for access. This is our primary channel for Support.
Bugs Raised Here:
We will do a periodic review of GitHub issues for any bugs raised and these can be tracked on our pipeline page: https://www.ag-grid.com/ag-grid-pipeline
Feature Requests/Support Raised Here:
We are reviewing how we process Feature Requests that come from GitHub. We currently have a very full pipeline of work which will be our priority for the coming months.
As a result, we don’t have capacity to take feature requests from GitHub.
We will review this as we move through our current backlog.
Thanks for your understanding.
ag-Grid Team.

authors: Bodom78 ceolter makinggoodsoftware

repo: ceolter/ag-grid

license: mit


text:
[RFE] ceph client role

It would be useful to have ceph-client role, there can be 2 profiles for client but to start with

ceph client "admin" role that has rwx permission to all(mon, osd etc), existence of this role will ease admin work required after cluster setup,  admin keyring exists on mon servers.
"custom" client role based on user requirement via host vars?

@vasukulkarni ok you convinced me and you're not the only one that asked for this.
I'll try to come up with something soon.

authors: leseb vasukulkarni

repo: ceph/ceph-ansible


text:
tests: remove sleep commands from tox ini files

Since we use the rerun plugin in tox, we shouldn't need to add these
sleep commands.
Signed-off-by: Guillaume Abrioux gabrioux@redhat.com

not sure whether this is possible, let's give it a try

jenkins test centos-non_container-all_daemons

jenkins test centos-non_container-all_daemons

jenkins test centos-container-all_daemons


text:
Increase sidecar timeout from 60s to higher value

Describe the bug
At present, the request timeout of sidecars are at 60s and this is a request to increase this time out value to 150s or higher. The higher timeout value can help to reduce the load of our backend ceph cluster and also can avoid throttling issues at sidecars to an extend.

Is the above PR closing this issue?
@Madhu-1 , @humblec  ?

@mykaul this has been updated in rook, people who are using rook to deploy  ceph-csi will get higher timeout values, will updated templates in ceph-csi in 1.2.1 release

@mykaul we are yet to receive the test results on increased timeout. so, we will update the template here too and based on the test result we can update and close this.

@humblec can you shorten the commit heading message

authors: Madhu-1 humblec mykaul

repo: ceph/ceph-csi


text:
build: add API for generating OpenShift SecurityContextConstraints

This new Go module allows other projects (like Rook) to consume
deployment details (the SCC to get started) directly from Ceph-CSI.
tools/yamlgen is a minimal example of how the Ceph-CSI api/deploy
package can be used to generate the SecurityContextConstraints
deployment object.
Further enhancements should make it possible to generate other
deployment files from the API, possibly based on parameters passed to
the yamlgen tool.
Updates: #2541

Show available bot commands
These commands are normally not required, but in case of issues, leave any of
the following bot commands in an otherwise empty comment in this PR:

/retest ci/centos/<job-name>: retest the <job-name> after unrelated
failure (please report the failure too!)
/retest all: run this in case the CentOS CI failed to start/report any test
progress or results

There are now changes related to e2e, tests can be skipped.

/retest ci/centos/mini-e2e-helm/k8s-1.21


text:
Hammer CentOS 7 image missing /etc/ceph/monmap-ceph

__ TestHammer.test_monmap_exists[ceph/daemon:tag-build-master-hammer-centos-7] __

self = <test_monitors.TestHammer object at 0x7fc974175c90>, hammer_containers = {'Id': '534523c4e9b8d35a5bba089dfb5e8979103a7807b9c23b4deadd0bbb1eb9467f', 'Warnings': None}
client = <docker.client.Client object at 0x7fc97424d090>

    def test_monmap_exists(self, hammer_containers, client):
        command = client.exec_create(hammer_containers, cmd='stat /etc/ceph/monmap-ceph')
        result = client.exec_start(command)
        if client.exec_inspect(command)['ExitCode'] != 0:
>           raise AssertionError(result)
E           AssertionError: stat: cannot stat '/etc/ceph/monmap-ceph': No such file or directory

base/test_monitors.py:63: AssertionError

Both 14.04 and 16.06 have monmap-ceph:
base/test_monitors.py::TestHammer::test_monmap_exists[ceph/daemon:tag-build-master-hammer-ubuntu-16.04] PASSED
base/test_monitors.py::TestHammer::test_monmap_exists[ceph/daemon:tag-build-master-hammer-ubuntu-14.04] PASSED

The problem is that the image hasn't been updated for a while and the name of the monmap is still monmap, let me fix the build for that image.

Just updates the image, let's see if it builds this time.

The build succeeds now.

@alfredodeza can you test if we have the right file now? Thanks!

authors: alfredodeza leseb

repo: ceph/ceph-docker


text:
Added MON variable for Kubernetes hostNetwork mode

This will use the nodeNames instead of the pod names for the monmap

This allows users to use hostNetwork: true mode for Ceph mons in Kubernetes.

We were just about to file a similar PR. We'd started with a variable similar to K8S_HOST_NETWORK but opted instead to avoid an extra option and use MON_NAME. That way a fieldRef override to HOSTNAME could be used.
e.g.
- name: HOSTNAME
     valueFrom:
       fieldRef:
         fieldPath: spec.nodeName

@hunter The HOSTNAME will be already set to the node's hostname when running in hostNetwork: true. But the problem this PR solves is the monmap generation that still uses the pod name and not the nodeName when in hostNetwork mode.

Yep, understood. I used a confusing example (updated above) but it operates in a similar way. We override the HOSTNAME (and cascading to MON_NAME) in the entrypoint to make that things are consistent

@hunter The problem is not entirely with the MON_NAME.
If you look at this code https://github.com/galexrt/ceph-docker/blob/f099b4c332e5982b74b5355249843c99f8cad279/ceph-releases/kraken/ubuntu/16.04/daemon/config.k8s.sh#L19 it will use the pod name for the mon name in the monmap and not the nodeName like I added https://github.com/galexrt/ceph-docker/blob/f099b4c332e5982b74b5355249843c99f8cad279/ceph-releases/kraken/ubuntu/16.04/daemon/config.k8s.sh#L21 the monmap needs to use all nodeNames when running in hostNetwork mode.

Yes, I understand what you mean. Not sure if you saw the link to the code that was part of my first comment - https://github.com/ceph/ceph-docker/compare/master...AcalephStorage:monmapadd-name#diff-816f945fdcfa475983d3dbe3e91341bdR19
We're trying to solve the same problem. We just opted to move the logic to the K8s spec. In hostNetwork mode it is important to add the hostname to the monmap. We'd also like the flexibility to use a consistent StatefulSet Pod name in place of that hostname.

@hunter The problem I see from you change is, that the MON_NAME will now be used for all monitors in the cluster as the kubernetes "template" used here is a loop over all found pods.

You make a good point. We'd missed the issue since we'd used a StatefulSet. We'd been trying to avoid an extra variable but no other way unless we try the new DNS discovery with Kraken :)

@leseb Added the CLI_OPTS.

@galexrt @hunter did you get to an agreement on the k8s part?

Yes, it was my mistake. @galexrt's implementation works :)

One thing to note is that when using hostNetwork you:

a) specify the mon hosts in the mon_host setting directly (as the cluster internal dns isn't used in hostNetwork mode, see b) for more info)
b) wait for Kubernetes 1.6.x to implement the dnsPolicy: ClusterFirstWithHostNet (see https://github.com/kubernetes/kubernetes/pull/29378)
c) create a dns name with the mons addresses in it (round robin style ~= clusterIP: none style) and wait until b) has been implemented and releasesd (this is currently the way I do it, until  Kubernetes 1.6.x is released

Brilliant! I didn't know that dnsPolicy: ClusterFirstWithHostNet is being implemented. Will definitely be useful.
We're still using mon_host with StatefulSets and c with a minor change to use the Pod name/HostIP instead of Hostname.

authors: galexrt hunter leseb


text:
Hey there, Bit important so please read fellow mod dev!

Hey there, we have been getting an increasing amount of suggestions/issues from your mod and as of now, there hasn't been an easy way to contact you. to counter this, can you please join the modding dc at https://discord.com/invite/xkVJ73E so we can more easily contact you about your mod and stuff. (EDIT: Github is a way to contact you as of writing this i see you put a link to it on your mod page but discord would be much better and more convenient then GitHub to chat with you on a bug, suggestion, help, ect)

It's a good idea! But there exist a network problem to register account of discord for me. Perhaps I will solve it soon.
The mod is underconstruction and is not fully popularized in the current time, I think you will be interest in the content what have been done. It will become the foundation of the next part of Factory Skyline.

please do solve the issue, it's becoming more of a need for every dev to be in the discord since well, we need ya for responses about stuff, and thank you for responding. And the mod IS popularized, People have been crying to have blueprints for so long your mod is really popular already, a lot of people know about it.

repo: cepheidqq/FactorySkyline


text:
Fix polymorphic type setter

Hey @lgebhardt!
We encounter a problem associated with the polymorphic relation. Here is an example in code:
Setup
Models:
class Conversation < ActiveRecord::Base
  has_many :topics
end

class Account::Template < ActiveRecord::Base
  has_many :topics
end

class Topic < ActiveRecord::Base
  belongs_to :document, polymorphic: true
end

Resources:
class Template < JSONAPI::Resource
  model_name 'Account::Template'
  has_many :topics
end

class Topic < JSONAPI::Resource
  has_one :document, polymorphic: true
end

Usage
Request: [ POST ] /topics
{
    "data": {
        "attributes": {
            "name": "Topic name",
        },
        "relationships": {
            "document": {
                "data": {
                    "type": "templates",
                    "id": "1"
                }
            },
        },
        "type": "topics"
    }
}

Problem
Newly created topic has the wrong name of document_type filed.
After typing topic.document_type it was Templates but in fact, the polymorphic type should be taken from a model name and it should look like Account::Template because it's the real name of the resource's model's class name.
Solution
I overwrite a method which assigns polymorphic type, and I created a method which looking for a real model class name of given relation's key_type.
I hope it will help :)

Nice catch. Can you add a test that fails without this fix and passes with it?

@barelyknown I added a test. I'm not familiar with the rails test framework (I used to use rspec) so feedback is welcome.

Nice and simple - thanks!

authors: Exelord barelyknown

repo: cerebris/jsonapi-resources


text:
[Tech Design] Terra Select Responsive Dropdown

Tech Design
Description

Tech design for https://github.com/cerner/terra-core/issues/2383
TLDR

Consolidate use of Dropdown and DropdownMenu

<DropdownMenu /> is an internal implementation detail of <Dropdown /> and it's unnecessarily complicating the component by rendering the menu as a renderProp in the <Select /> component

Implement (name pending) <ResponsiveDropdown /> (or <Modal />, whatever the UX defined "responsive dropdown" is)
Remove render props pattern in Select.jsx

In Frame, if this.state.isOpen, then use either the <Dropdown /> or <Modal />

Flex between <Dropdown /> and <Modal /> based on if we're mobile or at 'small' or 'tiny' breakpoints

Add isMobile method to SharedUtil which uses the UserAgent to check for iPhone, iPad, and Android
Use ActiveBreakpointContext to determine the activeBreakpoint
const useModal = isMobile() || activeBreakpoint === 'tiny' || activeBreakpoint === 'small';

Details
Dropdown, DropdownMenu, and the Unnecessary renderProps Pattern
<DropdownMenu /> is just an internal implementation detail of <Dropdown />. We don't need to be rendering it via render props in <Select />. We can just render the <Frame /> and delegate the dropdown and responsive behavior to the Frame. This allows us to reduce the complexity of the Select component while also giving us the ability to add new behavior easily to the Frame.
Responsive Dropdown Implementation
NOTE: See additional screenshots below for visuals.
The responsive dropdown workflow will live inside a DialogModal. When rendered, it will have an action header and action footer, while the content will be displayed with an input styled just like the current dropdown variant (including tags/pills) and a list of all options.
Action Header
We will need to give the action header a label to display as the title. The action header will call the responsive dropdown component's onClose prop when the action header's close button is pressed/clicked and close the modal.
Content
The content will contain an input (for multiple/search/tag variants) and a list of options as well as any extra visual indicators for workflows that exist outside the happy-path (e.g. "No results found") or normal usage (e.g. "Enter ‘x’ characters to search").
Action Footer
The action footer will have two buttons. The start button is labeled "Clear All" and will call the responsive dropdown's onClear prop when pressed/clicked. The end button is labeled "Apply" and will simply approve/commit the state change authored by the user. It will call the responsive dropdown's onApply prop when pressed/clicked. It is assumed that changes will only be committed when the Apply button is used, while also closing the modal.
isMobile()
class SharedUtil {
  // ...

  static isMobile() {
    const { userAgent } = navigator;
    const isAndroid = userAgent.includes('Android');
    const isIOS = userAgent.includes('iPhone') || userAgent.includes('iPad');

    return isAndroid || isIOS;
  }
}

Flexing between  and  workflows
Right now in Frame, we render a <Dropdown /> (using the renderProps pattern to pass props to a <DropdownMenu /> in <Select />) based on the boolean this.state.isOpen. We can use this plus another boolean to flex between <Dropdown /> and <Modal /> workflows. Using the above isMobile() method and the ActiveBreakpointContext, we can determine if we want to render the <Modal /> or not:
const activeBreakpoint = useContext(ActiveBreakpointContext);
const useModal = isMobile() || activeBreakpoint === 'tiny' || activeBreakpoint === 'small';
const { isOpen } = this.state;

return (
  <div {...stuff}>
    {isOpen &&
      useModal ? <Modal {...modalProps} /> : <Dropdown {...dropdownProps} />
    }
  </div>
);

Additional Context / Screenshots

@ Mentions

@bjankord
@StephenEsser

Also of note: rudimentary tests with a similar layout as above show iOS voiceover working as expected since all the children of the dialog modal are siblings of the input, rather than visually appearing to be.

+1 on tech design.

A little more context about the render prop so the decision to remove it isn't done under misapprehension.
The Select menu was originally designed to allow a custom implementation of the menu within the dropdown. The render prop was added to allow an entry point for this functionality. A user could implement a Select dropdown using the Frame and provide their own menu which would receive all of the require props from the render prop.
<Frame dropdown={dropdownProps => (
  <CustomMenu {...dropdownProps} />)}
/>

This would allow a user to create a custom menu implementation to meet application specific requirements. This requirement is also why the Frame itself exists as a separate component from the Select.
With the introduction of the accessibility changes, general complexity of this component, and the drive towards a standard behavior a custom menu is becoming increasingly more difficult and discouraged to implement.
If we decide to remove the custom render functionality we should also investigate merging the Frame into the Select to cut down on complexity and potential extra renders.

@StephenEsser good point!
when writing up the tech design, I had a similar thought: if we remove the renderProp pattern, we're basically just rendering the frame directly now so why do we need it?
👍 👍 👍

Do you foresee any issues customizing the Dialog Modal to display with a different positioning and height? The height would likely need to flex based on the Select variant that will invoke the keyboard.
The same question would apply to the Action Header and Action Footer. Are we going to alter the existing components to match the callouts or will they display with the default style?

Background Colors
Close Icon
Apply and Clear All Buttons
Borders

Will Clear All within the modal be conditionally rendered based on the presence of allowClear?
What are the disadvantages / advantages to using the components over creating a simple flex container?
Is the Input "sticky"? Does it scroll with the set of available options or does it remain fixed at the top of the Modal? The callouts look like it might scroll with the options, but we should get some clarification from UX on this.
( This is if it remains fixed at the top of the Modal )
What happens when the selected options width grows to be the height of the Dialog Modal? Previously this problem was somewhat mitigated by the ability to scroll the page. With the introduction of the Dialog Modal the page is not scrollable. When enough options have been selected the Options will no longer be visible.
We discussed offline about making the label of the Select required to enforce a label to be present when presented in a dialog.

We'll want to avoid using the user agent sniffing. There is a significant variability to the adherence to APIs and standards. As well as is against terra's general guideline to avoid device specific implementations, and code in favor of viewports and/or parent element sizing exclusively.
Here's also an article about it on MDN, about it shouldn't be used in this fashion:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent
We'll likely want to avoid the terra-dialog-modal, and use the terra-abstract-modal with specific implementation and styling.

@StephenEsser

The same question would apply to the Action Header and Action Footer. Are we going to alter the existing components to match the callouts or will they display with the default style?

What are the disadvantages / advantages to using the components ( Action Header / Footer ) over creating a simple flex container?

We can definitely roll our own headers & footers here. Doing so will help decouple the implementations between these components and allow for more control over styling (this appears to be the standard practice in terra).

Will Clear All within the modal be conditionally rendered based on the presence of allowClear?

That seems reasonable.

Is the Input "sticky"? Does it scroll with the set of available options or does it remain fixed at the top of the Modal? The callouts look like it might scroll with the options, but we should get some clarification from UX on this.

Yeah, I'll reach out to UX on this. From this image:

it does look like the input + list items scroll together.

What happens when the selected options height grows to be the height of the Dialog Modal? Previously this problem was somewhat mitigated by the ability to scroll the page. With the introduction of the Dialog Modal the page is not scrollable. When enough options have been selected the Options will no longer be visible.

From Dave's comment, I'll be using the abstract modal now. I wasn't aware of the dialog modal (or abstract modal) not allowing scrolling. Looking now, I see that overflow: hidden; is set for the abstract modal, but the dialog modal's body is set to overflow-y: auto;

We discussed offline about making the label of the Select required to enforce a label to be present when presented in a dialog.

This seems reasonable (or making the fallback what it currently is). Since this will be a breaking change, it makes sense to add props and/or change required-ness.

@dkasper-was-taken

We'll want to avoid using the user agent sniffing.

We already do it in the select shared utils here. Are you suggesting removing that? One of the use cases that @bjankord brought up is that we'll want iPads to also use the responsive dropdown since they'll also succumb to the iOS voiceover a11y concerns driving this redesign. As far as I'm aware, the iPad breakpoints can be pretty big and may map to large (or even huge).
Here's what the simulators for an ipad pro show when visiting https://engineering.cerner.com/terra-ui/#/components/terra-breakpoints/breakpoints/about

We'll likely want to avoid the terra-dialog-modal, and use the terra-abstract-modal with specific implementation and styling.

👍

Just a few questions from briefly looking at this:

My initial thought was how do you close the modal? It appears there is an x in the input, but I would assumed that is to clear all the content. However, there is an x on each option and a clear all option in the footer. Is clicking apply the way to close?

Is there a max height on the input that displays the selected options? Should there be an input? How will this height and the dropdown height be managed when keyboard is rendered?

For determining the mobile sizing, should we match what is currently implemented in terra-time-input? https://github.com/cerner/terra-framework/blob/master/packages/terra-time-input/src/TimeUtil.js#L191
I agree with Dave that determining the agent is likely not a great approach in supporting multiple browser and browser versions. Could there be screen reader issues on non-IOS tablets that use firefox or

Originally I was thinking we'd need to use UA detection to ensure this modal shows up on all iOS devices (including the larger iPad Pro devices), even though I'm not a big fan of user agent sniffing and instead prefer feature detection.
I'd recommend we check for the following conditions to trigger showing the modal:

The large breakpoint is not active and it is not the default variant or the browser supports touch events and is not the default variant.

The first condition covers most "mobile" devices and we don't want to trigger the modal for the default variant, that can keep using the dropdown
The second condition covers the larger iPad devices (we need to include these since the issue we are working to fix with with is with VoiceOver on iOS devices). For the second condition I'd only check for 'ontouchstart' in window and not worry about max-touch-points.
Let's move forward with a PR for this @dev-cprice and we can iterate on it on the PR and address questions as we get this built out some more.

Update: We've talked about this offline and have landed on implementing a solution that renders the input within the portal instead of rendering the select as a modal on mobile devices. Closing this issue as we've decided on a direction to go with this that won't require the implementation described in the tech design.

authors: StephenEsser bjankord dev-cprice dkasper-was-taken emilyrohrbough

repo: cerner/terra-core


text:
[terra-paginator] Cometic effects of text wrapping

Description

At certain dimensions the Paginator text wrapping can be aggressive. We should get UX feedback on the best way to handle this scenario.

Steps to Reproduce

Navigate to the terra-ui Paginator example page.
Slowly resize the window while observing the Paginator example.
Once the text wraps  observe the visual state of the component.
Navigating to double digit page numbers will exaggerate the effect.

Expected Behavior

We should reach out to UX and discuss what the expected behavior should be.

Removing overflow-wrap here seems to work fine.
Your thoughts, cc @neilpfeiffer .

After having discussions with @neilpfeiffer about the history of this component, we've decided that this is not a bug.  This was determined acceptable behavior when it was originally created.  I'd like to change this project into an enhancement with some UX guidance on what the proper way to fix all permutations of small screen sizes.  Possibly something similar to collapsible menu.

authors: StephenEsser ryanthemanuel saket2403


text:
Support Checkbox selection by label without passed id

Summary

What was changed:
The Terra Form Checkbox was updated to generate the necessary id, when not passed as a prop, so that the ability to toggle the input field via the label would work in that scenario.
Why it was changed:
The change was made to ensure that the label could be used to toggle the input field (checkbox) in all scenarios.
Testing

This change was tested using:

[X] WDIO
[X] Jest
[ ] Visual testing (please attach a screenshot or recording)
[ ] Other (please describe below)
[ ] No tests are needed

Reviews
In addition to engineering reviews, this PR needs:

[ ] UX review
[X] Accessibility review
[ ] Functional review

Additional Details
N/A
This PR resolves:
UXPLATFORM-10317

Thank you for contributing to Terra.
@cerner/terra

Functionally reviewed, looks good @cm9361


text:
Update examples to v1beta1 API

There's a couple of places that use the v1alpha2 API instead of the v1beta1 API.

https://cert-manager.io/docs/usage/certificate/
https://cert-manager.io/docs/configuration/selfsigned/
https://cert-manager.io/docs/configuration/ca/
https://cert-manager.io/docs/configuration/vault/

Looks like most examples are actually showing the old APIs. Is the v1beta1 not the preferred API?

This is on purpose as the v1alpha1 API is the only API version that works for Kubernetes 1.14 and below, using v1beta1 in the examples would break it for them. This will soon change when we release the v1 API however.
/close

authors: alexbrand meyskens

repo: cert-manager/website


text:
using ext_auth authentication error

When using ext_auth authentication, When my command contains：
http.Get("http://10.0.2.47:9999?username="+username+"&passwd="+passwd)
Return error：
fork/exec mycmd: no such file or directory

Because the linux  so package problem


text:
🛑 echo-server.madacluster.tech is down

In 2df6c16, echo-server.madacluster.tech (https://echo-server.madacluster.tech) was down:

HTTP code: 0
Response time: 0 ms

Resolved: echo-server.madacluster.tech is back up in b9acd83 after 3 minutes.

repo: cesarempathy/upptime


text:
Multi-byte unicode char leads to multi-line string alignment error

http://try.ceylon-lang.org/?gist=9b84d5688cef18c56bfa685efbedf3fd

This works fine in the IDE and CLI, so must be specific to the web IDE, so moving to ceylon-web-ide-backend

I've moved to ceylon-ide-intellij since it's observable there too.

Ah, thank you!

authors: azolotko tombentley

repo: ceylon/ceylon


text:
Technical issues

This issue is for discussion, potentially at the upcoming CF Community Meeting, on how to take care of the source codes for the Conventions, and taking care of some technical debt therein.
All of the suggestions below are my own and some people may disagree with them, I'm just collecting for now.

We have a lot of broken links and could fix them.
It would be a good idea to use aliases for hyperlinks rather than embedding the URLs in the text, so that it's easier to move the links if needed.
Putting single sentences on a line of their own would improve readability of diffs and help us track changes better - restricting lines by character length isn't really necessary for a document of this type.
Eliminating trailing whitespace would also be good.

In terms of helping issues move along our pipeline, a few ideas:

Use project boards
Eliminate the "question" template, instead directing users to the "discuss" repo
Adding checks to the PR template - are authors included in author list? Is the change recorded in the changelog, so that we don't have to do archaeology at the end before a release?
Ask contributors to mark WIP PRs as such

@erget - A comment, before I forget, on the single sentence per line item above.
I agree a single sentence is better than line length or just stringing it all together.
Another option to consider is "Semantic Line Breaks" which are described in this "Semantic Linefeeds" article by Brandon Rhodes. Which includes a quote from “Hints for Preparing Documents” by B.W. Kernighan in 1974:

Most documents go through several versions (always more than you expected) before they are finally finished. Accordingly, you should do whatever possible to make the job of changing them easy.

First, when you do the purely mechanical operations of typing, type so subsequent editing will be easy. Start each sentence on a new line. Make lines short, and break lines at natural places, such as after commas and semicolons, rather than randomly. Since most people change documents by rewriting phrases and adding, deleting and rearranging sentences, these precautions simplify any editing you have to do later.

What is the status of these suggested changes? To me it looks like some have been fixed:

We have a lot of broken links and could fix them.   ---- Done ?
It would be a good idea to use aliases for hyperlinks rather than embedding the URLs in the text, so that it's easier to move the links if needed. ---- Not yet ?
Putting single sentences on a line of their own would improve readability of diffs and help us track changes better - restricting lines by character length isn't really necessary for a document of this type.   ---- Done ?
Eliminating trailing whitespace would also be good.   ---- Done ?

Just a couple one notes -- these are all great ideas.

"Putting single sentences on a line of their own" -- I think long lines can still be an issue, I like the "semantic line breaks" option -- break on sentences, but also semi-colons, commas', etc, when the line gets long. What bad, in a git-managed document is very long lines -- e.g. one paragraph as a singie line, because the diffs are done line-by-line.

Do we have these rules written down anywhere?

In any case, it's probably better to not make changes that are only re-formatting, that makes understanding the history harder. If it's not already been done, I think it's better to reformat a paragraph only when it's being edited for some other reason.

Ho ho ho, thanks for reviving this zombie! I'm going to close this issue because as @larsbarring notes most of these are basically done. @ChrisBarker-NOAA I also agree with your stance - IIRC we agreed on the "semantic line breaks" as a rule of thumb. In terms of written down guidelines, we now have https://github.com/cf-convention/cf-conventions/blob/main/CONTRIBUTING.md and that references https://asciidoctor.org/docs/asciidoc-recommended-practices/#one-sentence-per-line. I wouldn't apply that so strictly as to do something like for f in *; do sed 's/\([.!?]\)/\1\n/g' $f; done but rather take that as a guide and try to work from there.
If there's interest, addressing the aliases for links could be a new issue - I might pursue that when I get a free moment myself, but won't open the ticket until I plan on actually doing something about it :)

authors: ChrisBarker-NOAA erget ethanrd larsbarring

repo: cf-convention/cf-conventions


text:
提供两个鉴黄接口

图片鉴黄和图片内容审核
<script>
// =================================================接口1===========================================
function fetchGetRequest(url) {
  return fetch(url)
    .then(response => {
      if (!response.ok) {
        throw new Error('Network response was not ok');
      }
      return response.json(); // 解析 JSON 数据
    })
    .then(data => {
	  //console.log(data);
	  console.log(data.result.rating_index);
	  // 结果：1 所有人，2 青少年 ，3 为不良图片
      return data; // 返回解析后的数据
    })
    .catch(error => {
      console.error('There has been a problem with your fetch operation:', error);
      throw error; // 抛出错误，可根据需要处理
    });
}
//const apiUrl = 'https://api.oioweb.cn/api/ai/jianhuang?url=https://cn.bing.com/th?id=OHR.ArizonaPinkMoon_ZH-CN5545607389_1920x1080.jpg';
//fetchGetRequest(apiUrl)
// =================================================接口2===========================================
function fetchPostRequest(url, data) {
  return fetch(url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json', // 根据实际情况设置 Content-Type
    },
    body: JSON.stringify(data), // 将 JavaScript 对象转换为 JSON 字符串
  })
  .then(response => {
    if (!response.ok) {
      throw new Error('Network response was not ok');
    }
    return response.json(); // 解析 JSON 数据
  })
  .then(data => {
    return data; // 返回解析后的数据
  })
  .catch(error => {
    console.error('There has been a problem with your fetch operation:', error);
    throw error; // 抛出错误，可根据需要处理
  });
}
const apiUrl = 'https://tools.mgtv100.com/external/v1/qcloud_content_audit';
const postData = {
				audit_content: 'https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png',
				audit_type: 'image'
			};

fetchPostRequest(apiUrl, postData)
  .then(data => {
    console.log('POST 请求成功:', data.data.Lable);
    // 结果：
  })
  .catch(error => {
    // 处理请求失败的情况
    console.error('请求失败:', error);
  });
</script>

请问这个怎么在项目修改

authors: MartinLiuMingZhi gincoder

repo: cf-pages/Telegraph-Image


text:
Fix for #271

Added XSL command to stop the duplicate XML declaration to occur in findbugs output

Thanks @TheRealAgentK

authors: TheRealAgentK ryaneberly

repo: cflint/CFLint


text:
Making txt output behave the same way in regards to a default file as…

… HTML/JSON/XML do. Fixes #519

Looks good.  Thanks!


text:
Package name and module name mismatches cause false positives

Packages like those below are named differently from how they are imported and cause false positive unused dependency errors:

Package
Module

beautifulsoup4
bs4

cassandra-driver
cassandra

dnspython
dns

enum34
enum

kafka-python
kafka

memory-profiler
memory_profiler

mysqlclient
_mysql

python-snappy
snappy

pyyaml
yaml

Packages that still don't work include:

cssutils
geoip
matplotlib

repo: cfournie/important


text:
settings. and options. doc format?

We have two formats for documenting when a settings or options object is passed to a macro:
(A)
settings:

      heading:   Heading text.
      intro:     Body introduction text.
      body:      Body text.

      link_url:  Link URL.
      link_text: Link text.

AND
(B)
   settings:           An object with the following options for settings.

   settings.heading:   Heading text.
   settings.intro:     Body introduction text.
   settings.body:      Body text.

   settings.link_url:  Link URL.
   settings.link_text: Link text.

Preference for one or the other?

I would prefer not to use the YAML style format (A). I think (B) is closer to JSON which we are using in our Javascript.

Ditto @sebworks, it's certainly easier to scan if there's multiple parent args.

Updated to (B) in https://github.com/cfpb/cfgov-refresh/pull/1062

authors: anselmbradford jimmynotjim sebworks

repo: cfpb/cfgov-refresh


text:
Ask CFPB read more functionality

Extends expandable to allow read more preview of answer content on mobile screens
Additions

Expandable modifier in  read-more.less
Read more expandable html in answer-page.html
Set up/tear down of read more expandable at mobile sizes in ask-cfpb/single.js

Changes

Make resize handler conditional in Expandable.js so height is not set for read more content on larger screen sizes

Testing

Check out branch
Set up Ask if necessaryexport DEPLOY_ENVIRONMENT=build
./drop-db.sh
./create-mysql-db.sh
mysql -uroot v1 < ~/Downloads/production_django.sql
python cfgov/manage.py migrate
python cfgov/manage.py runscript migrate_knowledgebase

Navigate to Ask answer page

Verify that read more expandable is activated on mobile screen sizes and deactivated when expandable is expanded
Verify that read more expandable is not activated on larger screens

Screenshots
Read more on mobile

Larger screen sizes

Checklist

[ ] PR has an informative and human-readable title
[ ] Changes are limited to a single goal (no scope creep)
[ ] Code can be automatically merged (no conflicts)
[ ] Code follows the standards laid out in the front end playbook
[ ] Passes all existing automated tests
[ ] New functions include new tests
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged
[ ] Visually tested in supported browsers and devices
[ ] Project documentation has been updated
[ ] Reviewers requested with the Assignee tool :arrow_right:

This isn't working for me in chrome, firefox or safari.
In chrome, the expandable control appears at all sizes but won't open.

In firefox and safari, the expandable doesn't show up at any size.
I ran gulp. could my node version be a factor? I had to upgrade and I'm using 7.10.0


text:
Multiselect: Make arrow open/close drop-down

When you open the multiselect, let's make it so the down-arrow on the right-hand side closes it when clicked, yaaay! Also, let's flip the arrow when it is open! Yaaaah!
Changes

Make clicking the arrow in the search input open AND close the drop-down.
Switch the drop-down arrow to an up arrow when the drop-down is open.

Testing

Open the PR preview and go to the dropdowns and multiselects page and open and close the multiselect by clicking the arrow.

Screenshots

looks good!

authors: anselmbradford huetingj

repo: cfpb/design-system


text:
Fixing peek params for non-cgat-flow repositories

peek_params was using pipeline directory when config was run, irrespective of value of working dir. This doesn't work if the pipeline is not a cgat-flow pipeline and pipeline_genesets is not in the same directory. Need to change operator priority of and and or.
Unfortunately this still doesn't fix the problem that it won't know where to look if workingdir is set to '?!', but its not in the cgat-flow directory.

Hi, sorry not sure if im understanding your problem. Are you able to elaborate in more detail what you are specifically trying to do? Do you have test case?
I am able to run pipelines outside the cgat-flow directory and don't have any issues.

Most pipelines have a peek_params at the start that loads parameters from the genesets pipeline.
To find out where to find the genesets pipeline is, it looks in the pipeline.yml.
When you do pipeline_mypipe.py config, most likely annotations_dir is set to ?!, so the pipeline will not be able to find an annotations dir to get the config from.
These lines in config.py deal with this possibility:
if ("config" in sys.argv or "check" in sys.argv or "clone" in sys.argv and workingdir == "?!"):
        workingdir = os.path.join(get_params()["pipelinedir"],
                                  "pipeline_" + pipeline)

The idea is that if config, check or clone is run, and workingdir is set to ?! (which is the parameter provided to peek_params(workingdir=PARAMS["annotation_dir"]), then the '?!' is overwritten with pipeline_genesets from the same directory as the current pipeline file.
There are two problems with this.
The first is that ("config" in sys.argv or "check" in sys.argv or "clone" in sys.argv and workingdir == "?!") is interpreted as
("config" in sys.argv) or
("check" in sys.argv) or
("clone" in sys.argv and workingdir == "?!")

when we want it interpreted as
("config" in sys.argv or "check" in sys.argv or "clone" in sys.argv) and
(workingdir == "?!")

so in the old formulation, workingdir is only checked if the command is clone, not if it is config or check.  This means that whenever you run config, workingdir is being overwritten with %(pipeinedir)s/pipeline_genesets whatever annotations_dir is set to in %(pipelinedir)s/pipeline.yml.
This is a problem, because if you are developing a pipeline in a directory that does not contain pipeline_genesets, it will cause the an error.
To reproduce this behaviour, create the following new pipeline in a non cgatflow location, say ~/devel/mypipe/pipeline_mypipe.py:
from cgatcore import pipeline as P
from ruffus import originate

PARAMS = P.get_parameters(
    [os.path.join(P.snip(__file__, ".py"), "pipeline.yml"),
    "pipeline.yml"] )

PARAMS.update(P.peek_parameters(
    PARAMS["annotations_dir"],
    "genesets",
    prefix="annotations_",
    update_interface=True,
    restrict_interface=True))

@originate("test")
def dummy(outfile):
    P.touch(outfile)

with a pipeline.yml in ~/mypipe/pipeline_mypipe/pipeline.yml that contains:
annotations:
    dir: PATH_TO_ANNOTATIONS

(with the actual path subbed in) - actually, it doesn't matter what you put here.
Now go to a new directory and run
$ python ~/devel/mypipe/pipeline_mypipe.py config

Changing to the new formulation only solves half the problem though. Under the suggested change config will actually load the annotations interface from the location specified in ~/devel/mypipe/pipeline_mypipe/pipeline.yml, but really, you'd like to not hard code a location there, but put ?!. But if you do this, config will still fall back on trying to load ~/devel/mypipe/pipeline_genesets/pipeline.yml.

Thanks @IanSudbery I get it now. I will attempt to run your example

Hi @IanSudbery , I managed to have a quick look at this. Could all of this not be handled in the PARAMS better by also parameterising the pipeline name? i.e.:
PARAMS.update(P.peek_parameters(
    PARAMS["annotations_dir"],
    "genesets",
    prefix="annotations_",
    update_interface=True,
    restrict_interface=True))

to
PARAMS.update(P.peek_parameters(
    PARAMS["annotations_dir"],
    PARAMS["annotation_pipelinename"],
    prefix="annotations_",
    update_interface=True,
    restrict_interface=True))

Then it wouldn't fallback to using pipeline_genesets?

I don't understand? How is this different? Presumably you would put "genesets" in your template pipeline.yml, and then it would evaluate to the same thing?
I wonder if the real solution is that if you are cloning, or contiging, or checking, you don't actually need to import the config values, so perhaps if clone, config or check is the command and workingdir="?!", then the function should just return without doing anything (perhaps with a warning)?

Maybe I'm reading the code wrong, but the having annotation_dir: ?! still tries to load ~/devel/mypipe/pipeline_genesets/  because the pipeline name is hard coded to genesets? Then you could add warnings that no pipeline name has been set and it returns nothing.
I agree that the solution should be return a warning (or at least a better warning that it returning that it can't find the working directory).

Two things here:
at the moment is doesn't even check what is in annotation_dir most of the
time because the if statement is wrong.
But that aside, the point is that the pipeline name is not the name of
this pipeline, its the name of the external pipeline whose parameters one
wants to import. That extranal pipeline will always be the same for a given
script, irrespective of the fact particular that different runs of the
external pipeline might be required for different runs of the current
script.
Anyway, I think we have a solution? I would code it up, but I'm super busy.
I'll try to remember to do it before Christmas if not one else gets there
first.

To be honest I haven't looked at this in a lot of detail, iv had meningitis last week and still recovering, but I think the solution should work.

Sorry to hear that Adam. Hope you are recovering well. I'll see what I can
do about implementing this.

Just wondering if this needed to be looked at again?

This PR still fixes the problem of the incorrect grouping of conditions. The main fact that peek_parameters will still throw an error if run with a non-cgatflow pipeline remains.
Its sat dormant because we've stopped really using peek_paramters as it just makes pipelines difficult to share as standalone entities.  I suspect that your solution - return nothing, is still the correct one.

authors: Acribbs IanSudbery stydodt

repo: cgat-developers/cgat-core


text:
🛑 Personal is down

In 37ad6f9, Personal (https://chadburrus.com) was down:

HTTP code: 521
Response time: 145 ms

Resolved: Personal is back up in d1f71e4.

repo: chadburrus/upptime


text:
CC Initialization Failed

Hi i tried v1.1 but i'm experiencing this error

Failed to instantiate the chaincode: failed to get discovery service: could not get chConfig cache reference: QueryBlockConfig failed: target(s)required

System Specs:
Ubuntu 18.04 LTS (VM)
Docker  Version: 18.03.1-ce
Go version go1.10.2
    ccPolicy := cauthdsl.SignedByAnyMember([]string{"org1.hf.chainhero.io"})

// Org resource manager will instantiate chaincode on channel
resp, err := setup.resClient.InstantiateCC(setup.ChannelID, resmgmt.InstantiateCCRequest{ Name: setup.ChainCodeID, Path: setup.ChaincodeGoPath, Version: "0", Args: [][]byte{[]byte("init")}, Policy: ccPolicy, },)

if err != nil || resp.TransactionID == "" {
	return errors.WithMessage(err, "Failed to instantiate the chaincode")
}

`

Hi @antitoine . thank you for the fast response. You are right. I dont know why but peer0 is set at wrong address in config.yaml.
 channels:
     // name of the channel
     chainhero:

     // Required. list of peers from participating orgs
     peers:
         peer0.org1.example.com: <-----

@antitoine  Thank you very much.

You're welcome!

authors: antitoine donleemalacad

repo: chainHero/heroes-service


text:
Eliminate no_grads and squares in double backward tests

Use #4654 and stop squaring outputs of affine functions.
This PR also fixes #4656.

This PR may improve accuracy of numerical/backprop gradients in the tests with check_double_backward.

Jenkins CI test (for commit 944d0315c02e2bc61c38ffb39007a897ed5bb5fa) succeeded without errors!

Jenkins CI test (for commit 7ebb5f902200b79fa2f0ed071422a8ca7eed6fd9) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

I reverted deletion in unary_math_function_test. The squaring behavior with is_linear=True is kept as it was documented.

Jenkins CI test (for commit 29dbc048390ac8afa7652b242d59ae60b1fd8fa4) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

Jenkins, test this please.

LGTM!

authors: chainer-ci kmaehashi toslunar

repo: chainer/chainer


text:
[backport] Fix PickleDataset crash when using multiprocessing

Backport of #7625

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit fed20c1b0109f5a6f22a8c958fc912b9e9ba12b3, target branch v6) failed with status FAILURE.

CI unrelated

authors: chainer-ci emcastillo niboshi


text:
TRPO on Atari

Hi,
I am wondering whether chainerrl supports TRPO to run atari? I tried to do so by following the code for training PPO on atari, but I am faced with the following error:

Traceback (most recent call last):
File "train_trpo_ale.py", line 187, in
main()
File "train_trpo_ale.py", line 182, in main
eval_interval=args.eval_interval,
File "/anaconda3/envs/chainerrl/lib/python3.6/site-packages/chainerrl-0.6.0-py3.6.egg/chainerrl/experiments/train_agent.py", line 174, in train_agent_with_evaluation
File "/anaconda3/envs/chainerrl/lib/python3.6/site-packages/chainerrl-0.6.0-py3.6.egg/chainerrl/experiments/train_agent.py", line 59, in train_agent
File "/anaconda3/envs/chainerrl/lib/python3.6/site-packages/chainerrl-0.6.0-py3.6.egg/chainerrl/agents/trpo.py", line 521, in act_and_train
File "/anaconda3/envs/chainerrl/lib/python3.6/site-packages/chainerrl-0.6.0-py3.6.egg/chainerrl/misc/batch_states.py", line 23, in batch_states
File "/anaconda3/envs/chainerrl/lib/python3.6/site-packages/chainer-6.0.0b3-py3.6.egg/chainer/dataset/convert.py", line 58, in wrap_call
return func(*args, **kwargs)
File "/anaconda3/envs/chainerrl/lib/python3.6/site-packages/chainer-6.0.0b3-py3.6.egg/chainer/dataset/convert.py", line 249, in concat_examples
return to_device(device, _concat_arrays(batch, padding))
File "/anaconda3/envs/chainerrl/lib/python3.6/site-packages/chainer-6.0.0b3-py3.6.egg/chainer/dataset/convert.py", line 256, in _concat_arrays
arrays = numpy.asarray(arrays)
File "/anaconda3/envs/chainerrl/lib/python3.6/site-packages/numpy/core/numeric.py", line 538, in asarray
return array(a, dtype, copy=False, order=order)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'LazyFrames'

It seems that PPO can handle LazyFrames, and I don't know why it fails on TRPO.
Thanks!

I think it should work, but not tested. Can you share train_trpo_ale.py?

It's here:

from future import division
from future import print_function
from future import unicode_literals
from future import absolute_import
from builtins import *  # NOQA
from future import standard_library
standard_library.install_aliases()  # NOQA
import argparse
import logging
import os
import chainer
from chainer import functions as F
import gym
import gym.wrappers
import numpy as np
import chainerrl
from chainerrl import links
import cupy
from chainerrl.wrappers import atari_wrappers
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--env', type=str, default='BreakoutNoFrameskip-v4',
                    help='Gym Env ID')
parser.add_argument('--gpu', type=int, default=0,
                    help='GPU device ID. Set to -1 to use CPUs only.')
parser.add_argument('--seed', type=int, default=0,
                    help='Random seed [0, 2 ** 32)')
parser.add_argument('--outdir', type=str, default='results',
                    help='Directory path to save output files.'
                         ' If it does not exist, it will be created.')
parser.add_argument('--steps', type=int, default=10 ** 6,
                    help='Total time steps for training.')
parser.add_argument('--max-frames', type=int, default=30 * 60 * 60,  # 30 minutes with 60 fps
                    help='Maximum number of frames for each episode.')
parser.add_argument('--eval-interval', type=int, default=10 ** 5,
                    help='Interval between evaluation phases in steps.')
parser.add_argument('--eval-n-runs', type=int, default=10,
                    help='Number of episodes ran in an evaluation phase')
parser.add_argument('--demo', action='store_true', default=False,
                    help='Run demo episodes, not training')
parser.add_argument('--load', type=str, default='',
                    help='Directory path to load a saved agent data from'
                         ' if it is a non-empty string.')
parser.add_argument('--logger-level', type=int, default=logging.INFO,
                    help='Level of the root logger.')
parser.add_argument('--render', action='store_true', default=False,
                    help='Render the env')
parser.add_argument('--monitor', action='store_true',
                    help='Monitor the env by gym.wrappers.Monitor. Videos and additional log will be saved.')
parser.add_argument('--trpo-update-interval', type=int, default=5000,
                    help='Interval steps of TRPO iterations.')
args = parser.parse_args()

logging.basicConfig(level=args.logger_level)

# Set random seed
chainerrl.misc.set_random_seed(args.seed, gpus=(args.gpu,))

args.outdir = chainerrl.experiments.prepare_output_dir(args, args.outdir)
print('Output files are saved in {}'.format(args.outdir))

def make_env(test):
    # Use different random seeds for train and test envs
    env_seed = 2 ** 32 - args.seed if test else args.seed
    env = atari_wrappers.wrap_deepmind(
        atari_wrappers.make_atari(args.env, max_frames=args.max_frames),
        episode_life=not test,
        clip_rewards=not test)
    env.seed(int(env_seed))
    if args.monitor:
        env = gym.wrappers.Monitor(
            env, args.outdir,
            mode='evaluation' if test else 'training')
    if args.render:
        env = chainerrl.wrappers.Render(env)
    return env

env = make_env(test=False)
eval_env = make_env(test=True)
obs_space = env.observation_space
action_space = env.action_space
print('Observation space:', obs_space)
print('Action space:', action_space)

if not isinstance(obs_space, gym.spaces.Box):
    print("""This example only supports gym.spaces.Box observation spaces. To apply it to other observation spaces, use a custom phi function that convert an observation to numpy.ndarray of numpy.float32.""")  # NOQA
    return

# Normalize observations based on their empirical mean and variance
obs_normalizer = chainerrl.links.EmpiricalNormalization(obs_space.low.size)

# Use a Softmax policy for discrete action spaces
policy = chainerrl.policies.FCSoftmaxPolicy(
    obs_space.low.size,
    action_space.n,
    n_hidden_channels=64,
    n_hidden_layers=2,
    last_wscale=0.01,
    nonlinearity=F.tanh,
)

# Use a value function to reduce variance
vf = chainerrl.v_functions.FCVFunction(
    obs_space.low.size,
    n_hidden_channels=64,
    n_hidden_layers=2,
    last_wscale=0.01,
    nonlinearity=F.tanh,
)

if args.gpu >= 0:
    chainer.cuda.get_device_from_id(args.gpu).use()
    policy.to_gpu(args.gpu)
    vf.to_gpu(args.gpu)
    obs_normalizer.to_gpu(args.gpu)

# TRPO's policy is optimized via CG and line search, so it doesn't require a chainer.Optimizer. Only the value function needs it.
vf_opt = chainer.optimizers.Adam()
vf_opt.setup(vf)

# Draw the computational graph and save it in the output directory.
if policy.xp == cupy:
    formatted_obs_space_low = cupy.array(obs_space.low)
else:
    formatted_obs_space_low = obs_space.low

fake_obs = chainer.Variable(
    policy.xp.zeros_like(formatted_obs_space_low, dtype=policy.xp.float32)[None], name='observation'
)
chainerrl.misc.draw_computational_graph([policy(fake_obs)], os.path.join(args.outdir, 'policy'))
chainerrl.misc.draw_computational_graph([vf(fake_obs)], os.path.join(args.outdir, 'vf'))

# Feature extractor
def phi(x):
    return np.asarray(x, dtype=np.float32) / 255

# Hyperparameters in http://arxiv.org/abs/1709.06560
agent = chainerrl.agents.TRPO(
    policy=policy,
    vf=vf,
    vf_optimizer=vf_opt,
    obs_normalizer=obs_normalizer,
    update_interval=args.trpo_update_interval,
    conjugate_gradient_max_iter=20,
    conjugate_gradient_damping=1e-1,
    gamma=0.995,
    lambd=0.97,
    vf_epochs=5,
    entropy_coef=0,
)

if args.load:
    agent.load(args.load)

if args.demo:
    env = make_env(test=True)
    eval_stats = chainerrl.experiments.eval_performance(
        env=eval_env,
        agent=agent,
        n_steps=None,
        n_episodes=args.eval_n_runs,
    )
    print('n_runs: {} mean: {} median: {} stdev {}'.format(
        args.eval_n_runs, eval_stats['mean'], eval_stats['median'], eval_stats['stdev']))
else:
    chainerrl.experiments.train_agent_with_evaluation(
        agent=agent,
        env=env,
        eval_env=eval_env,
        outdir=args.outdir,
        steps=args.steps,
        eval_n_steps=None,
        eval_n_episodes=args.eval_n_runs,
        eval_interval=args.eval_interval,
    )

if name == 'main':
main()

authors: ling-pan muupan

repo: chainer/chainerrl


text:
Recurrent and batched TRPO

~Merge #431 before this PR.~

Precompute action distributions for importance weighting and KL divergence as #430 did
Support recurrent models as #431 did
Support batch training

/test

Let me investigate the failure in pfn-public-ci/chainerrl.py3.gpu .

/test

I added changes to address flexCI failurue:

move self.model to gpu if policy is on gpu
skip test cases with recurrent=True when either

gpu (because NStepLSTM with gpu does not support double backprop), or
chainer==7.0.0b3 (https://github.com/chainer/chainer/pull/8037)

Remaining flexCI failures are only flakey tests and #533

/test

/test

@toslunar Can you review the changes I made?

/test

authors: muupan toslunar


text:
BAD Signature when Installing apk package

Not sure if I'm doing something obviously wrong, but I've built an apk package using the following example: https://github.com/ChrisJBurns/building-oci-images-with-melange-and-apko/tree/main/images/hello-c
To cut a long story short, it builds the apk fine, I can then use build the OCI image with apko and run it with no problems.
I wanted to see if I could get it to work and install the apk package into a Docker image using a simple Go app that simply acts as as a file server to serve the hello package. Using the following Dockerfile
FROM alpine

COPY files/hello-c/melange.rsa.pub /etc/apk/keys/melange.rsa.pub
RUN echo "@personal http://host.docker.internal:9999/hello-c/packages" | tee -a /etc/apk/repositories

I can built a Docker image, run the image, and run apk update --allow-untrusted and it updates the default Alpine repositories as well as my local @personal one, which is basically my simple dummy APK repo (Go app running a FileServer). I can then run apk add hello@personal --allow-untrusted with no issues, it installs the hello package and I can run it and it will output the text that I expect.
The problem for me is when I try to remove the --allow-untrusted flag. Even if I put the public key that I used to sign the package itself into the /etc/apk/keys/ directory, and then run apk add hello@personal I get the following:
fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/community/x86_64/APKINDEX.tar.gz
fetch http://host.docker.internal:9999/hello-c/packages/x86_64/APKINDEX.tar.gz
WARNING: updating and opening http://host.docker.internal:9999/hello-c/packages: UNTRUSTED signature
WARNING: The repository tag for world dependency 'hello@personal' does not exist
ERROR: Not committing changes due to missing repository tags. Use --force-broken-world to override.

Also confusingly, if I was to rename the key from /etc/apk/keys/cburns@host.docker.internal-7db90524.rsa.pub to /etc/apk/keys/melange.rsa.pub I get the same error but instead of UNTRUSTED Signature, I get BAD Signature.
Is this something that someone else has run into before? I can't see anything mentioning either error in any issues, so maybe I'm just doing something obviously wrong.

This is indicative that the underlying apk has changed and does not reflect the one in the index.  When you make changes to an apk, you should increase the epoch value so a new package is indexed.

@kaniini  So I've completely removed the folder where the apk's are being created including deleting the APKINDEX.json and APKINDEX.tar.gz, then regenerated them with docker run --privileged --rm -v "${PWD}":/work cgr.dev/chainguard/melange:latest build melange.yaml  --signing-key melange.rsa, then rerun the docker container where I am adding the local file server as the APK repository, and when I run apk update it still fails with UNTRUSTED error
/ # apk update
fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.18/community/x86_64/APKINDEX.tar.gz
fetch http://host.docker.internal:9999/hello-c/packages/x86_64/APKINDEX.tar.gz
WARNING: updating and opening http://host.docker.internal:9999/hello-c/packages: UNTRUSTED signature
v3.18.2-575-g02de16b1332 [https://dl-cdn.alpinelinux.org/alpine/v3.18/main]
v3.18.2-587-g045c1850e7f [https://dl-cdn.alpinelinux.org/alpine/v3.18/community]
2 unavailable, 0 stale; 20070 distinct packages available

authors: ChrisJBurns kaniini

repo: chainguard-dev/melange


text:
debain系统的系统用户弱密码检测不出来

/opt/veinmind-tools/veinmind-weakpass/artifacts/linux-amd64/veinmind-weakpass_linux_amd64 scan 192.168.1.94:443/library/test_weakpass:0.1
INFO[0002] Start Scan Image SSH Weakpass: 192.168.1.94:443/library/test_weakpass:0.1
============================================================================================
| Scan Total:  1                                                                               |
| Spend Time:  2.159982615s                                                                    |
| Weakpass Image Total:  0                                                                     |
| Weakpass Total:  0                                                                           |
+----------------------------------------------------------------------------------------------+
============================================================================================
cat /etc/shadow
root::19139:0:99999:7:::
daemon::19139:0:99999:7:::
bin::19139:0:99999:7:::
sys::19139:0:99999:7:::
sync::19139:0:99999:7:::
games::19139:0:99999:7:::
man::19139:0:99999:7:::
lp::19139:0:99999:7:::
mail::19139:0:99999:7:::
news::19139:0:99999:7:::
uucp::19139:0:99999:7:::
proxy::19139:0:99999:7:::
www-data::19139:0:99999:7:::
backup::19139:0:99999:7:::
list::19139:0:99999:7:::
irc::19139:0:99999:7:::
gnats::19139:0:99999:7:::
nobody::19139:0:99999:7:::
_apt:*:19139:0:99999:7:::
nginx:!:19140:0:99999:7:::
test:$y$j9T$c/zxurpmCyM0ACN53Rsnl.$/a3a7ZXTmnZgaIFeUMB21pECYdoU.y.UJQlAULHs9/7:19191:0:99999:7:::
test用户的密码是123456

cat /etc/issue
Debian GNU/Linux 11 \n \l

cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

使用的 adduser

history
1  adduser  root
2  adduser  test
3  exit
4  su root
5  exit
6  history

应该是输入了y。那为什么Ubuntu可以呀？

没有指定加密模式，系统自带的吗

明白了，谢谢

PR 已合并，tag 为 v1.4.1

./artifacts/linux-amd64/veinmind-weakpass_linux_amd64 scan 192.168.1.94:443/library/test_weakpass:0.1
INFO[0000] start to scan mysql weakpass: 192.168.1.94:443/library/test_weakpass:0.1
INFO[0000] start to scan tomcat weakpass: 192.168.1.94:443/library/test_weakpass:0.1
INFO[0000] start to scan redis weakpass: 192.168.1.94:443/library/test_weakpass:0.1
INFO[0000] start to scan ssh weakpass: 192.168.1.94:443/library/test_weakpass:0.1
============================================================================================
| Scan Total:  4                                                                               |
| Spend Time:  154.779788ms                                                                    |
| Weakpass Image Total:  0                                                                     |
| Weakpass Total:  0                                                                           |
+----------------------------------------------------------------------------------------------+
============================================================================================
git branch
master

v1.4.1

@huzai9527

不太一样，但是我的密码应该123456，我再添加一个用户看看

docker run -it 192.168.1.94:443/library/test_weakpass:0.1 sh
passwd test
New password:
Retype new password:
passwd: password updated successfully
ca^H^H^H
sh: 2:: not found
bash
root@fe1f645ed185:/# cat /etc/shadow
root::19139:0:99999:7:::
daemon::19139:0:99999:7:::
bin::19139:0:99999:7:::
sys::19139:0:99999:7:::
sync::19139:0:99999:7:::
games::19139:0:99999:7:::
man::19139:0:99999:7:::
lp::19139:0:99999:7:::
mail::19139:0:99999:7:::
news::19139:0:99999:7:::
uucp::19139:0:99999:7:::
proxy::19139:0:99999:7:::
www-data::19139:0:99999:7:::
backup::19139:0:99999:7:::
list::19139:0:99999:7:::
irc::19139:0:99999:7:::
gnats::19139:0:99999:7:::
nobody::19139:0:99999:7:::
_apt:*:19139:0:99999:7:::
nginx:!:19140:0:99999:7:::
test:$y$j9T$DqxAtCWKtO9D/B8bzSuo3.$enEcI5aIds7Q5FSXkIBxkeyOmcnh/aZzBE0hsP7HOKA:19200:0:99999:7:::
root@fe1f645ed185:/# exit
exit

e^H^H^H
sh: 6: not found
exit
root@jack-virtual-machine:/home/jack/test/veinmind-tools/plugins/go/veinmind-weakpass#
root@jack-virtual-machine:/home/jack/test/veinmind-tools/plugins/go/veinmind-weakpass#
root@jack-virtual-machine:/home/jack/test/veinmind-tools/plugins/go/veinmind-weakpass# ./artifacts/linux-amd64/veinmind-weakpass_linux_amd64 scan -s ssh test 192.168.1.94:443/library/test_weakpass:0.3
INFO[0000] start to scan ssh weakpass: 192.168.1.94:443/library/test_weakpass:0.3
============================================================================================
| Scan Total:  1                                                                               |
| Spend Time:  141.485744ms                                                                    |
| Weakpass Image Total:  0                                                                     |
| Weakpass Total:  0                                                                           |
+----------------------------------------------------------------------------------------------+
============================================================================================
root@jack-virtual-machine:/home/jack/test/veinmind-tools/plugins/go/veinmind-weakpass# docker run -it 192.168.1.94:443/library/test_weakpass:0.3 /bin/bash
root@9fe8491dd003:/# cat /etc/shadow
root::19139:0:99999:7:::
daemon::19139:0:99999:7:::
bin::19139:0:99999:7:::
sys::19139:0:99999:7:::
sync::19139:0:99999:7:::
games::19139:0:99999:7:::
man::19139:0:99999:7:::
lp::19139:0:99999:7:::
mail::19139:0:99999:7:::
news::19139:0:99999:7:::
uucp::19139:0:99999:7:::
proxy::19139:0:99999:7:::
www-data::19139:0:99999:7:::
backup::19139:0:99999:7:::
list::19139:0:99999:7:::
irc::19139:0:99999:7:::
gnats::19139:0:99999:7:::
nobody::19139:0:99999:7:::
_apt:*:19139:0:99999:7:::
nginx:!:19140:0:99999:7:::
test:$y$j9T$DqxAtCWKtO9D/B8bzSuo3.$enEcI5aIds7Q5FSXkIBxkeyOmcnh/aZzBE0hsP7HOKA:19200:0:99999:7:::

修改了一下也不行

./artifacts/linux-amd64/veinmind-weakpass_linux_amd64 scan 192.168.1.94:443/library/ubuntu_weakpass:0.1
INFO[0000] start to scan mysql weakpass: docker.io/library/ubuntu_weakpass:0.1
INFO[0000] start to scan tomcat weakpass: docker.io/library/ubuntu_weakpass:0.1
INFO[0000] start to scan redis weakpass: 192.168.1.94:443/library/ubuntu_weakpass:0.1
INFO[0000] start to scan ssh weakpass: 192.168.1.94:443/library/ubuntu_weakpass:0.1
WARN[0000] {
"id": "sha256:05fb21919da1e02f515953d1ea1f3ad0d5306309c690026b6d72d4580e7c3121",
"time": "2022-07-27T15:09:52.978097211+08:00",
"level": "High",
"detect_type": "Image",
"event_type": "Risk",
"alert_type": "Weakpass",
"alert_details": [
{
"weakpass_detail": {
"username": "root",
"password": "123456",
"service": "SSH"
}
}
]
}
============================================================================================
| Scan Total:  4                                                                               |
| Spend Time:  138.928614ms                                                                    |
| Weakpass Image Total:  1                                                                     |
| Weakpass Total:  1                                                                           |
+----------------------------------------------------------------------------------------------+
| ImageName:  192.168.1.94:443/library/ubuntu_weakpass:0.1                                     |
| ServiceName:  ssh                                                                            |
| Status: Unsafe                                                                               |
| Username:  root                                                                              |
| Password:  123456                                                                            |
| Filepath:  /etc/shadow                                                                       |
+----------------------------------------------------------------------------------------------+
============================================================================================

可以

你们修改的commit是哪个呀？ 我今天刚同步过来的，不会是代码问题吧

有的。
docker commit fe1f645ed185 192.168.1.94:443/library/test_weakpass:0.3
sha256:04469849db2d379b6b337841fc595cd135ce93ecc9da72990d0b672dcd13e718

上面的一个里面是有的 两个/etc/shadow 中的 test是一样的。应该能看出来

谢谢，有这个代码的分支确实可以了。

repo: chaitin/veinmind-tools


text:
缺漏待補：pytest單元測試

在更新 https://github.com/changchiyou/haplog/commit/3a0ddb09a61a1ac932efa59206fd022c3b219854 後，原先的單元測試完全不能用了：
https://github.com/changchiyou/haplog/blob/2c84dc843cc57587c7525fb2e6fe74c6d06c7775/tests/test_instantiate_logger.py#L1-L60
有嘗試更新但因為架構完全不一樣了導致目前完全沒有頭緒，最後決定在 StackOverflow 上面發問 pytest unit test for "logging+multi-process+QueueHandler"

https://github.com/pytest-dev/pytest/issues/5997

use capfd instead of capsys

authors: Chris-fullerton changchiyou

repo: changchiyou/haplog


text:
Audit query for performance in browse data page

The browse data page has high latency, and we need to audit the queries to identify improve performance.

I believe updating this query section to be:
object_shape_types: annotation_files(distinct_on: shape_type) {
  shape_type
}

would optimize the query, as it removes a join.

repo: chanzuckerberg/cryoet-data-portal


text:
[not ready] upgrade vadr model to vadr-models-sarscov2-1.2-2.tar.gz

Tests may fail due to space issue.

The tests are failing due to the space issue. I will fix that but I don't want it to be a blocker for this change. I am running them locally and when they pass I will call it out here and we can merge.

repo: chanzuckerberg/idseq-workflows


text:
The semantics for schema versions must be documented

Design
Schema versioning
The CELLxGENE schema MUST use Semantic Versioning.
Major version is incremented when schema updates are incompatible with the AnnData and Seurat data encodings or CELLxGENE API(s). Examples include:

Adding metadata fields
Deprecating metadata fields
Changing the type of a metadata field

Minor version is incremented when schema updates may require changes only to the cellxgene-schema CLI or the curation process. Examples include:

Updating pinned ontologies or gene references
Changing the validation requirements for a metadata field

Patch version is incremented for editorial updates to the schema.
Changes MUST be documented in the schema Changelog.
Context
The dataset schema does not document the semantics for versions because there have only been major updates in the past. With the introduction of ontology only updates, it must be possible for downstream services and consumers to interpret the meaning of the version number.
See @atolopko-czi's comments in single-cell-four:

it should have precise semantics and be well-documented. Downstream systems/consumers of datasets should be able to rationally filter by schema versions (or ranges) that are "compatible" per semver-like guarantees. E.g., and off the cuff:  a major version change implies that the consuming system will likely require code changes to accommodate new/removed schema fields; a minor version change should be robustly handled by consuming systems, though new data attributes may be unhandled and thus (temporarily) missing in the downstream system; and so on.

This is how the cell census schema is modeling semver:
Cell Census Schema versioning
The Cell Census Schema follows Semver for its versioning:

Major: any schema changes that make the Cell Census incompatible with public API(s) or SOMA. Examples:

Column deletion in Cell Census obs
Addition of new modality

Minor: schema additions that are compatible with public API(s) and SOMA. Examples:

New column to Cell Census obs is added
tissue/tissue_general mapping changes

Patch: schema fixes. Examples:

Editorial schema changes

Changes MUST be documented in the schema Changelog at the end of this document.

Under this description:

Major version is incremented when schema updates are incompatible with the AnnData and Seurat data encodings or CELLxGENE API(s). Examples include:

I'm not sure I would consider this example falling into it:

Adding metadata fields

Adding new fields would not break anything downstream AFIK, it may not be readily visible or available to the Census for example, but it won't make it incompatible.

I moved Adding metadata fields to minor release.

authors: brianraymor pablo-gar

repo: chanzuckerberg/single-cell-curation


text:
Gene sets design & implementation staging

Requirements:

[ ] Completed design that enables stories in #15 (refine & update stories if needed)

[ ] Approved by Product
[ ] Reviewed by Dev team

[ ] First two implementation stages are outlined as sub-epics, issues are created that are ready for development team to refine.
[ ] Board is cleaned of conflicting issues.

Existing issues:

chanzuckerberg/cellxgene#1538
chanzuckerberg/cellxgene#1539
chanzuckerberg/cellxgene#1540
chanzuckerberg/cellxgene#1541

Design work:

Google Drive Folder

Draft Design Doc for Gene Sets
This issue is indebted to work done by @sidneybell, @liaprins and @bkmartin, as well as user feedback from @angela and @bruceAranow
Problem & Background
Presently, in cellxgene, scientists have few affordances for managing genes. The application, to date, has been primarily focused on exploring cells. This has also determined the application’s internal data model.
This feature represents, at a high level, the addition of what we are calling ‘gene sets’ to the right sidebar. Gene sets are a list of lists — each list of genes can have a user generated name, and contain a list of genes.
Users must be able to act on both gene sets — adding a set, deleting a set, coloring by the set as a whole, duplicating sets, and individual genes within sets — adding, removing and reordering genes.
Users can presently add genes to the right sidebar, but they are not persisted — on hard reset of the browser, the genes disappear and must be re-added. This solution implies a persistent workspace for genes, which are saved locally as CSV, or to some database solution in the cloud.
Gene sets will provide a more powerful affordance for building up a workspace, and also generate untenably long lists given the heights of the histograms in the present gene UI. Thus individual genes within a gene set must have a ‘collapsed’ state, with a mini histogram (as appears on categories when genes are colored by) or some metric which describes whether or not the gene is expressed at all by the current world of cells. Collapsed state will also include the option to color by individual genes.
Users will have CSVs of genes that they work with, or could generate them from notebooks. Cellxgene should support import of some kind to ease this path in a hosted environment. Locally, the CSV can be edited directly from both cellxgene and loaded up / referenced in a notebook, so this is less of a problem.
User must be able to
Gene set + import + CRUD + export lifecycle

import existing gene sets

from uns in h5ad
from csv on the client

create a new gene set, and give it a name, and persist it

https://github.com/chanzuckerberg/cellxgene/issues/997
https://github.com/chanzuckerberg/cellxgene/issues/1538
https://github.com/chanzuckerberg/cellxgene/issues/1539
https://github.com/chanzuckerberg/cellxgene/issues/923

gene sets have a sensible datastructure that aligns with scientist expectations regarding genes being in multiple datasets

https://github.com/chanzuckerberg/cellxgene/issues/1069

edit a gene set
notify users of genes that failed to import

https://www.figma.com/proto/MWv3Bf7X9vcTYQFJHH9n7d/Gene-set-featurelettes?node-id=7%3A8630&viewport=1490%2C930%2C1&scaling=min-zoom
https://github.com/chanzuckerberg/cellxgene/issues/1396

delete a gene set

https://www.figma.com/proto/MWv3Bf7X9vcTYQFJHH9n7d/Gene-set-featurelettes?node-id=7%3A8228&viewport=811%2C829%2C0.5&scaling=min-zoom

create one or more gene sets from a CSV

https://github.com/chanzuckerberg/cellxgene/issues/1541

create a gene set from differential expression

https://github.com/chanzuckerberg/cellxgene/issues/989

color by gene set

https://github.com/chanzuckerberg/cellxgene/issues/571

see summary statistics for entire gene set

download and export a gene set (format TBD)

https://github.com/chanzuckerberg/cellxgene/issues/1058

Gene CRUD lifecycle

easily scan a large list of densely packed collapsed genes with mini histograms

https://www.figma.com/proto/MWv3Bf7X9vcTYQFJHH9n7d/Gene-set-featurelettes?node-id=75%3A1152&viewport=2136%2C718%2C0.5&scaling=min-zoom

expand a gene, see large histogram with axes, and brush to select range — this must handle a gene set existing in multiple gene sets intelligent

https://github.com/chanzuckerberg/cellxgene/issues/1585
https://www.figma.com/proto/MWv3Bf7X9vcTYQFJHH9n7d/Gene-set-featurelettes?node-id=75%3A33&viewport=2136%2C718%2C0.5&scaling=min-zoom

add, remove, and reorder an individual gene within a geneset
[x] color by gene
[x] plot x y scatterplot by gene

Sharing

share gene sets with other users privately in read only format

https://github.com/chanzuckerberg/cellxgene/issues/875

share gene sets with other users privately and collaboratively edit them
share gene sets publicly in read only format

https://github.com/chanzuckerberg/cellxgene/issues/852

@colinmegill I thought through how this could be staged. What do you think? I wasn't able to find a home for the "combine bulk add genes and add genes", as it seemed a bit orthogonal if we're just going to blow it away and replace with the annotation flow in story 2.
1. Users can import csv files containing gene set(s) using the client
N.B. cellxgene supports gene set import, but treats gene sets the way it currently treats genes. No changes to the right side bar are made
REQ: Gene lists are non-redundant, non-mutually exclusive, and contain only features from var.
SPIKE: does supporting compressed csv improve responsiveness of import?
Users are notified when gene(s) do not import, including suggestions for common import failures
Users can color cells by average expression of a gene set
Users can plot a gene set by x or y.
Users can brush over the gene set to select a range of expression values
2. Users can create a new gene set using the client
Users can create a gene set from differential expression
Users can create a new gene set and give it a name
Users can download a gene set
Users can delete/remove a gene set
Users can access gene sets they created in previous sessions (gene sets persist)
3. Users can explore the individual genes within gene sets
N.B. cellxgene enables gene sets to be decomposed and examined. The right side bar is updated
Users can add, remove, and reorder genes within gene sets
Users can scan a large list of densely packed genes
Users can expand a gene, see large histogram with axes, and brush to select range
REQ: Must handle genes appearing in two sets and being brushed in different ranges which yield a zero intersection.
4. Users can share gene sets with others
… publicly in read only format
… privately in read only format
… privately, and collaboratively edit them.

authors: ambrosejcarr colinmegill

repo: chanzuckerberg/single-cell


text:
package plugins

As we discussed. Here is how I explain in the README:
These plugins are copied from the miniwdl-plugins repo. That repo is home to several miniwdl plugins. We felt these plugins may potentially be useful to others but over time it has become clear that the implementation of the plugins is tightly coupled to our swipe architecture. This resulted in the need for frequent swipe-specific updates to those plugins. These updates are not relevant to other potential users of the plugin and having them in a separate repository complicated our development cycle and testing process so we decided to start tracking this code as part of the swipe repo.
These plugins are installed in the swipe docker image so we can run end to end tests of their functionality with our testing tools. This should enable more rapid development and testing as well as clearer version control for this code.

Are these copied in as-is from the master branch of miniwdl-plugins?

@jgadling yes but I have already upgraded them to that version essentially in a previous pr

@jgadling I will incorporate your PR as well

authors: jgadling morsecodist

repo: chanzuckerberg/swipe


text:
Use map to store boundary conditions instead of vectors

Description
The way we stored boundary condition was always poorly designed. We used a vector with ids that would correspond to the deal.II IDs, but we also had the lethe-ids which were contiguous. This was very confusing (which id is supposed to be what?) and it also meant we always had to search through the vector of ids.
I refactored this entirely to instead use a map where the key is the boundary id and the values is the type (or the function, or etc). This way, we never have to look up what is "our id", "our id" is always the ID we put in the mesh generator for the boundary condition.
This required some extensive refactoring, but in the end i find that the final design is much much cleaner.
Testing
This does not include new test. I had to remake ONE restart file for ONE test. That is the fluidized bed case. The issue is that the order in which we apply the boundary conditions changed in this case and so that actually change the reslts because the corner nodes for the velocity are a bit difference. I used this opportunity to make the test a bit better and more reproducible.
Documentation
Nothing to document
Miscellaneous (will be removed when merged)
While people are reviewing this PR I willuse this opportunity to add more assertions there and there. This new mechanism offers us plenty of opportunity to actually double check our code adequately.
Checklist (will be removed when merged)
See this page for more information about the pull request process.
Code related list:

[x] All in-code documentation related to this PR is up to date (Doxygen format)
[x] Copyright headers are present and up to date
[ ] Lethe documentation is up to date
[x] The branch is rebased onto master
[x] Code is indented with indent-all and .prm files (examples and tests) with prm-indent
[x] If parameters are modified, the tests and the documentation of examples are up to date
[ ] Changelog (CHANGELOG.md) is up to date if the refactor affects the user experience or the codebase

Pull request related list:

[x] No other PR is open related to this refactoring
[x] Labels are applied
[x] There are at least 2 reviewers (or 1 if small feature) excluding the responsible for the merge
[x] If this PR closes an issue or is related to a project, it is linked in the "Projects" or "Development" section
[x] If any future works is planed, an issue is opened
[x] The PR description is cleaned and ready for merge

Thank you all for the hard work. I will recheck the examples tomorrow morning and add a CHANGELOG entry :)!

repo: chaos-polymtl/lethe


text:
Use requestAnimationFrame in chaos canvas on website

As recommended in #312 I have used requestAnimationFrame instead of setInterval which speeds up the canvas

The distance moved should be multiplied by the time delta.

@PlasmaPower sorry, I'm quite new to this project and javascript as a whole so I probably haven't done it right. You can make your own pull request doing the thing you have said if you want

@jakejdavis try this: https://gist.github.com/PlasmaPower/013445fa9d8bf25ffb68dafb61078bde
untested and I've gotta go

@jakejdavis or this: https://jsfiddle.net/Phil/1e8Lc757/1/
P.S tested 😆

authors: PlasmaPower jakejdavis phil-r

repo: chaosbot/Chaos


text:
🛑 us-tx (xstefen) is down

In 899fd9c, us-tx (xstefen) (https://us-tx-mirror.chaotic.cx/no-failover/chaotic-aur/lastupdate) was down:

HTTP code: 503
Response time: 114 ms

Resolved: us-tx (xstefen) is back up in baf73a4.

repo: chaotic-aur/chaotic-uptimes


text:
🛑 de (dr460nf1r3) is down

In 6879ce2, de (dr460nf1r3) (https://de-mirror.chaotic.cx/no-failover/chaotic-aur/lastupdate) was down:

HTTP code: 503
Response time: 65 ms

Resolved: de (dr460nf1r3) is back up in 43903da.


text:
[Bug] New overlay mode doesn't respect nixpkgs' config

What happens?
After https://github.com/chaotic-cx/nyx/pull/138, having allowUnfree no longer affects unfree packages in this repository (like linuxPackages_cachyos.nvidia_*).
Reverting the behavior through the chaotic.nyx.overlay.onTopOf = "user-pkgs" solves it, but reduces the chances of cache hits.
What is expected to happen?
allowUnfree should affect it all, and cache should always hit.

Seems this issue is back. Tried to use cachyos kernel with NVIDIA and failed to build, same for NordVPN.
building the system configuration...
error:
       … while calling the 'head' builtin

         at /nix/store/35dcag44a0ymww0vy0s4jjgxwpv9g62d-source/lib/attrsets.nix:850:11:

          849|         || pred here (elemAt values 1) (head values) then
          850|           head values
             |           ^
          851|         else

       … while evaluating the attribute 'value'

         at /nix/store/35dcag44a0ymww0vy0s4jjgxwpv9g62d-source/lib/modules.nix:807:9:

          806|     in warnDeprecation opt //
          807|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          808|         inherit (res.defsFinal') highestPrio;

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: Package ‘nvidia-persistenced-545.23.06’ in /nix/store/35dcag44a0ymww0vy0s4jjgxwpv9g62d-source/pkgs/os-specific/linux/nvidia-x11/persistenced.nix:43 has an u
nfree license (‘unfreeRedistributable’), refusing to evaluate.

       a) To temporarily allow unfree packages, you can use an environment variable
          for a single invocation of the nix tools.

            $ export NIXPKGS_ALLOW_UNFREE=1

        Note: For `nix shell`, `nix build`, `nix develop` or any other Nix 2.4+
        (Flake) command, `--impure` must be passed in order to read this
        environment variable.

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

       Alternatively you can configure a predicate to allow specific packages:
         { nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
             "nvidia-persistenced"
           ];
         }

       c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
         { allowUnfree = true; }
       to ~/.config/nixpkgs/config.nix.
error: Recipe `dry` failed on line 24 with exit code 1

authors: PedroHLC wyndon

repo: chaotic-cx/nyx


text:
Add  blockchair.com and 3xpl.com to the block explorer

Hello team,
I would like to suggest https://3xpl.com and https://blockchair.com be added to the block explorer list.
Blockchair.com is a Universal blockchain explorer and search engine, and 3xpl.com is an ad-free, fast universal explorer.
I hope this is something the team is interested in.

来信均悉。

您好，我已经成功收到了邮件!尽快给您回复。

authors: martgil querqing xx77xx

repo: chaozh/awesome-blockchain-cn


text:
[Small RNAseq] show_guide has been deprecated. Please use show.legend instead.

[2016-06-09T13:59Z] Warning messages:
[2016-06-09T13:59Z] 1: `show_guide` has been deprecated. Please use `show.legend` instead.
[2016-06-09T13:59Z] 2: Non Lab interpolation is deprecated
[2016-06-09T13:59Z] Warning message:
[2016-06-09T13:59Z] `show_guide` has been deprecated. Please use `show.legend` instead.
[2016-06-09T13:59Z] Error in zero_range(from) : x must be length 1 or 2
[2016-06-09T13:59Z] Calls: ggsave ... train_cartesian -> <Anonymous> -> f -> rescale -> zero_range
[2016-06-09T13:59Z] Execution halted
[2016-06-09T13:59Z] tRNA for TN1605R1242-1

In the 'work/trna/sample_id/' folder, there are two pdf file.
one is  [~].hq_cs.mapped.top50covg.txt.top50_tdr.pdf
the other is [].hq_cs.mapped.top50covgPre.txt.top50Pre_tdr.pdf
first pdf file is ok, but second pdf is blank.
I think this problem is associated with above warnings message.
Can you check it?

Hi sorry about that. It seems this tool XXX is having problems with your data.
can you run Rscript $scripts/rCovgPlotPre.r $name.hq_cs.mapped.top50covgPre.txt for the sample you are having issues? That way you can send me the TXT file and I can create some exception for that case.
I guess the file is empty or maybe some other format due to edge cases or whatever and is giving this error.
thanks for the help debugging this.

In case you want to skip this, and mainly interested in miRNAs.
If you update to last bcbio development, you can not run the tools you want using expression_caller.
By default, and without any value, it will run just alignment to mirbase only. You can add trna, seqcluster or mirdeep2.
That way you can skip trna for now, until we solve this.
cheers

Hi,
i updated the tool to try to avoid that but it's difficult since I need the original file. If you can send me .hq_cs.mapped.top50covgPre.txt I can look closer.
Maybe the fix I did helps with that, but not sure.
Thanks for reporting this.
cheers

authors: hmkim lpantano

repo: chapmanb/bcbio-nextgen