Can't access SCB or device peripherals

I just got into pyOCD, and it works well for accessing RAM and Flash on my nRF52840.
Problem
When using the cortex_m target, I am also able to access the SCB at 0xe000ed00, but not when using the nrf52840 target. Reading peripherals and SCB are key when debugging odd behaviours on low level drivers, or tracking down fault cases.
Steps to reproduce
To reproduce the issue:

Connect to any Cortex-M using a proper target. For example: pyocd gdbserver -t nrf52840
Start gdb and connect: target remote localhost:3333
Read system control block. For example, CPUID registers, as specified in ARMv7-M Architecture Reference Manual: (gdb) x 0xE000ED00

Or:
Use a tool like https://github.com/pengi/arm_gdb

Connect to any Cortex-M using a proper target. For example: pyocd gdbserver -t nrf52840
Start gdb and connect: target remote localhost:3333
Read SCB: arm scb

What I expect to see:
Printout of the register, for example:
(gdb) x 0xe000ed00
0xe000ed00:     0x410fc241

What I see instead:
(gdb) x 0xe000ed00
0xe000ed00:     Cannot access memory at address 0xe000ed00

Analysis
I tracked it down to the cortex_m target is having the default memory map according to:
    def _create_default_cortex_m_memory_map(self) -> MemoryMap:
        """@brief Create a MemoryMap for the Cortex-M system address map."""
        return MemoryMap(
                RamRegion(name="Code",          start=0x00000000, length=0x20000000, access='rwx'),
                RamRegion(name="SRAM",          start=0x20000000, length=0x20000000, access='rwx'),
                DeviceRegion(name="Peripheral", start=0x40000000, length=0x20000000, access='rw'),
                RamRegion(name="RAM1",          start=0x60000000, length=0x20000000, access='rwx'),
                RamRegion(name="RAM2",          start=0x80000000, length=0x20000000, access='rwx'),
                DeviceRegion(name="Device1",    start=0xA0000000, length=0x20000000, access='rw'),
                DeviceRegion(name="Device2",    start=0xC0000000, length=0x20000000, access='rw'),
                DeviceRegion(name="PPB",        start=0xE0000000, length=0x20000000, access='rw'),
                )

This is also how at least ARMv6-M, ARMv7-M and ARMv8-M specifies it (exception is the split PPB area in ARMv8-M, but should work anyway I think). And those applies to all Cortex-M0 to Cortex-M33
When I checked target_nRF52840_xxAA.py, it only specifies:
    MEMORY_MAP = MemoryMap(
        FlashRegion(    start=0x0,         length=0x100000,     blocksize=0x1000, is_boot_memory=True,
            algo=FLASH_ALGO),
        # User Information Configation Registers (UICR) as a flash region
        FlashRegion(    start=0x10001000,  length=0x400,        blocksize=0x400, is_testable=False,
            algo=FLASH_ALGO),
        RamRegion(      start=0x20000000,  length=0x40000)
        )

which looks like the correct areas for flash and RAM, but it is missing the DeviceRegion areas specified in the cortex_m. When looking at it, it seems to be missing in all targets even.
I have made a workaround by adding a user script ~/.pyocd_user.py that ads the most important regions I'm missing, that I load with --script ~/.pyocd_user.py. But it is still a workaround in my opinion:
def will_connect(board):
    target.memory_map.add_region(DeviceRegion(
        name="Peripheral",
        start=0x40000000,
        length=0x20000000,
        access='rw'
    ))
    target.memory_map.add_region(DeviceRegion(
        name="PPB",
        start=0xE0000000,
        length=0x20000000,
        access='rw'
    ))

So the cortex_m target shows it is possible to use the DeviceRegion for access. But I think it's a generic problem that it is not available for any targets, since they are totally valid regions that should be available from the debugger.
Possible solutions
I'm thinking two options:

The areas are added to all different targets
The areas are added within coresight_target constructor to the memory map, since it's valid regions according to Architecture Rereference Manuals

I've only used pyocd for a few hours now and yet only one target, so not sure about the best solution to go for it. What are your thoughts?
References
"System Address Map" in:

ARMv6-M https://developer.arm.com/documentation/ddi0419/latest/
ARMv7-M https://developer.arm.com/documentation/ddi0403/latest/
ARMv8-M https://developer.arm.com/documentation/ddi0553/latest/

Also, I'm happy to fix it and make a PR for it. Just don't exactly know what preferred solution would be so far.
Personally, I'm leaning towards making coresight_target´ add the default DeviceRegions that are not overlapping any areas specified by the target. So if a target specifies a DeviceRegion` within a peripheral area, then that won't be added for example.
Or even do that for the other regions that are not DeviceRegion?

Thanks for all the details!
There are a couple roots to the problem here. First is that, by default, gdb restricts access to the memory map supplied it to (thus causing the gdb error you see). Second, CMSIS-Packs don't normally include device regions in the memory map.
The standard solution for this is to issue set mem inaccessible-by-default no to gdb, so it ignores the supplied memory map and allows all accesses to be sent to the remote server (pyocd), and on to the target itself. Then the target just faults for truly invalid accesses.
I've also thought about inserting a region or regions for Device memory that isn't covered by the target's memory map. The problem is, it covers a 512 MB or more of memory. There are sometimes peripherals or memory you'd want to access not inside Device (mostly QuadSPI, DRAM, boot ROMs, and alias regions). The vendor PPB region covering the 0xf000_0000 range would also have to covered. So it's simplest to handle it on the gdb side.
That said, I'm not entirely opposed to insertion of Device regions. But it probably can't be the default behaviour (so controlled with a session option).

Hi, thanks for the reply
I've been thinking a bit about this, and I've realized I don't know enough about what should be included in the pack files at this point. Something I have to read up on.
There are two primary areas I'm thinking about.
The first is the System Control Space, (looking at ARMv7-M now) addresssed from 0xe0000000 to 0xffffffff, which I think the first 1MB of is used for the Private Peripheral Bus / PPB. After that comes Vendor_SYS. Question is, will the Private Peripheral Bus, including SCB, NVIC and such, ever be part of the pack file?
Second is the peripherals block, which is specified in the ARM reference manual as interval 0x40000000 to 0x5fffffff. For what I undertand, not specified in ARM reference manual, but matches most implementors manuals I've seen, they are organized by the peripheral id. Does this area contain a proper memory map, or is it just to access the peripherals by having some bits mapping to the peripheral ID number. Thus, is this part of the pack files?`
Since if they are not, then they will need overrides for every installation to be useful, even though they might not be technically correct to have. But I think it then comes down to first experience of the product, compared to being technically correct. It is assumed that the resources available in the microcontroller should be available from the debug probe, and not having to debug the debug software before setting up a working setup. Even though I just assume most will debug their software, not peripherals early on.
I documented my setup, including what I have to do to get a fully working setup. I really like pyocd though, so from first start, it is the tool I'm going to now. I just would like there to be less tweaks needed:

https://gist.github.com/pengi/de37f344f7a0a7141b597153236d9cac


My C-Sharp work

VSCode Version:
OS Version:

Steps to Reproduce:

Reproduces without extensions: Yes/No

Not enough info to investigate. Please open C# issues against the c# extension: https://github.com/OmniSharp/omnisharp-vscode/issues


feat(typegen): handle scalar types

This is not currently generating the enums.  This should be fixed before merge.

The code is now able to compile with the generated types.


Adding CODEOWNERS to our repo

A proposed CODEOWNERS scheme.
To learn about how this is going to work, please take a look at
https://help.github.com/en/articles/about-code-owners
or follow up on EVE TSC mailing list

/lgtm

I think you are. I think this is just the automatic reviewers, as opposed to manually requested.


new release

@timothyb0912 would you create a release of your fantastic code commits since last winter? This would make installation much easier, especially for python 3 folks. Latest on pypi dates back to December 2016 and there aren't any releases tagged on GitHub.

BTW do you have any interest in tagging releases on GitHub? It's a really quick and easy way to create official or interim releases:
git tag -a v0.1.1 -m "annotation for this release"
git push origin --tags

@gboeing Yeah, I'll do a release this weekend. And thanks for the info about tagging! I didn't know about it (and clearly haven't used tags, though they seem useful)!

@timothyb0912 thanks!

Any update on the release? :)

@gboeing, @bnaul, There's a new release out and the releases have been tagged. I'm closing this for now.

@timothyb0912 you are awesome, thanks!

@gboeing: haha, no worries. Sorry it took me so long to get the release out!


Scope out and translate Procgen

Look into Procgen to verify whether it has expert/ground truth data, and if yes, convert it to TFDS format.
Some resources to help for conversion:

https://colab.research.google.com/drive/1c0rZJaZy4u6SAUHHvqNYS6SMOpUG-X9S?usp=sharing
https://colab.research.google.com/drive/1tCg95kqm6AqtTRJTRUDgyFuB2KgEgT6L?usp=sharing)

Closing after PR merge from @snat-s - https://github.com/ManifoldRG/MultiNet/tree/main/src/control_translation/procgen


⚠ ClamAV has degraded performance

In 8e1be92, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 66 ms

Resolved: ClamAV performance has improved in 9046e8d after 15 minutes.


Spelling mistake

There is a spelling mistake for "example"

Can one of the admins verify this patch? (see README)

Thanks @cloudvapour!


React native android - Unsafe implementation of the HostnameVerifier interface by Google PlayStore

Currently, we are facing an issue with HostnameVerifier from a third-party after publishing the app to the Google play store. Kindly help us to find out the issue / any of your customers had faced this issue previously?. We have got an email from Google play store as below.
'We found that your app uses software that contains security vulnerabilities for users. Apps with these vulnerabilities can expose user information or damage a user’s device, and may be considered to be in violation of our Malicious Behavior policy'

'Your app(s) are using an unsafe implementation of the HostnameVerifier interface.'
This app has been in the play store since 2 years.
We need to resolve this before the deadline 1 January 2021.
Please help me sort out this issue.

@Sinson48 I also work in a project that has been around the play store for around 2 years, and it uses this webview for about 6 to 8 months, we have never seen this message before. I got really intrigued by your story because I plan to release new versions of the app soon.
How do you know that this was caused by this library? Did you just added it to your app and then the first time you sent it to review it got rejected or it had this webview implemented before but just got rejected now?
(ps: I'm not one of the maintainers nor contributors here, just a regular user)


Visibility Status...

Hello Rick sir... You really make a lot of tremendous articles for the learners & developers. Thank you so much for the great contribution. Actually, I didn't find any major issue in this page. Without just a little visibility problem. In the "Run the app" sub-section the part of "Visual Studio" tab, the first line shows "Select Ctrl-F5 to run the app in non-debug mode." And the next tab of "Visual Studio Code" shows "Press Ctrl+F5 to run without the debugger." The visibility difference is "Ctrl-F5 vs Ctrl+F5." In the whole page you use Ctrl+F5. I understand that this is an extremely minor issue. But I just inform it for the view purpose. If you think it's okay then no need to change. Thank you for your time...

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: faf18d20-d28f-1efa-d329-181fff3630fa
Version Independent ID: 46a7c2e0-4871-491f-02c2-54f7df2237b1
Content: Get started with ASP.NET Core MVC
Content Source: aspnetcore/tutorials/first-mvc-app/start-mvc.md
Product: aspnet-core
Technology: aspnetcore-tutorials
GitHub Login: @Rick-Anderson
Microsoft Alias: riande


How to map to host function in separate file?

I've been playing around with it this morning and it is very convenient, thanks a lot!
Can you give me a hand with how to map my function sitting in a separate file?
Problem
Inside a pointing.cpp I map to the function,
    m.def("CUpointing_cparr",
        &CUpointing_cparr<double>,
        "thetas"_a.noconvert(),
        "phi0"_a.noconvert(),
        "nphis"_a.noconvert(),
        "ringstarts"_a.noconvert(),
        "synthmap"_a.noconvert(),
        "outarr_pt"_a.noconvert(),
        "outarr_pp"_a.noconvert()
    );

where CUpointing_cparr is in pointing.cu
Inside pointing.cpp is #include "pointing.cuh", with "pointing.cuh" having the CUpointing_cparr definition.
Compiler compiles, but importing in Python gives the error,
import pysht_interface.popy as popy
ImportError: /mnt/home/sbelkner/venv/pysht/lib/python3.10/site-packages/pysht_interface/popy.cpython-310-x86_64-linux-gnu.so:
undefined symbol:
_Z15Cpointing_cparrIdEvN8nanobind7ndarrayIJKT_NS0_5shapeIJLm18446744073709551615EEEENS0_6device4cudaEEEES8_NS1_IJKiS5_S7_EEESA_S8_NS1_IJS2_S5_S7_EEESB_

which tells me that it's ignoring the header file, and cannot find the function?
The CMakeLists.txt contains
nanobind_add_module(popy
  pointing.cu
  pointing.h
  pointing.cpp
  pointing.cuh
)

Note: everything works when CUpointing_cparr() is in the same file as the m.def()

I think this looks like a C++ template instantiation issue: if the CUpointing_cparr function template is defined in a different compilation unit than it's being used, then all the needed instantiations need to be declared in that unit too. The syntax for that is template void Cpointing_cparr<double>(arg1, arg2, ...);.
Normally one would just define the template function in a header file instead so it gets instantiated as needed in every compilation unit, but in this case you probably need to keep it in the source file because it's a CUDA function that needs to be compiled by the CUDA compiler.


Sending very first messages to a new group chat is broken

The messages sent to a new group chat disappear as soon as sent. This happens only until you go back once and come back. The chat performs normally after that.
Steps of Reproduction:

Create a new group
Send a couple of messages

Tested on Android 8.0.0 on OnePlus 3T

Hmmm, I know what is going on!

Even better, this is related to a bug I was trying to reproduce 😄


refactor(src): allocate memory according to json string length

KAG-5179
If we set yieldable to false, the library should have only one instance, using a fixed size memory, memory is not a concern.
If we set yieldable to true, we may create many instances, then we should  allocate memory according to json string length to save memory.

Close for no activity. Reopen if necessary.


How to set  timeout, JsonRpc with node-fetch

import { JsonRpc } from 'eosjs'
import fetch from 'node-fetch'

const rpc = new JsonRpc(url, { fetch })  // I can't set anything...
const result = await rpc.get_block(blockHeight)

I want to set timeout.
now I am setting timeout in node_modules dist file

Ah, Actually, I can set right this.
new JsonRpc(url, {
      fetch: (endpoint, options) => {
        return fetch(endpoint, {
          ...options,
          timeout: 1000 * 1
        })
      }
 })

But, Isn't there a better way?

Your second response would be the recommended way to add options to fetch requests through eosjs. The reason why fetch options aren't available at the individual rpc functions is to have clearly defined required arguments for each function.  If you need different options for some rpc functions, you can create multiple JsonRpc instances.

I think it's not comfortable. Because I have to check the (eosjs module) code
But OK. Thank you.


[UNDERTOW-1623] Undertow Deadlock

https://issues.redhat.com/browse/UNDERTOW-1623
In order to avoid deadlocks we cannot call alien or potentially dangerous methods
while lock is being held. We have to hold as few locks as possible.
This PR supersedes:

https://github.com/undertow-io/undertow/pull/851
https://github.com/undertow-io/undertow/pull/847

@ropalka for readability, I'm not condensing the PR into a single commit. Can you please add the Jira number to the other two commit messages before I merge?

Commits fixed as requested @fl4via


Created & added info to "More Information" section

Created More Information section
Added URL link to Wikipedia page for further information

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Thanks for the review and addition

Thank you for opening this pull request.
This is a standard message notifying you that we’ve reviewed your pull request and have decided not to merge it. We would welcome future pull requests from you.
Reason: We do not accept PRs which only add links when there are already valid reference links for the article.  Instead of just adding a link, it would be great if you can add original content. Paraphrased content from another source should be referenced.
Thank you and happy coding.


[Concurrency] Fix an issue with mayExitToNonisolated in isolated parameter checking.

Don't consider callees with isolated parameters as exiting to nonisolated unless the callee isolation is statically known to be nonisolated.

@tgoyne this fixes the Sendable diagnostics you discovered in https://forums.swift.org/t/se-0420-inheritance-of-actor-isolation/69638/9

@swift-ci please smoke test


Problem with install instructions for MSYS2

When I try install the juci on windows using MSYS2 when executed line
cmake -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX=/mingw64 ..

I received  error:
CMake Error: Could not create named generator MSYS Makefiles

I can't not find reason of this error. Could you help me with this problem?

CMake got updated last night. It might be related.
https://github.com/Alexpux/MINGW-packages/pull/1312

Try upgrade your system with pacman -Syuu

I got the exact same message when trying to run cmake in the MSYS shell. Use a MinGW Shell (for instance MinGW-w64 Win64 Shell) instead. I'll update the installation documents.


jsx/prop-types doesn't trigger with React.forwardRef

eslint-plugin-react version: 7.9.1
If we create the functional component, the rule triggers:
const Label = ({ text }) => {
  return
{text}
; // 'text' is missing in props validation
}

But if we convert this to a React.forwardRef component, it stops triggering:
const Label = React.forwardRef(({ text }, ref) => {
  return
{text}
; // no error
});

Our component detection will need to add support for forwardRef.

Any success?


[rt.openssl.org #4228] Feature request: Support AEAD ciphers in enc app

Migrated from rt.openssl.org#4228 (status was 'open')
Requestors:

<EMAIL_ADDRESS>
From<EMAIL_ADDRESS>on 2016-01-11 23:58:34:
Is there any particiular reason, why AEAD ciphers are not supported in the
enc app? https://github.com/openssl/openssl/blob/700b4a4/apps/enc.c#L294

I have implemented it as a small part of my Master thesis, maybe I could
polish it and submit a PR.
Regards,
Jan Zak

From<EMAIL_ADDRESS>on 2016-01-12 00:00:09:
> I have implemented it as a small part of my Master thesis, maybe I could
> polish it and submit a PR.

Please do this.

Dup of #471


tsconfig : postbuild seems to be not working

I am trying to trigger some action after successful build. I have tried as mentioned below
https://github.com/aspnet/Home/wiki/Project.json-file#scripts
But nothing is happening. Looks like there is an issue with below line parent.ts
exports.build = catchCommonErrors(parent.sendToIpc(projectService.build));
If I remove everything and simply place
exports.build = projectService.build;
then it is working fine. Not sure about the root cause.
FYI, I am using version 8.2.0

I can confirm this.
Either it does not work at all, or the documentation is wrong and therefore I can't get it to work.
I'm trying to use it to run browserify on some of my modules.
  "scripts": {
    "postbuild": "browserify -o browser/libsil.js js/libsil.js"
  },

But nothing happens.
I'm using 8.2.0 as well.

I did some digging and found out that my call to browserify fails for some reason,
but the error is never propagated anywhere useful.
The code in projectService.ts 135 simply dumps it to the developper console.
I'm still tying to understand why the call to  browserify fails with stderr:
Error: ENOTDIR: not a directory, open '/usr/share/atom/resources/app.asar/package.json'
    at Error (native)

Maybe there is something off with the working directory.

After some more investigating it turned out that NODE_PATH and NODE_ENV are set to atoms node interpreter and environment for anything executed as postbuild action.
As a result my browserify fails to retrieved the package.json file mentioned in the error message.
This might actually be worth fixing or at least being mentioned in the documentation for postbuild.
As a workaround I used a bash script as postbuild action, that unsets NODE_PATH and NODE_ENV.
Now everything works as expected.

In the docs for Child_Process, it appears we can set particular variables for the environment.
https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback
I don't have access to a Mac/Linux box to test this (bad person) - any chance you're willing to try that?

This may be the relevant code:
https://github.com/TypeStrong/atom-typescript/blob/master/lib/worker/lib/workerLib.ts#L230

Options env : {} give me a set of environment variable that is okayish.
At least  NODE_PATH and NODE_ENV are no longer set.
Unfortunately there is still one problem.
It gives me different PATH then my shell sessions do.
On a shell I get:
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

Which is the default case under Archlinux as far as I can tell.
Using env : {} I get:
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin

Also a few other variables that are set in the environment of the shell are completly gone.
So it solves the problem I reported above as I can now run browserify,
but it will break as soon as somebody tries to run something that relies on a directory being added to the users PATH.
For example rvm adds stuff like /home/rincewind/.rvm/gems/ruby-2.0.0-p247/bin
to your PATH variable, to allow you to easily run things in that particular virtual environment.
I'm not really sure which kind environment I should expect when running thing from inside my editor.
Usually programs started by my desktop have the same environment as my display manager, which has the same as my shell.
So I'd probably expect the same environment variables  as the shell I started atom in.
But once again I'm not entirely sure what I should except.

I just tried build my project on a different machine that runs ubuntu instead of arch linux.
There the postbuild action does not seem be executed at all.
Which seem to be similar to what @tarak162 encountered.
So to summarize my current observations:
Ubuntu 14.04.4
Atom 1.5.3
atom-typescript 8.2.0
Does not execute postbuild at all.
Arch Linux
Atom 1.5.3
atom-typescript 8.2.0
Executes postbuild, with wrong environment.

On the atom-typescript plugin settings page there is a checkbox that says "Debug: Atom-TypeScript. Please do not use."  :smiley:   I am giving you permission to check that box and then quit atom altogether and then reload it.  Does the postbuild work with that checked on either environment?  I believe that one of the changes that checkbox brings is running the TypeScript worker in the same process as atom itself.

It took me a while to get back to the ubuntu machine to some more testing.
I must have been doing something wrong last week, since now the ubuntu machine behaves in the same way then my arch linux machine, even without having the checkbox checked.
So sorry for that, must have been my mistake somehow.
Both systems run the postbuild script.
Still NODE_PATH and NODE_ENV are set to atoms node interpreter on both machines.
Also regardless of the setting of the checkbox.


[Feature] Change UI Style

Change UI Style

Completed in https://github.com/apache/eventmesh-dashboard/pull/80


Support for large (O(1000)) number of layers

🚀 Feature
I would like to work on the ability for napari to lazily load ~1000 layers, and have a nice search/multi-select widget to load & display layers as selected.
Motivation
To have a rich dataset of many data and annotation/label layers, and be able to quickly move between displays of different datasets, overlays, etc.
Alternatives
perhaps a jupyterhub widget that has the the search/multi-select functionality, which manages/controls a napari viewer
Additional context
Think of a searchable drop-down in HTML, where multiple entries can be selected.
I am happy to write this as a plugin, if there are related examples from which to get ideas.  Does it seem feasible?

I would like to work on the ability for napari to lazily load ~1000 layers, and have a nice search/multi-select widget to load & display layers as selected.

This sounds pretty cool! We're definitely not there right now, but I see a couple things to tackle to achieve this.
One is if we can just handle 1000 layers, we've had some problems with auto-calculating things getting slow when we have a lot of layers (a big speed up came in #1945, but we've got some other still open PRs like #1949 and #1950 in progress).
Another is thing might depend on how many you want to view at the same time and how that might affect our scene graph. If you're only ever looking at 10 then that might be ok, but if you want to now look at 100 that might be slow.
Finally there is the UI aspect of how you will search / select them. We've got some ideas for layer groups (see #970) that could help here some too, depending on what you want.
I might also ask I'm curious about your application here? We've had some conversations like this one https://forum.image.sc/t/visualisation-of-images-and-million-of-dots-in-napari/45512/5?u=sofroniewn where it actually seems better to have one layer with millions of points each with different properties rather than 1000 layers each with 1000 points.

I appreciate the feedback!
I agree that doing O(10) layers at a time is probably enough.  My use case is similar to the one you link on image.sc, where I want to display hundreds of genes (and perhaps an image layer, e.g. DAPI), quickly swapping between visualizing different subsets of genes.
The concept of layer groups sounds slightly different semantically from this proposal.  In that case, the groups have something in common.  In this case, each layer is thought to be independent.
Building on top of the group idea, a given layer may belong to more than one "group".  It might be interesting to give layers attributes (as opposed to groups/folders), and be able to display a set of layers with the same value for an attribute.

I see many benfits of such labeling options. But I see possible problems with interface. Did you have any idea how could looks interface for such utility?

I would find and start from use cases before trying to develop the interface.  I don't have a use case in mind for either layer groups or for layer labels.
For the current issue, the simple functionality I desire is selecting a subset of layers to display.  The interface I imagine for this is a searchable multiselect dropdown.  https://developer.snapappointments.com/bootstrap-select/

I have come across a similar use case. @chrisroat were you able to accomplish the task using napari?

I have come across a similar use case. @chrisroat were you able to accomplish the task using napari?

Not all performance tweaks are done, so I do not think that it will work now.

I have come across a similar use case.

@snigdhaAgarwal if you do end up trying this out and run into problems let us know. Things should be better than before, especially if you only want to look at < 10 at a time (even though you have 1000s loaded). We should be able to improve performance here. Looking at 1000s at the same time will be tough!


[MINOR][INFRA][3.0] Enable GitHub Action in branch-3.0

What changes were proposed in this pull request?
This aims to enable GitHub Action in branch-3.0.
Why are the changes needed?
Currently, it's not enabled.

This will protect branch-3.0 by monitoring every commits and PR against branch-3.0.
Does this PR introduce any user-facing change?
No. This is a dev-only infra.
How was this patch tested?
See the GitHub Action triggering in this PR.

Test build #118002 has started for PR 27480 at commit 8046bdf.

Merged build finished. Test PASSed.

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

GitHub Action is already triggered.

Hi, @dbtsai .
Could you review this?

LGTM. Thanks!

Thank you!

Test build #118002 has finished for PR 27480 at commit 8046bdf.

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

Merged build finished. Test PASSed.

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


ambiguous bevaiour in case of input jsons with duplicate edges

Inputs from JSONS with duplicate undirected edges can produce ambiguous behaviour!
In a JSON it is possible to have two undirected edges (duplicates) {a,b} and {b,a}. The current implementation manages this by checking if {a,b} or {b,a} already exists in the graph and subsequently skips the edge if the above statement is true. However, this can produce ambiguous behaviour if the weights of the duplicates do not match (we do not know which edge will be kept and which one rejected)!
Solution: Consider this kind of inputs as flawed and throw an error!
small_graph.json is such a flawed graph (weight(A_B_u) != weight(B_A_u))

needs new examination now as we're re-designing node / edge type system

since edges in TypedGraph can henceforth have different types even if their nodes & weights are the same (e.g. friendship & co-authors), we can either

introduce more complex checks
leave the responsibility for meaningful relations (:-P) to the programmer

Still thinking about it but I guess we should go with the latter.

From the NetworkX documentation:
"The density is 0 for a graph without edges and 1 for a complete graph. The density of multigraphs can be higher than 1.
Self loops are counted in the total number of edges so graphs with self loops can have density higher than 1."

DONE -> wrote Dupes checker class according to extremely intricate BDD ;-)


Fork, Commit, Merge - Medium Issue (Java)

Fork, Commit, Merge - Medium Issue (Java)
Create a Calculator in Java
Note: You don't have ask permission to start solving the issue or get assigned, since these issues are supposed to be always open for new contributors. The actions-user bot will reset the file back to previous state for the next contributor after your commit is merged. So you can just simply start working with the issue right away!
Navigate to the tasks/java/medium directory from the root of your project.
Then open a file called Calculator.java and start implementing the Calculator class!
Description:
Create a simple calculator class in Java that performs basic operations: addition, subtraction, multiplication, and division.
Requirements:

The calculator class should have methods called add, subtract, multiply and divide.
The calculator should be able to handle both integers and floating-point numbers.

Don't modify the code in the main method! It contains bunch of tests that will run when the program is executed.
How to run:
Make sure you are in the right directory:
cd tasks/java/medium

Compile the program:
javac Calculator.java

Run the compiled program:
java Calculator.java

Expected output:
Addition: 8.0
Subtraction: 2.0
Multiplication: 15.0
Division: 1.6666666666666667

If the program works as requested in the task, you are ready to make a pull request!

To work with this issue, you need to have Java installed to your local machine.
Check out README.md for more instructions of installing Java and how to make a pull request.
Feel free to ask any questions here if you have some problems!
Also, kindly give this project a star to enhance its visibility for new developers!

Hi @nikohoffren, Please check #520


Compatibility Issues with Pywinauto

I'm using this module alongside pywinauto to automate the installation process for an application my workplace uses, and I've encountered a bit of strange behavior. While almost everything works just fine, for some reason any calls to the easygui.diropenbox() function hang indefinitely, and the program freezes until it receives an interrupt signal.
As far as I'm aware, the simplest code to recreate the problem is as follows:
import pywinauto
import easygui

easygui.diropenbox()

Here's the relevant information about my machine:

OS - Windows 10 Enterprise (64-bit)
Python - 3.7.13
Pywinauto - 0.6.8
Easygui - 0.98.3

I've only recently figured out how to reproduce the issue, so I haven't had much time to try and figure out the cause, but I suspect that because both modules are GUI-related, maybe there's some common dependency that's causing issues? Of course, feel free to request more information from me!

Maybe it's a bug of pywinauto, edit pywinauto/init.py, line 83, change  to <return 2>, it should work.


Populate UICollectionView with Firebase Data

My structure is as follows:

I want to populate the UICollectionView with the "question" field in the Firebase Database for each child. Here is my current code, I would presume that the FIrebaseUI tools would know how many children are in my node and populate the correct number of views as needed. Very new to iOS (previous experience with Android):
import UIKit
import FirebaseDatabase
import FirebaseDatabaseUI

private let reuseIdentifier = "PollCell"

class TrendingViewController: UICollectionViewController {

var ref: FIRDatabaseReference!
var dataSource: FUICollectionViewDataSource!

override func viewDidLoad() {
    super.viewDidLoad()

    ref = FIRDatabase.database().reference()

    // Uncomment the following line to preserve selection between presentations
    // self.clearsSelectionOnViewWillAppear = false

    // Register cell classes

    self.dataSource = self.collectionView?.bind(to: self.ref.child("Polls")) { collectionView, indexPath, snap in
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! PollCell
        /* populate cell */

        //Where I am having difficutlty
        cell.pollQuestion.text = snap.get

        return cell
    }

    // Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
 }
}

FIRDataSnapshot has a value property that returns a Foundation data type (NSDictionary, NSArray, NSString, or NSNumber) which you should use to populate your cells. Take a look at the FIRDataSnapshot documentation for more info.
In general questions of this format are better suited for StackOverflow.


Tweak log levels

In order to still get relevant entry point information but not switch the overall logs to debug this PR primarily changes all the controller top level logs to be level info

Coverage increased (+0.006%) to 91.577% when pulling 12c9dd4ed22023eacd2d6aba05ab4bd7fa23dc44 on tgianos:tweekLogLevels into 18833601da0942dd2509884044d5363c95945940 on Netflix:master.


Add iterate(T, Function<T, T>) and/or fold(T, Option) / foldRight / foldLeft

See http://daily-scala.blogspot.de/2009/09/unfoldleft-and-right.html
See https://gist.github.com/aloiscochard/1334040

@danieldietrich I'd quite like to see if I can help out on this feature.

That would be great!
I want to see these methods in the Traversable interface. Other collections may override them with appropriate return type.
But before implementation we need to get a clear picture which methods we need
Following steps:

Let's prototype the method signatures and define their purpose (iterate, fold, unfold. also foldRight, foldLeft?). Ideally we take a look at existing signatures from Scala and Scalaz!
How does fold(T, Option)  differ from undold?
How does fold(T, Option) differ from iterate?

Could you start with these points?

Yes, will do.

Thanks

I think this issue can be closed now as the unfold and variants have been added in https://github.com/javaslang/javaslang/pull/1370?
I do have a few comments about the widening which are causing issues with some samples I'm working on.  Where / how would you prefer I raise these?

Hi @mattjtodd ,
thanks for your feedback! Please create a new Github issue for the cases that cause trouble.
I will close this ticket now.


mypy native support for assert_type

Hello,
It seems that mypy now has support for assert_type (related PR).
Btw, assert_type will be in stdlib starting from Python 3.11 (although not doing anything by itself).
So I'm curious: does your library provide any added features, or was it just a temporary way to have an assert_type function until the implementation in mypy?

The latter, for sure "temporary way to have an assert_type function until the implementation in mypy"
I had some code which was very complex in terms of generic typing and needed a way to make sure changes to the codebase didn't change the resulting typing, and at the time mypy didn't support it (and I couldn't use the other type-checking libraries).
I'll be very happy to archive this library/repo when assert_type is something I'll be able to use in my code :sweat_smile:

Alright, noted, thank you for the answer!
Right now, something like the following can be used:
if TYPE_CHECKING:
    from typing_extensions import assert_type
else:
    def assert_type(val, _):
        return val


WIP (PUP-4233, PUP-4234, PUP-4235) Enable Puppet Passenger Acceptance

(PUP-4233) Add node configs for puppet-passenger
(PUP-4234) Modify AIO pre-suite to use passenger

That makes sense, and makes the description in PUP-4233 make sense too.

This works, but I'm still cleaning it up and testing all the new configs.

CLA signed by all contributors.

Ran the configs, they all seem to work and get puppet-master-passenger packages.

I think that server is an ambiguous term for the host files. Not saying that I love ubuntu-1404-passenger, but I don't think I would understand why these configs are special from their name if I wasn't involved in these tickets.

Well, there's nothing specific to passenger in those configs. I named them to differentiate varying the server OS instead of the client.

Justin and I were working on updates to this test so we don't have to create s new rake target

Ah, ok. I played around with it, but felt a new options file was the simplest.

Superceded by PR #3859


How to use This Driver

Hi!
Many thanks for creating this great driver
Please, help me showing how to use this. I am going to try saving your SIM800L.py in the same Main.py folder.
Subsequently, in the begin of porgram, I put these commands like " Import SIM800L" or "from SIM800L import Modem".
Are there any ways? Please show to do that
Best regards

Hi @minhnghitang,
you can have a look at the example_SIM800L.py which should answer your question 😉


Fixes #26122 - erroneous "TS2350" for js constructors called with incorrect parameters

When resolveCall does not resolve a signature in resolveNewExpression, the error should only be thrown if there is a defined signature that is not-void.

Fixes #26122

Should we consider marking the call signatures of functions with @constructoras construct signatures (as in PR #25980). It caused a weird bug with typeFromPropertyAssignment12 that is probably worth understanding.

Re switching call to construct signatures: Probably yes, but there's a lot of code that expects constructor functions to have call signatures. It won't be a trivial change, I think.
The compiler has supported constructor functions for a long time, but TS support is quite limited so there weren't many places to change until a year or two ago.

@sandersn thanks!


cargo watch in a workspace root gets triggered by the updated Cargo.lock

Running cargo watch in a workspace root gets triggered by the updated Cargo.lock file. This creates an infinite loop.
I have verified this by running cargo watch --why in a skeleton workspace.

I'm also interested in looking into this, if I can get some tips where to start.

I mean I guess that's really not a bug, right now. With --watch-when-idle it will stop restarting the process on file change immediately. That will probably become the default in 8.0


Spring Boot

Description 📜
I have added about a Spring Boot and why is it used.
Fixes #6495
Type of change 📝

[x] Documentation (Content Creation in the form of codes or tutorials)

Domain of Contribution 📊

[x] Backend Dev (Java)

Checklist ✅

[x] I follow Contributing Guidelines & Code of conduct of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GWOC'21 contributor

Great Work 👍


Switch to bundled grammar

[X] All compiled assets are included (atom packages are git tags and hence the built files need to be a part of the source control)

This is in response to https://github.com/TypeStrong/atom-typescript/issues/1374
Long story short, we should probably use bundled grammar. It's very nearly the same as ours (also converted from Microsoft's TextMate grammar), and there's little point in being stubborn and trying to maintain our own.
Scopes are also mostly the same, so the only difference, really, is activation hooks.

Hehe, this is what I see when I search for language-typescript:

Is this because I'm behind the latest Atom?

Yep, updated to 1.22.1 and it now shows as a bundled package (same repo, different version though). In principle, yes, it's a good idea to depend on it assuming Atom folks are going to keep it up to date.

language-typescript's last release was less than 24 hours ago (although since it's bundled, it's only automatically updated together with Atom), besides they have (somewhat minimalist currently) typescript support for atom-ide, so I expect they intend to keep it up-to-date for the foreseeable future.
On another note, thanks for the tip, scripts/grammar.ts (and relevant line in package.json) removed.


feat: add iter/while-each

Resolves #810.
Description

What is the purpose of this pull request?

This pull request:

Create an iterator which, while a test condition is true, invokes a function for each iterated value before returning the iterated value.

Related Issues

Does this pull request have any related issues?

This pull request:

resolves #810

Questions

Any questions for reviewers of this pull request?

I have added lib and examples for the whileEach iterator. Please review and provide feedback accordingly.
Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

No.
Checklist

Please ensure the following tasks are completed before submitting this pull request.

[x] Read, understood, and followed the contributing guidelines.

@stdlib-js/reviewers

Please ignore changes made above. Due to some issues I got this trouble.

...and TypeScript declarations.


Add additional property for pipeline response

Adds an additional git_url property to the submission dialog box
to provide users a link to the location of the DAG in the GitHub
repository
Fixes #1362
Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

Clicking the GitHub link:

Note the double slash on the URL, even after #1363, also, because we use the token to access the repo, there is no guarantee that the user submitting the pipeline will have access to the shared git repository used to store the DAGs.
Anyway, just my $0.02 :)

@lresende - not able to access the repo cause you guys dont have permissions via UI I think.
Ill strip out the extra slash in the url context

@kevin-bates, thanks kevin, yeah didnt need the kwargs or super call. cleaned it up a bit.

Not introduced by this PR but also not resolved yet is the path issue:
The following runtime config settings
https://api.github.com
akchinstc/test-repo
main

yield the following URL:
https://github.com//akchinstc/test-repo/tree/main

@ptitzler - added a fix for the extra slash in the generated URL

Can you please add automated tests for get_github_url? I am sure we'll hit issues in the future once we see more URLs in the wild that'll break the current logic. This way we can just keep adding more tests when that happens.


No documentation on debug attribute of application object

I started using Kyoukai for a side-project to help me better understand asynchronous programming in Python. I've been working on a fork with small changes to the documentation, but this one required a bit more input.
The debug attribute of an application object seems to do two things:

show a formatted traceback if a 500 is received
create a response object formatted by the _debugger, which defaults to the Kyoukai Debugger class if __debugger__ = 'yes' is in the ctx.request args.

Is that correct? Is there more to it?
I'll be continuing to play around with this and am happy to include what I learn in my eventual documentation PR if desired. It would also be nice to know what the intended use case and/or application flow is for this, though.
Thanks!

Yes, this is pretty much what the debug attribute does. It's very similar to setting debug=True in a Flask application; it loads the Werkzeug debugger (which I wrote a thin wrapper around to get it to work in a non-WSGI environment) and allows you to use that to debug issues in the webapp.

Awesome. Thanks for the framework! It's been fun to learn so far.


JavaScript Library Files Install Empty 0KB Files

When using the JavaScript Library static file feature, the files in the libs folder are all at 0kb.

Found issue in the packaging tool (had the incorrect stream being passed in, really surprised no exception was thrown!). Will be in 0.6.1 release.


Website is dead

The website is not responding.

Oh, dang. I accidentally retired the server instance where this was running last month. I'll get that sorted.
Thanks for reporting!

I've moved it to https://www.andersevenrud.net/retro-css-shell-demo/
Gonna have to look into the DNS again later.


Remove need to run link

Changes proposed in this Pull Request:

Remove the need to react-native link command
Disable flipper so projects will run in xCode 12.5
Clean up informational text

With these couple tweaks, I'm able to spin up a new RNC project and run it in Android and iOS without any manual steps except for installing the pods for iOS (no more need to open xCode and delete duplicated files). And I verified that an Expo project should still be able to run with our new components (i.e. won't immediately crash), they just won't be able some of the newer icon syntaxes.


Configurable org-level repository instead of fixed admin

Prerequisites:

Is the functionality available in the GitHub UI? If so, please provide a link to information about the feature.

No
New Feature
Please describe the desired new functionality:
Currently org-level default repo configuration where the settings.yml goes is fixed to admin only.
https://github.com/github/safe-settings/blob/main-enterprise/lib/configManager.js#L18
Other github apps allow different repositories, or have by default enabled .github as org-level. Examples:

https://github.com/palantir/bulldozer
https://github.com/palantir/policy-bot
https://github.com/mergeability/mergeable

This change would allow users to set the default repo at their convenience to store any github apps settings for any app, instead of having different repos within the org for multiple configurations.
Example of idea at deployment-settings.yml:
defaultOrgRepo: '.github'
restrictedRepos:
  # You can exclude certain repos from safe-settings processing
  #  If no file is specified, then the following repositories - 'admin', '.github', 'safe-settings' are exempted by default
  exclude: ['admin', '.github', 'safe-settings']
...

default org cannot be part of the settings as it is required to be located, so the other option is via environment variables. https://github.com/github/safe-settings/pull/351


Target Confluent.Kafka 1.2.0

[x] handles one minor change in underlying CK API (change from int -> float) - surface API does not change
[x] Adds a config optional arg on config ctors to align with CK API's new IDictionayr<string,string> overload

@szer is 8ae2f95 a good idea? I know it's an extra alloc and the impl is ugly. But I can't think of a cleaner way to align with the way that the 1.2 interface has a new IDictionary<string,string> overload

I think it's an easy thing to adapt to for sure.
Seq of value pairs to dictionary seems like a natural conversion.
Extra allocation is fine because you couldn't preallocate shared instance of empty mutable(!) dictionary.

Sorry, I edited my comment :shame: - I found a better way which is to give it a new name which matches the equivalent CK arg.


How can i set up  GITHUB_TOKEN?

here's my set up. thanks
{
  "src": {
    "tagName": "v%s",
    "commitArgs": "-S"
  },
  "requireUpstream": false,
  "requireCleanWorkingDir": false,
  "github": {
    "release": true,
    "releaseName": "Release v%s"
  },
  "npm": {
    "tag": "latest"
  }
}

For example, if you're on macOS/Linux:
export GITHUB_TOKEN=865fa8e05...

It's documented here: https://github.com/webpro/release-it#-github-release
Let me know if you still have issues.

@webpro seems like its workin, but got an error

thanks sir

If the repository's host is not github.com, it assumes a GitHub Enterprise instance and uses the repo host, which is github-ubidy in your situation. Then the base url for your GitHub Enterprise API becomes https://github-ubidy/api/v3.
Does that make sense? Is github-ubidy indeed the host of your repo and the Github Enterprise instance?

@webpro hi sir, its my remote in git, got many config in ssh.

@webpro fixed, in my ssh keys and remote. new error comes, maybe this one is on my end.
last question, this repo. is not mine im only a contributor is this possible to that my GITHUB_TOKEN is applicable on it? thanks


add shell tab completions feature to neptune-cli

addresses #43
Add completions sub-command that prints out completion code for present shell. Eg in bash do:
neptune-cli completions > ~/.bash_neptune_cli
echo "source ~/.bash_neptune_cli" >> ~/.bashrc

Supports bash, elvish, fish, powershell, zsh
Adds dependency on crate clap_complete.
Notes:

The present implementation is intended to make neptune-cli more ergonomic during development.
clap_complete also supports compile time generation of completion shell scripts using build.rs.  Useful when installing binary for end user.  That solution is a little more complex, perhaps in the future and/or we can discuss if its worth doing in this PR.
The clap project is working on a completion overhaul that would enable dynamic shell completion by invoking the binary from the shell with a special hidden flag.  That should be a better solution once available.  See:
https://github.com/clap-rs/clap/issues/1232 and
https://github.com/clap-rs/clap/issues/3166
We could possibly hide this behind a completions feature flag to enable building without the clap_complete crate.   Please let me know if this is desired.
I did not add completions for other binaries such as neptune-core.  I figured I would see how this PR is received first.

I tested it out and got it to work on my machine that runs bash. Thank you for this!
One question though: There was a process of manual setup to get the tab-completion to work (the two commands you provide above), and I guess you would have to rerun that command if the CLI interface changes. I'm not much of a Unix/bash expert but is this how it's normally done? Is there a way to avoid this manual step?
Just to clarify, I consider this PR an improvement despite the manual setup process and am happy to merge.

Yeah, I find the present situation with clap completions sub-optimal.     That provides both more functionality as well as it should always stay current with the binary without any install step.   Otherwise, the build.rs method provides a way to generate the shell scripts at compile time without the completions runtime sub-command.  They could then be checked in git, installed for end user, etc.
Still, this method was easy to build with few loc and for us devs install can easily be automated with a script like this:
install-completions.sh
LINE='source ~/.bash_neptune_cli '
FILE="$HOME/.bashrc"

cargo run --bin neptune-cli -- completions > ~/.bash_neptune_cli && \
grep -qF -- "$LINE" "$FILE" || echo "$LINE" >> "$FILE"

I can add this script to the PR if you like.   Note of course that it is bash specific, so doesn't help for the other supported shells.

Yeah, I find the present situation with clap completions sub-optimal.  That provides both more functionality as well as it should always stay current with the binary without any install step. Otherwise, the build.rs method provides a way to generate the shell scripts at compile time without the completions runtime sub-command. They could then be checked in git, installed for end user, etc.
Still, this method was easy to build with few loc and for us devs install can easily be automated with a script like this:
install-bash-completions.sh
LINE='source ~/.bash_neptune_cli '
FILE="$HOME/.bashrc"

cargo run --bin neptune-cli -- completions > ~/.bash_neptune_cli && \
grep -qF -- "$LINE" "$FILE" || echo "$LINE" >> "$FILE"

I can add this script to the PR if you like. Note of course that it is bash specific, so doesn't help for the other supported shells.

I'm all in favor of adding scripts to the code base. Please do that. In case you're wondering what @aszepieniec and I are currently working on, it's (the compiler)[https://github.com/TritonVM/tasm-lang] and the (standard library)[https://github.com/TritonVM/tasm-lib] that is required to define the consensus logic that must run in the Triton-VM virtual machine.
Once the compiler is where I want it to be, I'll most likely give neptune-core more attention.

I added the bash install script.
I also took a quick look at what would be involved to use the compile-time generation of completion scripts.   It appears that neptune-cli.rs would need to be split into separate files so that the CLI commands can be included from build.rs without redefining main().  Not really a big deal, but then maybe neptune-cli should get its own directory, etc.  So that's a road we could pursue if you wish and maybe will happen naturally later on anyway as neptune-cli grows, but I didn't feel right about just diving into it on my own for dubious benefit.
here's a writeup about it.
https://kbknapp.dev/shell-completions/

I approved this PR. Feel free to merge, @dan-da.

@Sword-Smith I think you will need to merge as I don't have perms.

Only those with write access to this repository can merge pull requests.

I merged, and then I put the script into a scripts directory. One nice-to-have thing would be if the script reported an error if neptune-core is not running.


Update firestore schema and security rules for classes and offerings

[#179154344]
For those following along at home:
class: teacher's class created in learn portal
activity: an assignable/runnable interactive for student use defined in the learn portal (corresponds to a problem in CLUE)
offering: an assignment of an activity to a class. A given activity can be assigned to many classes and a class can have many assignments of different activities.
To implement the teacher network features, we need to get a list of the other classes available in the network that have assigned the same activity/problem, because individual documents are only generally relevant to a particular problem. Therefore, ultimately we want to be able to query for all offerings that are assignments of the teacher's current problem and are available in the teacher's current network. The first step, therefore is to populate the firestore database with sufficient information to perform the aforementioned query. Toward that end, with this PR we introduce the classes and offerings collections in firestore.
It is already the case that when launched by an authenticated teacher, CLUE requests information about all of the teacher's other assignments so that we can populate the existing class and problem switcher menus. I'm planning to utilize this existing information to have CLUE write the corresponding information to firestore for each teacher. As a result, launching CLUE for a given teacher will automatically populate that teacher's classes and offerings in firestore. One wrinkle in the implementation is that I'm storing the list of teachers redundantly (denormalized) in the class and the offering, so that the security rules can use whether or not the current teacher is a teacher of the class/offering as a gating mechanism. As a result, the security rules and unit tests for classes and offerings are similar.
Having talked recently about the benefits of smaller PRs, I'm taking this opportunity to submit the schema and security rules changes in a separate PR from the code that actually populates the firestore database. I'm assigning @scytacki for review since he's familiar with the existing schema and security rules testing, but I'll cc @mklewandowski and @Concord-Jim for informational value. I also did some renaming and commenting of the existing security rules, so you will see some changes (hopefully clarifying changes) not related to classes/offerings as well.
More general background information:

these security rules are not deployed automatically when a PR is merged; there's a separate manual deploy step.
the security rules unit tests are run within the firestore emulator, but are designed to be a thorough test of the conditions encountered in the deployed application.

The only comment I have is that the tests are not running any firestore queries.

That's a good point. You're right that we'll be running queries at least against the offerings so I should add a test for that.

@scytacki I added some tests of queries that are expected to succeed and some that are expected to fail and all of the tests pass without rules modification, i.e. teachers can query for offerings in their own networks but not in other networks.


The example .dsb file doesn't work

$ kompose convert -f docker-compose-bundle.dsb
ERRO[0000] Could not parse config for project examples : Unknown resolution for '0.1' using <config.RawService Value> at line 23, column 13
FATA[0000] Failed to load compose file: Unknown resolution for '0.1' using <config.RawService Value> at line 23, column 13

I guess it's due to recent libcompose update to v2, and updating .dsb to .dab with the latest docker-compose should fix it.

Hey @janetkuo , dsb is bundle format, you should use kompose convert --bundle docker-compose-bundle.dsb

Ah... I totally forgot :smile:


Translate local RC feeds (exabgp/hist) into ARTEMIS configuration primitives

Description of PR

What component(s) does this PR affect?

[X] Back-End (Database, Microservices, Containers, etc)
[ ] Front-End (Flask, API, etc)
[ ] Docs
[ ] Build System

Configuration, Monitor, ExaBGP taps
Does the PR require changes on other components? If yes, please mark the components:

[ ] Back-End (Database, Microservices, Containers, etc)
[ ] Front-End (Flask, API, etc)
[X] Docs
[ ] Build System

Related Issue

Resolves #253
Solution

Instruction to monitor (via configuration) to auto-update configuration based on local monitor feed.
Type

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Docs update
[ ] None of the above

Checklist:

[X] I have read the contributing guide and my code conforms to the guidelines.
[X] This change requires a change in the documentation.
[ ] I have updated the documentation accordingly.

Need to update https://github.com/FORTH-ICS-INSPIRE/artemis/wiki#receiving-bgp-feed-from-local-routerroute-reflectorbgp-monitor-via-exabgp and https://github.com/FORTH-ICS-INSPIRE/artemis/wiki/Configuration-file to let users know that they can use the autoconf flag for exabgp to auto-generate conf file entries. (after completion, testing and merging, ignore for now).

:running: Benchmark Results :running:

BGP Updates (updates/sec): 1907
Hijacks Detected (hijacks/sec): 117

TODO:
[ ] For already existing prefixes and asns, re-use them when learning (does not apply to original learn rule functionality)
[ ] Handle withdrawals by removing the associated prefixes, asns and rules
[ ] Test, test, test!

Working in parallel on https://github.com/FORTH-ICS-INSPIRE/artemis/wiki/Auto-configuration-via-trusted-local-feeds

Remaining task: coordinate with @slowr for automated testing and code coverage increase. Need sample testing suite to do the following:

BGP update REST sender/publisher (orthogonal, see issue https://github.com/FORTH-ICS-INSPIRE/artemis/issues/247)
config consumer (maybe we need more consumers, but let's keep it simple and extendable for now)
whenever conf changes, notification is received and the test succeeds if the new conf is exactly what we expect

Last TODO: integration testing in autoconf-tester container (and then check how to inform coveralls)

@slowr @pgigis this PR is fully ready from my side, please review carefully and let me know. It is best if we do it within mid-next week; since this is a pretty big PR with several changes in many places I would prefer that it does not "sit" for a long time. Please review at earliest convenience. Not that automated testing now works consistently.

Pending item in collab with @slowr add autoconf tester to travis workflow, make sure that codecov is happy.

:running: Benchmark Results :running:

BGP Updates (updates/sec): 680
Hijacks Detected (hijacks/sec): 32

:running: Benchmark Results :running:

BGP Updates (updates/sec): 639
Hijacks Detected (hijacks/sec): 32

:running: Benchmark Results :running:

BGP Updates (updates/sec): 688
Hijacks Detected (hijacks/sec): 29

:running: Benchmark Results :running:

BGP Updates (updates/sec): 666
Hijacks Detected (hijacks/sec): 33

:running: Benchmark Results :running:

BGP Updates (updates/sec): 686
Hijacks Detected (hijacks/sec): 34


homoeologous

The term homoeologous should be a child of homologous, sibling of paralogous and orthologous. It means (by analogy to existing descriptions), "An attribute describing a kind of homology where divergence occurred after a speciation event and was subsequently reunited in the nucleus by (typically) a hybridization event".
More here:
https://en.wikipedia.org/wiki/Polyploid#Homoeologous
Cheers,
Dan.

We also compute a class of 'variations' that we call between homoeologous chromosomes that we call 'Inter Homoeologous Variations' (IHVs). These are called using alignments between the homoeologous chromosomes, i.e. with mismatches becoming SNVs and gaps becoming InDels. These are not polymorphic in the sense of (necessarily) occurring in the population, so we don't call them SNPs. Is it possible to add a term for these 'variations'?

Hey Dan, this request got lost when we moved to Git and had all of the resolved issues mix with the new ones. I will look at adding these terms.
--K

Thanks Karen :-)


feat(Topology/ENNReal): add finset_sum_iSup

Moves:

finset_sum_iSup_nat -> finset_sum_iSup_of_monotone

If you could take the opportunity to fix the finset_sum to finsetSum (in accordance with the naming convention), that would be great.

If you could take the opportunity to fix the finset_sum to finsetSum (in accordance with the naming convention), that would be great.

Done


Add On and Helper upgrades could be unsafe and use can't make a judgement

Issue Type: Feature Request
VS Code ofter prompts to upgrade Helpter tools. When doing that it always prompts for an Administrator password. The issue is that it does not give any indication as to what it wants to install.
In this day and age, you need to be extremely careful about giving admin privilages. So blindly entering my admin password is a big security risk. I cannot tell if it is an addon that has asked, of code itself. I trust VS Code - I don't trust community add ons.
More detail needs to be provided to help the user be sure that this is a safe thing to do.
VS Code version: Code 1.55.1 (08a217c4d27a02a5bcde898fd7981bda5b49391b, 2021-04-07T18:22:52.186Z)
OS version: Darwin x64 19.6.0

/duplicate https://github.com/microsoft/vscode/issues/100517


Add OpenBSD to TRIO_PLATFORM_UNIX

OpenBSD is family of NetBSD, FreeBSD & DragonFlyBSD so treat as the same.

@freerdp-bot test

@ledeuns no longer interested in getting this merged?

@akallabeth after discussing with OpenBSD team, it might give the false impression that we don't an issue with the timer thing anymore :)


Allow for transferring points

It would be great if you could have an auth-ed user transfer points to another user.

Think our accountants would have heart attack if we did this :) So we wont be adding it.

And that would be a bad thing?


Load images is done as a last step but it should be done right after cluster creation

Fixed by #be0dea0


Provide a type conversion / cast processor

Is your feature request related to a problem? Please describe.
Some pipelines have Event values in one type (e.g. string), but want to convert them to another type (e.g. int).
Describe the solution you'd like
Provide a new convert processor along with the other Mutate Event Processors.
processor
    - convert_entries:
        entries:
        - from_key: "mySource"
           to_key: "myTarget"
           type: integer

The default value for to_key can be the from_key. So this could be simplified in some cases:
processor
    - convert_entries:
        entries:
        - from_key: "http_status"
           type: integer

Additional context
With conditional routing and expressions this can help pipeline authors perform better comparisons. It also allows for sending data to OpenSearch in a more desirable format.
See #2009 for a grok-based solution for a similar problem.

Wondering if it makes sense to have from_type and to_type as well. That would make it really generic. Otherwise, I think, we are assuming, source type is "String"?

Also, when "to_key" is specified, should the "from_key" be deleted or both should exist in the final/processed event

Wondering if it makes sense to have from_type and to_type as well. That would make it really generic. Otherwise, I think, we are assuming, from type is "String"?

I guess we could auto detect the from_type based on the value of from_key. Is that what you had in mind?


lingui compile  No locales defined!

npm start fails.
><EMAIL_ADDRESS>i18n:compile /Users/jon/Documents/SYRF/repos/zoinkblam-webapp
> lingui compile

No locales defined!

(use "npm run add-locale <locale>" to add one)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>i18n:compile: `lingui compile`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>i18n:compile script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Hi @jweisbaum, thanks for opening an issue
I can't seem to repro this problem 🤔 a couple of questions:

What version of node are you using?
Does this happen with a clean clone of the react-enterprise-starter-pack repo or only with changes?