Support dynamic input type and output type

Is your feature request related to a problem? Please describe.
Trying to build a connect gateway, support post and grpc.
The proto is dynamic, generated from grpc reflect, but connect handler can not use the dynamic type due to handler code like this
request = &Request[Req]{
  Msg:    new(Req),
  spec:   receiver.Spec(),
  header: receiver.Header(),
}

I think connect-go can support dynamic pb type, the input and output type is based on reflect MessageType, maybe pass from HandlerOption, so NewUnaryHandler[any,any]() can work as expected.
Describe the solution you'd like
Describe alternatives you've considered
Additional context
connect protocol makes grpc eaiser, but for migration, need a gateway to translate the protocol for other languages that don't speak connect protocol.

connect protocol makes grpc eaiser, but for migration, need a gateway to translate the protocol for other languages that don't speak connect protocol.

I don't fully understand the problem you're solving - sorry! It sounds like you have a client that's using the connect-go library, and the client is configured to use the Connect protocol. Because some of your servers only support the gRPC protocol, you're trying to write a proxy to translate the Connect protocol to the gRPC protocol.
Why not have the client use the gRPC protocol instead (using the WithGRPC client option)? Once all your servers use connect-go, you can switch the protocol that the client uses.

But the client is web, do not support using grpc.

But the client is web, do not support using grpc.

Got it! That makes sense.
The best option is to wait a few weeks and use connect-web when we release it :) You'll get strongly-typed clients that support the Connect and gRPC-Web protocols. If you need the client to communicate with gRPC servers, you can use Envoy to translate between gRPC and gRPC-Web. When you migrate your server(s) to connect-go, you can drop Envoy and use either the Connect or gRPC-Web protocols.

So, the answer is use a grpc-web proxy?
The grpc-web proxy will loose some connect protocol features.

migrate your server(s) to connect-go

We are also using php, I think the priority of support php is very low.

I think that the best answer is to use the gRPC-Web protocol and Envoy. You'll get the widest possible language support and a hardened, fast proxy without any custom code. That does give up many of the benefits of the Connect protocol, though.
If you'd rather use the Connect protocol and write your own proxy, nothing's stopping you! The trick is that you don't want to serialize or deserialize the messages at all - the gRPC, gRPC-Web, and Connect protocols all use standard protobuf binary encoding (or the standard protojson encoding), so you can copy the binary around without deserializing into Go structures. Naturally, this is also a lot faster than constantly using protoreflect.
You can do this by overriding the built-in proto codec like this, and then using connect.Client[bytes.Buffer, bytes.Buffer] and connect.Handler[bytes.Buffer, bytes.Buffer]. You're welcome to poke around in the bufbuild/buf/private/bufpkg/bufstudioagent directory for inspiration, but keep in mind that none of this is supported - once you copy the code, you'll need to debug and support it yourself.
Best of luck!


people.json no longer exists

Hi
I tried running this on my local machine, but I got an error:
Error: ENOENT, no such file or directory 'people.json'

So I went into localsStore.js and changed ./people.json to inspiring_people.json
Now it runs.

Fixed in #7.

this should be fixed now!


PublishSymbols@2 task does not log verbose output

Required Information
Entering this information will route you directly to the right team and expedite traction.
Question, Bug, or Feature?
Type: Bug
Enter Task Name: PublishSymbols
Environment

Server - Azure Pipelines

If using Azure Pipelines, provide the account name, team project name, build definition name/build number:
Internal. Happy to provide privately over email.

Agent - Hosted or Private:

If using Hosted agent, provide agent queue name:
Azure Pipelines

Issue Description
With the following task configuration, the PublishSymbols task does not log verbose output with the DetailedLog arugment like the MSDN docs say (even when explicitly set to true):
    - task: PublishSymbols@2
      displayName: Index sources
      inputs:
        SearchPattern: $(binFolder)\**\*.pdb
        PublishSymbols: false
        DetailedLog: true
        TreatNotIndexedAsWarning: true

In particular, the task source code implies that one of the following messages should be logged in the task log output whenever the sources are not indexed:
Write-Verbose "One or more source files not under sources root directory: $SourcesRootPath"
Write-Verbose "One or more source files not found."
Task logs
Output example:
##[warning]Unable to index one or more source files for symbols file 'D:\a\1\s\bin\x64\Release\xx.pdb
"D:\a\_tasks\PublishSymbols_0675668a-7bba-4ccb-901d-5ad6554ca653\2.203.0\pdbstr.exe" -w -p:"D:\a\1\s\bin\x64\Release\xx.pdb" -i:"C:\Users\VssAdministrator\AppData\Local\Temp\tmpF70.tmp" -s:srcsrv

I can confirm this issue. Note that DetailedLog: true is the default but Write-Verbose is still not printed.


Add live logging during upload-product

@aditya87 I'd love to reduce the complexity of this code before we move it. The bit that is doing the live logging currently consists of what is a hard structure to comprehend. This is how it is currently laid out.
A go routine > starting a for > with a select in it > with a case statement in it > with an if inside that > with another if inside that.
To fix a test failure the other day, which was all timing related I had to spend about 45 minutes reasoning about the code.
Can you find a way to not have all the nesting going on and reduce this complexity?

Needs some work


Unable to delete old device

Hi--
Great integration, have been using it since your beta tests. I recently upgraded my Pura X to the Pura Max litter box. I deleted the old device (Pura X) from the official PetKit app under my account, however, it continues to show up in the integration after rebooting and reloading the integration.
I can disable the device, but, is there a way to cleanly delete it from Home Assistant? Thanks

Thanks for bringing that to my attention. At the moment, no. I will have to add a function for removing a device manually. It is implemented for an entire config entry, but currently missing for individual devices.

Cool, I wish I had the ability to help you out there -- but, happy to help you test when you have time. Thank you

Open the __init__.py file in custom_components/petkit.
Under the line from homeassistant.core import HomeAssistant add this new line: from homeassistant.helpers import device_registry as dr
At the very end of the file add the following function:

async def async_remove_config_entry_device(
    hass: HomeAssistant, config_entry: ConfigEntry, device_entry: dr.DeviceEntry
) -> bool:
    """Remove a config entry from a device."""
    return True

Save the changes and restart Home Assistant. You should now see a delete button when you click on the Pura X device.

Nice, that worked thank you!


MGMT-13114: Replace deploy-edgecluster scripts with ztp

Description
This patch changes the deploy-edgecluster step of the pipeline so that it executes the ztp binary instead of shell scripts.
Related: https://issues.redhat.com/browse/MGMT-13114
Fixes MGMT-13114.
Type of change
Please select the appropriate options:

[ ] 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 not work as expected)
[ ] This change requires a documentation update
[ ] This change is a documentation update

Testing
Tested manually.
Checklist

[x] I have performed a self-review of my own code
[ ] If a change is adding a feature, it should require a change to the README.md and the review should catch this.
[ ] If the change is a fix, it should have an issue. The review should make sure the comments state the issue (not just the number) and it should use the keywords that will close the issue on merge.
[ ] A change should not be merged unless it passes CI or there is a comment/update saying what testing was passed.
[ ] PRs should not be merged unless positively reviewed.

just re-tested this e2e and it seems to work as expected. Let's merge it and solve issues as we find them.


pass source to get the correct constraint name

https://github.com/elixir-ecto/ecto_sql/issues/190

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:


[Haskell] Handle custom setup dependencies

Disclaimer: my understanding of the issue might be wrong, in which case sorry for the noise.
Issue description
Haskell packages which rely on a custom Setup.hs to build (build-type: Custom in cabal file) may depend on non-haskell libraries. It seems that current haskell derivations cannot specify such dependencies: though there is the libraryPkgconfigDepends attribute, it isn't taken into account when executing Setup.hs. As far as I checked, there is no such thing as a setupPkgconfigDepends attribute.
Steps to reproduce
gi-cairo is a good example:
> cabal unpack gi-cairo-1.0.3

Then setup a local nix derivation using cabal2nix as explained in the manual (I've observed the issue with both GHC 7.10.3 and 8.0.1). Due to https://github.com/NixOS/cabal2nix/issues/235, you might need to fix the derivation so that in the end it looks like this:
{ mkDerivation, base, bytestring, cairo, containers
, gobjectIntrospection, haskell-gi, haskell-gi-base, stdenv, text
, transformers
}:
mkDerivation {
  pname = "gi-cairo";
  version = "1.0.3";
  src = ./.;
  libraryHaskellDepends = [
    base bytestring containers haskell-gi haskell-gi-base text
    transformers
  ];
  libraryPkgconfigDepends = [ cairo gobjectIntrospection ];
  preConfigure = "export HASKELL_GI_GIR_SEARCH_PATH=${gobjectIntrospection.dev}/share/gir-1.0";
  homepage = "https://github.com/haskell-gi/haskell-gi";
  description = "Cairo bindings";
  license = stdenv.lib.licenses.lgpl21;
}

Then try and build it with nix-build, it should fail with the following error:
** (process:32612): WARNING **: Failed to load shared library 'libcairo-gobject.so.2' referenced by the typelib: libcairo-gobject.so.2: cannot open shared object file: No such file or directory
Could not resolve symbol "cairo_gobject_context_get_type" in namespace "cairo"
CallStack (from HasCallStack):
error, called at lib/Data/GI/CodeGen/LibGIRepository.hs:136:8 in
haskell-gi-0.18-8aZS3litRp8ES1uGR3vsBU:Data.GI.CodeGen.LibGIRepository
builder for ‘/nix/store/793gqnz12k94wxsqjvywn7xjalahvgp7-gi-cairo-1.0.3.drv’ failed with exit code 1

Technical details

System: NixOS 16.09.git.af25e01 (Flounder)
Nix version: 1.11.2

Our Haskell builder does not support non-Haskell setup dependencies simply because Cabal does not: the PackageDescription type uses BuildInfo to specify dependencies for libraries, executables, tests, and benchmarks, but the setup script gets to use the restricted SetupBuildInfo type, which lacks entries for anything other than Haskell dependencies. So arguably setup scripts that have system dependencies other than  those imported implicitly through other Haskell libraries are unsupported by the Haskell ecosystem. I'm not sure what exactly gi-cairo is doing here, but it looks a little like they shouldn't be doing it.
Anyway, you can work around this issue temporarily by adding the following override to configuration-common.nix
  gi-cairo = overrideCabal super.gi-cairo (drv: {
    preCompileBuildDriver = ''
      PKG_CONFIG_PATH+=":${pkgs.cairo}/lib/pkgconfig"
      setupCompileFlags+=" $(pkg-config --libs cairo-gobject)"
      '';
  });

or by adding those attributes directly into your local build expression.

Understood, thank you.
In this case, the custom setup script generates haskell bindings from cairo-gobject library, therefore the "external" dependency at setup time looks legitimate to me. I'll check with gi-cairo maintainers.

It may be "legitimate", but Cabal cannot express it.

Since Cabal only makes it possible to express a non-Haskell dependency at library level, we could assume compileBuildDriverPhase always has the same pkgconfig dependencies as the library... or we can sparingly add exception rules as you just did for gi-cairo.


docs: Remove links to (outdated) protocol specs

This does not delete the outdated specs completely, but removes links to them from the docs.

Docs Preview
Hey there! 👋 You can check your preview at https://67620a81b0259f16cc795dac--aztec-docs-dev.netlify.app

Testing algolia search locally did not reflect the local docs (reindexing only occurs in prod), so searching for say "Merkle Trees" should not return results from the now hidden protocol specs.


setEncryptionLevel alternative

Hi, I am attempting to switch over from stock BLEDevice.h to NimBLE and are having an issue with converting the code.
My device requires I have the setEncryptionLevel flag set as below to be able to pair correctly, however there doesn't seem to be an alternative in this library?
BLEDevice::setEncryptionLevel(ESP_BLE_SEC_ENCRYPT);
Is there an alternative setting with this library?
Thanks!

Hi @tommy-b-10. Yes the setting is available, NimBLE uses a different format for this configuration. Please see the documentation on this here.
Note that encryption is always enabled here, so the call you referenced from the bluedroid library is not necessary.
If you need to force encryption on connection you can call NimBLEDevice::startSecurity from the onConnect event handler.

Thanks for confirming that, I have discovered it's not connecting due to another issue that I'll post.


Sometimes gets stuck

The taskbar sometimes doesn't move when new applications open and close. It doesn't just not work like in #8, but it's inconsistent.
I cannot consistently recreate the issue, but it's subtly jarring when it happens. I'll add more info as I have more time to work on it.

Likely due to some apps not triggering the UIAutomation events like they are supposed to. I haven't been able to find a better event to monitor that's more inclusive but open to suggestions


Feature/pg 709 deploy app

Checklist

[ ] Code compiles correctly
[ ] Created tests which fail without the change (if possible)
[ ] All tests passing
[ ] Extended the README/documentation, if necessary

What does this PR do?

Create a command to deploy an application in a target playground.

Where should the reviewer start?
What is missing?
How should this be manually tested?
Any background context you want to provide?
What are the associated tickets?
PG-709
Screenshots (if appropriate)
Questions

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Fix parsing of task parameter defaults

There are a few edge cases I've seen with the parsing of a task function's parameter default values:

None defaults are mistaken as required

eg: ValueError: param in with_params is missing non-default argument: {'b'}

defaults are serialized with str, but deserialization in the task first tries json.loads before embedding as a string literal

eg: x=False is converted to a default of "False", which fails json.loads (json requires false) and ends up as x="False" (which is truthy, so quietly wrong :grin:)

The first issue comes from mixing up explicit Nones with an omitted argument to Parameter, which is fixed by using a MISSING = object() sentinel and serializing the explicit Nones. The second issue comes from the Parameter.default value being serialized with str instead of json.dumps.
Here's an example task that errored before (the None param before submitting, the False param not visible until run in Argo)
from typing import Optional
from hera import Task

def mytask(a: bool = False, b: Optional[int] = None):
    ...

Task(name="test", source=mytask, with_param=[{}])

(for some reason, the None error isn't raised in main with inputs, only with_param)

codecov/project — 95.3% (-0.2%) compared to 73699fa

I lower coverage every commit lmao


chore: lint setup cleanup

A few small tweaks to ensure lint hooks work in a clean env.

Changes incorporated - did not merge b/c of the yarn.lcok


Unable to restore dependencies of a project created using SPFx v1.1.0

Category

[ ] Question
[ ] Typo
[x] Bug
[ ] Additional article idea

Expected or Desired Behavior
Correctly restore dependencies of a project created using a public version of the SPFx generator.

Can you share the dependency part of your package.json and the version of your @microsoft/generator-sharepoint?
@microsoft/decorators does not have v1.0.1. The valid versions include '1.0.0', '1.1.0', '1.2.0'.

Sure thing:
{
  "dependencies": {
    "@microsoft/sp-core-library": "~1.1.0",
    "@microsoft/sp-webpart-base": "~1.1.0",
    "@types/webpack-env": ">=1.12.1 <1.14.0"
  },
  "devDependencies": {
    "@microsoft/sp-build-web": "~1.1.0",
    "@microsoft/sp-module-interfaces": "~1.1.0",
    "@microsoft/sp-webpart-workbench": "~1.1.0",
    "@types/chai": ">=3.4.34 <3.6.0",
    "@types/jquery": "^2.0.46",
    "@types/mocha": ">=2.2.33 <2.6.0",
    "gulp": "~3.9.1"
  }
}

@waldekmastykarz , I tried to repro using generator-sharepoint v1.1.0 and did not get any error.
Can you clean up your node_modules folder and run "npm install" again in your project folder? Also if there is any node_modules folder in the parent folder of your current project folder, make sure clean up those as well.

@qz2017 my apologies, I forgot to mention that I have an npm-shrinkwrap file in my project (attached). Could you add that to your project and try again (remove .txt from the extension after downloading)?
npm-shrinkwrap.json.txt

@waldekmastykarz , we released a patch today and this issue should have been resolved. Can you try again?

 Given that I'm using a shrinkwrap file, it's the only way to really fix this problem.

I'm unable to reproduce this issue. Please reopen if you are still running into issues running npm install using the 1.1.0 release of SPFx.


Added methods to load the image collection and set foreground/background

@ojustino - just so you are aware, I've added a few methods related to the foreground/background. With this, you can see what imagery is available by checking wwt.available_layers and then set the foreground/background with e.g. wwt.foreground = ...

Oops I messed up this PR, will open a new one (this wasn't really merged)


Util: make_timeline automation

It's here! Sort of.
(This is in response to #646)
Before we go into details, there's a great deal of room for improvement on this one. It's truly a draft and will need much more input before it's ready to go live. Most of the choices I made on handling various aspects of this had to do with "This was an obvious tool to use from the standard library" or "I just want this to work, we can always clean it up later". I haven't used Python for anything besides personal education before, so this was a bit of an adventure.
Now then. The changes I made involve the addition of an argument, search_fights (aliased to -lf currently,) which is (intended to be) mutually exclusive with -start + -end or -report. All other arguments should be compatible.
-search_fights takes one integer argument, from -1 upward, where an index of 0+ indicates the index of the encounter the user wish to build a timeline for, while -1 lists all encounters:
python make_timeline.py -f testlog.log -lf -1
0. 01:06:51 01:08:49 The Astrology and Astromancy Camera
1. 01:30:31 01:33:32 Repurposing
2. 01:37:26 01:40:05 Aetherial Observation
3. 01:43:36 01:47:45 The Cornice
4. 01:57:27 01:59:03 The Hall of the Tainted
5. 02:00:06 02:01:08 The Walk of Lament
6. 02:01:33 02:02:37 The Hall of the Deviant
7. 02:03:50 02:05:18 The Walk of Fire
8. 02:07:04 02:08:38.349000 The Hall of the Inexorable
9. 02:11:28.053000 02:18:08.061000 Eden's Gate: Resurrection
10. 14:47:31 14:49:25 Repurposing
11. 14:52:07 14:54:02 Aetherial Observation
12. 14:56:54 14:59:45.967000 The Cornice
13. 15:50:23.554000 15:57:28.049000 Eden's Gate: Resurrection
14. 16:08:05.251000 16:14:45.434000 Eden's Gate: Descent
15. 16:37:58.044000 16:44:57.727000 Eden's Gate: Inundation
16. 16:56:10.509000 17:02:34.354000 Eden's Gate: Sepulture
17. 17:55:52.948000 18:03:00.745000 Eden's Gate: Resurrection
18. 18:28:07.463000 18:35:45.697000 Eden's Gate: Descent
19. 18:37:48.648000 18:46:24.621000 Eden's Gate: Inundation

From here, the user can either repeat the command, replacing -1 with the index of the fight they want, or they may opt to copy those timestamps and run them through manually.
Known issues/deficiencies:

Double-pass file parsing. Because I'm not terribly familiar with Python's file handling, I opted to scan the file for encounters first before actually making the timeline. This does potentially double the run time.

Microsecond elision. By default, datetime objects elide zero-value microseconds.  If the user were to select one of the encounters without microseconds, as seen in 0-8 and 10-12, the command would fail to find any encounters. (The script would attempt to match, say, 01:06:51 in the generated encounter listing against 01:06:51.000 in the log.)  This isn't insurmountable, as there are a couple of places in the new code where we could check whether the timestamp format fits and pad/trim it as necessary. However, I didn't want to do that without input on how/where, since it would be even messier otherwise.

Unguarded arguments. -search_fights does not currently validate that the user's index input is -1 or greater. I wasn't sure where to handle that, and I didn't have the time to fully familiarize with argparse. In line with that, timestamp validation for -start and -end is currently disabled so that I could actually get the script to run.

Duplicated/excessive string handling. Every 00, 01, 33, and 36 log line is  split, whether or not it's relevant. This made it easier for me to do comparisons in the is_line_start/is_line_end functions, but it could clearly be improved.

Large log files. As I've noted elsewhere, I default to 24 hours as the longest any of my log files grow. I have no idea what would happen if the user attempted this on a multi-day file.

The operation of make_timeline is unchanged as far as its internal workings. The entirety of the new functionality branches right after the log file is opened, at line 101/116. From there, the file is scanned for encounters, and if the user didn't specify one to return, the list of encounters is printed to the console in the same way timelines are. If they did, the start and end times at that index are set as the start/end times for parse_file, and the script continues just as if the user had used -start + -end.
Most of the new functionality is commented, but there are likely places that will need fuller explanation. I would be happy to receive suggestions on what could be improved.
All that being said, in its current state, the script would be "usable" for new work immediately, in the sense that it can quickly and accurately identify encounters within a log file. It's not merge-ready, but it's mostly functional.

Just to add a couple new issues I've come across that aren't showstoppers, but might be annoying:

Instance detection currently relies on the "[INSTANCE] has begun" log line, which is consistent and mostly fine. However, if the user does not have ACT open at the time this line would be sent, none of the encounters in the instance will be included in the listing. It does look like there are multiple 01 log lines that get sent during the instance, whenever the user crosses a zone boundary, so I think it should be possible to use that as a backup.

I haven't tested it extensively, but at least on Hades the limit break 0000 log line is NOT an indicator the fight has started. I'm not sure why, but it does mean we'll have to come up with something else for that fight. I did confirm that it's not a general new thing for single-encounter instances though. (It's going to be really sad if all single-encounter instances going forward do this nonsense.)

Ah, this is super exciting! Let me put in a little bit more work on Hades Ex stuff, and then I will get back to this this weekend.

Not a problem, I won't have much more time to work on this before Sunday myself. I need to confirm it, but I'm reaching the conclusion that trials just don't handle limit break log lines in a way that's going to be usable. While awful, it's still light-years better than the possibility that Square changed limit break generation for all new instances.
Once we get this a little more stable, I'm reasonably confident that updating test_timeline should be mostly simple. The same technique I used here should just drop right in once it's tweaked to be cleaner. (I do plan to look into parsing timeline files for start/end timestamps though, since that would negate the heuristic problem for trials.)

Microsecond elision. By default, datetime objects elide zero-value microseconds. If the user were to select one of the encounters without microseconds, as seen in 0-8 and 10-12, the command would fail to find any encounters. (The script would attempt to match, say, 01:06:51 in the generated encounter listing against 01:06:51.000 in the log.) This isn't insurmountable, as there are a couple of places in the new code where we could check whether the timestamp format fits and pad/trim it as necessary. However, I didn't want to do that without input on how/where, since it would be even messier otherwise.

I'd recommend: https://docs.python.org/3/library/datetime.html#datetime.date.strftime and add some function that converts a datetime into a string that would match a log time.

That makes sense. I suppose it should have been obvious that there would be an inverse function. That shouldn't be too hard to implement then, now that I see it.

Well, that works. That pushes this thing to functional for non-trial encounters. "Just" have to clean things up now. I'm really happy with its operation now. Auto-generation is noticeably slower than selecting explicit timestamps due to the double parse, but still much faster than manual timestamp entry.
cactbot\util>python make_timeline.py -f logfile.log -lf -1
0. 17:27:32.000 17:29:26.000 Rhalgr's Gate
1. 17:33:25.000 17:35:23.000 The Chamber of Knowledge
2. 17:39:48.000 17:43:37.178 The Hall of the Griffin
3. 21:11:11.000 21:13:55.000 The Martial Court
4. 21:16:40.000 21:19:26.000 The Font of Quintessence
5. 21:24:55.000 21:29:14.489 The Chamber of Celestial Song
6. 23:30:24.534 23:33:11.459 Alexander - The Burden of the Father

Trials are a PAIN. Limit break generation works very differently in trial instances, in that the 0000 line is sent immediately upon wipe rather than on pull. Additionally, the on-pull limit break line can be delayed up to two seconds, so it's totally useless.
The only consistent thing I've found so far is the boss's initial emote. (In Hades' case, using that as an example since you're on that recently, that line would be "Show me your “vaunted” strength. And I shall expose the lie of your fragmented existence!") I don't like the idea, but perhaps adding a list of known encounter lines that we regularly update could work. (Or maybe pull them in from a config file, although adding yet another helper file isn't great.) Not an ideal situation by any means, but a one-time  change to the script would save the time easily enough in not having to specify start/end times.

Auto-generation is noticeably slower than selecting explicit timestamps due to the double parse, but still much faster than manual timestamp entry.

I think the double parse is the best option here, so I wouldn't overthink it too much.

Trials are a PAIN. Limit break generation works very differently in trial instances, in that the 0000 line is sent immediately upon wipe rather than on pull. Additionally, the on-pull limit break line can be delayed up to two seconds, so it's totally useless.

I was thinking about this, and I think trial could work with just looking for the first attack (15/16 log line) after a zone change/wipe, as long as it is ended by a 21 wipe message (to differentiate from a striking dummy or some overworld mob)?

On using 15/16 log lines for encounter start times, I think that should work, but it will probably be necessary to build in some extra support for it when ending encounters. Otherwise trash pulls will end up in the listing. (I think I've already accounted for overworld mobs etc by only permitting encounters to start while in an instance, and immediately ending an active encounter if the user leaves the instance. If you saw overworld mobs in the generated listing, could I get a copy of that logfile?) The issue there is that with the current meta of "pull to the wall and AoE", it's very easy for encounters to last more than 1 minute. It could be that we should reconfigure that to 3 minutes or something though, since it's almost always impossible to get a usable timeline with a shorter encounter length.

Just pushing the changes to-date for looking-over in case there are improvements to be made. I'm not expecting to get through trial compatibility or fixing timestamp validation tonight.
If anyone happens to have a 24+ hour log, I'd like to have a look at the output from that. Given that the original script doesn't have problems with this, I don't anticipate things breaking, but it would be nice to be sure.

Alright, that ended up simpler than I thought, although it's a bit of a brute-force fix to validation. But realistically speaking, there's no reason to fail validation anymore unless the user actually enters timestamps that require it.
I'll put some more time this week into enabling trial parsing. Beyond that, I would appreciate any further suggestions for general improvements. If all goes well, I hope to submit a clean pull request at some point before the weekend.

Yes, "has begun" and "has ended" are in any situation where there's the starting circle. I used those because that's (what I thought was) the simplest way to ensure that we don't even bother to look for encounters outside a combat instance. Zone change messages might work, but since we can't rely on those being binary pairs, we could have overworld fights polluting the list.
(That being said, I need to test what happens to auto-parsing if the user logs out while in an instance. I put all this together on the assumption of no disconnection during the instance, but it's entirely possible I need to add the zone check anyway, depending on what the logout information says.)
In the same way, the 60-second timeout is to keep the returned fight list shorter. (I frequently have entered a zone-seal boss and then suddenly realized I need to back out before it actually seals for whatever reason. It's nice to have those situations automatically culled, rather than going to the ACT interface and deleting the encounter.) I can't think of a situation where the user wants to use a fight shorter than that as the basis for a timeline. That being said, the check is probably unnecessary in the strict sense.

I thought about it a little more, and you were entirely correct, we can just use 15/16 lines. There's no need for all the complicated start/stop conditions, since only instances with zone seals have trash.  Any time we don't have trash, 15/16 lines are (or should be) 100% reliable indicators of a fight starting if it hasn't already. Any time there is trash, the zone seal message will ensure that the trash isn't included. Ensuring that we record encounters only while in instances guarantees no pollution from overworld enemies.
After redoing things a little this morning, I got this wonderful output:
make_timeline.py -f testlog2.log -lf
1. 00:57:37.000 00:59:56.000 The Beast
2. 01:00:27.000 01:01:53.000 The forward port ventilator
3. 01:02:37.000 01:04:52.000 The modification cell
4. 01:07:18.000 01:09:38.000 The conversion chamber
5. 01:10:13.000 01:13:00.682 The queen's bedchamber
6. 01:41:24.000 01:43:57.000 The Martial Court
7. 01:45:23.000 01:48:12.000 The Martial Court
8. 01:51:45.000 01:54:14.000 The Font of Quintessence
9. 01:00:03.000 01:03:22.000 The Chamber of Celestial Song
10. 01:05:30.000 01:08:43.000 The Chamber of Celestial Song
11. 01:10:35.000 01:14:25.000 The Chamber of Celestial Song
12. 16:38:00.125 16:42:35.169 Deltascape V4.0
13. 17:08:41.825 17:15:37.849 The Minstrel's Ballad: Hades's Elegy
14. 17:17:50.111 17:24:02.046 The Minstrel's Ballad: Hades's Elegy
15. 17:25:27.182 17:28:52.700 The Minstrel's Ballad: Hades's Elegy
16. 17:31:29.325 17:36:43.724 The Minstrel's Ballad: Hades's Elegy
17. 17:38:10.720 17:40:37.079 The Minstrel's Ballad: Hades's Elegy
18. 17:44:14.659 17:49:02.964 The Minstrel's Ballad: Hades's Elegy
19. 17:50:40.175 17:56:27.805 The Minstrel's Ballad: Hades's Elegy
20. 17:56:58.333 18:02:42.409 The Minstrel's Ballad: Hades's Elegy
21. 19:27:12.000 19:28:38.000 The 1st Chamber
22. 19:42:19.000 19:43:47.000 Condemnation
23. 20:14:42.000 20:15:59.000 The 1st Chamber
24. 20:23:59.000 20:25:09.000 The 1st Chamber
25. 20:40:56.000 20:42:00.000 The 1st Chamber
26. 21:19:23.000 21:20:26.000 The 4th Chamber
27. 21:21:20.000 21:22:44.000 Condemnation
28. 21:42:04.000 21:43:07.000 Condemnation

(That last set of encounters is from map farming. I'm thoroughly uninterested in trying to "fix" things to work for maps, although it might not be a bad idea to add known map zones to a default ignore list so they don't show up in the listed output. That wouldn't need updating more than once/twice per major patch.)
At this point, I think it's ready for release. I ran it against a number of logfiles from my archive and it seemed to perform nicely on all of them. Now that that's worked out, I'm confident we can get test_timeline functional in the same way within a week or two.

Also, sorry if I'm super late to this party; is there a gain for listing the fights to be -1 instead of having a separate flag to list the fights? Just the ease of hitting up on the command line and subbing out the value?

Good news on that last bit, I dropped the changes to date into test_timeline, and after a bit of fiddling to account for the slightly different program flow it seemed to work perfectly. Once we get make_timeline settled, I'll put together an additional pull request for that. Or, if you prefer, I could just fold it into this one.

🙌 the ability to swap between make and test will be awesome

I've had pipe dreams of consolidating them into one script, but I don't think that would really save the user much time, if any. Removing the need to hunt for timestamps should be enough of a time save there anyway, even if we do have to continue swapping between two terminal instances.

Just used this btw; very intuitive. I like it.

I think a second pull request would be good!

\o/


App formerly called Grape is now Coderx

When opening a repository link (e.g. github.com), the last app listed is Grape. Here's its definition in the manifest: https://github.com/timonus/OpenerManifest/blob/master/openerManifest-v3.json#L4655-L4675
Earlier this year, it seems the app was renamed and given a new icon. The View action in Opener still works to show the app. Here's a link to it on the app store: https://apps.apple.com/us/app/coderx-for-github/id1371929193
I'd assume the grape:// scheme has also changed, but I don't own the app and can't test it.
Thanks!

Resolved in https://github.com/timonus/OpenerManifest/issues/32, thanks for the tip!


Webpart title localization in picker unstable

Category

[x] Bug

Expected or Desired Behavior
A webpart that has a localized title set in the Webpart.manifest.json for a specific language should always show this localized title in the webpart picker dialog when the specified language is active.
Localizing the title in the manifest is done according to the article at
https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/guidance/localize-web-parts
Observed Behavior
Sometimes the localized title is shown, sometimes the default title is shown. Sorry for that 'sometimes' but I really can't see any reproducible pattern.
One example: I installed the solution containing the webpart on a new site. When I added the webpart to the page the title was localized. Some time later I modified the page and the title in the picker was now in english(default). I added a new page and opened the picker there -> the title was localized again. I went back to the original page and now the picker there also showed the localized title. It seems to be somehow random.
Used browser: Chrome (current version). Language in the browser and default language of the site are set to German.
Steps to Reproduce
See above - hard to say...

The goal is that the language in the picker should match the language that you see in the rest of the site.  Is the whole system picking a random language, or just your webpart?

It is just our own webparts that show up in the wrong language. And not all of them. Some are showing up with the correct title and some not. All webpart titles are configured the same way in the manifest and it "randomly" changes which ones are picking the correct or the wrong language.


Request for a "repair" function

Extracted from #23
Tracks implementation of
/**
 * Attempt to fix metadata problems in JPEG images by deleting all metadata and rebuilding from
 * scratch. After repairing an image you should be able to write to it without errors, but some
 * metadata from the original image may be lost in the process.
 *
 * This should only be applied as a last resort to images whose metadata is not readable via
 * {@link .read()}.
 *
 * @param {string} inputFile the path to the problematic image
 * @param {string} outputFile the path to write the repaired image
 * @param {boolean} allowMakerNoteRepair if there are problems with MakerNote tags, allow
 * ExifTool to apply heuristics to recover corrupt tags. See exiftool's `-F` flag.
 * @return {Promise<void>} resolved when outputFile has been written.
 */
rewriteAllTags(inputFile: string, outputFile: string, allowMakerNoteRepair: boolean = false)

Implemented in v5.1.0 🎉


unify the API for connecting to local/remote LMDB

Signed-off-by: Sammy<EMAIL_ADDRESS>

The remote LMDB was added with PR #21 and PR #34


Documentation error in OpenShiftContainerImages.md

In https://github.com/sassoftware/model-management-resources/blob/main/examples/OpenShiftContainerImages.md
the instructions from bullet 6 onwards speak about a git repository, but from this bullet onwards, we are not using a git-repository. Instead we are using a container registry. I think the commands are OK, but the text around them needs to reflect this.

@glclin,
Can you please take a look at this feedback regarding the OpenShiftContainerImages.md example?
It appears to me that the user needs to connect to the remote Git repository from the container registry using the docker commands. But that the actions being performed by the commands from step 6 -9 apply to the remote Git repository.

@kaponte75
The original comment is correct. Steps 6-9 are about interacting with the customer's container registry and not their Git repository. Steps 1 and 2 are for interacting with the Git repository, then in step 3 -5 user's will be working within their local clone of the git repository. In step 4 they are building the image into their local docker environment and in step 5 they are verifying that the image is in their local docker and getting the image id.
Finally, in Steps 6-9 they are naming the image to match the expectations of the remote container registry and pushing the image to that registry.

@kaponte75
In step 2 we clone and then pull from git. The pull is unnecessary after the initial clone. But if the customer already has the repository cloned but needs to get a newly published model, then they should use the pull command to synchronize their local repository with the remote repository.


how to get the number of read extremities from psite plot

Thank you so much for creating this powerful tools and I am able to run all commands successfully for my riboseq data.
However, when I try to export the number of reads from psite plot, I don't get what I need from best_offset.txt file. Is there anyway I can get the actual number reads from the psite plot?
Thank you so much in advance!
See the figure I pulled out from your website and I add red arrows just from examples (didn't add all arrows in this figure and I just show my purpose). I want to get the actual read number for this plot so I can plot it by myself like in the excel or use this data for other usages.

Hi.
I'm happy to hear everything works properly.
riboWaltz doesn't return the numbers for generating the plot you reported. However you can easily retrieve them manually. It's just a matter of counting the extremity of all reads with a specified length mapping across annotated translation initiation sites.
Something like this, for a specified LENGTH, should work:
dt <- reads_list[["SAMPLE"]][, end5_from_start := end5 - cds_start
                              ][, end3_from_start := end3 - cds_start
                                ][(end5_from_start < 0 & end3_from_start >= 0) | (end5_from_start <= 0 & end3_from_start > 0)]

i_dt <- dt[length == LENGTH]

setkey(i_dt, end5_from_start)
end5_counts_dt <- i_dt[CJ((-LENGTH + 1):0), list(signal = .N), by = .EACHI
                    ][, end := "end5"]

setkey(i_dt, end3_from_start)
end3_counts_dt <- i_dt[CJ(0:(LENGTH - 1)), list(signal = .N), by = .EACHI
                    ][, end := "end3"]

Where reads_list is the list of data samples before computing the P-site and SAMPLE specify the name of one data table. You can also use psite_list and the code still works. Then you can bind end5_counts_dt and end3_counts_dt by adding a column to keep trace of the extremities and plot the profile.
Let me know if I answered your question.
Best
Fabio

Hi Fabio,
Thank you so much for your quick response. I am sorry to get back to you late. This is definitely helpful.


Fixes custom job instrumentation example

Appsignal::Transaction.create takes 3 arguments.
Appsignal::Transaction responds to complete, not complete!.

Thanks for fixing this @mezis !


Your Code has many faults. You'd better delete this repo or rectify this.

Yeah, I don't work on anything relating to vision anymore, but I still think this can be a useful resource for people.


Generate appropriate Typescript typings for Options

Describe the feature
Right now @swc/wasm-web is published, but some of the typescript definitions have any. Most notably:
/**
* @param {string} s
* @param {any} opts
* @returns {any}
*/
export function parseSync(s: string, opts: any): any;
/**
* @param {any} s
* @param {any} opts
* @returns {any}
*/
export function printSync(s: any, opts: any): any;
/**
* @param {string} s
* @param {any} opts
* @returns {any}
*/
export function transformSync(s: string, opts: any): any;

parseSync, printSync, and transformSync have opts as any, so it significantly degrades developer experience.
Therefore the type definitions should be ported; For example, the type definition of opts in transform_sync could be properly ported from
https://github.com/swc-project/swc/blob/4cd43375a5367cd4cff87f391b183bfc0f1c7528/src/config.rs#L62

@kdy1 do you think porting existing types from
https://github.com/swc-project/swc/blob/33a43f85b18191ed2a68d04a1c2e39aa623e6b66/node-swc/src/types.ts#L6-L179
into wasm/src/lib.rs using https://rustwasm.github.io/wasm-bindgen/reference/attributes/on-rust-exports/typescript_type.html would be the the best way to do it?

Oh, I didn't know about the option of wasm-bindgen.
I think creating another package like @swc/types or @swc/shared would be better.
As I'm planning publising more crates under @swc namespace, I prefer @swc/shared.
e.g. Minifier will be published as @swc/minifier

Okay. Publishing a @swc/types package would mean that we will need to import the types from there into @swc/wasm-web's typings, right? If that's the case, another thing to worry about is that wasm-bindgen does not support importing external typescript definitions for build as per https://github.com/rustwasm/wasm-bindgen/issues/1341. There is one commercial software called https://github.com/taggartsoftware/ts2rs (mentioned in the same issue) but I don't think it's usable.
Because of this reason, I think there are two plausible ways:

to have generate all types inside @swc/wasm-web by using  https://rustwasm.github.io/wasm-bindgen/reference/attributes/on-rust-exports/typescript_type.html
to manually create wasm.d.ts completely separately and only using wasm-bindgen to produce .js and .wasm files

Do you have any other opinions?

Okay. Publishing a @swc/types package would mean that we will need to import the types from there into @swc/wasm-web's typings, right?

Yes. I didn't aware of such bug.
How about using a build script which reads typescript files and exports them with a format specified in #[wasm_bindgen(typescript_custom_section)]?

Yeah i think that makes sense. Let's do it that way

How's status on the typings? It's really annoying, or is there any workaround currently?

It can be implemented, but it's too much work.

I believe I completed this via https://github.com/swc-project/swc/blob/main/bindings/binding_core_wasm/src/types.rs.


add node-tests to CI

This should run npm run nodetest on Travis as a separate parallel job.

Thanks for contributing!


Fix VisualStudioSoftwareModelSingleProjectIntegrationTest.can clean from visual studio (2nd try)

Fixes https://github.com/gradle/gradle-private/issues/4485
Reviewing cheatsheet
Before merging the PR, comments starting with

❌ ❓must be fixed
🤔 💅 should be fixed
💭 may be fixed
🎉 celebrate happy things

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

Pull Request Feedback (Trigger) (Check)


fix: remove unnecessary style in xs grid class

Checklist

[x] Fix linting errors
[x] Tests have been added / updated (or snapshots)

Change information
resolved #441

Noticed an issue when while using it :
When value is unset or set for a value that is higher than 0, the display remains none since it's not explicitly unset.
I added another commit to fix it

Good job, and I added a commit to ensure that xs can affect the upper level if sm is not set.
Does everything look as expected now and can I merge it? @amine605

Good job, and I added a commit to ensure that xs can affect the upper level if sm is not set.
Does everything look as expected now and can I merge it? @amine605

Yes it looks good for me.


First version

TODOs until merge

Build and run executable in CI
Build and run tests in CI

Todos

Build and run executable in CI
Build and run tests in CI

are done.


Delete all named-value pairs in one go

How can we delete all name-value pair in one go?

@falrnacn Thank you for your query. Could you please provide the reference of the document you are using . We use github for documentation improvement and would like to know which document you were using for which you provided this feedback ? Please let us know accordingly and we will take this forward.

@falrnacn Hope you are well. In order to help you further , we would require more information as asked. Please let us know about the documentation you were following and we will help you further. In case we do not receive any further reply we will close this issue by EOD tomorrow.

@falrnacn We will be closing this issue now. But you can always tag me to your reply with details about the document you were referring to and we will reopen this. alternatively you can always use the feedback section and select this page to open a new issue referencing that page automatically.

Thank you.

Sorry for the delay. Its not related to any particular document page but the product feature as whole. I guess this might not be the right place to raise it.


Mark SelectorState resolved on resolve() call

Previously we would mark a SelectorState as not resolved when it moved
from non forced to forced. However it never moved back to resolved.
This commit makes sure we always mark a SelectorState as resolved when
resolve() is invoked, whatever the outcome.

yes, that's it


i m installing cassandra on ubuntu 14.04 bt when m coming to ~/cassandra/bin/cqlsh this its show this error in comment  plzz give me solution for it. its urgent

Connection error: ('Unable to connect to any servers', {'<IP_ADDRESS>': error(111, "Tried connecting to [('<IP_ADDRESS>', 9042)]. Last error: Connection refused")})

The Cassandra server is not reachable.
For production critical usages we would recommend signing up to one of our Enterprise plans with 24/7 support: https://getkong.org/enterprise/

so how to solve this problem plzz give me the solution on it......
i have to installed cassandra bcoz of my practicalss

Either Cassandra is not running, or it's not reachable in your network. If you don't want to use Cassandra you could also try Instacluster for Cassandra in the cloud: http://www.instaclustr.com/solutions/kong/
You can also try to play with 0.8.0 RC1 which introduces PostgreSQL support, although the documentation has not been pushed online yet (read the configuration file to learn how to configure it): https://github.com/Mashape/kong/releases/tag/0.8.0rc1


[WIP][docs] Update components header to include product

IMPORTANT NOTE: This is a temporary fix, until the documentation for all products support the tabs API.

As we are removing the Unstyled suffix in the Base UI's components, we need to add support for namespace in the components header in the markdown files, as otherwise we will have conflicts in the components, for e.g. Tabs from @mui/material and Tabs from @mui/base.
This is needed in scenarios where Material UI components show the API of a Base UI's components in some of the components pages. I've also updated the generation of the links that point to Base UI's component to follow the new structure. To make this work, I needed to copy some utils from @mui-internal/api-docs-builder (I couldn't import the utils directly from here in the @mui/markdown as it is a commonjs module, while the  api-docs-utils is an ES module).

I am closing the issue, we should rather remove the links from the Material UI's docs about the unstyled API, as we already have a section that this component is supported in the Base UI package.


[ISSUE] failed to connect to server

Once i get into de UI it popup a message saying "failed to connect server" and i cant continue, i can not interact in any way with the UI.

Configuration
- OS: windows
- Python version: 3.10.6
- Node version: 20.11

I think you gotta use node version 18

i have the same message with the localhost:3000 but its working good when i lunch with bun run dev --host and take 192.168... try it

same here...

i have the same message with the localhost:3000 but its working good when i lunch with bun run dev --host and take 192.168... try it
with localhost
with local ip

same error

If you're using anything that would block a connections like portmaster then disable it

i disabled antivirus and windows brandmauer but no help...

i have the same message with the localhost:3000 but its working good when i lunch with bun run dev --host and take 192.168... try it
with localhost
with local ip

yeah !! thanks man, finally works with that command line when starting the UI.
If someone has the same issue, hust start bun UI with the following line: "bun run dev --host" and then open the IP in your browser

Hi all! I've the same problem. I'm using an Oracle Linux 9.3 virtual machine on Oracle VirtualBox.
Devika backend is up and running .....

For the UI if I use bun run start the command output is

and nothing appears in the browser.
If I use  bun run dev --host the command output is

and the browser still return an empty page
Any suggestion will be appreciated!!
Thank you in advance

Here you are the browser console ...

To set a different port for the backend, which file should I modify?

Weirdly I had this working, setup via pinokio, then stopped and restared it and now I'm getting the failed to connect to server error too. the localhost website loads...but when I go to settings all the API keys etc aren't visible there...

I'm having the same issue.
It was working, and then all of the sudden, I'm getting this same error.

Hi everyone, late to the party but I had the same issue today when I was trying to set it up. The root cause seems to be  the discrepancy between the port on which UI is started and the port used in CORS configuration in devika.py.
I suggest running  bun run start before running devika.py. After running bun run start, it will print the local URL with the port number on which the UI is running. Update the CORS call in devika.py to have the same URL in origins as  the one given by bun run start.
Both the URLs in the picture should match.

I have another thought regarding this: If a port is being used by some other process, bun run start will start on a different port and you will need to update devika.py accordingly. This might explain why @TheMaskedAvengers and @thepwnshop had it working at one point and then it stopped working. However, I wasn't able to test this behaviour. For me bun seems to overtake port 3001 even if another service is using it which is also odd. My expectation was that bun will just start on some other port.
Cheers!

@yuvneesh Thank you for  the steps, but i have exactly the same

And still getting the same error

Try changing https to http in origins

Try changing https to http in origins

Tried just now, the issue remains same

same issue

I found the fix. Go into Devika.py and change:
CORS(app, resources={r"/*": {"origins": ["https://localhost:3000"]}})
to
CORS(app)
then start the server with:
bun run dev --host
and go to the ip address starting in 192.168...

I tried this using docker-compose both on:

Win 10
Ubuntu Server 22.04

Also changed CORS to accept everything.
Same problem. Error Says HTTP 426 Upgrade required :/

I had the same problem. Fixed it thanks to @Questscape.
In your devika.py file, change the origin url to your UI url ie. http://localhost:3001 (for me, no HTTPS but HTTP).
After that I started devika up again it solved my Cannot connect to server issue

I had this same problem fixed by editing the devika.py file.
Make sure the port on which your origin urls is running on is the same port bun starts service.
In my case bun run the on port3001while in my devika.py, the port was set to 3000.
Change that and run bun run start. you are good to go..

All of that didn't work for me. I'm always getting 426 Upgrade Required by the HTTP Requests.
As if for some reason it is routing the HTTP calls always to the SocketIO handler, despite the route for SocketIO is defined differently.
But funny that for some people little changes in the Port or start command fixed it. For me all of this didn't work. I suspect it might be related to me being on windows.

Make sure to change line 29 of devika.py to your frontend URL.
CORS(app, resources={r"/*": {"origins": ["http://localhost:3001"]}}) # Change the origin to your frontend URL

Make sure to change line 29 of devika.py to your frontend URL.
CORS(app, resources={r"/*": {"origins": ["http://localhost:3001"]}}) # Change the origin to your frontend URL

Can we please get this added to the Readme steps? :-D

I had the same problem. Fixed it thanks to @Questscape.
In your devika.py file, change the origins url to your UI url ie. http://localhost:3001 (for me, no HTTPS but HTTP). After that I started devika up again it solved my Cannot connect to server issue.
Also, it is not needed to run the UI with --host, just use bun run start

worked for me

I've tried everything above and still getting a CONNECTION_TIMED_OUT for <IP_ADDRESS>:1337/api/data
Any other ideas?

fail... <IP_ADDRESS>:1337/api/data both docker and venv

I found the fix. Go into Devika.py and change: CORS(app, resources={r"/*": {"origins": ["https://localhost:3000"]}}) to CORS(app)
then start the server with: bun run dev --host
and go to the ip address starting in 192.168...

worked for me.

The front end and backend are being prevented from communicating by CORS.
You have to edit this file (server file) using notepad.exe C:\WINDOWS\System32\devika\ui\src\lib\api.js from the shell as you won't have permission to edit it from notepad directly.
find this code segment:
headers: {
"Content-Type": "application/json",
},
and change it to
headers: {
'Access-Control-Allow-Origin': '*',
"Content-Type": "application/json",
},

I found the fix. Go into Devika.py and change: CORS(app, resources={r"/*": {"origins": ["https://localhost:3000"]}}) to CORS(app)
then start the server with: bun run dev --host
and go to the ip address starting in 192.168...

worked for me.

Thank  you this one is working.
Windows 11, python: 3.11

bun run start

I was having this isse while running: bun run dev.
And it was returning a blank UI.


Fixes #137

Data sets documented now.
I suggest to remove the "soilrep" data set, it is over a decade old and not used in any of the examples.
The "dmn_se" and "enterotype" data sets might later go in a clustering package, if such will be created.

I accept and merge this now so that we can get forward.


SSL and STARTTLS are not equivalent

In the SMTPType enum, SSL and STARTTLS are both 465 which causes the code in EmailServerCredentials.get_server() to always create a server of type SMTP_SSL (the next two lines will get skipped)  [ or vice versa ]
This means if you have a mail server using STARTTLS on port 587, the code will never connect properly, i.e. starttls() never gets called.  STARTTLS ought to be port 587 by default.  465 is SSL/TLS
Not sure how to exclude this new change from the existing ones, so did not make the change in my repo yet

I am slightly confused; I think it's basing it off SMTPType class, not the port number. Can you elaborate?

SMTPType is an enum, its members are constants which are effectively integers, they have different names but SSL == STARTTLS if they're both 465. So the last two lines won't ever get executed even if smtp_type == SMTPType.STARTTLS. A simple test using the REPL will validate this
port 587 is the 'standard' port used when using STARTTLS anyhow, so from that perspective alone, it ought to not to be 465.  When I fixed this, the code using my email server started working

I ran pytest and some tests failed, all due to "'SMTPMock' object has no attribute 'starttls'"  So it seems like the tests have never actually gone thru that particular 'elif' part before.
I will try to sort out this SMTPMock error

This does return True; I've been enlightened!
from enum import Enum

class Test(Enum):

    A = 123
    B = 123

Test.A == Test.B

Thank you for elaborating on this.

Thinking about things more deeply, I don't think having the SMTPType enum do double duty (security layer and also its default associated port) is the best of ideas. There are conventions to email and email systems, but not many hard requirements. And 465 was never a official standard and has been deprecated. There is too much flexibility when it comes to dealing with email systems and prefect-email ought to be flexible enough to handle systems other than the generic standards big names like Gmail use. And blindly assuming SSL/465 as defaults isn't great - office365.com uses POP3/IMAP with TLS (ports 993 or 995) if you're using an account to send msgs - outlook.com uses STARTTLS/587 according to Microsoft help...  GMail is almost unusable now due to their AppPassword scheme...
Having smtp_type and smtp_port be mandatory settings is not that much extra work for the coder using this library; it ensures there are no hidden assumptions and that the coder explicitly matches the code to the details of the system the code is interfacing to. This was initially my problem - I really didn't read the actual Prefect code before trying to use the library. I am slightly annoyed with myself, I saw the 465 value and that SSL == STARTTLS but it didn't quite register, and I wasted a few hours trying to debug what was wrong with my email server (wait, it was the code... I am a better sysadmin than coder, I guess)

Regarding, "GMail is almost unusable now due to their AppPassword scheme... so having it be the default seems pointless..." I was able to use their app password scheme with the defaults. Can you elaborate on this?
Regarding "prefect-email ought to be flexible enough to handle systems other than the generic standards big names like Gmail use", I think it's flexible right now with smtp_port, but this also sparked an idea that maybe we should make those port values mandatory, but have separate GmailServerCredentials, Office365ServerCredentials, etc, that sets these values for people who are unfamiliar with smtp types and ports and just wants to send an email.

GMail and AppPasswords work, but you have to have 2FA turned on for the account. The email I would like to use for Prefect related purposes is one I made to deal with my work at a university, so having 2FA on it is iffy (i.e. letting other people access the account would be a headache). Prefect has replaced the cron/bash setup I had. So I was more just grousing about Google's increased security.  No, I can't use the uni email servers b/c it is Microsoft based and they have prevented any logins thru anything within the uni's internal network unless it is through a browser.
You are right about making smtp_port required. It is not essential for people who know what they're doing, it was just a suggestion.
I do like the idea of making explicit Credentials for different email providers, that would certainly save people some time. In any case, STARTTLS does need changed, so I will deal with that tomorrow.


Ubuntu

Looking for: ['damask=3.0.0a7', 'fenics==2019.1.0[build=*_34]', 'mshr==2019.1.0[build=*_7]', 'panel=0.14.3', 'pyiron_continuum=0.0.5', 'pyiron_gpl=0.0.3', 'pymatgen=2022.11.7', 'pyvista', 'sqsgenerator=0.2', 'vtk']
[607](https://github.com/pyiron/docker-stacks/actions/runs/4098962512/jobs/7068443919#step:7:608)

[608](https://github.com/pyiron/docker-stacks/actions/runs/4098962512/jobs/7068443919#step:7:609)

[609](https://github.com/pyiron/docker-stacks/actions/runs/4098962512/jobs/7068443919#step:7:610)
Could not solve for environment specs
[610](https://github.com/pyiron/docker-stacks/actions/runs/4098962512/jobs/7068443919#step:7:611)
Encountered problems while solving:
[611](https://github.com/pyiron/docker-stacks/actions/runs/4098962512/jobs/7068443919#step:7:612)
  - package fenics-libdolfin-2019.1.0-h0f808bc_34 requires mpich >=4.0.3,<5.0a0, but none of the providers can be installed


Support Python 3

Additional Notes
Also adds e2e

Codecov Report

Merging #2648 into master will decrease coverage by 5.44%.
The diff coverage is 93.75%.

@@            Coverage Diff             @@
##           master    #2648      +/-   ##
==========================================
- Coverage   83.92%   78.47%   -5.45%
==========================================
  Files         643        8     -635
  Lines       36414      511   -35903
  Branches     4432      108    -4324
==========================================
- Hits        30559      401   -30158
+ Misses       4546       79    -4467
+ Partials     1309       31    -1278


pip install pyocd (0.21.0) build depends on CPM

Hello @flit and thank you for 0.21.0 release! =)
I have noticed this small issue, just a note, as CMSIS Pack Manager was introduced in 0.20.0, and seems mandatory dependency now, but its not yet ready to build on end user plarform (@theotherjimmy puts lots of effort and its almost there, see https://github.com/ARMmbed/cmsis-pack-manager/issues/97), therefore pyOCD build fails too.. that could possibly mean build issues on other platforms that does not have binary CPM provided (i.e. ARM, see https://github.com/ARMmbed/cmsis-pack-manager/issues/108).
(venv36bsd) 0xCFC2% pip install pyocd
Collecting pyocd
  Downloading https://files.pythonhosted.org/packages/83/5f/b955267e4395f7da0958e4fa7e114ec75328adde5781a10b5fe011e9e78c/pyocd-0.21.0-py2.py3-none-any.whl (5.9MB)
     |################################| 5.9MB 522kB/s
Collecting colorama (from pyocd)
  Using cached https://files.pythonhosted.org/packages/4f/a6/728666f39bfff1719fc94c481890b2106837da9318031f71a8424b662e12/colorama-0.4.1-py2.py3-none-any.whl
Collecting intervaltree<4.0,>=3.0.2 (from pyocd)
  Using cached https://files.pythonhosted.org/packages/e8/f9/76237755b2020cd74549e98667210b2dd54d3fb17c6f4a62631e61d31225/intervaltree-3.0.2.tar.gz
Collecting pyusb<2.0,>=1.0.0b2 (from pyocd)
  Using cached https://files.pythonhosted.org/packages/5f/34/2095e821c01225377dda4ebdbd53d8316d6abb243c9bee43d3888fa91dd6/pyusb-1.0.2.tar.gz
Requirement already satisfied: six<2.0,>=1.0 in /ztuff/cederom/work/CeDeROM/lab/python/venv36bsd/lib/python3.6/site-packages (from pyocd) (1.12.0)
Collecting prettytable (from pyocd)
  Using cached https://files.pythonhosted.org/packages/ef/30/4b0746848746ed5941f052479e7c23d2b56d174b82f4fd34a25e389831f5/prettytable-0.7.2.tar.bz2
Requirement already satisfied: pyyaml<6.0,>=5.1 in /ztuff/cederom/work/CeDeROM/lab/python/venv36bsd/lib/python3.6/site-packages (from pyocd) (5.1)
Collecting cmsis-pack-manager>=0.2.7 (from pyocd)
  ERROR: Could not find a version that satisfies the requirement cmsis-pack-manager>=0.2.7 (from pyocd) (from versions: 0.1.0)
ERROR: No matching distribution found for cmsis-pack-manager>=0.2.7 (from pyocd)

(venv36bsd) 0xCFC2% uname -a
FreeBSD 0xCFC2 12.0-RELEASE-p4 FreeBSD 12.0-RELEASE-p4 GENERIC  amd64

Just a note for people that will get into this problem - a quick fix is to use pip install pyocd==0.19.0 - until CPM is also ready to build on client side (looks like very very soon):
(venv36bsd) 0xCFC2% pip install pyocd==0.19.0
Collecting pyocd==0.19.0
  Using cached https://files.pythonhosted.org/packages/17/17/18b27066e2553fd8aa2059626df52fdd5f762f33ae98406780d2047a181b/pyocd-0.19.0.tar.gz
Collecting intelhex<3.0,>=2.0 (from pyocd==0.19.0)
  Using cached https://files.pythonhosted.org/packages/bf/77/bf670318b3db325c71e2ac6a90b7bcfdf9fc739b7cf6aebb31715721623e/intelhex-2.2.1-py2.py3-none-any.whl
Requirement already satisfied: six<2.0,>=1.0 in /ztuff/cederom/work/CeDeROM/lab/python/venv36bsd/lib/python3.6/site-packages (from pyocd==0.19.0) (1.12.0)
Collecting future (from pyocd==0.19.0)
  Using cached https://files.pythonhosted.org/packages/90/52/e20466b85000a181e1e144fd8305caf2cf475e2f9674e797b222f8105f5f/future-0.17.1.tar.gz
Collecting websocket-client (from pyocd==0.19.0)
  Using cached https://files.pythonhosted.org/packages/29/19/44753eab1fdb50770ac69605527e8859468f3c0fd7dc5a76dd9c4dbd7906/websocket_client-0.56.0-py2.py3-none-any.whl
Collecting intervaltree<4.0,>=3.0.2 (from pyocd==0.19.0)
  Using cached https://files.pythonhosted.org/packages/e8/f9/76237755b2020cd74549e98667210b2dd54d3fb17c6f4a62631e61d31225/intervaltree-3.0.2.tar.gz
Collecting colorama (from pyocd==0.19.0)
  Using cached https://files.pythonhosted.org/packages/4f/a6/728666f39bfff1719fc94c481890b2106837da9318031f71a8424b662e12/colorama-0.4.1-py2.py3-none-any.whl
Collecting pyelftools (from pyocd==0.19.0)
Collecting pyusb<2.0,>=1.0.0b2 (from pyocd==0.19.0)
  Using cached https://files.pythonhosted.org/packages/5f/34/2095e821c01225377dda4ebdbd53d8316d6abb243c9bee43d3888fa91dd6/pyusb-1.0.2.tar.gz
Requirement already satisfied: pyyaml<6.0,>=5.1 in /ztuff/cederom/work/CeDeROM/lab/python/venv36bsd/lib/python3.6/site-packages (from pyocd==0.19.0) (5.1)
Collecting sortedcontainers<3.0,>=2.0 (from intervaltree<4.0,>=3.0.2->pyocd==0.19.0)
  Using cached https://files.pythonhosted.org/packages/13/f3/cf85f7c3a2dbd1a515d51e1f1676d971abe41bba6f4ab5443240d9a78e5b/sortedcontainers-2.1.0-py2.py3-none-any.whl
Building wheels for collected packages: pyocd, future, intervaltree, pyusb
  Building wheel for pyocd (setup.py) ... done
  Stored in directory: /home/cd/.cache/pip/wheels/6c/83/81/194f4b4fc3f333ee80311f90d7e0461ea5af4f3641533f5aed
  Building wheel for future (setup.py) ... done
  Stored in directory: /home/cd/.cache/pip/wheels/0c/61/d2/d6b7317325828fbb39ee6ad559dbe4664d0896da4721bf379e
  Building wheel for intervaltree (setup.py) ... done
  Stored in directory: /home/cd/.cache/pip/wheels/08/99/c0/5a5942f5b9567c59c14aac76f95a70bf11dccc71240b91ebf5
  Building wheel for pyusb (setup.py) ... done
  Stored in directory: /home/cd/.cache/pip/wheels/1f/a9/7e/d189b5030ee3a56f9b72c28281bb11d661b8ea312e28de08a5
Successfully built pyocd future intervaltree pyusb
Installing collected packages: intelhex, future, websocket-client, sortedcontainers, intervaltree, colorama, pyelftools, pyusb, pyocd
Successfully installed colorama-0.4.1 future-0.17.1 intelhex-2.2.1 intervaltree-3.0.2 pyelftools-0.25 pyocd-0.19.0 pyusb-1.0.2 sortedcontainers-2.1.0 websocket-client-0.56.0

Btw. pyOCD load from gdb works a lot faster than filesystem cp to UMS Drag-n-Drop and seems more generic :-)

CPM 0.2.8 has been released, can be build with stable Rust, problem solved, thank you @theotherjimmy @flit  :-)

https://asciinema.org/a/nrZwa86mxJBmcp5EyPyHKop5p


Have issues running on my RPI Homebridge

Describe Your Problem:

Can't even get my Candelas mac.
Have "Error scanning for devices" after pushing the SCAN button in plugins settings dialog, and the next strings in log...
Have installed it from Plugins tab of my HB UI.
Logs:
[05/11/2023, 19:03:30] [Homebridge UI] [homebridge-yeelight-ble] Incoming Request: /scan
[05/11/2023, 19:03:30] [Homebridge UI] [homebridge-yeelight-ble] Error: Command failed: yeelightble scan -t 3
/bin/sh: 1: yeelightble: not found

    at ChildProcess.exithandler (node:child_process:422:12)
    at ChildProcess.emit (node:events:517:28)
    at maybeClose (node:internal/child_process:1098:16)
    at Socket.<anonymous> (node:internal/child_process:450:11)
    at Socket.emit (node:events:517:28)
    at Pipe.<anonymous> (node:net:350:12) {
  code: 127,
  killed: false,
  signal: null,
  cmd: 'yeelightble scan -t 3 ',
  stdout: '',
  stderr: '/bin/sh: 1: yeelightble: not found\n'
}
[05/11/2023, 19:03:35] [Homebridge UI] [homebridge-yeelight-ble] Terminating child process...
[05/11/2023, 19:03:35] [Homebridge UI] [homebridge-yeelight-ble] Child process ended
[05/11/2023, 19:03:37] [Homebridge UI] Starting terminal session

Plugin Config:
In screenshots

Screenshots:

Environment:

Plugin Version: homebridge-yeelight-ble v2.2.0
Homebridge Version:  [v1.7.0] ( but had the same with 1.6.x)
Node.js Version: [v18.18.2]
NPM Version: 9.8.1
Operating System: Raspbian GNU/Linux Buster (10)

Thank you,
and I look forward for any support

The error is pretty much self-explanatory, you need to install python library yeelightble, refer to setup section in documentation

@vsternbach Thanks! I tried, but got:
pi@homebridge:/var/lib/homebridge $ sudo pip3 install git+https://github.com/vsternbach/yeelightble
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting git+https://github.com/vsternbach/yeelightble
  Cloning https://github.com/vsternbach/yeelightble to /tmp/pip-req-build-7128wn0q
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-req-build-7128wn0q/setup.py", line 2, in <module>
        from yeelightble.version import __version__
      File "/tmp/pip-req-build-7128wn0q/yeelightble/__init__.py", line 2, in <module>
        from .lamp import Lamp
      File "/tmp/pip-req-build-7128wn0q/yeelightble/lamp.py", line 5, in <module>
        from retry import retry
    ModuleNotFoundError: No module named 'retry'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-req-build-7128wn0q/

Meanwhile I found my Candela MAC with bluetoothctl, scan.

@PnnnG don't see your latest comment here, the thing with yeelightble installation is weird indeed, didn't have any problem installing it on rpi, but got the same error when trying to install it on my mac, modified something and hopefully it solves the problem, try reinstalling it

@vsternbach, I solved it! Installed py3, then yeelightble with all requires manually. And it works! Sometimes I see inverted status in Homebridge, but that is 99% better then nothing)
Thank you for this really crucial plugin for my smart home! I do love my candelas

Glad to hear the issue is resolved, and yeah ble connections are really unreliable and sometimes sending commands to the lamps just fails even with additional retries, so this is indeed the case where it's better than nothing :)


CUAV V5 debug: Board 105 is not supported

Firmware: master branch firmware (fmu v5) downloaded online on qgc
problem:Board 105 is not supported（The fault has been fixed in the 1.80/1.81stable firmware, but the new master firmware reproduces this problem.）

@jinger26
This is not a bug or fault or regression - Version 1.8.0, 1.81 did not check the hardware revision nor provide a manifest.
Product was shipped without getting a REV and VER assigned by PX4.
As shipped it is not supported and I believe that is because SBUS RC does not work because it is wired differently than the FMUv5 pin out.
Please discuss with @LorenzMeier and let me know how you would like to resolve this.

@cuhome - please test with https://github.com/PX4/Firmware/pull/10982


Improve go docs in general

Looking at the current go docs the following needs to be improved:

[ ] larger packages need a doc.go (especially if it is meant to be used by others)
[ ] each package needs a package description either way
[ ] some public methods are not documented at all; at least intended for external consumers to use MUST be documented (Example: VerifyAdjacent celestia-node/verify.go at 26c5d722405b296b5930688cd140ef1d31001342 · celestiaorg/celestia-node)

Build a habit of browsing the documentation locally via: godoc -http=:6060. Do the docs looks sufficiently clear to you? If not, then please improve them.
Currently this shows just blank in between otherwise  documented go packages for instance 😱

going to close this as stale and not directly actionable/assignable to complete.


[Feature Request]: add codeql workflow

Is your feature request related to a problem? Please describe.
The repository contains code in python, it does not have workflow for code scanning.
Describe the solution you'd like
I want to add the codeql workflow to automate security checks. CodeQL is the code analysis engine developed by GitHub to identify vulnerabilities in code. It will analyze your code and display the results as code scanning alerts. It will be enabled on every push, commit and pull request using GitHub actions.
Record

[x] I agree to follow this project's Code of Conduct
[x] I'm a GSSoC'23 contributor
[x] I want to work on this issue

Hi, we have added some workflows previously, which made the process very difficult for new contributors. Hence, we have taken the decision not to include them. Thanks for the offer though :)


python37Packages.django-cors-headers: 3.0.2 -> 3.1.0

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/python3.7-django-cors-headers/versions.
meta.description for python37Packages.django-cors-headers is: '"Django app for handling server Cross-Origin Resource Sharing (CORS) headers"'.
meta.homepage for python37Packages.django-cors-headers is: '"https://github.com/OttoYiu/django-cors-headers"

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 3.1.0 with grep in /nix/store/viakgkpvnf97wl13p9pdxhzn35ppsw2a-python3.7-django-cors-headers-3.1.0

directory tree listing: https://gist.github.com/9467da87e628be0e3b7b9d58703a51e2

du listing: https://gist.github.com/93a57dabd762e5c3f9fcd099a221f4fc

Rebuild report (if merged into master) (click to expand)

9 total rebuild path(s)
3 package rebuild(s)
3 x86_64-linux rebuild(s)
2 i686-linux rebuild(s)
2 x86_64-darwin rebuild(s)
2 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
paperless
python27Packages.django-cors-headers
python37Packages.django-cors-headers

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/viakgkpvnf97wl13p9pdxhzn35ppsw2a-python3.7-django-cors-headers-3.1.0 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A python37Packages.django-cors-headers https://github.com/r-ryantm/nixpkgs/archive/913dfc4c8176374b4c3c3ce9e564dbf8dd447015.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/viakgkpvnf97wl13p9pdxhzn35ppsw2a-python3.7-django-cors-headers-3.1.0
ls -la /nix/store/viakgkpvnf97wl13p9pdxhzn35ppsw2a-python3.7-django-cors-headers-3.1.0/bin

cc @ivegotasthma for testing.

:+1:


No points visible in Firefox (55.0.2, 64-bit)

TypeError: jsfunc.toString(...).match(...) is null  6936ccc1-315b-48ef-a705-de694720b55c:1:13258

Let's print a warning that Firefox is not supported, you should use Chrome or Edge

The laz parser for potree 1.5 works, but the one of 1.3 does not.


No audio Lenovo Flex 5

No audio after using sof-setup-audio or SOUNDCARD=rtk sof-setup-audio
The Lenovo Flex 5 is a 10th Gen i3
Model number 13IML05
Model Name 82B8
Used Breath to create a Ubuntu 22.04 Gnome image

I have a similar model Lenovo Flex 5i with 11th gen i3
after running SOUNDCARD=rtk sof-setup-audio I have audio through the laptop speakers if I plug in headphones.
when I unplug headphones it goes back to dummy output and no sound


Fixed erroneous gcd behavior: gcd of zero and non-zero number should …

…return the non-zero number, not the zero. Discussed at https://en.wikipedia.org/wiki/Binary_GCD_algorithm among other sources.
Just a tiny change to gcd code and the 2 unit tests.

Nice! Thanks

The current branch passed all the other unit tests I wrote this past January (for division, remainder, gcd, exponentiation, multiplication and addition).
Keep up the great work!

On Apr 26, 2016, at 8:56 AM, Károly Lőrentey<EMAIL_ADDRESS>wrote:
Nice! Thanks
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub https://github.com/lorentey/BigInt/pull/1#issuecomment-214731747


Wiki page for community contributor workflow

Problem
We ran into a lot of unexpected issues when using git/GitHub as a community contributor (non-FTE).
Proposed solution
Create a new wiki page that documents everything a new community contributor needs to merge a PR.
Notes
A non-exhaustive list of things to document:

Link to setup guide
Link to forking a repo
How to add issue labels (or how to get permission)
How to request approval (and who to send it to)
Only CiviForm FTEs have the permission to merge PRs after approval
Optional: Graphite

I would not advocate graphite. It's not a free, standard git tool.


Updated DB structure

In upgrading the database to be compatible with the new version of the code, and in doing so I realized that our current format for storing system outputs (and newly, analysis cases) in the database is probably too inefficient to be scalable.
For reference, we’re currently doing this:

Database: system_outputs
Collection: system_id (or system_id+analysis_level_id for cases)
Entry: each system output or analysis case

This PR transitions to this:

Database: system_output_collections_v011
Collection: system_outputs_000 (this will be changed to be system_outputs_{system_id[0:3]} to make different collections)
Entry: {"data_id": system_id, "data": zlib.compress(json.dumps(system_data))}

The new way of doing things has several advantages: much smaller storage space due to zipping, less network transfer overhead to the server, and also a possibility to easily transition to using something other than the DB (e.g. S3) to store the files.
The old way of doing things has the advantage of faster access of random individual system outputs, although access to all of the system outputs would be slower.
Blocked by https://github.com/neulab/explainaboard_web/pull/293

Thanks, @neubig ! This looks great!
One thing I'm curious about is the decision to use system_id[0:3] as the shard key. I think the reason why you decided to separate system outputs into several collections is that these collections can become too big (in terms of # of entries and the size) so we want to distribute data in several collections to make queries more efficient.

The first 4 bytes of the object IDs are the timestamp (Unix epoch). Do you think it would be better to use something that's randomly generated? If we want to distribute the data across x collections equally, I think we can use system_id[8:18] mod x as the key because system_id[8:18] is randomly generated per process. (ObjectId)
MongoDB supports sharding. I think it might be easier and more efficient to use its native implementation. Also, I'm guessing we won't hit the limits of a single collection very soon so I think it's also OK to store all data in one collection for now. And we can shard the collection when we are close to the limits.

(I'm still reviewing the details of the changes and I'll follow up with another comment when I'm done.)

Thanks for the comment @lyuyangh . You are right that this is to avoid extremely large collections. This is for several reasons:

I wasn't aware that MongoDB collection data size limits were so large, so I thought we might want to split them.
If we decide to move to a file-system based storage system such as on S3, each collection could become a directory and each piece of data could be a single gzip file. Having different directories would prevent any one directory from getting an extreme number of files, which can be inconvenient.

Apparently "1." is not a big issue (thanks for pointing this out!), but we're thinking pretty seriously about transitioning to "2." at some point.
Regarding a random allocation, this has the pro of distributing things more equally, but also the con of being less transparent. I don't think that random distribution is paramount in this case (especially given that size limits are so large) so I'd tend to stick with the current solution. But I could also be convinced otherwise!

Thanks a bunch @lyuyangh ! I've reflected all the comments other than the one about s3 because we don't really need to worry about this now.

Thanks! I think default_controllers_impl.py Line 438 also needs to be updated because the signature of find_analysis_cases has been changed. Otherwise, I think it looks good!

Thanks @lyuyangh , good point! I've fixed it.


${ID}_IDEAS_input_NB output files have NAs

why ${ID}_IDEAS_input_NB output files have NAs?
Recently, I run the s3v2 package to normalize the histone marker ChIPseq and ATACseq data. The output files in ${ID}_IDEAS_input_NB directory seems strange since there are lots of NA in several output files. I don't understand why I got the NA in the results. As shown in the picture below.
(Note: I have already removed the blacklist regions.)

Hi,
I haven't seen this error before.
I wonder If the corresponding ".S3V2.bedgraph" files also have NAs in the 4th column at these rows? It seems that some of the files are not incomplete.
If so, please try to use these settings to make sure all signal tracks were generated completely.
get_sigtrack='T'
normalization='F'
get_bw='F'
run_ideas='F'
Also please use threads=1, so that the parallel step will not cause conflict(which happened in some other people's runs).
Best wishes.
Guanjue

Hi,
I haven't seen this error before.
I wonder If the corresponding ".S3V2.bedgraph" files also have NAs in the 4th column at these rows? It seems that some of the files are not incomplete.
If so, please try to use these settings to make sure all signal tracks were generated completely. get_sigtrack='T' normalization='F' get_bw='F' run_ideas='F'
Also please use threads=1, so that the parallel step will not cause conflict(which happened in some other people's runs).
Best wishes. Guanjue

Sorry I may not understand what you mean by saying "corresponding .S3V2.bedgraph" files"? Because I can not find a file named "*.S3V2.bedgraph". I only have files named "${cell}_${id}.${marker}.S3V2.bedgraph.info.txt" in the output directory.
Meanwhile, I also don't understand what you mean by saying "make sure all signal tracks were generated completely". If I set normalization='F', I will not get the normalized output data.
Or do you mean that I set 'TFFF' (in the same order as above) to run the program to get all signal tracks, and then set 'FTTT' to normalize and run IDEAS?
Many thanks.

(1) Sorry I may not understand what you mean by saying "corresponding .S3V2.bedgraph" files"? Because I can not find a file named "*.S3V2.bedgraph". I only have files named "${cell}_${id}.${marker}.S3V2.bedgraph.info.txt" in the output directory.
Sorry, I forgot I remove these files to reduce the size of the output folder.So please remove the following lines in "S3V2_IDEAS_pipeline.py", and then use TTFF to regenerate these files.line 181-187a=call('rm *.bedgraph.norm.bedgraph', shell=True)
b=call('rm *.S3V2.bedgraph.NBP.bedgraph', shell=True)
c=call('rm *.S3V2.ave.bedgraph.NBP.bedgraph', shell=True)
d=call('rm *.bedgraph.S3.bedgraph', shell=True)
e=call('rm *.S3V2.bedgraph', shell=True)
f=call('rm *.S3V2.ave.bedgraph', shell=True)
g=call('rm *.average_sig.bedgraph', shell=True)
(2) Meanwhile, I also don't understand what you mean by saying "make sure all signal tracks were generated completely". If I set normalization='F', I will not get the normalized output data. I guess this may be cause by the "bigWigAverageOverBed" step generating the incomplete files. (but this may not be the case)
(3) Or do you mean that I set 'TFFF' (in the same order as above) to run the program to get all signal tracks, and then set 'FTTT' to normalize and run IDEAS?
Yes. so please use TTFF to get the output signal files, and then if everything looks good, use FFTT to get the bigwig and ideas outputs.

(1) Sorry, I forgot I remove these files to reduce the size of the output folder.So please remove the following lines in "S3V2_IDEAS_pipeline.py", and then use TTFF to regenerate these files.line 181-187a=call('rm *.bedgraph.norm.bedgraph', shell=True)
b=call('rm *.S3V2.bedgraph.NBP.bedgraph', shell=True)
c=call('rm *.S3V2.ave.bedgraph.NBP.bedgraph', shell=True)
d=call('rm *.bedgraph.S3.bedgraph', shell=True)
e=call('rm *.S3V2.bedgraph', shell=True)
f=call('rm *.S3V2.ave.bedgraph', shell=True)
g=call('rm *.average_sig.bedgraph', shell=True)

yes, I check the code in S3V2_IDEAS_pipeline.py, and these code (line 181-187) exist in the script. So your code is right, don't worry.

(2) I guess this may be cause by the "bigWigAverageOverBed" step generating the incomplete files. (but this may not be the case)

I may understand your concern. This should be relevant to the next note.

(3) Yes. so please use TTFF to get the output signal files, and then if everything looks good, use FFTT to get the bigwig and ideas outputs.

I guess you suspect that there are some errors/warnings in the bigWigAverageOverBed step, so you suggest that I do the normalization separately (TTFF). After normalization, do the bigWigAverageOverBed step to get input files for IDEAS. Do I understand this correctly?

Yes, that's correct.
To be a bit more conservative, may be it is better to first try TFFF, then FTFF, and then FFTT

Thanks very much!
I will test the various strategies and let you know if I solve the problem!

Thanks for this information.
Yes, indeed, when there are too many threads for the memory to handle, some of the "bigwigaverageoverbed" parallel runs may be interrupted.
The time for the cross mark s3norm step is not paralleled so that is why there should not be differences in runs with different threads.
Best wishes.
Guanjue

There is one more piece of information I would like to share with you.
When I tested this code, I ran the script with both thread=1 and thread=4. I then checked the output file for both results.
The md5 values of the output files were the same for both runs, suggesting that perhaps I could set thread to 4.
However, in another run of my past data, I also set thread=4, but the output files from that run also had the NA value, which was confusing to me.


Handling of "footnoteReference" and "comment" in latex.

Which area is this feature request for?
LaTeX Export
Describe the feature you'd like to request
Using footnotes:
It's used in the wave equation[^myref].
[^myref]: Very useful!

results in
⛔ Unhandled LaTeX conversion for node of "footnoteReference"
and footnotes are also not rendered in the pdf.

Furthermore, using
<!-- Hello world -->

results in
⛔ Unhandled LaTeX conversion for node of "comment"
Maybe there is a way to replace the ⛔ by a warning emoji ? https://emojipedia.org/emoji/⚠/
Because I think it's expected that comments won't render to pdf.

Script for reproducing this:
---
title: Hello

exports:
  - format: pdf
    template: arxiv_two_column
---

+++ {"part": "abstract"}

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Massa tincidunt dui ut ornare lectus sit amet est placerat.
+++

It's used in the wave equation[^myref].
[^myref]: Very useful!

<!-- Hello world -->

Describe the solution you'd like
No response
Describe alternatives you've considered
No response

I think we handle mystComment rather than comment (these should probably be the same thing actually, and changed in the spec because there isn't anything special about a mystComment!).
Surprised we haven't done footnotes, that shouldn't be hard to add! @fwkoch is doing some LaTeX improvements at the moment and hopefully can take a look!

Looks like @fwkoch has picked up part of this in:

#255 🚀

Here's the other half - footnotes!
https://github.com/executablebooks/mystjs/pull/256

Both of these should now be solved. I will go through and prep another release!

Released in myst-cli v0.1.17 🚀

(this will take me a bit longer to get it to show up on myst-tools.org, perhaps next week)

This actually got deployed to the site just now as there was another bug with iframe height that needed fixing!


feat: How about specify listen addr other than :7001 in web mode

seems listen addr :7001 is hardcoded
// port 7001 not always availble on the server
https://github.com/vicanso/diving-rs/blob/v0.4.15/src/main.rs#L123

@yurenchen000 The latest version supports it.
diving --mode web --listen <IP_ADDRESS>:7001

thank you
it works as expected :tada:


chore: Update documentation with linked image

I fixed the issue #829 that was assigned to me.
I have made the image in the readme.md liked with the heading of the file.
Earlier when we clicked on the picture, we were brought to a new tab with just the picture on it.
Now its fixed.
This is the issue

Thank you @SOBANEJAZ approved and squashed-merged into master.

Thank you so much for accepting my pull request

@SOBANEJAZ Thank you for Contributing to Interledger during Hacktoberfest. If you have any accepted PRs, You can claim your Swag here. Last date to fill up the form is December 10th, 2023.


pdfmod: init at 0.9.1

Package pdfmod & depedency (hyena)

pdfmod is successfully built, but I get a run-time error when opening a file. The trace is given below. It may be an upstream bug, or a packaging issue, or a defect of my local environment (x86_64 fedora linux)?
Exception in Gtk# callback delegate
  Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
GLib.GException: Failed to contact configuration server; the most common cause is a missing or misconfigured D-Bus session bus daemon. See http://projects.gnome.org/gconf/ for information. (Details -  1: GetIOR failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Method "GetIOR" with signature "" on interface "org.gnome.GConf" doesn't exist
)
  at GConf.Client.SetValue (System.String key, GConf.Value val) [0x00000] in <filename unknown>:0
  at GConf.ClientBase.Set (System.String key, System.Object val) [0x00000] in <filename unknown>:0
  at PdfMod.Core.Configuration.Set[String] (System.String key, System.String val) [0x00000] in <filename unknown>:0
  at PdfMod.Core.Configuration.set_LastOpenFolder (System.String value) [0x00000] in <filename unknown>:0
  at PdfMod.Gui.Client.LoadPath (System.String path, System.String suggestedFilename, System.Action finishedCallback) [0x00000] in <filename unknown>:0
  at PdfMod.Core.Client.LoadPath (System.String path, System.String suggestedFilename) [0x00000] in <filename unknown>:0
  at PdfMod.Core.Client.LoadPath (System.String path) [0x00000] in <filename unknown>:0
  at PdfMod.Gui.Actions+<OnOpen>c__AnonStorey1.<>m__0 () [0x00000] in <filename unknown>:0
  at PdfMod.Gui.Client+<RunIdle>c__AnonStorey4.<>m__0 () [0x00000] in <filename unknown>:0
  at GLib.Idle+IdleProxy.Handler () [0x00000] in <filename unknown>:0
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at GLib.Idle+IdleProxy.Handler()
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at PdfMod.Gui.Client..ctor(Boolean loadFiles)
   at PdfMod.PdfMod.Main(System.String[] args)

@vbgl,
Do you run the dbus service? (on nixos would be service.dbus.enable = true)
cc @lethalman

Yes, I have dbus and gconf daemons running. They have been installed from the fedora repositories and not from nixpkgs, though.

@vbgl, I can't reproduce so not sure how to fix..

I don’t know how to fix that neither. If it’s properly working on NixOS, maybe it’s good enough.

It seems to run fine for me. If someone can fix it on other Linuxes, it would be nice, but for now let's take it as it is (well, I did some style changes).


json.NewDecoder(req.Body) is not working getting invalid character '\t' in string literal error.

Hi ,
I am trying to json decode the http.request body, Getting invalid character '\t' in string literal error.
golang-version: go1.13.linux-amd64.tar.gz
here is my code:
ubuntu:~/practice$ cat http_test.go
package main
import (
"encoding/json"
"log"
"net/http"
"fmt"
)
type Request_data struct {
APIVersion      string
RequestCategory string
Password      string
}
func test(response http.ResponseWriter, req *http.Request) {
var recvData Request_data
decoder := json.NewDecoder(req.Body)
err := decoder.Decode(&recvData)
if err != nil {
fmt.Println("err is %v",err)
}
fmt.Println("recvData: %v",recvData)
response.Header().Set("Content-Type", "application/json")
response.WriteHeader(http.StatusOK)
data, err := json.Marshal(recvData)
response.Write(data)
fmt.Println("!!!Response is Success!!!")
}
func main() {
http.HandleFunc("/", test)
log.Fatal(http.ListenAndServe(":8000", nil))
}
ubuntu:~/practice$
Here Password field contains "Horizontal Tab and space" in between the Password string.
Please help to fix this issue.
Thanks,
Sachin

Please provide the raw request content sent to the HTTP server. It's very likely that the request is not a valid JSON.

Looks more likely to be bad data on your side, also 1.13 is no longer supported.
Unlike many projects, the Go project does not use GitHub Issues for general discussion or asking questions. GitHub Issues are used for tracking bugs and proposals only.
For questions please refer to https://github.com/golang/go/wiki/Questions


Clear button

When using the clear button the whole profile is being unloaded, meaning the form disappears.
From intuition, I believe it should rather clear the input fields.

fixed on branch hiddenElements


[rdbm-connect] Add rdbms-connect to cloud shell

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

rdbm-connect

@calvinhzy Hello, can this get merged for the next cloud shell build?

@DaeunYim CLI extensions don't have fixed release schedule. We can release extension anytime once PR merged


.Net: Upgrade LangVersion to C# 12 across all projects after 1.0 is released

This is best achieved by requiring the .NET 8 SDK for building. If we don't want to drop support for the .NET 6/7 SDKs, it can also be enabled by referencing the compilers toolset nuget package, which is already done in several test projects.

Can't wait! 😊


Error before building model.

More details are appreciated, but give version 4 a try. It solved errors I had creating the model. Might be related.


chore(protocol): with transient storage, the default should be 0, not 1

With this change, the transient slot is actually cleared earlier in the call frames rather than at the end of the tx. But realisticly, it makes no difference.

Cannot we make:
uint8 private constant _FALSE = 1;
to
uint8 private constant _FALSE = 0; ? 🤔

That makes pausing slightly more expensive, but yeah that doesn't matter, so simply changing the false value does seem like a good approach as well.

A second thought is that we should not merge this PR....

Cannot we make: uint8 private constant _FALSE = 1; to uint8 private constant _FALSE = 0; ? 🤔


[IL] Get clients

Implement service according to logic and specification
child of #2998

Wrong MIS context logic:
As a MIS user I must be able to receive only my own MIS client
Request
curl -X GET \
  https://api.dev.asclepius.com.ua/api/clients \
  -H 'Authorization: Bearer K0lNbEF4MEVKRmcvNUhjOGNzTkVZQT09' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -H 'Postman-Token: 43960b7d-0d77-0340-422c-5338b1f9fe8b'

Response
{
    "paging": {
        "total_pages": 8,
        "total_entries": 386,
        "page_size": 50,
        "page_number": 1
    }
....
}