Using DynaSim spike monitor interferes with dsPlot2 power plotting

(https://github.com/davestanley/MultiDimensionalDictionary/issues/86)

When using a spike monitor for, say, the voltage in a DynaSim simulation, the presence of the spike monitor seems to prevent dsPlot2 generation of at least power plots (and probably other types). This seems to be due to the fact that if you have a voltage state variable like E_v, then the spike monitor is named E_v_spikes, and it is grabbed and processed for the xp object. I'm not sure if the issue is that dsPlot2 sees multiple data cell arrays for both E_v and E_v_spikes when it accepts one, or something else. The error given is that the vectors aren't of the same size, and when you inspect the xp2 object right before the error, for the power plot, the corresponding E_v data is in its frequency domain form (e.g. x-axis length 2^N - 1), but the E_v_spikes data is in its time domain form (e.g. x-axis length 10,000). E_v_spikes may not be being sent to have dsCalcPower run on it, perhaps.

I have submitted a workaround for this issue in DynaSim's dsData2Table.m: DynaSim/DynaSim#535

Here is a simple script that should reproduce the issue:

```
study_dir = strcat(mfilename);

%% Setup simulation parameters and flags
time_end = 1000;   % in milliseconds
dt =        0.01; % in milliseconds

save_data_flag = 0;
save_results_flag = 1;
verbose_flag =   1;
overwrite_flag = 1;
parfor_flag =    0;

cluster_flag =   0;
cluster_matlab_version =   '2017a';
memory_limit =   '8G';
num_cores =      1;
qsub_mode = 'loop';
% qsub_mode = 'array';
one_solve_file_flag = 0;

% AES
dsPlot2_no_spikes = 1;

vary={
'E', 'Iapp', 20;
};

eqns={
  'dv/dt=Iapp+@current+noise*randn(1,N_pop); Iapp=0; noise=0'
  'vIC = -68'    % mV
  'vNoiseIC = 50' % mV
  'monitor v.spikes(-25, 1)'
  'v(0) = vIC+vNoiseIC*rand(1,Npop)'
};

s=[];
s.populations(1).name='E';
s.populations(1).size=15;
s.populations(1).equations=eqns;
s.populations(1).mechanism_list={'iNa','iK','ileak'};
s.populations(1).parameters={'Iapp',1,'gNa',120,'gK',36,'noise',5};

data=dsSimulate(s,...
    'save_data_flag',save_data_flag,'study_dir',study_dir,...
    'save_results_flag',save_results_flag,...
    'vary',vary,'cluster_flag',cluster_flag,...
    'cluster_matlab_version',cluster_matlab_version,...
    'qsub_mode',qsub_mode,'one_solve_file_flag',one_solve_file_flag,...
    'verbose_flag',verbose_flag,'overwrite_flag',overwrite_flag,...
    'tspan',[0 time_end],'solver','euler','dt',dt,...
    'parfor_flag',parfor_flag,'random_seed','shuffle',...
    'memory_limit',memory_limit,'num_cores',num_cores,...
    'dsPlot2_no_spikes',dsPlot2_no_spikes,...
    'plot_functions',{@dsPlot,@dsPlot,@dsPlot2},...
    'plot_options',{{'plot_type','waveform'},...
                    {'plot_type','rastergram'},...
                    {'plot_type','power','xlims',[0 100]}});
```

An update, my fix to this issue created an error in dsDemos_PlotData2, line 173:
Output argument "var_regex" (and maybe others) not assigned during call to "dsPlot2>getdefaultstatevar".
Error in dsPlot2 (line 289)
    chosen_vars = getdefaultstatevar(xp);
Error in dsDemos_PlotData2 (line 173)
dsPlot2(data_img);

Small variable naming issue

Fixed


Not working on Asus B450F, flashed directly to IC.

Windows 11

Motherboard: Asus B450F (first revision without flashback)
BIOS Version: 5404 (AGESA version to ComboV2PI 1.2.0.Ca) Update added on 2024/03
GPU: EVGA RTX 2070 Super Hybrid (flashed with FTW3 Ultra bios to raise power limits)
Rebar set to auto in BIOS
CSM Disabled
4G decoding enabled
Modded bios flashed directly to IC with CH341A, as the board does not support bios rollback, or even same version flashing.

Originally tried flashing with AFUDOS, which resulted in bricked board. Hence SH341A.
NvStrapsReBar reports no driver found. Even cleared CMOS and tried again.
I'm attaching bios file in case placement was off, but it was at the end of other DXE drivers.
bios.zip
I would try adding driver to older version of BIOS, ie 4007 which was 5000 series support + ReBar. I am using 5800X. But if I can I would like to avoid flashing IC any longer. As I've done it RAW on 3.3v without having a 1.8v adapter. Don't want to fry IC, maybe I'll get one later.
This is the last thing I'd like to get working on my PC, as I can't squeeze any more performance out of the GPU without modding voltage which is a nono for it's lifespan. Already pushing 2080mhz core, from original 1770mhz. Rebar would further bring it up in terms of performance.

could you try to flash the latest bios, and then dump that flashed bios here?


[Usage/Tutorial] Implement the Toy tutorial in Haskell

This seems like a fun thing to do -- especially given how convenient Haskell makes constructing front ends.
If you don't mind, I wouldn't mind working at this for a bit. I'll likely do it outside the repo, but then if it's useful -- it might be included as a small tutorial somewhere.

Sounds great to me! Let me know if you run into any issues. Though doesn't the Toy tutorial declare a new dialect? We don't have the necessary bindings to do that yet, but it's one of the features I would love us to have one day.

Sounds great to me! Let me know if you run into any issues. Though doesn't the Toy tutorial declare a new dialect? We don't have the necessary bindings to do that yet, but it's one of the features I would love us to have one day.

Yes, you're right. I'm also curious about how this might work -- ideally downstream users may not have to write much C++/tablegen to generate new dialects.
I've been a bit away from tracking MLIR development -- I'll peruse the discourse/discord to try and determine if this is possible now.
Last time I thought about this, I think it was my understanding that this functionality would be restricted to the tablegen build phase -- and that sort of functionality would not be exposed via a C API (for example), which might make it convenient to write bindings in other languages. I'm not sure if that has changed.

Yeah I'm not sure if there's a good way to dynamically generate dialects at runtime without invoking the C++ compiler. @jpienaar is that possible/on the roadmap? Interestingly enough I just had a chat about this with some other people yesterday...

You might be interested in the Open Design Meeting (ODM) talk:
2021-06-17: Defining operations, types, attributes, and dialects at runtime ; slides - recording
(Not sure links are working as expected, find it listed at https://mlir.llvm.org/talks/)
I think it may be worthwhile even with a little ODS/tablegen usage in there to show - the majority would still be in Haskell and might identify gaps in the generator here (well we know there are gaps 🙂)

Right, had a quick convo with Mathieu:

Mathieu Fehr
—
Yesterday at 1:19 PM
This is not possible at the moment as far as I know. MLIR requires you to have a C++ class for your operations, types, and > dialects, so you need to recompile when you change them.
However, I am currently upstreaming changes that would allow defining operations/types/dialects at runtime, and that should allow you to define them from other languages with the right C API.

I also recall Mehdi mentioned this at some point in the newsletter.
I think for now, however, I'm just going to develop the repo as a sort of "good starting point" for new compilers -- where dialect definitions are tablegen'd, and new dialect registration with context options are exposed through a C API. I think there's probably a consistent set of idioms for static dialect registration, and mostly this is the easiest thing to do now.

That sounds great. Also I should add (forgot to) some of the things fr.that talk has landed but not all.

@jpienaar Not sure if you know this, but do you mind pointing out how you handled header discovery / inclusion for inline-c?
E.g, I'm writing:
{-# OPTIONS_HADDOCK hide #-}

module Driver where

-- This is the toplevel entry point to the compiler.

import qualified Language.C.Inline as C
import qualified Language.C.Inline.Context as C.Context
import qualified Language.C.Types as C

C.include "toy/Interface.h"

Where I'd like to include calls to a C API. My gut here says that this is organized via Setup.hs -- but I wasn't sure.

You can extend the set of include paths by adding a include-dirs field to the library in your Cabal file. We can't hard-code this for mlir-hs, because the LLVM install location might vary which is why we do this in Setup.hs, but you should be able to get away with a hard-coded value for now.


/usr/share/dotnet/sdk/6.0.202/Roslyn/Microsoft.CSharp.Core.targets(75,5)

I am using the gitpod to build my project on github, the workspace image based on Ubuntu 20.04.
Dotfiles i am using to install the dotnet sdk was like: install dotnet sdk
Now it failed to build
gitpod /workspace/myproject (main) > dotnet build
/usr/share/dotnet/sdk/6.0.202/Roslyn/Microsoft.CSharp.Core.targets(75,5): error MSB6004: The specified task executable location "/run/containerd/io.containerd.runtime.v2.task/k8s.io/cb2b4159045b836c6bc7e28d0e8b48a396ada2dc020f01599bce0eb0f55d6d6a/rootfs/usr/share/dotnet/dotnet" is invalid. [/workspace/myproject/src/Common/myproject.Common.csproj]
I have tried the solution mentioned here, but it did not help
For some reasons, I did NOT want to add .gitpod.yml file in my repository like this (workspace-dotnet base image which was specified in .gitpod.yml)

Maybe the issue cause by mount image files. There is a workaround:

I don't know why in the repo folder execute dotnet command, then used "/rootfs/usr/share/dotnet/dotnet".

@zlzforever Thank you, this fixed my issue where I have been trying to run dotnet test within a Concourse task using the image mcr.microsoft.com/dotnet/sdk. It kept failing with the following error:
Failed to launch testhost with error: System.IO.FileNotFoundException: Path does not exist: /rootfs/usr/share/dotnet/dotnet (http://localhost:8080/#L647440ac:9)
File name: '/rootfs/usr/share/dotnet/dotnet'

Adding the following worked perfectly.
mkdir -p /rootfs/usr/share/dotnet
ln -s /usr/share/dotnet/dotnet /rootfs/usr/share/dotnet
dotnet test

Sharing in case anyone else out there searching for a fix for that error message may come across this.


Add Tooncrafter model

Thanks for this! Looks like CI is broken on main for unrelated reasons, I'll fix that shortly and ping back here when the image has built

Okay took a moment (was at re:invent this week), but this should be live now!


Refactor config

Refactor vitup for new fund 8 improvements:

get rid of Protocol::Http since client is only operating on https
split vit builder into config and settings builder
changed layout of config file.  Put settings into it's more meaningful categories
added options settings, instead of hardcoded vales

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

6 of 361 (1.66%)  changed or added relevant lines in 38 files are covered.
37 unchanged lines in 14 files lost coverage.
Overall coverage decreased (-0.5%) to 2.255%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

vitup/src/cli/start/advanced.rs
0
1
0.0%

vitup/src/cli/time.rs
0
1
0.0%

vitup/src/client/args.rs
0
1
0.0%

vitup/src/client/rest.rs
0
1
0.0%

vitup/src/mode/service/manager/service.rs
0
1
0.0%

vitup/src/mode/mock/context.rs
0
2
0.0%

vitup/src/mode/standard/controllers/wallet_proxy/spawn_params.rs
0
2
0.0%

valgrind/src/startup/server.rs
0
3
0.0%

vitup/src/cli/generate/data/perf.rs
0
3
0.0%

vitup/src/cli/generate/data/random/all.rs
0
3
0.0%

Files with Coverage Reduction
New Missed Lines
%

valgrind/src/client/mod.rs
1
0%

vitup/src/builders/helpers/qr.rs
1
0%

vitup/src/builders/helpers/static_data.rs
1
0%

vitup/src/cli/start/advanced.rs
1
0%

vitup/src/cli/validate/ideascale.rs
1
0%

vitup/src/mode/spawn/service.rs
1
0%

vitup/src/mode/standard/controllers/main.rs
1
0%

vitup/src/testing.rs
1
0%

vitup/src/builders/helpers/vote_plan.rs
2
67.92%

vitup/src/config/vote_time.rs
2
3.85%

Totals

Change from base Build<PHONE_NUMBER>:
-0.5%

Covered Lines:
92

Relevant Lines:
4080

💛  - Coveralls


Material UI with JSS example

Add Material UI with JSS server-side integration.

Hey, I'll merge this if we can get it up to speed with the new 5.0.0 version. :)

I'd be interested in using this example.
Did notice you have bad link to Material UI github repo, should be https://github.com/mui-org/material-ui and not https://github.com/ant-design/ant-design

@skirunman README.md updated
@tannerlinsley I'm pretty busy right now but I can try to do something about it in 2 weeks

Thanks!


Suggestion: Comment the code

I know not many people are actually going to try to help develop these works, but to help those who do and to get in the habit, Cary should write them. I might take on the task of writing a few myself, but it's not really that big of an issue.

Formatting the code (spacing stuff out) would also be nice.

Yeah, those dang }else{'s drive me nuts.

I formatted the code in #9

Tb lhis issue should probably be a project.


enable PF when already connected

The scripts were designed to be chained together, so multiple people have issues when they want to enable PF on their existing connections OpenVPN.
A separate script should be created to allow users already connected to OpenVPN to enable PF.

I got this working just testing it now. Running at just under 24hrs now. @g00nix do you still want a fork so you can compare the code?

@g00nix do you still want a fork so you can compare the code?

Yes, please create a fork so that I can have a look.

done!
https://github.com/steff2632/manual-connections

@steff2632 In the port_forward.sh script, you set bestServer_meta_hostname to <IP_ADDRESS>.  What is that IP?  Where/how did you find it?

@steff2632 I reverse engineered a solution for synology users that can be found here. It is designed to be setup to run in the Task Scheduler every 15 minutes. It should be easy enough to repurpose for using the port for anything else.

@steff2632 @steff2632 @iPherian  I like both of your approaches. Nice work!
I added a comment to the PR: https://github.com/pia-foss/manual-connections/pull/38#issuecomment-727232461

I closed that PR as the repo changed a lot in v2.0.0.
Now we have separate scripts to get a region and get a token, which should allow a smooth fix for this ticket.

I closed that PR as the repo changed a lot in v2.0.0.
Now we have separate scripts to get a region and get a token, which should allow a smooth fix for this ticket.


CRDs not upgraded and Fluent::GELFOutput' cannot handle arguments for <buffer ...> section

We're trying to get the flow directly to Graylog via gelf. I recently saw this feature was included in #705 and is also documented in the Outputs  section of the docs. Trying to upgrade to the logging-operator 3.4.12 using Helm v3, the created ClusterOutput/Output CRDs don't have the gelf spec.
error validating data: ValidationError(ClusterOutput.spec): unknown field "gelf" in io.banzaicloud.logging.v1beta1.ClusterOutput.spec`
After manually deleting the CRDs and reinstalling with Helm, the new CRDs now include gelf spec. Nevertheless, when using the ClusterOutput (or Output) in a ClusterFlow (or Flow), the config-check fail with the following error:
"config error file="/fluentd/etc/fluent.conf" error_class=Fluent::ConfigError error="this plugin 'Fluent::GELFOutput' cannot handle arguments for <buffer ...> section""
The Output definition is almost identical to the example in the docs (attached).
Additional context:
Installation command:
helm upgrade --install --wait --create-namespace --namespace logging logging-operator banzaicloud-stable/logging-operator
Environment details:

Kubernetes version: v1.19.4:
Cloud-provider: Rancher RKE
logging-operator version: 3.14.2:
Install method: Helm.
logs attached.

/kind bug
configcheck.log
gelf-clusteroutput.txt

As of the CRD issue: helm won't upgrade the CRDs for you automatically. You have to upgrade them manually or use a tool that does it for you, like ArgoCD.
Another option is to use https://github.com/banzaicloud/crd-updater

Thanks Peter! I'm relatively new with Helm and didn't know it.

I'm running into the same problem, output config is basicly only the following, with or without buffer section doesn't make a difference:
spec:
  gelf:
    host: <domain>
    port: 12201

and I'm getting the same 'Fluent::GELFOutput' cannot handle arguments for <buffer ...> section error. I edited the config by hand, removing the buffer section, and put it into the secret, relaunched fluentd and sure enough the config is accepted.
So I think the GELF plugin simply does not support configuring the buffer and this section has to be left out for this. The plugin doesn't set it as a configuration option either: https://github.com/hotschedules/fluent-plugin-gelf-hs/blob/master/lib/fluent/plugin/out_gelf.rb#L15

it would be good to have an option in the output yaml to not include the default buffer section


Warning: Cannot update a component from inside the function body of a different component.

Describe the bug
The warning Warning: Cannot update a component from inside the function body of a different component. appears with the latest React version 16.13 when using the example provided in the readme file.
To Reproduce
Steps to reproduce the behavior: Create a new component using the example code with React v16.13.0
Expected behavior
No warning :)
Information
This happens because the setList method is passed to the child component which results now in a warning.
More information in the react release notes: https://reactjs.org/blog/2020/02/26/react-v16.13.0.html
Versions
react-sortable = ^2.0.11
react = ^16.13.0

This is because ReactSortable is compiled into a function that explicitly calls
props.setList(newList, _this.sortable, store);

If this were source code, wrapping this call with useEffect would fix the issue:
useEffect(() => { props.setList(newList, _this.sortable, store); }, []);

Bad news is that according to https://github.com/facebook/react/issues/18178#issuecomment-592662192 this error may break the whole ReactSortable component in the nearest future...

After some digging, this comment describes the issue well: https://github.com/facebook/react/issues/18178#issuecomment-602323184

This happens because the setList method is passed to the child component which results now in a warning.

@digilist  I don't see anywhere in the code where setList is passed to a child component. Would you be able to elaborate on this?
It looks like the error may be coming from this LOC, within the constructor:
https://github.com/SortableJS/react-sortablejs/blob/5ec354869e95187137e9b3121dc68cf0b5d72217/src/react-sortable.tsx#L56
I hypothesize that we'll need to remove this from the constructor (because this may be during rendering), wait for the component to render, then call it somewhere else (componentDidUpdate, but only after first render).

If this was source code, wrapping this call with useEffect would fix the issue:

This component does not use hooks thus far. I'm actually trying to port this to hooks because it'll be easier to deal fix issues with.

@waynevanson sorry, I think I didn't express it well. I think it's coming from the callback that is passed via the setList parameter as it is used in the example here: https://github.com/SortableJS/react-sortablejs#function-component

Also running into this warning on ^16.13.0.

I also got this is, but was the list property, not setList. If you use useState or useSelector as your list you get this warning. If I do a <> clone with JSON.parse(JSON.stringify(listFromStateOrSelector)) the warning disappears.

@hgeldenhuys I was able to confirm that fixed it here, but oddly enough, when I reverted back to using the state directly, the error was gone. 🤔

I'm not quire understanding how to replicate the issue. Would someone be able to put this into a codesandbox? I want to make sure I'm not just changing code for the hell of it.

Probably the warning is gone with the latest react versions. In my application I do not see the warning anymore 🤔

@digilist I agree, now on 16.13.1 and not seeing the error.
https://github.com/facebook/react/releases/tag/v16.13.1
Likely due to this?

Revert warning for cross-component updates that happen inside class render lifecycles (componentWillReceiveProps, shouldComponentUpdate, and so on). (@gaearon in #18330)

Yeah.
It still pointed out a legit problem but we’ve silenced it for classes because it’s “too late” to fix there. People tend to treat constructors as places to do side effects in some legacy code.

I'll still address the issue. It's becoming obvious that setlist shouldn't be called within the constructor

@waynevanson if I can help you to refactor to hooks and functional components, just let me know. :)
https://codesandbox.io/s/affectionate-blackburn-7et9h?file=/src/App.js

I also got this is, but it was the list property, not setList. If you use useState or useSelector as your list you get this warning. If I do a "cheap" clone with JSON.parse(JSON.stringify(listFromStateOrSelector))
the warning disappears.

I tried working with a copy of the list as you say but it still doesn't update the component inner state after change index

Maybe not the best solution, but adding a setTimeout solves it for me for now.
<ReactSortable
  list={items}
  setList={(nextItems) => setTimeout(() => setItems(nextItems))}
>
  {items.map((item) => (
    <Item key={item.id} {...item} />
  ))}
</ReactSortable>

https://codesandbox.io/s/sweet-varahamihira-zdb19

will be fixed in #175 by adding hooks

@waynevanson Do you know when that update #175 will be set to release? I'm encountering this exact same issue and we are working through a final QA pass before we noticed this issue surface.
I would love to stay with this library since it's been the most straightforward to integrate into our builds.

Maybe this would help someone. I just left setList empty and used onEnd handler instead, and called a state update from it:
 <ReactSortable
      list={optionsVal}
      onEnd={(evt, sortable, store) => {
        if (evt.oldIndex === undefined || evt.newIndex === undefined) {
          return;
         }
        dispatch({ type: "OPTION_MOVED", from: evt.oldIndex, to: evt.newIndex });
      }}
      setList={() => {
         // just because it is required
       }}
     >...list...</ReactSortable>


BTI-3593 compatibility

Hi,
I am trying to use your code with the BTI-3593 gateway, but I get a "*#*0##" response when I try to enter monitor mode. I assume this is because of a wrong password? If so - do you know a way to reset to password to the default one?
Here is the full comms:
*#*1##
*99*1##
*#034342241##
*#202260480##
*#*0##
Thanks!

Uhmmmm, I don't know - and I can't find it online - the BTI-3593 but it seem to support the HMAC authentication mode... Probably you're right, the "open password" (the default value is 12345) is wrong and usually you can reset or set it via web interface on F454 and MH201 but I don't know how you can do with your device.


rect: Add GRAPHENE_RECT_INIT_ZERO

All other similar types have this initializer, and it
is quite handy.
Proposed changes:

Add GRAPHENE_RECT_INIT_ZERO

Benchmark results:
(Does not apply)
Test suite changes:

Add an extra check in rect_init test

Indeed useful.
LGTM :)


[WW-5388] Fixes a few issues in Servlet 6 file upload usage

removes duplicated validation messages where both interceptors have been used
defines a proper error message on a general file upload exception
removes generic definition in tests

Follow ups #861
Refs WW-5388

//cc: @burtonrhodes

Thanks for all your work here.  Limited testing on my dev machine looks good. I have uploaded this patch to a subset our server cluster and will report back with any issues I see.

Are we good here?

@lukaszlenart Every there seems to working well on my end.  This gets my approval


Update SC8180X (Asus Primus) firmware

Update firmware for sc8180x / Primus to the latest drop.

cc @adhudase


Upload build files and create metadata from the build

Describe the solution you'd like
A clear and concise description of what you want to happen.
I would like to upload a build file when you click “new app” just like Hockeyapp did. Then you upload the build app (apk, ipa, Appx, msix, or zip) then it starts getting metadata like name and icon then creates a new app from it. You have to do it manually and manually get the icon and the name then upload the build file from there.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
I litterly quit appcenter because of this.
Additional context
Add any other context or screenshots about the feature request here.

``


update docs for removal of multicast

Codecov Report

Merging #4953 into master will decrease coverage by -0.2%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             master    #4953     +/-   ##
===========================================
- Coverage     82.16%   81.96%   -0.2%
+ Complexity    10651    10618     -33
===========================================
  Files          1294     1294
  Lines         44528    44528
  Branches       5653     5653
===========================================
- Hits          36586    36497     -89
- Misses         5306     5380     +74
- Partials       2636     2651     +15

Impacted Files
Coverage Δ
Complexity Δ

...n/java/io/crate/exceptions/JobKilledException.java
0% <ø> (-66.67%)
0% <ø> (-1%)

...ration/collect/collectors/OrderedDocCollector.java
75% <ø> (-25%)
5% <ø> (-2%)

...a/io/crate/exceptions/ContextMissingException.java
81.81% <ø> (-18.19%)
1% <ø> (-1%)

...crate/executor/transport/TransportShardAction.java
77.5% <ø> (-12.5%)
8% <ø> (-1%)

...src/main/java/io/crate/jobs/NestedLoopContext.java
50% <ø> (-11.77%)
8% <ø> (-2%)

...te/executor/transport/SubSelectSymbolReplacer.java
68.88% <ø> (-11.12%)
3% <ø> (ø)

...io/crate/protocols/postgres/types/VarCharType.java
91.66% <ø> (-8.34%)
10% <ø> (-1%)

...o/crate/operation/projectors/SortingProjector.java
86.84% <ø> (-7.9%)
11% <ø> (-1%)

core/src/main/java/io/crate/types/ArrayType.java
73.84% <ø> (-7.7%)
24% <ø> (-2%)

.../distributed/TransportDistributedResultAction.java
74.24% <ø> (-7.58%)
8% <ø> (-1%)

... and 27 more

Continue to review full report at Codecov.

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


NTR for Sca1 protein complex

Hello:
I would like to request a new GO component term for a protein complex identified in Dictyostelium discoideum.
Name: Sca1 complex
Ontology: cellular_component
Synonyms: Ras signaling complex, Sca1 signaling complex
Definition: A multi-protein complex which functions biologically to control the RasC-TorC2 pathway and thereby regulate cell motility, chemotaxis, and the relay of the cAMP chemoattractant signal in Dictyostelium cells. The core components of the Sca1 complex are the Ras guanine exchange factor (RasGEF) Aimless, RasGEFH, protein phosphatase 2A subunit A (PP2A), and a scaffold protein designated Sca1, and also including the pleckstrin homology domain protein PHR and protein phosphatase PP2A-C2.
The position of this term in the GO hierarchy should be as a child of:
GO:0043234   protein complex
References:
PMID:20493808, A Ras signaling complex controls the RasC-TORC2 pathway and directed cell migration.
See Fig. 1K in the above reference for a diagram of the complex. Please let me know if you have any questions.
Bob Dodson

Hi Rob,
Could you please add the relationships to MF and BP (if applicable) so we can axiomise the terms more precisely?
We are looking for
capable_of <some_molecular_activity> and
capable_of_part_of <some_biological_pathway>.
A part_of <some_cellular_location> would also be helpful.
Is there no intermediate complex node this term could be a child of?
Many thanks,
Birgit
(Complex Portal curator at IntAct, EBI)

Hi Birgit:
Sorry to be behind the curve here, but I'm not completely sure what you're asking. Do you mean add MF and BP terms to those Dictyostelium proteins mentioned as part of the complex? If so, I am currently doing so (but have not yet finished).
Also, not sure what you mean by capable_of, capable_of_part_of, and part_of. Could you please explain further, or provide a link to a GO page explaining these so I can educate myself?
I am not aware of an intermediate complex node that this term may be a child of.
Pardon my ignorance, but I haven't submitted a GO complex NTR before, so I'm not sure of a lot of this.
Thanks for helping to improve my request,
Bob

Hi Bob,
apologies for leaving you confused (hopefully not dazed ;-) !). I don't know where in the world you are based but I had some detailed discussions with Petra at the GOC meeting in Geneva so she could give you some pointers as well.
I noticed the ticket is marked "editors-discussion" so I shall be brief (sort of!):
GO are trying to automatise more and more processes and as we define the "complex" branches/classes more we can do a lot of re-assignments automatically if we use relationships when creating the terms. The easy one is <part_of> = just state where in the cell or extracellular region/space the complex is found. This could be as loose as  or as precise as  etc...
<capable_of> links to any MF term the complex is related to, so if it's an enzyme then it would be capable_of some  or if it binds to X then if would be capable_of some .
<capable_of_part_of> would be the same for BP terms, e.g. <capable_of_part_of> . In your case probably
<capable_of_part_of> <GO:xxxxxxx positive regulation of cell motility> and
<capable_of_part_of> <GO:xxxxxxx positive regulation of chemotaxis>
if those terms exist.
Just list them as free text and the editor will copy them into the tool when creating the new term.
More detailed guidelines can be found here:
http://wiki.geneontology.org/index.php/Guidelines_on_'protein_complex'_terms#Adding_appropriate_part_of_relationships
Birgit

Hi Birgit:
Thanks for your response and for providing the link to the guidelines, both are most helpful. And yes, Petra and I can discuss further as well.
I'll try and answer a few questions initially, maybe add more later.
I see from reading your guidelines that the location of the complex may actually be our first problem. That is because the Sca1 complex has two been identified in locations: it is primarily located in the cytosol; however it is recruited to the plasma membrane (specifically to the leading edge membrane of chemotaxing cells) during chemoattractant stimulation. Exactly how it is recruited is unknown.
I have annotated the scaffold protein (Sca1) of the complex with 3 GO terms:
GO:0005829 cytosol
GO:0005886 plasma membrane
GO:0031252 cell leading edge (with annotation extension during chemotaxis to cAMP)
Regarding the MF terms for the complex, here is what I have currently curated in Protein2GO for 4 of the protein components in the complex:
Sca1 (DG1105)
GO:0032947 protein complex scaffold
GO:0005515 protein binding (binds to: gefA, aka Aimless)
GO:0005515 protein binding (binds to pppA, the protein phosphatase)
gefA
GO:0005088 Ras guanyl-nucleotide exchange factor activity
GO:0005515 protein binding (binds to: Sca1, the scaffold protein)
GO:0005515 protein binding (binds to gefH, another RasGEF)
pppA
GO:0005515 protein binding (binds to: Sca1, the scaffold protein)
gefH
GO:0005515 protein binding (binds to: gefA, aka Aimless)
So the authors have shown that Sca1 is the scaffold, and that it binds to both pppA and gefA, and also that gefA binds to gefH. Other proteins appear to be associated with the complex, but binding was not firmly established in this reference.  And there are other GO terms not mentioned above, eg. pppA is a protein serine/threonine phosphatase. Would you like me to provide here a complete list of all MF GO terms for all proteins in the complex?
With regard to BP, I think the main process is:
GO:0007265 Ras protein signal transduction
However, there are other developmental and regulatory processes which are affected by this (some of which I have currently only curated as strain phenotypes in dictyBase-not in GO), so my point is, I could include more processes if desired.
I am not sure if this complex is specific to dicty, or if it is found in other species.
Sorry for the long winded-response, I hope this answers some of your questions, but may raise others. Anyway, let me know and I'll be happy to provide more information as needed.
Thanks.
Bob

Thanks, Bob.
Location: use the one where it is functional. If it's in the cytosol because it gets released from the ER and recruited to the PM but acts on the leading edge then the latter is it's location as functional unit. It get complicated when you have things like nucleocytoplasmic shuttling complexes! They become part_of cell...
Activities:
Ignore protein binding - that applies to almost all complexes. Only use binding if there is a more specific target, such as the DNA regions in transcription etc.
<Sca1 (DG1105)
GO:0032947 protein complex scaffold
Ignore this as it's Sca1's function WITHIN the complex.
<gefA
GO:0005088 Ras guanyl-nucleotide exchange factor activity
Is this the activity of the complex?
If yes, then this will be its <capable_of> relationship!
And it also allows the complex to have the <is_a> relationship to "GO:0032045 guanyl-nucleotide exchange factor complex".
NB: If the complex has an activity but no specific related complex term exists in GO we would like to create one in order to make the hierarchy more granular. This can be done via TG templates (if you have been shown how to use them) or by requesting them in a GH ticket :)

pppA is a protein serine/threonine phosphatase. Would you like me to provide here a complete list of all MF GO terms for all proteins in the complex?

We only add the terms if the activity applied to the COMPLEX, so if the complex has phosphatase activity then "yes, please". In that case it will also have the <is_a> relationship to "GO:0008287 protein serine/threonine phosphatase complex".

With regard to BP, I think the main process is:
GO:0007265 Ras protein signal transduction
However, there are other developmental and regulatory processes which are affected by this (some of which I have currently only curated as strain phenotypes in dictyBase-not in GO), so my point is, I could include more processes if desired.

Happy to include all that have some sort of experimental evidence.

I am not sure if this complex is specific to dicty, or if it is found in other species.

A quick search in Uniprot or pubmed for related proteins might give you an idea.
Finally, the Def should then reflect the activities the complex is in involved in a little more detail.
Happy complex curation!
Birgit

Hi Birgit:
Instead of directly responding to all points in your previous comment, I'm going to address a couple, and then submit a revised request below-hopefully taking everything into account. First, the authors individually knocked out all the genes in the complex to assess phenotypes, so the GO BP and MF terms are all based on IMP evidence. The Ras guanyl-nucleotide exchange activity associated with gefA and gefH is the only activity shown for the complex. Phosphatase activity is not shown. So, my definition is weighted toward processes as opposed to activities, as this is what is emphasized in the reference. I included capable_of and capable_of_part_of terms after the definition. I also did a search in Uniprot and pubmed and did not find the complex in other species. The authors note that scaA does not have orthologs in other species (other than Dictyostelids), so it may be that this complex is specific to Dictyostelium.
Below is my revised request. Let me know if I've left out something and I'll follow-up.
Thanks,
Bob

Name: Sca1 complex
Ontology: cellular_component
Synonyms: Ras signaling complex, Sca1 signaling complex, ScaA signaling complex
Definition: A multi-protein complex capable of Ras guanyl-nucleotide exchange factor activity. The primary role of the Sca1 complex is to promote RasC activation. The Sca1 complex functions biologically to regulate cell motility, chemotaxis, and the relay of the cAMP chemoattractant signal in Dictyostelium cells. The core components of the Sca1 complex are the Ras guanine exchange factor (RasGEF) Aimless, RasGEFH, protein phosphatase 2A subunit A (PP2A), and a scaffold protein designated Sca1, and also including the pleckstrin homology domain protein PHR and protein phosphatase PP2A-C2.
capable_of: GO:0005088   Ras guanyl-nucleotide exchange factor activity
capable_of_part_of: GO:0046579  positive regulation of Ras protein signal transduction
capable_of_part_of: GO:0043327  chemotaxis to cAMP
location:  GO:0031252  cell leading edge
The position of this term in the GO hierarchy should be as a child of:
GO:0043234 protein complex
References:
PMID:20493808, A Ras signaling complex controls the RasC-TORC2 pathway and directed cell migration.

Hi Rob and Birgit,
I thought I'd comment since I claimed this ticket and have tagged it with 'editors-discussion'. My concern with the ticket is the specificity of the complex and the apparent generic function of the complex. In the long run I'm  not sure how easy it will be to keep things complete and consistent in the ontology as we go down the road of adding complexes like this. For example, if we find a mammalian complex that functions in the same process and we add it to the ontology, is there a way for us to identify that this complex should be related? What if we find that a very similar complex in subunit structure carries out a very different process? If you have any ideas, I'm all ears. I will let you know when this comes up on the agenda for discussion on a call.

Hi David:
Thanks for commenting. It is an interesting question and I guess does present concerns about future complex requests. Reviewing your guidelines at:
http://wiki.geneontology.org/index.php/Guidelines_on_'protein_complex'_terms#Adding_appropriate_part_of_relationships
I see that this complex seems to meet 7 out of the 8 rules in the guidelines. That is all except rule 2: Is the complex species-agnostic.
I again searched pubmed and don't see any further results of this complex in other species. That, and the fact that the ScaA lacks non-dicty orthologs, suggests that it is probably species-specific. There are also no follow-up papers from the authors that I can find, so this has not really been pursued much in Dicty. Some of the author's comments in the discussion section address one of your questions above "What if we find that a very similar complex in subunit structure carries out a very different process?" I'll just quote them:
"Although Sca1 does not appear to be evolutionarily conserved, we found that the Dictyostelium genome encodes a Sca1-related protein, designated Sca2 (DDB_G0267776). Interestingly, we have preliminary data suggesting that Sca2 also associates with two LisH domain-containing RasGEFs, RasGEF-F and RasGEFI (Wilkins et al., 2005), as well as the PP2A-A/C2 core enzyme (S. Lee, P.G.C., and R.A.F., unpublished data). We do not yet know which Ras proteins are regulated by RasGEFF and RasGEFI, but it appears that the Sca2 complex regulates different cellular functions than those controlled by the Sca1 complex. Thus, the existence of RasGEF-containing complexes extends beyond the Sca1 complex described here, although its presence in other organisms is unknown."
So back in 2010 there was some preliminary, but curiously still unpublished, evidence that a similar complex in dicty regulates different processes.
So where does that leave us? I see in the guidelines you state:
"Species-specific complexes don't belong in GO, but IntAct/Complex Portal and/or PRO can take them."
So if that restriction applies here, then maybe this request should just be rejected. But then if so, how should I curate these in GO? Do I just attach the generic parent term GO:0043234 protein complex to each of the proteins involved, and then use the with/from field to specify the other members of the complex? Or any other suggestions?
Thanks,
Bob

Hi Bob and David,

The Ras guanyl-nucleotide exchange activity associated with gefA and gefH is the only activity shown for the complex.

This means that they have shown an activity and you can use the more specific component term of GO:0032045 guanyl-nucleotide exchange factor complex for all participants.
We could even create the Ras-specific child based on the activity term. That would be ok as there are lots of Ras guanyl-nucleotide exchange factor complexes. This can be done in TG. That is what I would do if I was creating the entry in the Complex Portal.
David's concern is that if we add lots of very (species-)specific complex terms we inflate the ontology to the point where it becomes less meaningful. We have had these discussions for a while... In the past people would create such complexes and that's why there is so little granularity within the protein complex and marcromolecular complex classes.
David, let us know asap what the Editors prefer to do but it looks like it could be a fairly easy complex to create in the Complex Portal, then Rob can use our AC as annotation target for all complex members. We don't have any dicty complexes yet but that won't stop us creating some!
The Complex Portal is here if you'd like to have a snoop around: www.ebi.ac.uk/intact/complex
Birgit
PS: I wonder if @ValWood would like to chime in ;-)

Hi Birgit:
Thanks for your comment-just two follow-up points from me.
First, it may be important to note that the Ras guanyl-nucleotide exchange activity function is based on IMP evidence. That is, this activity for these proteins is inferred by me based on a process phenotype-which I have curated as positive regulation of Ras protein signal transduction. There is no IDA evidence that gefA and gefH have this activity. I think this is allowed annotation practice, but I am always hesitant to curate MF terms using IMP as ev_code.
Second, I completely agree with David's concern about too many species-specific component terms (same for MF and BP terms too). An inflated and unwieldy ontology is in no one's best interests. So if you'd prefer me to add this just to the complex portal instead, I'm fine with that.
Let me know, and in the meantime I'll try and poke around a bit in the complex portal if I have time.
Thanks,
Bob

PS: I wonder if @ValWood would like to chime in ;-)

I was avoiding it;)
I had a quick look last night to see if I could detect any conservation (especially for the scaffold subunit)...but Dicty proteins have all of those funny insertions, so I gave up. However the scaffold proteins in these complexes are notoriously difficult to detect orthologs for, even when the complexes are clearly conserved.
For example in this SIN signalling GTPase complex

we have been unable to detect the Sid4 component outside fungi although the rest of the complex is conserved throughout eukaryotes.
I didn't request a complex term for this, because it is difficult to define the boundaries of the  functional complex. Different components come together  at different stages....
There are always GTPase complexes operating upstream of TOR. This seems to be analogous to one of these:

However, it seems to be a partial complex before the functional unit is fully formed?
I am not sure that I would create a complex to represent a
"Ras guanyl-nucleotide exchange factor", because the exchange factor complex is presumably only functioning with  the GTPase it activates, so it seems that the GTPase is missing from the complex?
Perhaps there is not enough data to create a complex  term here?
Perhaps for signalling pathways we should  avoid creating complexes ?
So for example, historically I created this term for the cdc42 GTPase complex
http://www.pombase.org/spombe/related/GO:0071521
(I don't think I would do this now). Because the network is so complicated for these components it might not be very valuable.
This is the  network  automatically generated from GO data for this region. The purple connections represent the complex. The orange arrows represent "activities"

Instead now I would look for the information abut how  ras1 and scd2 are connected functionally" in this pathway and avoid the complex quagmire.
(I would still request a complex for a clearly defined, conserved, functional unit)

This is a GTPase complex operating upstream of Tor. Here is the author's schematic of this signaling pathway, also indicating that the GTPase RasC is not part of the complex the author's identified.

But this is just a "snaphot in time" when the complex if functioning as a GEF, it needs to be interacting with  the GTPase.

Agreed, this is just a snapshot in time. I assigned GO protein binding terms to just those proteins which the authors experimentally determined. In the diagram above that is Sca1, PP2A-A, Aimless and GEFH. In my definition of the protein complex in this request, I also stressed these same proteins and was using this figure above as my guide. The authors did not establish any interaction between RasC and the complex, and they don't really refer to RasC as being part of the complex, so I just naively followed their description.
So, should I have also included RasC in the definition as part of the complex then?
Sorry, I have not requested a complex GO term before and am not really so familiar with all of this.
Thanks,
Bob

I was avoiding it;)

But your input has been helpful!
Sounds like there are a lot of uncertainties. Rob's IMP annotations of the gene products to the specific Ras GEF activity should be fine if that's what has been shown in the paper.
Whenever I have the dilemma of changing compositions I try to drill down to the components that make up the complex at the point of it's biological activity (as far as we know at the time of curation!). That means some chaperones or scaffolding proteins will not be part of it but regulators may well be. I would then mention the 'floating' units in the functional description. And if there's uncertainty I mention it, too. A helpful thought is always to think of Reactome (I appreciate, there probably isn't one for dicty) and it's assembly reactions. It's the final product that counts! If you then have a fairly well defined complex you can use that as annotation object.

Sorry, I have not requested a complex GO term before and am not really so familiar with all of this.

It's a steep learning curve and we are still trying to find a sensible, workable solution. Complexes are - well - complex!!!

So sounds like this is a complex that should be added to the Complex Portal rather than to GO. But just for the sake of completeness, here is a revised definition for the complex including RasC. I've added rasC, but kept Sca1 in the definition as the complex is named after this protein in this reference. So should I request this to be added to the Complex Portal instead?
Thanks,
Bob
Name: Sca1 complex
Ontology: cellular_component
Synonyms: Ras signaling complex, Sca1 signaling complex, ScaA signaling complex
Definition: A protein complex capable of Ras guanyl-nucleotide exchange factor activity and formed by the association of the GTPase RasC with additional proteins. These include RasGEFA (Aimless), RasGEFH, protein phosphatase 2A subunit A (PP2A), and a scaffold protein designated Sca1. Additional members may include a pleckstrin homology domain protein (PHR) and a protein phosphatase regulatory protein (PP2A-C2). The Sca1 complex functions biologically to regulate cell motility, chemotaxis, and the relay of the cAMP chemoattractant signal in Dictyostelium cells.
capable_of: GO:0005088 Ras guanyl-nucleotide exchange factor activity
capable_of_part_of: GO:0046579 positive regulation of Ras protein signal transduction
capable_of_part_of: GO:0043327 chemotaxis to cAMP
location: GO:0031252 cell leading edge
The position of this term in the GO hierarchy should be as a child of:
GO:0043234 protein complex
References:
PMID:20493808, A Ras signaling complex controls the RasC-TORC2 pathway and directed cell migration.

@bmeldal  Would you request this complex as a GO complex? I still want to discuss it with the editors, but one solution would be to annotate the proteins to (GO:0032045) 'guanyl-nucleotide exchange factor complex'.
Would you include the Ras as part of the complex? I don't know why but that seems strange to me since it is the thing on which the GEF is acting.

It's a steep learning curve and we are still trying to find a sensible, workable solution. Complexes are - well - complex!!!

I will second that!

I'm on a group retreat Mon-Wed. I'll come back to it on my return. I haven't actually read the paper yet so I don't know the fine details of what's part of the complex, I have so far gone by what Rob summarised.
Speak to you soon!

Thanks for the suggestion. I have now added the GO term: GO:0032045 guanyl-nucleotide exchange factor complex, to members of this complex.
Birgit, it would be great if you want to read the paper-it would probably be good to have someone more experienced review this as I could have made errors. But, not trying to create more work for you!
Anyway, thanks for both of your comments.
Bob

@ukemi Would you include the Ras as part of the complex? I don't know why but that seems strange to me since it is the thing on which the GEF is acting.
This might be naive old text book knowledge, but I always thought that when  the GEF was active it was necessarily in a complex with the Ras. Now I think about it that is likely to be nonsense.

I have read the paper and to me it doesn't look like RasC is part of the complex but it's its target. The paper has enough info to curate the complex in the CP but I'll wait for the Editors to make their decision in general. As it acts on Ras, I would create the more specific "Ras guanyl-nucleotide exchange factor complex" as child of "GO:0032045 guanyl-nucleotide exchange factor complex" based on the existing "GO:0005088 Ras guanyl-nucleotide exchange factor activity".
@ukemi when will you have a decision from the Editors on this?

Protein IDs:
These 3 are straightforward:
Aimless/gefA = Q54PQ4 (GEFA_DICDI, Ras guanine nucleotide exchange factor A)
RasGEFH/gefH = Q8IS16 (GEFH_DICDI, Ras guanine nucleotide exchange factor H)
PP2A (PP2A-A) /pppA = Q54QR9 (2AAA_DICDI, Serine/threonine-protein phosphatase 2A regulatory subunit pppA)
UniProt/naming inconsistency:
PP2A-C2/pho2B = Q54RD6 (PP2AB_DICDI)
The UniProt name is "Probable serine/threonine-protein phosphatase 2A catalytic subunit B " while the paper describes it as a C subunit - does the UniProt entry need mending? Tbh, the protein name is C2 and the gene name is 2B, that doesn't help!
Only in TrEMBL:
If I curate this complex it would be nice to have these protein in UniProt (rather than TrEMBL)...
Sca1/scaA = Q54XY4 (Q54XY4_DICDI, Uncharacterized protein, UniProt gene name = DG1105) = dictyBase gene ID = DDB_G0277843, Name Description=Developmental Gene SCAffold protein
and
PHR/phr = Q1ZXQ0 (Q1ZXQ0_DICDI, Uncharacterized protein, UniProt gene name = DDB_G0270932) = dictyBase gene ID=DDB_G0270932, Name Description=Pleckstrin Homology domain RasGTPase-related domain

Hi Birgitt:
Thanks for your comments and for reading the paper. I looked into this a bit and found some problems with the protein phosphatase protein names which I have appended at the end. But as executive summary, I recommend the following as names for Sca1, pho2B, PHR, and pppA:
Q54XY4  gene: scaA, sca1; protein: Sca1 complex scaffold protein
(I have named gene in dictyBase as scaA, using sca1 and DG1105 as synonyms.
Q1ZXQ0 gene: phr; protein: Sca1 complex protein PHR
I also have alternate name: pleckstrin homology domain-containing protein
Q54RD6: gene: pho2B; protein: protein phosphatase 2A catalytic subunit 2
Q54QR9 gene: pppA; protein: protein:  protein phosphatase 2A scaffold subunit
Uniprot has this incorrectly named as a regulatory subunit.
Also in my definition above I also referred to pho2B as a regulatory subunit, but this is wrong. ("Additional members may include a pleckstrin homology domain protein (PHR) and a protein phosphatase regulatory protein (PP2A-C2)." This should be "protein phosphatase catalytic subunit (PP2A-C2)".
Let me know or if you have any questions or objections, or if this is not clear (I found it confusing!) and we can follow up from there.
Thanks,
Bob
Below  are notes on the protein phosphatase complex gene nomenclature, sort of off on a tangent with regard to this ticket and mostly for my own benefit. You can read if interested, but not necessary.
The nomenclature here is confusing, but here is what I think is going on:
Note that the authors of this reference refer to Janssens et al 2008 and mention that the protein phosphatase genes themselves form a complex typically consisting of 3 subunits:
-core (aka scaffold) structural gene (subunit A)
-catalytic subunit (subunit C)
-regulatory subunit (subunit B)
The authors have identified the core (pppA) and the catalytic (pho2B) subunits as being part of the Sca1 complex. They do not identify a regulatory subunit.
This becomes confusing because the dicty genome appears to contain 5 protein phosphatase complex genes: 1 core subunit gene, 2 catalytic subunit genes and 2 regulatory subunit genes.

protein phosphatase 2A scaffold subunit (dictyBase gene pppA), uniprot Q54QR9
(subunit A following Janssens)

protein phosphatase 2A catalytic subunit 1 (dictyBase gene pho2a), uniprot Q9XZE5

protein phosphatase 2A catalytic subunit 2 (dictyBase gene pho2b), uniprot Q54RD6
(subunit C following Janssens )

protein phosphatase 2A regulatory subunit 1 (dictyBase gene phr2ab), uniprot Q54Q99

protein phosphatase 2A regulatory subunit 2 (dictyBase gene psrA), uniprot Q54VB6
(subunit B following Janssens)

So, here I think the authors are calling pho2B the C2 subunit to distinguish it from the catalytic subunit of the pho2a gene (C1). Uniprot refers to these as catalytic subunit A and B, respectively. I think the protein name in Uniprot that is incorrect is that attached to Q54QR9. This is not a regulatory subunit, but rather a scaffold subunit. The names for these proteins in dictyBase is also confused and need to be updated.
I think use of "..subunit 1, or subunit 2" is less confusing for these, so I will change all dicytBase gene products to match those noted above (keeping names like PP2A-C2 as alternate names of course).

Bob,
Thanks for digging into the naming issue. Can I suggest you update dictyBase with the best knowledge to date and then send a correction request to UniProt (through their ) and ask them to update UniProt accordingly? They might have a script that updates the MOD entries with every release, I don't know the details.
I'd prefer not to spend more time chasing names as I'm no dicty expert (this is my first proper dicty interactions apart from chatting to Petra in Geneva!).
Birgit

As it acts on Ras, I would create the more specific "Ras guanyl-nucleotide exchange factor complex" as child of "GO:0032045 guanyl-nucleotide exchange factor complex" based on the existing "GO:0005088 Ras guanyl-nucleotide exchange factor activity".

This seems pretty straightforward to me since we have the molecular function term. So this will simply be a protein complex that is capable of the function. I'll keep this ticket on an upcoming agenda for editors just as an example, but I think for this specific case this is resolved if you are ok with it.

How do we make the new term while the TG logon is being moved over to GH? If @rjdodson can wait a few more days we might be able to use the TG template easing the editors' workload. He can then annotate the proteins to the new term. Or do you still need the specific CP term as annotation object?
@rjdodson have you got access to TG?

Hi Birgitt and David:
First Birgitt, I have updated these gene and protein names in dictyBase, then done as you suggested previously and submitted correction requests to Uniprot for the relevant genes.
And yes, I do have access to Term Genie. So if I understand correctly, I should wait a few days and then as David suggested request a new GO term "Ras guanyl-nucleotide exchange factor complex" using Term Genie. Is that the plan then?
Thanks,
Bob

That sounds great. I will keep this open until the TG term has been approved.

Hi Bob,
It looks like you can use TG now. Let me know if you are successful.
-D

Yes, TG looks 'normal' this morning.
Rob, let me know when you have created the new GO term and I will get on with adding it to the CP. However, it takes time for it to filter through our checking and release process before it appears in P2GO and we'll miss the last release before Christmas. It should come out in January.

And can you please let me know when you had a response from UniProt. It will take a bit of time so might not filter through before I make the complex but that doesn't matter.

Hi Birgitt:
Just tried adding this at TermGenie, but got the following error:
Could not commit, the user is not authorized to execute a commit.
I am logged in and have used Term Genie before w/o receiving this error. But I haven't used this tool recently. Any suggestions as to what the problem might be? Should I just submit this request as a NTR here?
Thanks,
Bob

Bob, did you give the developers your GH ID to add to the allowed users of TG? Mine was initially missing from the new list (even though I have been using GH here so my ID was known to the GO...!). There was an email to one of the GO lists. It was regarding the Noctua transfer to GH but I checked with Seth and the same should have applied to TG users so he added mine.
TG looked 'normal' this morning but I haven't got anything to commit right now (other than re-trying with your term) so I can't check if I get the same error. If it persists we have to ask the developers, there is another ticket for the transition work of the TG login process from Persona to GH.
I'm off for our Xmas lunch at 11.30 UK time (in <30min), then school pickup so won't be able to check progress until later this afternoon (small-people-induced tantrums permitting!).
Birgit

Hi @rjdodson - I added a comment reflecting this to the current TG login ticket.
Could you clarify how did you login into TermGenie? The system was recently migrated to github, and you didn't have a GH account recorded (just added this to our metadata for you)

Hi Birgitt:
I suspect that's the problem. I remember the email, but did not reply as I thought that was specific to Noctua users (which I also need to sign up for I think). Anyway, I'll see if I can find the email and reply so that I can become one of the allowed users.
Enjoy your holiday lunch and school-pickup, and I hope there will be no tantrums today.  Our kids get off the school bus at 5:00 pm (Madrid time), so I have some time to work in peace!
Thanks,
Bob

Hi Melanie:
I logged in with my user name: rjdodson and then my password. I did this yesterday, and found that I was still logged in this morning. Now looking back through emails from Seth to reply to that one. Or any other suggestions?
Thanks,
Bob

Leaving the login issues to @mcourtot. Hopefully you are all sorted by the time I get back :)

Hi @rjdodson: I suspect that as you didn't have an associated GH ID, the system reverted to trying to log you in using Persona (cc @nathandunn if he can confirm there is such a fallback?)
I added your GH in the users file  - if I remember correctly the server can take up to 6h to have this take effect. I'd suggest to try again later or tomorrow if that's ok. Sorry for the inconvenience, on the bright side this is very helpful to make sure we are migrating the TG login system properly, so thanks for all the feedback!

OK, thanks Melanie. In the meantime, I found the email from Seth and just registered to be a Noctua user. Just letting you know in case my having done so in some way interferes with what you just did.
What about passwords, will my old one still be valid?
Thanks,
Bob

Hi Bob,
The new system uses your Github account to authenticate you - so you will be asked to login into Github - attached how it looks like on my side.

I fill in my Github username and password and get access to TermGenie. So no more Persona username/password.
Noctua and TermGenie both read the same users.yaml file. it seems you were already registered as  Noctua user: https://github.com/geneontology/go-site/blob/master/metadata/users.yaml#L359 reads
  authorizations:
    noctua-go:
      allow-edit: true
    termgenie-go:
      allow-write: true

So no worries, there shouldn't be any conflict.
I'll write some documentation.

Thanks Melanie, I'll let you know later on if I have any problems logging in.

Good reminder that I should move the ownership app token to someone other than myself.  @kltm @cmungall  should it go to bebop, geneontology, something else?

You can indeed have org-level OAuth2 apps/tokens (also a note for @DoctorBud there).
https://github.com/organizations/geneontology/settings/applications
I'd go ahead and re-deploy at some point with a new app registered there.

Hi Birgitt:
Tried again to create this term and received a different error, pasted below:
Just to make sure I'm doing this properly, here is what I did. Maybe the error is caused by incorrect input on my part? If so please let me know.
Thanks,
Bob
Using TermGenie
I selected protein_complex_by_activity
Selected  Use template
For required activity I added: Ras guanyl-nucleotide exchange factor activity
For Literature reference I added: PMID:20493808
For DefX_Ref I added: GOC:rjd
Selected Verify Input
Selected the box to the left of the term and the Submit for Review box
Selected Submit
I then received the following error:
2016-12-02 09:53:45 CommitTerms service call failed Error: jsonrpc error[-32000] : Caused by java.lang.NullPointerException at org.obolibrary.oboformat.writer.OBOFormatWriter.write(OBOFormatWriter.java:634) at org.obolibrary.oboformat.writer.OBOFormatWriter.write(OBOFormatWriter.java:363) at org.bbop.termgenie.ontology.obo.OboWriterTools.writeFrame(OboWriterTools.java:52) at org.bbop.termgenie.ontology.CommitHistoryTools.create(CommitHistoryTools.java:56) at org.bbop.termgenie.ontology.CommitHistoryTools.translateTerms(CommitHistoryTools.java:137) at org.bbop.termgenie.ontology.CommitHistoryTools.create(CommitHistoryTools.java:122) at org.bbop.termgenie.ontology.OntologyCommitReviewPipeline.commit(OntologyCommitReviewPipeline.java:87) at org.bbop.termgenie.services.DefaultTermCommitServiceImpl$CommitTask.runSimple(DefaultTermCommitServiceImpl.java:426) at org.bbop.termgenie.ontology.OntologyIdManager$OntologyIdManagerTask.run(OntologyIdManager.java:62) at org.bbop.termgenie.ontology.OntologyIdManager$OntologyIdManagerTask.run(OntologyIdManager.java:58) at org.bbop.termgenie.core.management.GenericTaskManager.runManagedTask(GenericTaskManager.java:295) at org.bbop.termgenie.services.DefaultTermCommitServiceImpl.commitTerms(DefaultTermCommitServiceImpl.java:188) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.json.rpc.server.InjectingJsonRpcExecutor.executeMethod(InjectingJsonRpcExecutor.java:264) at org.json.rpc.server.InjectingJsonRpcExecutor.execute(InjectingJsonRpcExecutor.java:171) at org.bbop.termgenie.servlets.TermGenieJsonRPCServlet.doPost(TermGenieJsonRPCServlet.java:43) at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:119) at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:499) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:745)

Input looks fine. I think it's a server error. One of the developers will look at it, they are now tagged on the ticket so should see it :)
Birgit

@mcourtot emailed me, she's looking at it but the main developers are sitting at the West Coast so might take a few hours before they can check it.

Ticket is at https://github.com/geneontology/termgenie/issues/102

OK, thanks Birgitt and Melanie, I'll check back on this later today then.

Hi, just checking on this today. I added all terms as before and this seems to have worked.
The following terms have been created:
ID: GO:1905742 Label: Ras guanyl-nucleotide exchange factor complex

So at this point I just wait until the term becomes available.
Thanks for all of your help!
Bob

Fantastic, thanks for the update @rjdodson!

Great!

Birgit

The term was committed this afternoon. So I am closing this one.

Quickly reopening only to answer two questions from Birgitt:

I heard from Uniprot, and they have made the suggested annotation revisions I suggested to them-you requested that I let you know when I heard.

I don't really need the dicta-specific complex portal term. The new GO term is sufficient for me. But if you want to add it for whatever reason, and need me to contribute in some way, just let me know.

And again, thanks to all of you for your help!
Bob

Thanks, @rjdodson. I won't curate the dicty complex into the CP for now, I have enough on my to-do-list than to add stuff out of curiosity ;-)


Change minimal version of  pyproject-metadata

I updated the minimal version of pyproject-metadata because the versions < 0.7.0 have a bug on windows regarding the utf-8 char decoding.
I don't know if is it needed, because a a new installation already installs the 0.7.0 :man_shrugging:

I don't understand why pyproject-metadata bumped the required packaging version. The commit bumping the required version was intended to fix the tests to work with newer packaging releases https://github.com/FFY00/python-pyproject-metadata/pull/42/commits/1d8deff923fbe3a0d5141d04ef6defb3dcd4cb03 I don't see why changing the required version is necessary. @FFY00?

Isn't it simpler to adapt the test to accept the two error messages? I don't think testing the exact wording of the error message is the goal.

Yes, sure.

PR opened https://github.com/FFY00/python-pyproject-metadata/pull/44

Branch is merged, we can restart the tests!

I think I still need to release it. I was planning on doing some extra work on pyproject-metadata, do I did not tag a release immediately, but since we are blocked here, I probably should.

Ah sorry right you didn't tag it yet, I am sure this is no pressure so take your time! Thank you again 🙏

Sorry for the delay, I finally tagged a release. We should just change the version here to 0.7.1 and then we can merge.
Thanks @Abelarm!


Query API for Redis state store

What content needs to be created or modified?
Support for statestore query API in Redis requires additional components and steps.
Describe the solution you'd like
Details are here
Where should the new material be placed?

The associated pull request from dapr/dapr, dapr/components-contrib, or other Dapr code repos
https://github.com/dapr/components-contrib/pull/1488
Additional context

/assign

Resolved


"source not found error" when  executing "airflowctl start command"

When i run the following command:
❯  airflowctl start
I got this error:
Verifying Airflow installation...
/bin/sh: 1: source: not found
Error starting Airflow: Command 'source /home/peter/Desktop/Code/airflow/airflow_2.6.3/.venv/bin/activate && airflow version' returned non-zero exit status 127.
I installed pyenv and airflowctl on Ubuntu 20.04.6 LTS
Any clue about why  the "Verifying Airflow installation... process " use sh rather than bash?
Thanks in advance

This is now fixed: run pip install -U airflowctl :)

Going to close it but please feel free to re-open it if the issue persists with the new version


replaced ctlf with lf.

Looks like someone checked in a windows edited version of this file at
some point (probably when it was in cvs).  Generally git will handle end
of line conversions for you.  This just removes the ^M from the end of each line and nothing else.

Good catch! Thanks for your PRs!


Update the documentation (formulation and tutorial/how-to) with the use of a tighter formulation for storage assets

Update documentation on early work from Maaike's research to improve energy storage constraints. See attached PDF
SpineOpt-formulation-GM.pdf

Some initial questions to address with @g-moralesespana:

What if we don't have a limit $C, D$ for the investment variables?
We use minimum/maximum profiles instead of $\phi$. So, how does equation $(108)$ change?
Can we have only one formulation for with and without storage inflows?


Changes row/column order

Hi @ldybal - Thanks for the contribution.
BTW, I can't approve this PR as it is. If someone have big tooltip template, then definetly tooltip is hiding behind if set to "top".  See below
Tooltip with "Top" position ( 2 nd row )

but first row is not correct. Some of the tooltip is not showing up.

If you could split this into two,  I am happy to approve and merge the sorting one.

BTW, have you tested the sorting? ( Clicking table headers )

My example had hidden headers, but I just changed to "un-hidden" and the sorting by clicking on the column header still works

From: Sriramajeyam<EMAIL_ADDRESS>Sent: Tuesday, August 27, 2019 3:14 PM
To: yesoreyeram/yesoreyeram-boomtable-panel<EMAIL_ADDRESS>Cc: ldybal<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [yesoreyeram/yesoreyeram-boomtable-panel] Changes row/column order (#97)
BTW, have you tested the sorting? ( Clicking table headers )
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/yesoreyeram/yesoreyeram-boomtable-panel/pull/97?email_source=notifications&email_token=AK5OQJMD675QD7O47X3ZZYDQGVVHXA5CNFSM4IQETT52YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5IUSTQ#issuecomment-525420878, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AK5OQJJUIG5LNCGSI3U6NWTQGVVHXANCNFSM4IQETT5Q.

Sorry @ldybal  for the delay merging this.  Thanks for the contribution.


add link to replit run

i think it would be pretty cool to let people see how this code works (and edit / preview the library) right in their browser, without any manual downloads or installation. i'm thinking we can add a 'run on repl.it' button, which redirects to something like this:

i suppose if this is what we want, then we could possibly want the url to be owned by a more agnostic entity

Deferring decision to @sindresorhus.

Sure :)


mc pos controller:

zero attitude setpoint struct in between the loops

Is this tested?

@LorenzMeier No, we wanted to reproduce the error yesterday but we didn't get consistent results. I'll give it a go in SITL now. But I think it's generally a good idea for all modules, right?

Only if you are sure that you're setting all states again in that struct. Some modules just update the fields that need updating, and resetting would have terrible consequences. So you should not assume its generally a good pattern.

Wrong fix, need to take another look

Was a first attempt at #3795


Complete website with navigation

In this project I:

[ ] Modify the Awesome Books application to have:
- A Navigation bar.
- Three content sections:
1. Books list.
2. Add book form.
3. Contact info.

and when you click on any of the links, the main area changes to display only one of the three content sections.

Thank you!


soc: nxp: imxrt11xx: select CONFIG_HAS_MCUX_ADC_ETC

On NXP RT1170 SOC, ADC ETC exists but it can not be enabled because of dependency on HAS_MCUX_ADC_ETC. The expectation is when CONFIG_ADC=y, ADC ETC should be enabled automatically if it exists. Fixes:#81466

Hi @Raymond0225 , This is minor feedback, but if you push an update, you could improve the commit message subject. "driver: adc: kconfig" is very generic, and does not convey the change here. I think a better subject is
soc: nxp: imxrt11xx: select CONFIG_HAS_MCUX_ADC_ETC

thanks, done

the proper fix would be to make a DT binding and depend on that, do not use this legacy config
To my understanding, What I am doing is to fix the bug because of which adc etc driver can not be included.  when it comes to how to remove legacy config, it is another issue, you can make a proposal in another PR.


Suggestion: iterate over pages until max_results satisfied

Suggestion:
Currently the WikiHow.search() method returns only the first 15 results (i.e. first page) , even if the max_results parameter is > 15. After a quick look at the wikihow page, it seems that other pages are accessible by simply appending the following to the search_url:

&start=15 for results in page 2,
&start=15 for results in page 3
etc.

I will try to find a "dirty" fix in the next days, as I am only starting out with Python, but if you have a better solution in mind or have time for some guidance on how to implement this I can try to fix it directly in the class. :D
Background:
I am working on a question/answer language model and using the API for downloading quality training data from wikihow. It's already been super useful, so thanks a lot for sharing! :)

happy to review a PR if you want to give it a shot!

So, I added a few new functions generate_page_urls() and extract_result_links() that are called in the search() method of the wikiHowclass, I am having trouble testing it, would be great if you could take a look as I was getting strange results but when debugging everything seemed to work fine. I also wasn't sure where to place the functions, still in the process of becoming more object oriented, feedback would be highly appreciated :)
Should I push or simply share the file?


Routing issue

🐛 The bug
Can anyone tell me what I am doing wrong with routing?!?! I have a Nuxt3/Capacitor project, and I just want to navigate to a page. nuxt-link just makes the new page appear under the home page. When I add the  and  tags in the page, the pages don't render.... until I remove the app.vue. Then everything works as expected.... but the default.vue template is no longer rendering again.... which was part of a previous bug @danielroe helped me with.
There HAS to be a magical combination where I can get the routing working with the default.vue template. I can't figure it out.
🛠 To reproduce
routing broken with default.vue template:
https://stackblitz.com/edit/nuxt-starter-4c373a?file=package.json,nuxt.config.ts,pages%2Findex.vue,pages%2Fnew-page.vue
routing working, without default.vue template:
https://stackblitz.com/edit/nuxt-starter-6z9yld?file=temp_app.vue,pages%2Findex.vue,pages%2Fnew-page.vue
🌈 Expected behaviour
Using a nuxt-link component, navigate to(), or router.push() should just route to the desired page as normal.
ℹ Additional context
No response

after another day of playing around... it seems like having this as my app.vue file seems to be working.
<template>   <ion-app>     <NuxtLayout>       <NuxtPage />     </NuxtLayout>   </ion-app> </template>

@bonomite check out the docs 👇

you should avoid using  or

I've found router.push to navigate OK but not preserve params.


Add sdlToSchema to public API

Thanks for this tool!
Motivated by https://github.com/graphql-kit/graphql-voyager/issues/238#issuecomment-1588570268, this strawman exports sdlToIntrospection.
A concrete use case for this is when a live server is not readily accessible, but an SDL is available.
A more sweeping approach would be to also ship an intermediate lib such that a downstream could:
import { sdlToIntrospection } from 'graphql-voyager/lib/utils/sdl-to-introspection';

@bollwyvl you need to rebase. In version 2.0 the function is now sdlToSchema

@LunaticMuch thoughts?

@LunaticMuch Current changes are correct. Can you please merge it?
@bollwyvl FYI

Hey, thanks a lot!


Enable lexical binding for all Emacs Lisp source files

Following the Emacs Lisp Style Guide and the Emacs Lisp Coding Conventions all code should use lexical binding.
See

https://github.com/bbatsov/emacs-lisp-style-guide#source-code-layout--organization
https://www.gnu.org/software/emacs/manual/html_node/elisp/Coding-Conventions.html

Will this cause any issues with the test runner?

If the ci.yml workflow doesn't break I can't see any reason why the same test runs inside of the container should break.
The tests passing means that the test code doesn't depend on dynamic binding.
This will also not break existing solutions as we only change the binding behavior for our code and the template. This is a per-file/per-buffer setting, so we can't change the solution behavior, even if we wanted.
I've also added a PR that changes the tests in the test runner repo to use lexical binding: https://github.com/exercism/emacs-lisp-test-runner/pull/53

We could look into running the tests for this repository in the Docker container of the test runner.
This should make the test setup more robust.
I think we could use Docker caching at least for this repository (still experimental though).
@ErikSchierboom I checked a few other tracks (java, ruby, js, rust) and they don't seem to do this. Maybe it's not worth the extra CI runtime?

@ErikSchierboom I checked a few other tracks (java, ruby, js, rust) and they don't seem to do this. Maybe it's not worth the extra CI runtime?

🤷 I noticed that you updated the test runner's test cases and that those passed. That makes me happy to merge this.


[WIP] Display and edit status of a service

This adds examples for what the edit service page should look like if:

The service is visible on the Marketplace (suppliers can change its status)
Nicole has removed the service

It shows both of these things on one page, where in reality it would be either/or.

Removed
Visible or hidden

It also adds the service status to the supplier's page (formerly the 'dashboard'):

I don't know if we're planning on displaying expired services at all?  As far as I understood it we're just keeping them for future reference if needed to look up by us for legal reasons (e.g. to check T&Cs for ongoing contracts from expired frameworks, as we had recently).  As far as the frontend apps are concerned though I don't think they exist - there is no API endpoint that will return an expired service.

Using ‘edit’ to view a service that has been removed (and can't be put back by the user) sets up the wrong expectation. We could use a different term when its been removed, e.g. ‘details’ for removed services (keep ‘edit’ when you can change the status of a service).

I think it would be clearer if it said ‘Name of Service has been removed'. Possibly with a reason or by whom eg. ‘Name of Service has been removed by Admin because it contained the word ‘Agile’’. And date it was removed also.

@ralph-hawkins We can't do date/reason at the moment. And I don't think Name of service makes sense when that line's going to appear right underneath the service name.

I think 'enabled' services need bolding and some colour - the same as Published and Disabled. Maybe some shade of amber, like traffic lights?
Although Disabled should be a rare thing for suppliers to see - so maybe user red/green for the main published/unpublished distinction, and do something else for Disabled?
I think the term 'enabled' will be very misleading for suppliers - we should decide some different terminology for the frontend to display.

Happy to merge this now and iterate these things later though, if there is user research input needed to settle things.

@TheDoubleK addressed that unstyled text in ab19455. I think the plan is to get this stuff working, and then do a database migration so that the correct terminology is used from the API through to the frontend. This three statuses that @superroz and I came up with were:

Public
Private
Removed

@quis I'm not suggesting  'name of service has been removed' appears under the service name but we look at that page including the heading and make it read a bit more easily

Waiting on this pull request to be merged in digitalmarketplace-utils
https://github.com/alphagov/digitalmarketplace-utils/pull/31

A Supplier's Services are listed in the Supplier dashboard.  Removed Services have a Details link instead of an Edit Link.

Changing a Service's status is fairly straightforward.  Buttons have been repositioned horizontally.

Trying to sneakily change your Service's status to one that isn't permitted returns an error.

After successfully updating a Service's status, user is returned to the dashboard view and there's a notification near the top confirming the change that was just made.

Sorry for the dumb formatting of that last comment -- the screenshots aren't too clearly separated from GitHub's interface.

Looking excellent to me now. Would be good to get this incorporated before merging: https://github.com/alphagov/digitalmarketplace-frontend-toolkit/pull/67

I don't think the frontend needs to echo the database values for status? Our DB statuses are for consumption by the apps, not for showing to users.  I'm not sure "Public" vs "Private" will make sense to suppliers - why would they want a Private service?  Published/Unpublished still seems better to me from a supplier point of view, though still not ideal.
Just to check - is this still a WIP or is it ready to go?

This is no longer WIP.

I can't get this to run locally - I've got master API running, have pip installed, npm installed, run the frontend build, etc. but when trying to update a service status I get a 400 error at a weird redirect URL e.g: http://localhost:5003/suppliers/services/%5Bu%275-G4-0149-213%27%5D - looks like the URL encoding is going wrong somewhere?

Have tried it with a G6 service and that gives the same error at this weird URL (service id=1122334455667788): http://localhost:5003/suppliers/services/%5B%271122%27%2C%20%273344%27%2C%20%275566%27%2C%20%277788%27%5D

@TheDoubleK Fixed in 4450c4f

I've found another bug here - a logged-in supplier can change the status of any service, whether or not the service belongs to them.
To reproduce:

find a service ID for a service belonging to "Supplier 1"
log in to the supplier app as "Supplier 2"
go to /suppliers/services/
turn off your rival's service!

To fix this the GET and POST endpoints for /services/<string:service_id> both need to check that the service ID belongs to the logged-in supplier.  If it doesn't then it should probably return a 404 (but I could be persuaded 403 if you prefer).

Still gonna write some tests, but tried to address your concerns, Kev!

I've added some tests for the admin app update status routes here (in a pull-request) - I'm not saying they're the greatest ever, but might be worth a look at to get ideas for the update status tests on this story.
https://github.com/alphagov/digitalmarketplace-admin-frontend/blob/admin_deactivate_a_service/tests/app/main/test_views.py

Finished all my functional tests and rebased off of the master branch so if we like the look of the tests we should be good to go.

:+1:


fix: properly check if there are errors with ViewModelBase.HasErrors

GitHub Issue: #27
Proposed Changes
Bug fix
What is the current behavior?
ViewModelBase.HasErrors checks if the dictionary has anything in it.
What is the new behavior?
ViewModelBase.HasErrors checks if the dictionary contains errors for any property name.
Checklist
Please check if your PR fulfills the following requirements:

[x] Documentation has been added/updated
[x] Automated Unit / Integration tests for the changes have been added/updated
[x] Contains NO breaking changes
[ ] Updated the Changelog
[x] Associated with an issue

I did not update the changelog, since it looks pretty empty. Should I?

I did not update the changelog, since it looks pretty empty. Should I?

It's fine like this :)

/azp run

/azp run nventive.Chinook.DynamicMvvm

/azp run nventive.Chinook.DynamicMvvm


fix(ansible): moving curl install to prepare

Closing - need to revisit in the future.  This change was to fix an accidental removal of curl from demo-deployer images.  Some of the recipe tests use curl to validate installations and were failing for the command not being found; spirit was to install curl as part of the role that uses curl to validate instead of relying on the host having the installation.


Users

[ ] Registration form
[ ] Login form
[ ] Confirmation form
[ ] Reset password email only forn
[ ] Reset password form

Registration workflow (email)

User goes to reg form and submit data:  username/email/password (optional if user wants to receive activation code everytime)
Create new user with enabled=false
Create new activation token
Send link with token via email
User clicks and we change enabled=true
Delete activation token

Registration workflow (telegram)

User goes to reg form and submit data:  username/telegram/password (optional if user wants to receive activation code everytime)
Create new user with enabled=false
Create new activation token
Showing message: "please send /start  to @our_bot"
User sends message
We receive and control if user matches or not. If OK - setting enabled=true
Delete token

Reset password flow (email):

User clicks reset password and inputs email
Create new reset password token
Sent it
User click on it
Checking token and showing reset form
Handle form

Reset password flow (telegram):
TBD
Reset Token expiration
expired tokens should be deleted by  cron job
Confirmation Token expiration
expired tokens should be deleted by  cron job
Non-activated users
also should be deleted by clean-up cron job
Idea: token/type/expiration instead of table for each token type

Nice one https://kamer.dev/spring-boot-user-registration-and-login/

inner_user_id, oauth_client, oauth_user_id

https://gist.github.com/kyberorg/8f539616132c318d07bbf32c63839848


doc/play: make fib.go example start with 0?

By changing go/doc/play/fib.go line 8 from: a, b := 0, 1 to a, b := 1, 0 we get a more flexible example:
By definition the sequence starts with 0 or 1.
With this change we can simply switch if we want to include 0 or not by just changing the returned variable in line 11 between a or b. (a will include the 0. b won't)
Code: https://play.golang.org/p/lSHLBunWAB

The examples are supposed to give people a flavor of Go and let them start tinkering. They seemed to have worked. :-)
Is your bug report that the sequence should start with 0?

No, it's not a bug report. It is an suggestion to improve the example

I'll let @broady decide.


Fix logout

Coverage decreased (-0.03%) to 78.435% when pulling 4f0aa0597121f3a5fb8519d061b889269edcbe8e on eatonphil:fix-logout into 9dad515929c173a68c63d4038dca9adc0829fb41 on linode:develop.


Temp folder not freeing up

The temp folder (or cache folder on Mac) gets increasingly bigger when processing a lot of videos at the same time.
It SHOULD cleanup after itself, and not leave the working/temp files there.
Currently i have to do it manually when processing ~20k files

I implemented a feature that automatically takes care of this issue in my fork:
https://github.com/Demmenie/videohash2
https://pypi.org/project/videohash2/


Write a PatchClampExperiment data model

Right now it will just use the fields from the ChannelWorm data model.

Selecting attributes related to discussion happening recently in #8


image: multi-manifest index support

Closes https://github.com/anchore/stereoscope/issues/175
The code works and ready to be merged after a review.  Any feedback related to the API design is welcome.

I'm curious on your thoughts on how this might get wired up in syft/grype?

I'm unsure about this as well.  I looked into integrating it into Syft, but the code path the Image type traverses is massive which would require a lot of refactoring or re-thinking of how the integration would work.  I know there has been a discussion around how SBOMs would work for multiple images, but I think that's as simple as treating each image in the index independently as while indexes are used and designed for supporting multiple architectures, the images themselves can still be completely different and contain different dependencies (especially if cross-compiled).  So I guess being able to run Syft and have it generate SBOMs per image in an index would be the best approach, maybe with the ability to add a reference in the index to the SBOMs (assuming they are pushed to a registry).

Or maybe this is specifically an API update to be used elsewhere, which is also alright.

My main goal with this was to get support added in Syft and Grype for image indexes.  Just thought I would start here seeing as it is a prerequisite to be able to add support for image indexes in those consumers.

I think the best way to reconcile this is still allow both code paths, but enhance the GetImageFromSource to take an additional Option which enables automatic resolution to a single image (or error) from an index.

So we would keep the new API as is, but modify GetImageFromSource to call the ProvideIndex API (if supported by the provider), and have it run a filter based off of the OS and architecture, throwing an error if more than one image is matched, but otherwise will just return that one image that matches the filter.
So we could add a WithPlatformSelector option (there is already a WithPlatform option, but it seems designed to set the platform on the image, rather than to be used to filter an index).  Re-use the same platform name parsing logic, then use that to filter the images returned by ProvideIndex.  Or instead of just adding individual selector options we could do a WithStrategy or WithSelectorStrategy option which uses a struct to allow more advanced filtering down the road, rather than just a single platform.
What do you think about those ideas?

Also would you like help getting this across the finish line?

I'm fine to make the changes in Stereoscope assuming we can agree on a good API design for this.  My main problem is figuring out the next steps after this is merged relating to adding support in Syft and/or Grype for this.  Some guidance on where to start an integration code-wise, or having a discussion about how the integration should work would be appreciated.

Linking the related syft issue here https://github.com/anchore/syft/issues/1683

👋 found my way here after hitting some syft issues generating a SBOM based on my multiplatform OCI manifest. Interested in the plan here
I agree with @matthewpi that a fanout approach - one SBOM per image:platform - is probably the best short term fix.  That's going to be my workaround, if I need to put one in place, and I recently left similar feedback in https://github.com/anchore/syft/issues/1683

I think the best way to reconcile this is still allow both code paths, but enhance the GetImageFromSource to take an additional Option which enables automatic resolution to a single image (or error) from an index. This could take additional inputs such as platform into consideration. Passing this "strategy" as an option would at least enable the default path for folks interested in a single image when provided a reference (and also allow folks interested in all of the images behind the index to also have that without polluting the single-image path).

I added the ability for the OCI providers to take into account a platform selector like a few of the other providers, alongside rebasing on top of the latest main changes.  Do you think this satisfies the "strategy" option or should a more generic solution (such as a user-provided filtering function) be used instead?
There are two TODO comments in the latest commit, asking two interesting questions.

In the event of no platform selector and an image index with no identical digests (a recent change that allows indexes referring to the same manifest digest multiple times to be treated as a single image), should we default to the current OS rather than just throwing an error?
Should we throw an error in the edge-case where multiple manifests in an index may be matched by the platform selector?

The other thing that clicked into my head about #2, is a image index can refer to another image index and I believe other media types that are not manifests or images entirely.  Should we be ensuring that these get filtered out?


fixes data race that sometimes causes a badger nil panic due to a race on the transaction

the transaction is accessed by the iterator closing deferred function as well as by the queries goroutine loop
most of the time this probably doesn't race, in my tests it was hit and miss but adding a mutex to accesses to the txn within the View iterator eliminates the races
this race can cause the QuerySync call in the relay_interface.go to fail to receive all of the transactions due to the race sometimes happening and failing to send a result back over the channel, this should not happen now

note that there still appears to be one more issue to address, it is sending back nil events now which are causing my relay to panic
going to check for nils before the channels are loaded and add this patch

this should be the complete patch, you still have failing tests in the sql drivers

This is fixed in 830d51e96d46f62f1049ff530f15abef8cf0779a.

This is fixed in 830d51e.
Correct usage of badger requires not reusing transactions across goroutines and I hadn't realized that. The mutex couldn't be a workaround, but it's better to do as they say.

yes in my codebase now i have removed the goroutine inside the transaction completely


Aston Martin MED17.7.x

It is very similar to Mercedes MED1775
Could you please e-mail me and we will exchange Discords to speak more quickly/freely? I have 85% of this done with your code (parameters) ready to go from a bench read/putting CBOOT for Aston Martin in GHidra but I am stuck on one part.

If possible, I would prefer communicating via issues here, as I only have a short/irregular window in my schedule to tend to my OSS projects. Unfortunately this also means that I do not have the ability to tend to near-realtime communications like Discord — sorry about that.
If sensitive files are involved, you can check  this thread for an email address. Please let me know if you send anything as that inbox is normally unmonitored.

good luck 👍