Add highlighting and jumping to test failures for test output

This PR adds
cargo test output highlighting:

note:
test result:
a passed test
a failed test
failed test source line (this is clickable, jumps to source)
summary line, total number of passed tests
summary line, total number of failed tests if > 0
summary line, total number of ignored tests if > 0
summary line, total number of measured tests if > 0

New build commands:

cargo build --release
cargo clippy

Bug fixes:

Don't treat <std macros> as a file name.

My choice of entity to trigger various highlights is probably questionable, but they're a complete 🚮🔥 anyway. @dten what do you think?

For me on Windows the failed test source line does not highlight nor is clickable

and shouldn't they be marked as mesage.error rather than markup.deleted.diff

Hm. Does Windows ST3 use a different regex engine?
I tried message.error, but that doesn't produce any highlighting for me. I wonder if that's theme-related.
Can you paste your non-highlighting test failures?

I did notice that Monokai Bright doesn't highlight but Monokai does
failures:

---- files::tra::location::test::parse_location_line stdout ----
	thread 'files::t::location::test::parse_location_line' panicked at 'assertion failed: `(left == right)` (left: `"Jill th e kill"`, right: `"Jill the kill"`)', C:\d\Documents\Repositories\rust\t\src\files\tra\location.rs:124
note: Run with `RUST_BACKTRACE=1` for a backtrace.```

the src path isn't clickable or highlighted

Latest regex attempt matches your error successfully for me, assuming that the backtrace note is on a separate line

that pics up my error now
the regex for 1+ should be [1-9][0-9]*+ so that 10 is valid
also probably shouldn't mention python
also might want to consider \b infront of ok and FAILED so that words like look aren't picked up

OK, have put in word boundaries where appropriate, and used non-language-specific identifiers.

@gbersac, @petrochenkov, sorry to randomly drag you in – how does this look to you? Would like to get some more opinions before I start pinging people from the core team for a merge.

Hi @urschrei, I took a look at your changes, but it changes features of sublime I don't use, so I can't really test them. Thanks for contributing anyway !

I didn't see much different when running Cargo Test on your branch

I don't know about master, but it seems to work fine with the latest version of this package on Package Control (this is with Monokai):

@urschrei  i can't cleanly merge this because the cargo.sublime-build file has changed since you last did this PR.
Could you push another commit against the latest master please?

Done!

@urschrei are you sure you pulled from master?
The cargo.sublime-build file still looks different to whats on master, yours still uses cmd, where as master has shell_cmd

@jayflux Maybe I'm confused, but I'm looking at the diff view for this PR, and master doesn't have shell_cmd in Cargo.sublime_build…

@urschrei very odd
Looking here, its different:
https://github.com/rust-lang/sublime-rust/blob/master/Cargo.sublime-build

OK, just rebased against latest master and force-pushed again. It matches now, no idea what was going before…

@urschrei  awesome!
Just 2 more things,

You need to change your cmd to shell_cmd to match the others. cmd does not use the systempath so cargo installed via RustUp would not be picked up.
has this been checked on Windows? We had reports that the regex doesn't match up on Windows OS, if you want i can check

@Jayflux Just pushed the shell_cmd change. If you could check on Windows that would be great…

@urschrei sure, do you have an example project or some code i can test against?
Maybe whatever you have in that screenshot?

@Jayflux https://github.com/urschrei/rust-geo ? Not sure whether you'll see a test failure on your local machine, though, in which case just change the last digit in https://github.com/urschrei/rust-geo/blob/master/src/algorithm/distance.rs#L282 and build again

Seems to be working fine on windows

@urschrei merged
Thanks for the PR! Please feel free to add more! 👍


SGP-1 v1

This is a great start! Having a review process is crucial. Some thoughts:

IP has the advantage of being easy to pronounce
I don't like the idea of having a multi-sig gate the ability to offer proposals. This make the system far less permissionless.
That said, having a culture of rejecting proposals that do not go through the review process by default does make sense.
Love the ideas of having categories. Eg. SIP-P0004 could be proclamation. SIP-T0003 could be treasury. SIP-C0004 might be change to contract. I haven't given enough thought to what the categories might b. However, some SIP introduce no changes on state, and are more cultural/conceptual, and that should probably be reflected. Your proposed tracks seem well thought out.
I think having the ability to have community poll, or off-chain poll of stakers can help smooth the process of prioritising proposals and avoiding controversial ones. I have seen snapshot governance tools used for this purpose.
To me it seems that the most obvious candidates for Guardians are delegates.
In any event, we should seek to make sure that debate is always help transparently and publicly.

IP has the advantage of being easy to pronounce

Fair :slightly_smiling_face: Will change back to keep the current terminology.

I don't like the idea of having a multi-sig gate the ability to offer proposals. This make the system far less permissionless.

Yes this was taking the Guardians concept and leaning hard into it. We can ease up and leave them only with veto power if the community prefers.

That said, having a culture of rejecting proposals that do not go through the review process by default does make sense.

Sure, we can rely on social norms instead of a hard gating function.

However, some SIP introduce no changes on state, and are more cultural/conceptual, and that should probably be reflected.

I think these kinds of proposals most likely belong in the Meta track or Proclamations track (the Sovryn Constitution isn't written yet but would be modified using a Meta track proposal). However the process does specify the possibility of using "Other" as a category and a way to add other categories as needed if a proposal doesn't fit into any existing category.

I think having the ability to have community poll, or off-chain poll of stakers can help smooth the process of prioritising proposals and avoiding controversial ones. I have seen snapshot governance tools used for this purpose.

True yes. We could implement this as part of the social norms, similar to the review process: proposals are reviewed, then polled, then go back for a review if they fail the poll or proceed to the final vote if they pass the poll. Or we can say it's optional that proposals go through a poll before the final vote. Either way I do agree having a polling system would be useful.

To me it seems that the most obvious candidates for Guardians are delegates.

Right now I have it that they are elected by SOV holders, and there are a limited number of them (5). Whereas there can be an unlimited number of delegates, and some holders (large and small) won't delegate at all.
However I've been thinking also that it might be better to have the Guardians elected by some other means. The thinking here is that the purpose of Guardians is to protect the project against malicious proposals. Proposals that would be approved by... SOV holders. And who elects the Guardians? SOV holders...? So if there is an attacker, they could just elect Guardians who won't reject their proposals. To make this system robust Guardians should instead be elected by some other means. Perhaps initially selected by the team, and then self-perpetuating into the future (i.e. the Guardians themselves vote on any replacements that are needed if any of them leave). As a backstop against malicious/corrupt Guardians (e.g. if they go rogue and reject all proposals unless they receive some exorbitant rent, or are pressured by some external entity to block proposals) and assuming a majority of SOV holders are honest, the protocol could revert to pure SOV governance if no proposals are approved for X amount of time. This gives time for anyone who isn't comfortable participating anymore to sell out of the protocol, and time for the remaining honest SOV holders to coordinate a replacement for the Guardians.

In any event, we should seek to make sure that debate is always help transparently and publicly.

Absolutely :slightly_smiling_face:

@YagoBit I made a few changes based on your feedback. Biggest change was making most of the process optional (so proposals can be accelerated if needed). And I changed the process so that anyone can submit proposals for a vote and Guardians only veto after a proposal has been submitted for a vote. Still thinking about changing how Guardians are selected, as mentioned in my comment above.

While the idea of guardians makes me somewhat uncomfortable, I see it's utility - at least in the short term. Perhaps we should allow a supermajority to overrule the guardians?

We can learn some valuable things from how EIPs are processed... They use thair html-proofer and their eip-validator...


Port of langpacks for release/1.35

Port request of: #18354
This PR addresses https://github.com/microsoft/azuredatastudio/issues/18363 in conjunction with an update to the extensions gallery afterwards.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.002%) to 48.234%

Files with Coverage Reduction
New Missed Lines
%

extensions/notebook/src/book/bookTreeView.ts
2
38.21%

Totals

Change from base Build<PHONE_NUMBER>:
-0.002%

Covered Lines:
14797

Relevant Lines:
29109

💛  - Coveralls


TextView with ScrollView: AllowReturn = true causes WordWrap to turn off

Use case:
TextView used in read-only mode but with word wrap on. TextView is in a container view with a Button with IsDefault=true.
Expected behavior:

If TextView has focus, pressing ENTER should click the button.

Actual behavior:

If TextView has focus, pressing ENTER does nothing

You'd think setting AllowReturn = true would be a workaround to fix this, And it does cause the right behavior. However, it also causes TextView to ignore WordWrap = true:

I think this was fixed by the #1804.


Implement COUNT Subquery with PG specifications

Implements a version of COUNT subquery that evaluates the underlying subquery according to Postgres subquery specifications.
Modifies the grammar to accept all valid input for both COUNT and EXISTS subqueries.
Add regression tests related to COUNT
Modify the subquery regression tests to accomodate changes introduced in this update.

Outdated


cq:lastModified property for XF should not be deleted by the cleaner task

By default, cleaning task deletes cq:lastModified property. Unfortunately, the experience-fragment that exists on a page, needs this property to be replicated/published succesfully. Otherwise, an error on AEM and a NullPointerException is thrown and the page with the XF cannot be published (with the deleted property).
java.lang.NullPointerException: null 	at com.adobe.cq.xf.impl.ExperienceFragmentsReferenceProvider.findReferences(ExperienceFragmentsReferenceProvider.java:154) [com.adobe.cq.cq-experience-fragments:1.2.50] 	at com.day.cq.wcm.core.impl.reference.ActivationReferenceSearchServlet.doGet(ActivationReferenceSearchServlet.java:140) [com.day.cq.wcm.cq-wcm-core:5.12.96] 	at com.day.cq.wcm.core.impl.reference.ActivationReferenceSearchServlet.doPost(ActivationReferenceSearchServlet.java:91) [com.day.cq.wcm.cq-wcm-core:5.12.96] 	at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:146) [org.apache.sling.api:2.18.4]
A solution would be to exclude removal of this property for /content/experience-fragments path. Maybe something like this:
pathRule("cq:lastModified*", listOf("**/content/experience-fragments/*")),

thanks for reporting this. the case looks strange, AEM code definietely could be more hardened here.
however your proposal seems legit. to be considered if it would be default.


Add More fill Options for Figures @ Sketch Page

Sample Snapshot

Description

The title explains the issue well!

Can I work on this issue under GSSOC21? Kindly assign it to me.

This is a continuation of the last PR @ashuvssut was working on. If he is unable to do it within a couple of days, then @AshuKV can go forward

@AshuKV , I am removing current drawing methods and implementing roughjs instead.
So this issue is dependent on my work. My PR ETA: 2days

If he is unable to do it within a couple of days, then @AshuKV can go forward

Please assign me this one. I am 100% that I can make it


Implement client for feature service

This will be required for a few of the GraphQL resolvers, e.g. MessageSchema.byBbox, TilesSchema.fetchPlacesByBbox and EdgesSchema.locations.
Should be merged after #21.

@Smarker Always declaring the exports at the bottom of the file also makes it easy to find them and has the benefit that it always works, even for exports that are declared as variables instead of functions (read more).

Alright, good point. I agree.


handle tz while extractiing second/minute/hour from Timestamp* arrays

The patch rewrites the behaviour using macros to indicate the
repetitive nutate of operations
Which issue does this PR close?

Does not really close #500 but fixes it partially as even after this PR is merged only certain tz formats will be recognized.
Closes #.
Rationale for this change
The change uses timezone from array while calculating second/minute/hour for the array elements. This is currently being ignored.

What changes are included in this PR?
The changes in this PR only partially close the bug. When the timezone is not specified the format expected by the chrono library then an error is returned.

Are there any user-facing changes?
Anything of the form [+-]XX:XX will be recognized but nothing of the form eg America/Newyork will start returning error

Not sure if this is a breaking change.

I will try to review this tomorrow unless someone beats me to it

Thanks @alamb for the review. It would great to have another round of review

I will try and check this out later today. Thanks @sum12


error 507

please is possible add :
#define KOCErrorServerInsufficientStorage 507
In OCErrorMsg.h
thanks.

Add in :
[[AppDelegate sharedOCCommunication] readFile:fileName onCommunication:[AppDelegate sharedOCCommunication] successRequest:^(NSHTTPURLResponse *response, NSArray *items, NSString *redirectedServer)
if result its OK in NSArray the items.fileName is nil !?!?!

Hey @marinotws sorry for the delay. Uhm... looks like it is a problem of the server side.
If they do not give a fileName could be because it is the root folder.


update boringssl reference

@alexey-milovidov
Hi, happy new year 🎉. feel sorry for disturb, I saw ClickHouse added some references of googlesource.com(eg. openssl submodule). I think maybe we should put them into the github.com/ClickHouse-ext? that for many chinese source compile user is useful(works without VPN. This is not allowed on many internal company servers.)
after:
sudo find ./ -name .gitmodules |xargs cat |grep google
	url = https://github.com/google/googletest.git
	url = https://github.com/google/googletest.git
	url = https://github.com/google/cctz.git
[submodule "contrib/googletest"]
	path = contrib/googletest
	url = https://github.com/google/googletest.git
	url = https://github.com/google/double-conversion.git
	url = https://github.com/google/re2.git
	url = https://github.com/google/snappy
	url = https://github.com/google/brotli.git

Sorry, missed this PR.

These recursive submodules from OpenSSL are not used at all, we can remove them.

This? https://github.com/ClickHouse-Extras/openssl/pull/3

Do I understand correctly that Google is banned even within GitHub? https://github.com/google/


Resource Customizations in ArgoCD CR are removed

Describe the bug
Resource customizations applied to the ArgoCD CR openshift-gitops are completely removed and overwritten periodically.
To Reproduce
Steps to reproduce the behavior:

Install the OpenShift Gitops operator (version 1.5.6)
Inspect the ArgoCD/openshift-gitops resource.
Add the following to the spec section:    resourceCustomizations: |
      operators.coreos.com/Subscription:
        health.lua: |
          health_status = {}
          if obj.status ~= nil then
            if obj.status.conditions ~= nil then
              numDegraded = 0
              numPending = 0
              msg = ""
              for i, condition in pairs(obj.status.conditions) do
                msg = msg .. i .. ": " .. condition.type .. " | " .. condition.status .. "\n"
                if condition.type == "InstallPlanPending" and condition.status == "True" then
                  numPending = numPending + 1
                elseif (condition.type == "InstallPlanMissing" and condition.reason ~= "ReferencedInstallPlanNotFound") then
                  numDegraded = numDegraded + 1
                elseif (condition.type == "CatalogSourcesUnhealthy" or condition.type == "InstallPlanFailed" or condition.type == "ResolutionFailed") and condition.status == "True" then
                  numDegraded = numDegraded + 1
                end
              end
              if numDegraded == 0 and numPending == 0 then
                health_status.status = "Healthy"
                health_status.message = msg
                return health_status
              elseif numPending > 0 and numDegraded == 0 then
                health_status.status = "Progressing"
                health_status.message = "An install plan for a subscription is pending installation"
                return health_status
              else
                health_status.status = "Degraded"
                health_status.message = msg
                return health_status
              end
            end
          end
          health_status.status = "Progressing"
          health_status.message = "An install plan for a subscription is pending installation"
          return health_status

Monitor. Sometimes reversion is immediate, sometimes it takes an extended period. (Several hours, days even?)

Expected behavior
I expected my resource customization to apply and remain, however, it applies and works as expected, but for an indeterminate amount of time before being overwritten and reset.
Additional context
Note Issue #117, with a similar problem. However, the solution there is to make the edits to this resource rather than the CM.

Hm, that's weird. The Operator shouldn't touch that part of the CR for the default instance. It should only touch resource assignments:
https://github.com/redhat-developer/gitops-operator/blob/4b751128a52076d92c59e061de423c77bfa54c72/controllers/gitopsservice_controller.go#L356
We'll look into that.

Hi @jannfis ,
We've identified a piece of our automation that was applying patches to the resource - and we suspect that those patches were responsible for resetting our resourcecustomizations.
Apologies for any inconvenience caused!
Thanks


[BUG] Missing example code automm/Conv-Lora

In paper Convolution Meets LoRA: Parameter Efficient Finetuning for Segment Anything Model https://arxiv.org/abs/2401.17868, it said that "Our code is public available at https://github.com/autogluon/autogluon/tree/
master/examples/automm/Conv-LoRA", however I can't find it.
Is it true that the code in there now or before, where is it
Sincerely thanks
2401.17868v1.pdf

sorry for this issue I find in not accepted yet pull request


A* Performance

I've been working on an "automated" roguelike (see here). Currently, the game goes pretty fast - the player takes a turn every 50ms. Every 100 turns 1-3 enemies spawn, and when they do, there's a noticeable performance drop. Currently, all of the enemies are using A* to find their way to the player, but I'm wondering if that's a wise idea.
What sorts of options do I have here? Should I compute a weighted grid and use that (plus something like easystar) instead of using the callback-based ROT.AStar? Or am I just doing it wrong?

Additionally, I think part of my problem is that somehow references to the AStar path are being held. Periodically, my game will just freeze and after doing a snapshot via code, the allocation timeline looks like this:

But if I just don't do any pathfinding, it looks a bit more normal, like this:

My code looks like this:
  stepTowards(target) {
    let path = [];
    let canPass = (x, y) => {
      let isMe = this.x === x && this.y === y;
      let isTarget = target.x === x && this.y === target.y;
      return GameState.world.isTilePassable(x, y, this.z) || isMe || isTarget;
    };
    let astar = new ROT.Path.AStar(target.x, target.y, canPass, {topology: 8});
    let addPath = (x, y) => path.push({x, y});
    astar.compute(this.x, this.y, addPath);

    path.shift();
    let step = path.shift();
    if(!step) return false;

    this.moveTo(step.x, step.y);
    return true;
  }

It doesn't seem to be holding any references, so I'm not sure what the performance hit is for, really.

First of all, kudos for using a full-scale ES6, including the System API! I am very happy to see ES6 used in the wild.
This issue might be a pretty tough nut to crack. First of all, do you observe similar behavior also in Firefox (I assume your screenshots are from Chrome, right?) ? I tried your code in my Firefox and I did not notice any suttering on monster spawn.
Generally speaking, I would say that the described/measured behavior is caused by GC pauses. There is very little in the JS world to do in order to make GC behave; in most cases, the GC is much smarter than the JS developer.
(The actual CPU performance of the A* algo does not seem the be a problem, right? The (de)allocation is, instead...)
Every ROT.Path.AStar invocation comes with a reasonably heavy memory allocation cost, as all the traversed graph data needs to be stored during the computation. I am no A* guru so I am not able to tell if this memory requirement can be relaxed somehow. You can, if you wish, explicitely empty the this._todo and this._done fields once the compute() is finished (see https://github.com/ondras/rot.js/blob/master/src/path/astar.js). This might give the GC some earlier hint, but I really have no idea.
You can also double-check the transpiled code to see if the let astar definition does not accidentally end up being some memory leak or something.
As far as your game logic goes, you might try computing a Dijkstra path on every player move. This precomputed Dijkstra map can be re-used by all enemies, as they share a common goal (reaching the player). Again, I have no idea if this can improve your situation.
You can also limit the pathfinding algo to some radius (forbid paths that are longer than R distance from the player). This is more realistic and reduces the amount of memory allocated for pathfinding.

Thanks. I really am liking ES6 and being able to use it with plunker is a dream come true. It's also fun, because I've not seen many projects use full ES6, so I think I can share what I learned afterwards! From top to bottom...

Yes, this is chrome. It seems you're right; it's not happening at all in firefox. I may have to find someone to escalate that to. It definitely does not seem to be the performance of A*, but rather deallocation like you said - I think the algorithm is implemented fine and for my purposes it's correct.

I'll try explicitly setting todo and done if your other suggestions don't work, but this seems like it might help as well. I don't know as much about the GC as I probably should, I'll admit.

The transpiled code is as below. It just turns it into var:

          key: "stepTowards",
          value: function stepTowards(target) {
            var _this2 = this;

            var path = [];
            var canPass = function canPass(x, y) {
              var isMe = _this2.x === x && _this2.y === y;
              var isTarget = target.x === x && _this2.y === target.y;
              return GameState.world.isTilePassable(x, y, _this2.z) || isMe || isTarget;
            };
            var astar = new ROT.Path.AStar(target.x, target.y, canPass, { topology: 8 });
            var addPath = function addPath(x, y) {
              return path.push({ x: x, y: y });
            };
            astar.compute(this.x, this.y, addPath);

            path.shift();
            var step = path.shift();
            if (!step) return false;

            this.moveTo(step.x, step.y);
            return true;
          }

... so I think this is fine.

I think sharing a map is a wise choice actually, and it's not one I'd given thought to. This seems like a pretty obvious optimization and I'll probably try this first.

Is the radius limiter built into ROT or is that something I do myself? I ask because I'm not seeing it in the docs, so, I imagine that in the callbacks, I just check the distances between the position and the player and ignore if it's too far?

I'll give this a try tomorrow and let you know what I come up with.

Gotta say, that Dijkstra suggestion did it for me. I'm not noticing immediate hiccups upon monster spawning now, so I think I'll stick with this for a while. Thanks for the help!
FYI: I tried setting todo and done to undefined (and deleting them) but that didn't really do much.

Cool, good to know. I am pretty certain I saw some (unrelated to rot.js) GC reports in Chrome, especially when compared to Firefox before.
The range limiting would be done exactly as you described, as part of the user callback function.


RealmResults allAsync and queryAsync

Problem
I'm making Todo app and here are simplified models:
@RealmModel()
class $Task {
  @PrimaryKey()
  late Uuid uuid = Uuid.v4();
  late List<$TaskSession> sessions;
}

@RealmModel()
class $TaskSession {
  @PrimaryKey()
  late Uuid uuid = Uuid.v4();

  late List<$TaskTimeInterval> timeIntervals;
}

@RealmModel(ObjectType.embeddedObject)
class $TaskTimeInterval {
  late DateTime startTime;
  late DateTime? endTime;
}

And one of the tasks is to calculate total time spent in tasks. It is fine when I have few records, but when I'm using:
return tasks.fold<Duration>(
  Duration.zero,
  (totalDuration, task) => totalDuration + calculateTaskDuration(task),
);

Duration calculateTaskDuration(Task task) {
  return task.sessions.fold<Duration>(
    Duration.zero,
    (totalDuration, session) => totalDuration + calculateSessionDuration(session),
  );
}

Duration calculateSessionDuration(TaskSession session) {
  return session.timeIntervals.fold<Duration>(
    Duration.zero,
    (totalDuration, timeInterval) => totalDuration + timeInterval.endTime!.difference(timeInterval.startTime),
  );
}

the UI gets freezed for brief portion of seconds. I am ok that it takes some time to calculate complex calculations, but so far I can't find a way how to do it async/await, to show some loading indicator.
I do understand that this approach loads all data, but there are times, when this is necessary and Iterable from RealmResults, just doesn't suit it. When RealmResults are converted to toList(), then all calculation and operations with data or close instant, but so far I can't find a way how to do it async. Maybe someone can help?
Solution
Have a possibility to use read methods as all and query async, with naming convention allAsync and queryAsync that returns Future (of List or RealmList or some other class, don't know). After loading final tasks = await realm.allAsync<Task>() you can do any calculation whatsoever, as I can operate with preloaded data. And UI will show everything accordingly with loading indicator if necessary.
Alternatives
Maybe I'm unaware of possible solutions, but what I have tried, is making heavy sync code async but unfortunately all made attempts still didn't solve UI freeze or just got error (Illegal argument in isolate message: object is unsendable). Tried Future.wait, SendPort, compute(), but with no good results.
How important is this improvement for you?
Would be a major improvement
Feature would mainly be used with
Local Database only

Hi @ebelevics,
These methods all and query are really fast. They return RealmResults, but they don't load all the data. The data are actually loaded when you start to iterate read the fields (columns) of the objects. So making these methods async won't help. It will be better if you wrap the whole calculations method into an async method and to return a Future. Then notify the UI once the future returns the value.
 Future<Duration> calculate() async {
      final tasks = realm.all<Task>();

      return tasks!.fold<Duration>(............
           //Add your calculations here
      );
    }

    calculate().then((value) => setState(() {
          _total = value;
        }));

Hmm, I'll give a try

Here is some example, which is more close to my real life scenario. I have bottom navigation, where on "Analysis" navigation I show overall global analytics of tasks, but during navigation the app freezes for some portion of second. On this example I have simulated on 50 000 tasks.
I did try Future, but from my understanding it is working on main thread (that is why there is UI freeze), I tried to create Isolate, but it returned error [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Invalid argument(s): Illegal argument in isolate message: object is unsendable - Library:'package:realm/src/results.dart' Class: RealmResults (see restrictions listed atSendPort.send() documentation for more information).
So I have no idea how to make this process smooth and working.
import 'dart:math';

import 'package:flutter/material.dart';
import 'package:realm/realm.dart';

part 'main_realm.g.dart';

///------------- Models
@RealmModel()
class $Task {
  @PrimaryKey()
  late Uuid uuid;
  late List<$Session> sessions = [];
}

@RealmModel()
class $Session {
  @PrimaryKey()
  late Uuid uuid = Uuid.v4();

  Duration get totalTime => Duration(minutes: Random().nextInt(10), seconds: Random().nextInt(59));
}

///------------- Main
late final Realm realm;

void main() {
  final config = Configuration.local([Task.schema, Session.schema]);
  realm = Realm(config);
  runApp(const MyApp());
}

///------------- Widgets

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _currentIndex = 0;

  void _onTabTapped(int index) {
    setState(() {
      _currentIndex = index;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: _buildPage(_currentIndex),
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: _currentIndex,
        onTap: _onTabTapped,
        items: const [
          BottomNavigationBarItem(icon: Icon(Icons.home), label: 'Tasks'),
          BottomNavigationBarItem(icon: Icon(Icons.settings), label: 'Analysis'),
        ],
      ),
    );
  }

  Widget _buildPage(int index) {
    switch (index) {
      case 0:
        return const TaskPage();
      case 1:
        return const AnalysisPage();
      default:
        return Container();
    }
  }
}

///------------- Page1
class TaskPage extends StatefulWidget {
  const TaskPage({super.key});

  @override
  State<TaskPage> createState() => _TaskPageState();
}

class _TaskPageState extends State<TaskPage> {
  late RealmResults<Task> tasks;

  @override
  void initState() {
    // for (var i = 0; i <= 40000; i++) {
    //   var task = Task(Uuid.v4());
    //
    //   var sessions = <Session>[];
    //
    //   for (var j = 0; j <= Random().nextInt(4); j++) {
    //     sessions.add(Session(Uuid.v4()));
    //   }
    //
    //   task.sessions.addAll(sessions);
    //
    //   realm.write(() {
    //     print('Adding Task $i to Realm.');
    //     realm.add(task);
    //   });
    // }

    tasks = realm.all<Task>();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Todo app'),
        ),
        body: Center(
          child: Column(
            children: [
              Text('\nThere are ${tasks.length} tasks\n'),
              Expanded(
                child: ListView.builder(
                  itemCount: tasks.length,
                  itemBuilder: (context, i) {
                    final task = tasks[i];

                    final textWidget = Text('Task "${task.uuid}" with ${task.sessions.length} sessions');

                    return textWidget;
                  },
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

///------------- Page2
class AnalysisPage extends StatefulWidget {
  const AnalysisPage({super.key});

  @override
  State<AnalysisPage> createState() => _AnalysisPageState();
}

class _AnalysisPageState extends State<AnalysisPage> {
  final timer = Stopwatch();

  var totalTaskTime = Duration.zero;
  late RealmResults<Task> tasks;

  @override
  void initState() {
    timer.start();

    tasks = realm.all<Task>();
    print("1:${timer.elapsed}");

    // compute(calculation, null);
    calculation(null).then((value) {
      print("3:${timer.elapsed}");
      totalTaskTime = value;
      setState(() {});
    });

    print("2:${timer.elapsed}");

    super.initState();
  }

  Future<Duration> calculation(dynamic data) async {
    print("4:${timer.elapsed}");
    final tasks = realm.all<Task>().toList();
    print("5:${timer.elapsed}");
    return tasks.fold<Duration>(Duration.zero, (prev, t) {
      return prev + t.sessions.fold(Duration.zero, (prev, s) => prev + s.totalTime);
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Todo app'),
        ),
        body: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Center(child: Text('\nThere are ${tasks.length} tasks\n')),
            Center(child: Text('\nTotal spent time was $totalTaskTime \n')),
          ],
        ),
      ),
    );
  }
}

Hi @ebelevics!
I think the code is ok. The only thing you can do is to remove .toList() on the RealmResults. This goes through all the items and the you iterate them again using fold. You can call  final tasks = realm.all<Task>(); once and use it for the tasks.length and for the time calculation. See the example below.
class AnalysisPage extends StatefulWidget {
  const AnalysisPage({super.key});

  @override
  State<AnalysisPage> createState() => _AnalysisPageState();
}

class _AnalysisPageState extends State<AnalysisPage> {
  var totalTaskTime = Duration.zero;
  var tasksCount = 0;
  @override
  void initState() {
    super.initState();
    calculation(null).then((value) {
      totalTaskTime = value;
      setState(() {});
    });
  }

  Future<Duration> calculation(dynamic data) async {
    final tasks = realm.all<Task>();
    tasksCount = tasks.length;
    return tasks.fold<Duration>(Duration.zero, (prev, t) {
      return prev + t.sessions.fold(Duration.zero, (prev, s) => prev + s.totalTime);
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Todo app'),
        ),
        body: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Center(child: Text('\nThere are $tasksCount tasks\n')),
            Center(child: Text('\nTotal spent time was $totalTaskTime \n')),
          ],
        ),
      ),
    );
  }
}

You can also store the calculated totalTaskTime to another field into realm in case it is not going to be edited. So that next time you read it it will be already calculated.
About Page 1, I can suggest using StreamBuilder. This will update your list automatically in case of any new changes.
///------------- Page1
class TaskPage extends StatefulWidget {
  const TaskPage({super.key});

  @override
  State<TaskPage> createState() => _TaskPageState();
}

class _TaskPageState extends State<TaskPage> {
  @override
  void initState() {
  }

  Container waitingIndicator() {
    return Container(
      color: Colors.black.withOpacity(0.2),
      child: const Center(child: CircularProgressIndicator()),
    );
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Todo app'),
        ),
        body: Center(
          child: StreamBuilder<RealmResultsChanges<Task>>(
              stream: realm.query<Task>("TRUEPREDICATE SORT(uuid ASC)").changes,
              builder: (context, snapshot) {
                final data = snapshot.data;
                if (data == null) return waitingIndicator();

                final results = data.results;
                return Column(children: [
                  Text('\nThere are ${results.length} tasks\n'),
                  Expanded(
                    child: ListView.builder(
                      shrinkWrap: true,
                      itemCount: results.realm.isClosed ? 0 : results.length,
                      itemBuilder: (context, i) {
                        final task = results[i];
                        final textWidget = Text('Task "${task.uuid}" with ${task.sessions.length} sessions');
                        return results[i].isValid ? textWidget : Container();
                      },
                    ),
                  ),
                ]);
              }),
        ),
      ),
    );
  }
}

I did apply your code for analysis, but this doesn't resolve UI freeze during calculation. As seen in video on pressing Analysis button, the button ink animation in not smooth, while pressing on Tasks it is. The 50000 is a bit extreme number, but it was meant for example purposes, tho when those calculations stack up in real app, I can't find clear way to make this experience smoother. Storing calculated totalTaskTime is sure an option, but I have feeling that this solution more error prone.
device-2023-07-18-101707.webm

It always needs time when you iterate between all the items. If you want to avoid storing the calculated results then perhaps you may calculate them async in advance when the first tab is populated and then to attach to listen for changes on the RealmResuls in order to re-calculate again if the data has changed. When the users open the tab the data will be ready to be displayed.

"then perhaps you may calculate them async in advance when the first tab is populated"
This is exactly what I want to achieve but had no luck in code, even in this example successfully. I would be totally fine if when I click Analysis for first time, it shows loading indicator, while data are getting iterated and calculated, but so far all my attempts does freeze UI. Would be appreciated for some directions.

Not a flutter developer, so pardon the eventual inaccuracies in my reply, but you probably want to run the calculation on a different isolate. Now, the issue is that Realm objects are bound to the isolate they were created on, so you can't just move them around (guessing this is why you were getting Illegal argument in isolate message: object is unsendable). What you need to do is re-open the Realm, do the calculation and return that. Something like:
final durationInMs = await Isolate.run(() {
  final bgConfig = Configuration.local([Task.schema, Session.schema]);
  final bgRealm = Realm(bgConfig);
  return bgRealm.all<Task>().fold<Duration>(Duration.zero, (prev, t) {
    return prev + t.sessions.fold(Duration.zero, (prev, s) => prev + s.totalTime);
  }).inMilliseconds; // need to change it to int as Duration is not sendable I think
});

final duration = Duration(milliseconds: durationInMs);

@nirinchev Thank you, this indeed solved the issue and now transition is much smoother.

For those who want to get realm models as list and operate with all loaded data (for example grouping, sorting or filtering data especially when if-logic is in child models) or just separate DB model logic from App model logic (to preserve Clean Architecture principles) without UI freezing hiccups (if occurs), then thanks to @nirinchev suggestion it is possible to do it with:
  Future<List<Task>> getAllTasksAsync() async {
    final data = await Isolate.run(() {
      final bgConfig = Configuration.local([TaskLocal.schema, TaskSessionLocal.schema]);
      final bgRealm = Realm(bgConfig); // initializes DB in separate isolate, so that main UI thread doesn't freeze
      final localData = bgRealm.all<TaskLocal>(); // gets all Local data from DB
      final appData = List<Task>.from(localData.map((l) => l.asApp())); // then converts all local data to app data
      return appData; // and returns back
    });
    return data;
  }

returning RealmObjects I believe is not possible because RealmObject implements Finalizable, where SendPort.send which is part of Isolate.run doesn't support sending such objects (https://api.dart.dev/stable/3.0.6/dart-isolate/SendPort/send.html).
Of course there could be some code optimizations, but the idea works, and am super glad that I can continue using Realm as DB solution for my use cases.

Just noticed a real life scenario where I needed to use my implemented allAsync function working with groupBy method.
I needed to create grouped listview where I have two subgroups. So in the end I got from List<TaskRecord>   --->  Map<String, Map<Task, List<TaskRecord>>>. But without using isolates(Isolate.run) my UI would freeze on longer list. Also that I can't pass RealmObjects via SendPort forces me to create separate models.

The solution is the same as with a list - you can do the grouping on a background thread and pass the entire map back to the UI. Alternatively, you can load the data in batches and process more and more messages as the user scrolls on the screen, similarly to what the iOS Messages UI looks like. In any case, this is a general-purpose question for working with large datasets and not something necessarily related to Realm (passing the objects as thread safe references would not work well here if you have a million of those).
I'm going to close this as there's not much we can do on the Realm side with the current design of the database.


Running individual test case

When I try to run an individual test case with parameters in Eclipse, I get an initializationError from the runner. I'm always forced to run the whole class, i.e. all test cases.
Any way to do this?

It seams that the problem has two causes.
First the JUnitParamsRunner class makes its own Descriptions for methods, but the super class of JUnit BlockJUnit4ClassRunner makes different Description objects in the method describeChild().
So the SubForestFilter filter of Eclipse does not find the correct method.
I made a subclass of JUnitParamsRunner which overrides the describeChild() method, appying the JUnitParamsRunner logic for description creation.
public class MyJUnitParamsRunner extends JUnitParamsRunner {

    private final ConcurrentHashMap<FrameworkMethod, Description> methodDescriptions = new ConcurrentHashMap<>();

    public MyJUnitParamsRunner(Class<?> klass) throws InitializationError {
        super(klass);
    }

    @Override
    protected Description describeChild(FrameworkMethod method) {
        Description description = methodDescriptions.get(method);

        if (description == null) {
            // Call the JUnitParamsRunner logic instead of the org.junit.runners.BlockJUnit4ClassRunner.describeChild(FrameworkMethod) logic
            description = describeMethod(method);

            methodDescriptions.putIfAbsent(method, description);
        }

        return description;
    }

}

This will solve the problem to start one testMethod (with all inputs).
But it does not solve the issue of executing one testMethod with only one input.
This issue seams to be the "default" method description logic of JUnitParams.
JUnitParams creates Descriptions containing () for the methodName.
E.g. [0] 15,false (personIsAdult)
The full name would be "[0] 15,false (personIsAdult)(mypkg.JUnitParamsCsvTest)"
But JUnit uses () to filter the classname for the identifier. See class org.junit.runner.Description.METHOD_AND_CLASS_NAME_PATTERN
So to fix that issue is used the @TestCaseName annotation
E.g. @TestCaseName("[{index}] {method}: {params}")
    @Test
    @FileParameters("testDataJUnitParamsCsvTest.csv")
    @TestCaseName("[{index}] {method}: {params}")
    public void personIsAdult(int age, boolean valid) {

Now I am able to execute exactly one testCase with one input.
It would be nice, if the default naming of methods could be changed to not include any ().
And the JUnitParamsRunner overrides the describeChild() method.

any ETA on this making it as part of the official release? a pretty valuable/necessary feature. thank you.

Hi @AndreasTu ,
Thanks for the workaround :+1:  (using custom MyJUnitParamsRunner + adding @TestCaseNameon method).
I don't get the initialization error anymore, only the single method is run, but yet, the JUnit View still displays all other tests methods in the class and the test process never returns ...
Any ideas?
Eclipse  Mars (4.5.0)
Junit 4.12

Hi @tinesoft ,
I had the same problems with the JUnit View in Eclipse, and no good solution for it sorry.
Retested today on:
Eclipse Neon SR.1a  (4.6.1)
JUnit 4.12

I have the same issue with the Junit View in Eclipse.
My IDE: Eclipse Mars 4.5.1.
JUnit 4.12.
Does already exist a solution for the issue??
Another important point is the exception handling...
Unfortunately no detailed exception is printed at the JUnit View or the Console.
In my case it was only a small problem (the path of the testfile was wrong) but I searched more than 2 hours without really knowing where to look. I only saw the "initializationError" without any details.
It is perhaps possible to throw the whole exception / or another detailed message instead of using just the initializationError?
It would be great and very useful :-)
Kind regards and many thanks in advance,
Christian

Yes, same problem, workaround doesn't help.
The filter seems to be looking for "method(class)" as opposed to "[index] method: params(class)" so it won't rerun my individual tests.

i also have problems for running tests without params. will this solution work for me as well? or is this a different issue?

This is a real pain point with this project. is anyone any nearer to finding a solution?

It seems that nobody is maintaining the project, although it is a real helper for JUnit tests.

Now that JUnit 5 is getting proper parameterized tests, I think this project isn't going to get much attention (as useful as it has been).
I know Eclipse has some support for JUnit 5 but when I last tried there were still some issues (I forget what). Hopefully 4.8 will get things working 100%.

Sorry for insufficent support on this issue. We, at Pragmatists, wish we could spend more time on this project. As @moreginger mentioned, nowadays JUnit 5 has decent support for parameterized tests. We recommed to use it when possible. It will be more likely better supported by all IDEs.
Nevertheless we are aware that many people, for some reasons, cannot migrate to JUnit 5 and JUnitParams is still usefull. That why we are doing our best to keep it maintained.

yeah, I know about junit 5, but prefer this project. shame.

fyi, tried junit5, but could not get it to play at all with integration-test phase of maven mixed with junit 4 tests, and its all a bit marginal right now, so am returning to junit4 and junitparams for the foreseeable.


Update to .NET 5 (5.0.3)

Update to .NET 5 (5.0.3)

Well, can not wait to see that.

It is ready to use in master branch. 😊🚀


Added missing information to operations

Including: LPs, clawbacks, claimable balances

Preview is available here:http://developers-pr11.previews.kube001.services.stellar-ops.com/docs

Preview is available here:http://developers-pr11.previews.kube001.services.stellar-ops.com/docs

Preview is available here:http://developers-pr11.previews.kube001.services.stellar-ops.com/docs


redraw graph on entityIdChange #92

fix for issue #92

added method "reload" to SzEntityDetailGraphComponent which in turn just calls the recently added "reload" method on the sdk-graph-components SzRelationshipNetworkComponent class.
wired method in to data change

Issue number: #92


Need method to translate a network

It would be nice to have a method that can translate a network by a given amount to another position. This would require all components to be translated, reaction handles and reaction center, nodes, and compartments.
This would allow for example someone to center a network in a given bounding box, eg the viewable canvas.

translate_network() now handles this.


Links to gemini (and gopher) fail to open on first click

Attaching video for evidence of what happens. In short, if Lagrange is not already open and I click a link to gemini (Lagrange as the handler) the app opens and navigation fails. It looks like it takes the path portion of the URL and applies it to a file:// path instead of gemini:// with the domain. If I return and click the link again it loads properly.
v1.14b7 installed via F-Droid. Recorded on a stock Samsung A-72. Links coming from Mastodon website in this video, but same behavior happens no matter the link source.
https://user-images.githubusercontent.com/201422/202928284-92c7f8f1-6a45-4885-a91a-eaf86ebaf81e.mp4

Looks like this is a bug in SDL2, where it's only passing the path component of an incoming URI when the app is being launched. Fortunately, a small tweak in the SDL2 Java code fixed it.

The commit: https://git.skyjake.fi/gemini/lagrange-android/commit/3daaea6f5885c8ea665f08e8d19065e3af9aec9f


Did you tackle the enhanced dataset metadata problem yet?

I believe since September 2020 release all of the current DataMashup solutions are useless. Have you tried to see what can be done around enhance dataset metadata https://docs.microsoft.com/en-gb/power-bi/connect-data/desktop-enhanced-dataset-metadata

@Hugoberry, unfortunately, I havent had much luck with tackling this and my tool no longer works for the newer versions of PBIX. The problem I am hitting is that it seems like the only way to access the enhanced metadata is by loading the data into a PBIX session and then connecting to it via SSAS and the data is not available in a ready to consume format inside the PBIX file.
Have you found any solutions?

MS reply to this is to use alm toolkit, however there is no magic there aprat from diffing two TOM ojects. And when it comes to PBIX files it does the job only when the file is open, so again with the DataModel loaded into memory. I will try to see if possible to decompress the DataModel to have a file base approach. Yet again this might change on any release cycle.

I will be interested in what you find out. I would also like a solution that doesn't depend on needing to run PBI desktop or SSAS server. It is very disappointing that they took this approach.


Fix/bug premature deletion issue #191

Fixes #191
Closes #191
Changes Made:
To prevent premature deletion of tasks and improve the user experience, this PR makes the following changes:

Refactored the task deletion logic to ensure that todo tasks are deleted only after the user confirms through a confirmation dialog.

Resolved a similar issue with the "Clear All Tasks" logic to provide consistent behavior.

Screencast from 23-10-23 04:23:37 PM IST.webm

Hello @Kritika30032002, please review the PR and consider merging it.
Your feedback is highly valuable.
Thank you for your time and consideration.


Fix latency after boot

related issue: https://github.com/tweedegolf/sequential-storage/pull/65

PR for s-s: https://github.com/tweedegolf/sequential-storage/pull/69
PR for RMK: https://github.com/HaoboGu/rmk/pull/175


[BUG] Text content overflow in UserCard

Description
When user bio contains a long word (without spaces). The bio text will overflow outside the UserCard width.
Attached screenshot of my profile card after updating my bio with long no spaced "zzz..."  as bio.
Possibly a simple css rule could solve the bug word-break: break-all
Screenshots

Additional information
No response

Thank for raising the issue 👍

Hello, do you have an example of this with a word that would be this long? I see what you mean, but cannot think of a realistic profile case in which this would happen.

Good point, I will close for now 👍


[fix][admin] Keep new inputSpecs when updating sink configs

Fixes #18507
Motivation
When a user updates inputSpect of a sink by providing both --inputs and --input-specs, exiting consumerConfig will be wiped out.
Modifications
On the validateUpdate code path, there is a logic that populates the inputSpecs inside the newConfig to empty consumerConfig. This will overwrite the existing specs when later on the methods attempts a merge and will also merge in the hard coded consumer configs ignoring any new values the user might've provided. By only setting the consumerConfig to a default value if such config didn't exit, the behavior is similar to what would happen if the user did the update, without providing the --inputs specs (which is, newConfig consumer config will overwrite exiting ones.
Verifying this change

[x] Make sure that the change passes the CI checks.

This change added tests and can be verified as follows:

Added new unit tests with --inputs set
Tried the e2e scenario mentioned in #18507 and verified the new configs went through by running the sinks get command

Does this pull request potentially affect one of the following parts:

If the box was checked, please highlight the changes

[ ] Dependencies (add or upgrade a dependency)
[ ] The public API
[ ] The schema
[ ] The default values of configurations
[ ] The threading model
[ ] The binary protocol
[ ] The REST endpoints
[ ] The admin CLI options
[ ] The metrics
[ ] Anything that affects deployment

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
PR in forked repository: https://github.com/aymkhalil/pulsar/pull/4

Codecov Report

Merging #19082 (2d82081) into master (492a9c3) will decrease coverage by 10.25%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             master   #19082       +/-   ##
=============================================
- Coverage     47.46%   37.20%   -10.26%
+ Complexity    10727     1988     -8739
=============================================
  Files           711      209      -502
  Lines         69456    14452    -55004
  Branches       7452     1577     -5875
=============================================
- Hits          32964     5377    -27587
+ Misses        32810     8490    -24320
+ Partials       3682      585     -3097

Flag
Coverage Δ

unittests
37.20% <0.00%> (-10.26%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...va/org/apache/pulsar/client/impl/ConsumerImpl.java
15.06% <0.00%> (-0.04%)
:arrow_down:

...g/apache/pulsar/client/impl/ConnectionHandler.java
50.00% <0.00%> (-5.32%)
:arrow_down:

...balance/impl/SimpleResourceAllocationPolicies.java

...keeper/mledger/impl/cache/RangeEntryCacheImpl.java

...he/pulsar/broker/admin/v1/NonPersistentTopics.java

...ava/org/apache/bookkeeper/mledger/ScanOutcome.java

...ache/pulsar/broker/loadbalance/LinuxInfoUtils.java

...ansaction/buffer/TransactionBufferClientStats.java

...oker/loadbalance/LoadResourceQuotaUpdaterTask.java

... and 495 more


Adding ability to deploy from bundle URLs

Added ability to deploy with operator-sdk run bundle instead of from the upstream catalog or a local build
Added a symlink to simplify calling operator-sdk
Turned off facts gathering for performance
Moved a couple when clauses for clarity

I'm going to take care of these conflicts locally and retest

I've tested the bundle deploy and it works great (some cluster prep required). I haven't retested the other modes yet, though I'm sure Jenkins will tell me if the local builds still work, and I will retest the upstream catalog install locally now.
I happened to grab bundle image paths from the latest stable-1.3 CI job downstream and this is what I saw:
$ oc new-project service-telemetry && \
  ansible-playbook -e __local_build_enabled=false -e __deploy_from_bundles_enabled=true \
  -e __service_telemetry_bundle_image_path=registry-proxy.engineering.redhat.com/rh-osbs/stf-service-telemetry-operator-bundle:1.3.1650655731-1 \
  -e __smart_gateway_bundle_image_path=registry-proxy.engineering.redhat.com/rh-osbs/stf-smart-gateway-operator-bundle:3.0.1650655733-1 \
  -e __service_telemetry_storage_ephemeral_enabled=true \
  build/run-ci.yaml

[...]

        "* [info] Waiting for all pods to show Ready/Complete",
        "",
        "",
        "* [info] CI Build complete. You can now run tests."
    ]
}

PLAY RECAP ******************************************************************************************************************************************************************************
localhost                  : ok=31   changed=14   unreachable=0    failed=0    skipped=17   rescued=0    ignored=0

$ oc get sub
[...]
service-telemetry-operator-v1-3-1650655731-sub                          service-telemetry-operator             service-telemetry-operator-catalog   stable-1.3
smart-gateway-operator-v3-0-1650655733-sub                              smart-gateway-operator                 smart-gateway-operator-catalog       stable-1.3

I've retested the upstream artifacts like this:
$ oc new-project service-telemetry && ansible-playbook \
  -e __local_build_enabled=false \
  -e __service_telemetry_storage_ephemeral_enabled=true \
  build/run-ci.yaml
[...]

$ oc get sub
[...]
service-telemetry-operator                                              service-telemetry-operator             infrawatch-operators      unstable
smart-gateway-operator                                                  smart-gateway-operator                 infrawatch-operators      unstable

It doesn't fully work, but I don't think it's related to my change.
Here is the failure, from SGO logs:
 TASK [Add oauth redirect annotation to prometheus-k8s service account] ********************************
fatal: [localhost]: FAILED! => {"changed": false, "error": 403, "msg": "Failed to retrieve requested object: b'{\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},\"status\":\"Fa
ilure\",\"message\":\"serviceaccounts \\\\\"prometheus-k8s\\\\\" is forbidden: User \\\\\"system:serviceaccount:service-telemetry:service-telemetry-operator\\\\\" cannot get resource \\
\\\"serviceaccounts\\\\\" in API group \\\\\"\\\\\" in the namespace \\\\\"service-telemetry\\\\\"\",\"reason\":\"Forbidden\",\"details\":{\"name\":\"prometheus-k8s\",\"kind\":\"service
accounts\"},\"code\":403}\\n'", "reason": "Forbidden", "status": 403}

I've retested the upstream artifacts like this:
$ oc new-project service-telemetry && ansible-playbook \
  -e __local_build_enabled=false \
  -e __service_telemetry_storage_ephemeral_enabled=true \
  build/run-ci.yaml
[...]

$ oc get sub
[...]
service-telemetry-operator                                              service-telemetry-operator             infrawatch-operators      unstable
smart-gateway-operator                                                  smart-gateway-operator                 infrawatch-operators      unstable

It doesn't fully work, but I don't think it's related to my change. Here is the failure, from SGO logs:
 TASK [Add oauth redirect annotation to prometheus-k8s service account] ********************************
fatal: [localhost]: FAILED! => {"changed": false, "error": 403, "msg": "Failed to retrieve requested object: b'{\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},\"status\":\"Fa
ilure\",\"message\":\"serviceaccounts \\\\\"prometheus-k8s\\\\\" is forbidden: User \\\\\"system:serviceaccount:service-telemetry:service-telemetry-operator\\\\\" cannot get resource \\
\\\"serviceaccounts\\\\\" in API group \\\\\"\\\\\" in the namespace \\\\\"service-telemetry\\\\\"\",\"reason\":\"Forbidden\",\"details\":{\"name\":\"prometheus-k8s\",\"kind\":\"service
accounts\"},\"code\":403}\\n'", "reason": "Forbidden", "status": 403}

Yea I doubt this has anything to do with your changes. It should just be installing the bundles. It might be identifying an issue in the bundle, but not likely related to anything you changed.

test

test

I've revived the upstream CI to try to get this to pass. I needed to upgrade some packages in the CI container, but it's at least running now. It's currently failing like this:
TASK [stf-run-ci : Setup STF using local artifacts] ****************************
fatal: [localhost]: FAILED! => {"reason": "couldn't resolve module/action 'make'. This often indicates a misspelling, missing collection, or incorrect module path.\n\nThe error appears to be in '/home/jenkins/agent/workspace/ervice-telemetry-operator_PR-336/service-telemetry-operator/build/stf-run-ci/tasks/setup_stf_local_build.yml': line 116, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n  - name: Generate Loki Operator CSV\n    ^ here\n"}

This make stanza is going to be skipped anyways (because loki building is off by default) but I guess missing the module is still causing a crash. Nothing to do with my code, but I'll see what I can do to get this fixed and passing.

I fixed the problem with the make module, but have run into a problem with the SGO service account.
AFAICT all of the from-branch building is working properly, and this PR is safe to merge, but there may still be problems in the SGO code itself?
Here is the status from the SGO CSV (which remains in "Pending" state): https://paste.opendev.org/show/bd26cSYZPEr2Toj0g9YG/

I fixed the problem with the make module, but have run into a problem with the SGO service account.
AFAICT all of the from-branch building is working properly, and this PR is safe to merge, but there may still be problems in the SGO code itself?
Here is the status from the SGO CSV (which remains in "Pending" state): https://paste.opendev.org/show/bd26cSYZPEr2Toj0g9YG/

I can help look at this tomorrow. I finished my downstream release work so I'm open to help with the CI efforts, debugging, etc. I'm curious why this is failing since this is code I was specifically testing, and it passed downstream deployment, so something funky with the tooling somewhere.

test

On a hunch I'm trying this: https://github.com/infrawatch/smart-gateway-operator/commit/37a136d6a36cebf96578a88540a1a96ae5842588

On a hunch I'm trying this: infrawatch/smart-gateway-operator@37a136d

That fixed the problem! Deployment worked, but it's still failing the smoketest somewhere; it looks like triggering an alertmanager notification is not working:
*** [INFO] Creating smoketest jobs...
No resources found
job.batch/stf-smoketest-smoke1 created
*** [INFO] Triggering an alertmanager notification...
error: unknown flag: --serviceaccount
See 'oc run --help' for usage.

But everything else looks like it's working.
*** [INFO] Checking for returned CPU metrics...
{"status":"success","data":{"resultType":"matrix","result":[{"metric":{"__name__":"collectd_cpu_total","container":"sg-core","endpoint":"prom-https","host":"stf-smoketest-smoke1-65xlj","plugin_instance":"0","service":"default-cloud1-coll-meter","type_instance":"user"},"values":[[1652324201,"4963341"],[1652324211,"4963601"],[1652324221,"4963822"]]}]}}

** [INFO] Checking for returned healthcheck metrics...
{"status":"success","data":{"resultType":"matrix","result":[{"metric":{"__name__":"sensubility_container_health_status","container":"sg-core","endpoint":"prom-https","host":"stf-smoketest-smoke1-65xlj","process":"smoketest-svc","service":"default-cloud1-sens-meter"},"values":[[1652324205,"0"],[1652324214,"0"],[1652324223,"0"]]}]}}

*** [INFO] Get documents for this test from ElasticSearch...
*** [INFO] Found 34 documents

[INFO] Verification exit codes (0 is passing, non-zero is a failure): events=0 metrics=0

*** [INFO] Testing completed with success

*** [INFO] Logs from snmp webhook...
DEBUG:prometheus_webhook_snmp.utils:Configuration settings: {"debug": true, "snmp_host": "<IP_ADDRESS>", "snmp_port": 162, "snmp_community": "public", "snmp_retries": 5, "snmp_timeout": 1, "alert_oid_label": "oid", "trap_oid_prefix": "<IP_ADDRESS>.4.1.50495.15", "trap_default_oid": "<IP_ADDRESS>.4.1.504<IP_ADDRESS>.1", "trap_default_severity": "", "host": "<IP_ADDRESS>", "port": 9099, "metrics": false}
INFO:cherrypy.error:[12/May/2022:02:52:46] ENGINE Listening for SIGTERM.
INFO:cherrypy.error:[12/May/2022:02:52:46] ENGINE Listening for SIGHUP.
INFO:cherrypy.error:[12/May/2022:02:52:46] ENGINE Listening for SIGUSR1.
INFO:cherrypy.error:[12/May/2022:02:52:46] ENGINE Bus STARTING
INFO:cherrypy.error:[12/May/2022:02:52:47] ENGINE Serving on http://<IP_ADDRESS>:9099
INFO:cherrypy.error:[12/May/2022:02:52:47] ENGINE Bus STARTED

*** [INFO] Logs from alertmanager...
level=info ts=2022-05-12T02:53:18.731Z caller=main.go:216 msg="Starting Alertmanager" version="(version=0.21.0, branch=HEAD, revision=4c6c03ebfe21009c546e4d1e9b92c371d67c021d)"
level=info ts=2022-05-12T02:53:18.731Z caller=main.go:217 build_context="(go=go1.14.4, user=root@dee35927357f, date=20200617-08:54:02)"
level=info ts=2022-05-12T02:53:18.817Z caller=coordinator.go:119 component=configuration msg="Loading configuration file" file=/etc/alertmanager/config/alertmanager.yaml
level=info ts=2022-05-12T02:53:18.818Z caller=coordinator.go:131 component=configuration msg="Completed loading of configuration file" file=/etc/alertmanager/config/alertmanager.yaml
level=info ts=2022-05-12T02:53:18.822Z caller=main.go:485 msg=Listening address=<IP_ADDRESS>:9093
level=info ts=2022-05-12T02:53:21.238Z caller=coordinator.go:119 component=configuration msg="Loading configuration file" file=/etc/alertmanager/config/alertmanager.yaml
level=info ts=2022-05-12T02:53:21.239Z caller=coordinator.go:131 component=configuration msg="Completed loading of configuration file" file=/etc/alertmanager/config/alertmanager.yaml

*** [INFO] Cleanup resources...
job.batch "stf-smoketest-smoke1" deleted

*** [FAILURE] SNMP Webhook failed

I'll see if I can figure out that initial error. The smoketest could maybe use some minor touchup to be more clear about where it fails, too.

OK cool, I'll open that branch as a PR and merge it down, then backport to stable-1.4.
I also saw the smoketest fail in a similar way yesterday, but running it a second time made it work. I wonder if there is some sort of race condition or slow start up that is causing the failure?
I also noticed that --serviceaccount flag thing, but I don't actually know where that is coming from. Hopefully these are small things though.

test

I got it to pass CI!
*** [SUCCESS] Smoke test job completed successfully
I'm going to merge it now since it's clearly not dangerous :)

test


House keeping: tidying everything

Split lean code into separate files
Streamline github action
Add vscode nice settings
Bump lean version and make required correction to one proof
Etc

I suggest the "Squash and merge" commit method to reduce the main history.

Nice! Thanks. As per the merge: Do we really care about having a such a concise history when your commits are already so explicative? I’d be actually inclined in merging with a merge commit

I feel we are saying the same thing but with different words... Most importantly, I don't have a strong point of view on this, this is a minor preference I have.
With a squash and merge the PR commits are squashed into a single commit. Instead of seeing all of a contributor's individual commits from a topic branch, the commits are combined into one commit and merged into main.
This has the benefit of keeping the commit history in the main repo a bit cleaner. With a normal merge all the commits from the PR are added to the commit history.

Yes I know the difference, I meant that I in general like to see the breakdown of the history :) I tend to use squash and merge only when the PR is messy

I assume the license is apache to fit in with lean/mathlib one

I assume the license is apache to fit in with lean/mathlib one

Yes, licence is there apache license, identical to mathlib. I don't want to ever think about legal things but I understand that such is useful to guarantee the code is a always free in the future.

Yes I know the difference, I meant that I in general like to see the breakdown of the history :) I tend to use squash and merge only when the PR is messy

Yes, actually that makes good sense.


MINOR: [JS] Correct build commands

Sorry, this is conflicted by merging #9918.
Could you re-fix this?

Rebased onto master.

Thanks.
Merged.


Support alertmanager 0.15.x

I'm using unsee against AM 0.15.1, and a few things look weird.
Can I verify myself if the new alertmanager is the culprit, or assist in debugging it?
The exact problem I'm experiencing: the alertname doesn't show in the header of an "incident block", it's promoted (or demoted) to the listing inside the incident block.

@giganteous  / @djvl are you running Alertmanager via official docker images by any chance? If so there was a change in the path for the config file used in that docker image, if you updated image but didn't change but are still mounting the config under old path you might get default grouping, which might be related to what you're seeing.
I don't think that 0.15 introduced any API changes.
@terinjokes / @bobrik
It doesn't look like anyone is maintaining this repo after I left cloudflare and it's a shame to see people raising issues and not getting any feedback.
Can I suggest to add a note to the top of the readme file warning people that it's no longer maintained? Or maybe even disable github issues?

@prymitive Thanks for your reply, and the update on the maintenance of this project.
I've tried reproducting with the new 1.15.2, and the problem is now gone (still a problem on 1.15.1). @djvl can you confirm this?

I'm using an RPM install of alertmanager. After some digging it appears the default for 'group_by' has changed recently (v0.15.x), see: https://github.com/prometheus/alertmanager/issues/1288
So, when setting the following in 'alertmanager.yml' the old behavior is restored.
route:
  group_by: ['alertname']

@prymitive I switched to your repo and it looks good! Thanks for mentioning it.

Cheers!


Expose static ips and documentation to tenants

@paroxp I was going to review this but there's a massive number of test failures. Could you take a look?

tested this locally, works as expected. code looks good. will merge in Rafal's absence


Manually add line numbers to xml validation errors

Description

Before this PR, validation error reasons when validating an XML file would be something:
Unexpected child with tag 'BAD_ELEMENT' at position 2.
This PR makes those more understandable so they'd instead come out as:
Unexpected child with tag 'BAD_ELEMENT' at line 34.
Also the changes made here enable the validator to find all the errors from the file at once.
Related issues

Fixes #91
Type of change

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update (this needs a follow up PR)

Changes Made

changed the xml validator to add line numbers to error messages
updated existing unit tests

Testing

[x] Unit Tests

Mentions

When researching possibilities for this, I thought I had found a simple solution with xmlschema.assertValid() as shown here where you could get something like this:
xmlschema.assertValid(doc2)
Traceback (most recent call last):
  ...
lxml.etree.DocumentInvalid: Element 'c': This element is not expected. Expected is ( b )., line 1

However, after implementing this vulture complained that using lxml.etree is not safe anymore. It would have also required schemas to be loaded in a different way, which would have resulted in a bigger refactor. So the solution in this PR is best I could come up with without refactoring things too much.

Ok, I altered the new functionality slightly so it collects the error messages and concatenates them in the same string of the reason key separated by an endline. It's not ideal but things will hopefully be fixed as the whole response will need some reformatting from its prior state. I opened the issue #641 for a follow up.


build: update @nuxt/module-builder

🔗 Linked issue
https://github.com/nuxt/nuxt/issues/28672

❓ Type of change

[ ] 📖 Documentation (updates to the documentation, readme or JSdoc annotations)
[x] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🏡 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description

Currently, nuxt-auth-utils breaks NuxtAppInjections types. If you do provide in any plugin, the returned type will be unknown.
This PR should fix the problem.
📝 Checklist

[x] I have linked an issue or discussion.
[ ] I have added tests (if possible).
[ ] I have updated the documentation accordingly.

Thanks!


Help -- PlanSys2 custom planner engine

Hello everyone!
In the PlanSys2 wiki, it is reported that other solvers than POPF and TFD can be easily added.
I came across this interesting library
http://pddl4j.imag.fr/index.html
that let you use different planning algorithms and also create new ones.
I am curious about the possibility of creating a new PlanSys2 solver plugin starting from this library.
Would it be possible according to you?
Thank you again for your time and consideration.

Hi @antbono
As I commented by email, it is possible, and I will help you with anything you need for this.
Best


Small bug fix when no llh_name is used

If no self.llh_name is provided, the for loop will be interrupted, https://github.com/XENONnT/appletree/blob/ef812d8b57b4625b0dde26b1e6c72ee359cc0c4e/appletree/config.py#L333, so that the attribute is not set https://github.com/XENONnT/appletree/blob/ef812d8b57b4625b0dde26b1e6c72ee359cc0c4e/appletree/config.py#L360.
To reproduce the bug:
aptext.cut_acc_cs.cS1CutAccept()

error shows:
AttributeError: 'SigmaMap' object has no attribute 'median'

The solution is to move the setattr before continue.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 84.073%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1969

Relevant Lines:
2342

💛  - Coveralls


Fixed automatically timer reset in fullscreen

The timer state is automatically reset when a new pdf is loaded or it
is reloaded. Otherwise, it should be manually reset by using the reset
button in fullscreen mode

Hi,
Please check the code because I've never programed with cocoa.

Sorry, I was quite busy over the last days. I will have a look at it later today!

Could you explain me why are you using the initialValue property ? To me, The normal behavior of the reset functionality should be initialize the timer to 0, why are you using the initialValue ?

The idea is that one could have a countdown instead of a timer. The class also provides the possibility to set to backwards mode, though it is not implemented for SplitShow at the moment. Simply because I did not need it until now. ;-)
I am wondering if it might be better to have one "global" timer object for all displays instead of creating a new one every time fullscreen mode is entered. Then the timer could also be displayed in non fullscreen mode. Otherwise the timer should have something like a "resetValue" and a "startValue" or "initValue" to keep the countdown possible.
What do you think?

Ok, I'm just asking because I couldn't find when initValue sets different to 0. I mean there is no option to initialize the timer yet. Also, I don't think this functionality could be useful.
On the other hand, the idea to have a single timer will be great but I don't know when we could want to have this functionality outside the fullscreen. In my case, I just want to have a memory of the timer due to if I find an error during the presentation.

I picked up the idea of having a global timer. It is not contained in the lastest release but already pushed to master.


Where can I check the youtube api?

I have a question during the streaming test. Streaming numbers don't go up.
It is judged that this problem is not recognized because the api arg is different.
I would like to get information related to this.
var args = new Dictionary<string, string>
                        {
                            ["ns"] = "yt",
                            ["el"] = "detailpage",
                            ["cpn"] = cpn,
                            ["docid"] = id,
                            ["ver"] = "2",
                            ["cmt"] = et.ToString(),
                            ["ei"] = ei,
                            ["fmt"] = "243",
                            ["fs"] = "0",
                            ["rt"] = rt.ToString(),
                            ["of"] = of,
                            ["euri"] = "",
                            ["lact"] = lact.ToString(),
                            ["live"] = "dvr",
                            ["cl"] = cl,
                            ["state"] = "playing",
                            ["vm"] = vm,
                            ["volume"] = "100",
                            ["cbr"] = "Firefox",
                            ["cbrver"] = "83.0",
                            ["c"] = "WEB",
                            ["cplayer"] = "UNIPLAYER",
                            ["cver"] = "2.20201210.01.00",
                            ["cos"] = "Windows",
                            ["cosver"] = "10.0",
                            ["cplatform"] = "DESKTOP",
                            ["delay"] = "5",
                            ["hl"] = "en_US",
                            ["rtn"] = rtn.ToString(),
                            ["aftm"] = "140",
                            ["rti"] = rt.ToString(),
                            ["muted"] = "0",
                            ["st"] = st.ToString(),
                            ["et"] = et.ToString(),
                            ["lio"] = lio.ToString()
                        };

Can you please explain the youtube api arg used in your code?

it's non-public api and it not documented


New App Test: Failing to add new Contact_Stellar add.

When attempting to add a contact with the respective Stellar address, the process results with a failure notification: Failed to save contact. Tested this twice with different contacts.

https://github.com/user-attachments/assets/ea5b064b-9581-4f5b-a268-7991b57a1475

@TullysInc Can you provide the stellar secrets in a text form? Both secrets are not valid.

Amanda
Stellar add: GA4XJAKJDLMGI277VW4AR7KTQVITUWJ6AF6HH545UX2GZ4GLIRPLE67N
Stellar Secret: SBAQR5ULG52AHANCCQY3QPK3EQME5BYO5QOO7UAMD7XWHGPU2T5QDUUT

Cameron
Stellar add: GC35NS3KDSTGVPLZRQFQPVCOHB4PZQGMSQJWPHKR2NOI4K4RYU24R4UG
Stellar Secret: SC2G6KKROXVRAPKPU5KN76G6O2Q4TQDLAL7EBPK7FXTYSTE35NY6QODX

Work Complete
The issue was loading the contacts when they were empty, and it was required to append the new contact to them.
I also fixed the loading spinner after the failure case.

verified

testcase


feature/se-6-openaire-oaipmh-harvestability

Implement functionality that will allow (OpenAIRE related) data to be harvested via OAI-PMH interface

@mrovnanik I need more specific info. I can edit crosswalks now and only show data based on condition.
I also need to know where to find "funding" field.

Testing cannot be implemented yet, I am trying to get some support on slack:
https://dspace-org.slack.com/archives/C3N0VHT6K/p1657629199361589 and https://dspace-org.slack.com/archives/C3SG47SGY/p1657708254443379
Responses are usually when I am not in work, so it's going slow, but not taking a lot of time.
(I try something, write to slack, wait till next day for response, try something else, write again, cycle repeats.)

The feature was developed here: https://github.com/dataquest-dev/DSpace/issues/134


Update gradle.properties

cas.version is checked by
implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")
https://apereo.github.io/cas/development/installation/BOM-Dependency-Management.html
I saw this definition was on the 6.6 branch, but not in 7.0.x and 7.1.0-SNAPSHOT branches.
I get an error after './gradlew clean' if I include 'implementation enforcedPlatform("org.apereo...' in build.gradle but 'cas.version=7.1.0-SNAPSHOT' is not defined gradle.properties.

There is no enforcedPlatform construct here in this repository, and none of the branches you mentioned are used here.


select2 opens on disabled

When its disabled, the select2 opens on enter and on space. Can someone help?

You can add a callback that prevents the dropdown from opening on the select2:opening event. Like:
var $select = $("select");
$select.on("select2:opening", function (event) {
  if ($select.is(":disabled")) {
    event.preventDefault();
  }
});

It has been working wonderfully for me.


TEM2015 Test 02: Military Reports Ops Dashboard Failed to Load in Browser

id:01d66af31fa54cee96dcb3ab6b3d77fc

@jrweakland Be careful in your screenshots to not capture internal urls.

Can't reproduce (think it is a performance issue).

works


very slow inference

Hi! when i run a inference using demo.py these take a lot of time (minimum 30 secs. I not speak about the detection time but the starting-net time), is it normal? there is some way to run faster the inferences? in others net or frameworks like Yolo in darknet, you can "activate" the net (load weights and more) and after you can load some images separately...something like this in mxnet?
Thanks in advance!

First of all. 30 secs seems to be the time required to initialize the library. Normally after first run, it only took several ms to initialize again including loading model.
Second, per you question, it is doable to load the model and hold for inputs. If you dig into the code, you will find detection happens in detect/detector.py, where network is loaded by module, and module will predict using images after that. If you don't release the module and wait for more inputs, then the overhead will be minimal.


Put back sell limits

Is it possible to request you put back sell limits. People are forming big walls just to drop the price intentionally. I understand that strategy but how is this good for the platform overall or if you can explain to me how this won't be a issue later on would be great.
Just alot of manipulation but I don't know if you find that to be a issue or not.
I myself am buying the dips but overall again isn't having a minimum sell limit better than a consistent pump and dump?

 Get yourself all the coins you can while this is happening. Sell limits will kill a platform!

@2themoonandback yeah, we can't really force sell limits right now. The team still creates a new whitepaper and plan, and for now there are not much going on, so the price is and will be low for some time, but they decided to stop controlling the market.


Fix doc rendering

Code snippets of my previous changes (https://github.com/pinterest/pymemcache/pull/221) aren't well rendered.
https://pymemcache.readthedocs.io/en/latest/getting_started.html#interacting-with-pymemcache

These changes will solve the rendering issue


update llvm revision

Local build & test pass.

@ZhennanQin

@leshikus has upgraded the runner to version 0.0.2.
Please help to upgrade the filter too.
https://github.com/intel/graph-compiler/blob/f3f116b84ea5ca48c1c1677f550a3a3b609de637/.github/workflows/build-llvm.yml#L11

@kurapov-peter Need your help here.

The requested feature to support multiple llvm hashes is implemented. In rare cases it may require re-running some workflows of correspondent PR more than once (just re-running the same workflow should be enough).


Do not list repositories if the repository filters are not regexes

Purpose of the PR
As explained in https://github.com/Azure/acr-cli/pull/353, listing all the repositories can possibly never complete, or with the workaround from that PR, it can still take hours in large ACRs.
The problem is that in a very common scenario (the repository not being a regex), there is absolutely no need to list the repositories in the first place.
This PR simply checks that none of the repository parts of the provided filters are regex and if that's the case, use those as repository names instead of calling the potentially very expensive GetAllRepositoryNames.
We use this in our ACRs with ACR tasks for each known large repositories like purge --filter '<REPOSITORY>:.*' and it is instantaneous instead of taking hours.

@Wwwsylvia, @estebanreyl, @northtyphoon, @sajayantony, @shizhMSFT, @wangxiaoxuan273, @wju-MSFT can someone PTAL?

@Wwwsylvia, @estebanreyl, @northtyphoon, @sajayantony, @shizhMSFT, @wangxiaoxuan273, @wju-MSFT can someone PTAL?

This is a nice optimization. Sorry for the late response, I missed the original ping.

Any update?


Roll back the previous patch to fix the deadlock with refined fix

This request rolls back the previous commits to fix the deadlock (issue #73 ) and contains a fix to solve the issue completely.

This looks good to me. Just a note, as part of my local testing I actually hit this bug in an existing test as well (promise/future2).


implements native event, event filter and event RPC API

Compared with the implementation, the event scheme of the design has been adjusted. The original idea is to implement it based on Sui Event. The advantage is that the entire event is implemented based on native. There is no need to provide mechanisms such as guid and counter in the framework, which is relatively simple. However, during the implementation process, it was discovered that in order to implement an event mechanism similar to Sui, it is necessary to implement a layer of runtime extensions on the existing Move VM virtual machine to implement transactions and event adapters. Sui achieves similar effects based on ObjectRuntime, and the cost Higher, so the function is implemented based on the Aptos/Starcoin style first, and then refactored and optimized.
this is part of https://github.com/rooch-network/rooch/issues/91 and  is a follow-up to this issue https://github.com/rooch-network/rooch/pull/170
Implemented the following parts:

native event
event filter
event RPC API
provide unified storage into MoveOSDB to prepare for the next storage implementation.

TODO：
1、event proof
2、test case
Refactor TOOD：
1、event RPC API, data flow: event -> MoveOSEvent -> EventView，There are multiple conversions, and when converting FromIterator<Vec> to Vec, the existing method is multiple Vec::new(), and then consider implementing the corresponding FromIterator se/de method to achieve a more elegant convert.
2、unify trait TableResolver/ModuleResolver/ResourceResolver for MoveOSDB and StateDB

already use object_id as the guid value of the event @jolestar

The discord discussion: https://discord.com/channels/1078938449974935592/1112801688785535117


Guess macro braces from docs

Instead of hard-code vec to have snippet with bracket vec![],
we try to find the "most common used brace kind" from documentation of the macro,
which usually contains some example code.
It also works better with extern macros.
We can suggest braces for thread_local! {} now.

:heart_eyes:
This is neat!
bors r+

bors r+


Kronos + TitanCNA entry on Dockstore

Feature Request
Desired behaviour
The intent here is to add Kronos + TitanCNA as a tool for a demonstration of DNAStack integration, described with WDL (and optimally, CWL as well) ala https://dockstore.org/containers/quay.io/dockstore/phylowgs
Unfortunately, we fell short of time after running across two issues.
Therefore I'm saving my work with Kronos + TitanCNA for a future second attempt.

Kronos does have a Docker image jtaghiyar/kronos
The workflow can be checked out into the image when running interactively

apt-get update
apt-get install git
git clone https://github.com/dockstore/titan_workflow.git
cd titan_workflow/
apt-get install vim
wget https://dcc.icgc.org/api/v1/download?fn=/PCAWG/reference_data/data_for_testing/hg19.chr22.5x.normal.bam
mv download\?fn\=%2FPCAWG%2Freference_data%2Fdata_for_testing%2Fhg19.chr22.5x.normal.bam  hg19.chr22.5x.normal.bam
cp hg19.chr22.5x.normal.bam hg19.chr22.5x.normal2.bam
apt-get install r-base
kronos run -c /root/test/titan_workflow/components/ -e titan -i input.tsv -r test_run -s titan_setup.txt -W RES -y /root/test/titan_workflow/titan.yaml --no-prefix

The first puzzle is the setup of mutationseq which is mentioned in https://github.com/MO-BCCRC/titan_workflow but seems to be missing in the repo as reported in https://github.com/MO-BCCRC/titan_workflow/issues/3
This is the contents of the titan_setup.txt which is the equivalent of a SeqWare ini or a CWL params.yml

#section        key     value
__GENERAL__     python  /usr/local/bin/python
__GENERAL__     mutationseq     /path/to/mutationSeq_4.3.8
__GENERAL__     R       /usr/bin/R
__SHARED__      reference       /path/to/reference fasta file
__SHARED__      ld_library_path None
__SHARED__      pythonpath      pythonpath for the python
__SHARED__      positions_file  dbsnp positions file
__SHARED__      map     /path/to/mappability_wig
__SHARED__      gc      /path/to/gc_wig
__SHARED__      gene_sets_gtf   /path/to/hg19_gtf_pygenes_annotation
__SHARED__      interval_file   /root/test/titan_workflow/interval_file_titan.txt
__SHARED__      r_libs  /path/to/R_LIBS(for loading from  R libs from custom dir path,default:None)
__SHARED__      genome_type     NCBI(use UCSC if use UCSC reference)
__SHARED__      model   model_single_v4.0.2.npz
__SHARED__      museq_interval_file     /root/test/titan_workflow/interval_file_mutationseq_ucsc.txt
__SHARED__      y_threshold     20
__SHARED__      target_list     NULL(provide bed file with regions if running on exomes)
__SHARED__      chromosomes     ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','X','Y']

This is the content of the input.tsv which stores more parameters

#sample_id      tumour_id       tumour_library_id       tumour  normal_id       normal_library_id       normal
SA123_A01234_SA123N_A01235      SA123   A01234  /root/test/titan_workflow/hg19.chr22.5x.normal.bam      SA123N  A01235  /path/to/SA123N.bam
SA223_A01234_SA223N_A01235      SA223   A01234  /root/test/titan_workflow/hg19.chr22.5x.normal2.bam     SA223N  A01235  /path/to/SA223N.bam

When attempting to run anyway, it seems like the workflow engine needs SGE

root@603313e192c8:~/test/titan_workflow# kronos run -c /root/test/titan_workflow/components/ -e titan -i input.tsv -r test_run -s titan_setup.txt -W RES -y /root/test/titan_workflow/titan.yaml --no-prefix
2017-08-09 15:48:31,212 <<< kronos_2.0.4 started >>>
2017-08-09 15:48:31,212 running the pipeline ...
2017-08-09 15:48:31,398 making pipeline for SA223_A01234_SA223N_A01235 ...
2017-08-09 15:48:32,106 successfully completed.
2017-08-09 15:48:32,198 making pipeline for SA123_A01234_SA123N_A01235 ...
2017-08-09 15:48:32,926 successfully completed.
2017-08-09 15:48:32,927 successfully pasted pipelines.
2017-08-09 15:48:32,927 running the command: python /root/test/titan_workflow/titan.py -b drmaa -c /root/test/titan_workflow/components/ -d lib/lx24-amd64/libdrmaa.so -j 1 -n 1 -p python -w /root/test/tit
an_workflow -r 'test_run' -e 'titan'
2017-08-09 15:48:39,153 SA223_A01234_SA223N_A01235_titan pipeline finished with exit code 98
SA123_A01234_SA123N_A01235_titan pipeline finished with exit code 98

2017-08-09 15:48:39,153 failed to load DrmaaJobManager
Traceback (most recent call last):
  File "/root/test/titan_workflow/intermediate_pipeline_scripts/SA223_A01234_SA223N_A01235_titan.py", line 29, in <module>
    cjm = DrmaaJobManager(args.drmaa_library_path, rm.logs_dir, rm.outputs_dir, args.qsub_options)
  File "/usr/local/lib/python2.7/site-packages/kronos/job_manager.py", line 71, in __init__
    os.environ['DRMAA_LIBRARY_PATH'] = os.path.join(os.environ['SGE_ROOT'], drmaa_library_path)
  File "/usr/local/lib/python2.7/UserDict.py", line 40, in __getitem__
    raise KeyError(key)
KeyError: 'SGE_ROOT'
    Job completed
Completed Task = task_0
failed to load DrmaaJobManager
Traceback (most recent call last):
  File "/root/test/titan_workflow/intermediate_pipeline_scripts/SA123_A01234_SA123N_A01235_titan.py", line 29, in <module>
    cjm = DrmaaJobManager(args.drmaa_library_path, rm.logs_dir, rm.outputs_dir, args.qsub_options)
  File "/usr/local/lib/python2.7/site-packages/kronos/job_manager.py", line 71, in __init__
    os.environ['DRMAA_LIBRARY_PATH'] = os.path.join(os.environ['SGE_ROOT'], drmaa_library_path)
  File "/usr/local/lib/python2.7/UserDict.py", line 40, in __getitem__
    raise KeyError(key)
KeyError: 'SGE_ROOT'
    Job completed
Completed Task = task_1

2017-08-09 15:48:39,153 <<< kronos_2.0.4 finished >>>

This seems odd
Also attempting to join https://groups.google.com/forum/#!forum/kronos_pipeliner to get more insight into how Kronos works
┆Issue is synchronized with this Jira Story
┆Issue Type: Story
┆Fix Versions: Dockstore 2.X
┆Issue Number: DOCK-500

revisit with DNASTACK ddep will likely need new workflow


Partial query evaluation

Check it out @natefaubion!
Two-fold rationale:

we looked into it before of course, but I couldn't figure out the plumbing - so the same reasons as then, allows proxy components to fail properly, etc.
I wanted to make a less boilerplatey construction method for the components again, and by allowing query eval to return Nothing that leaves us free to have the query type polymorphic until a real eval is provided for it.

I've only updated two of the examples, for proof that it's usable, as I wanted to see if we can think of reasons why we shouldn't do this.

more I like mkEval has this type:
mkEval
  :: forall s f act ps i o m
   .


the FGA get stuck at friend support select

Preparation

[X] I tested the latest release
[X] I looked at other issues (even the closed ones)
[X] I read the Troubleshooting Guide

FGO server
JP
FGA build number
1551
Describe the bug
FGA don't select the friend support no matter what i do i even try to  reinstall but no luck
Video
https://user-images.githubusercontent.com/92425957/141476444-96db4773-1114-46e1-9be4-64adab5c36f7.mp4
Device model
samsung galaxy a30
Android version
9
Screen size
No response
RAM
No response

Duplicate of !943 ?

Duplicate of #943 ?

his bug look different tho

I got the same issue, the last update of the game moved the UI and makes FGA go apesht

I have the same issue as well. Using a samsung s20 galaxy plus ultra.

Same issua with OnePlus 9 Pro

I have the same issue on Nox of all things.

The video above is probably the same as #943, but FGA's video recorder wasn't used so FGA couldn't see anything.

It still not fixed in poco x3


Finalize and document FunctionOperator constructor

The constructor is currently not documented, and accepted_kwargs is also a little awkward (inconsistent with its other usages too, since this one takes in both the fields and the values). We should revisit this soon and finalize the interface.

thanks

We should also handle #57 when doing this -- I think it's an important issue. But the current version looks good enough to start propagating through SciML, so we can leave this alone for a little bit


team-leaders: Misc updates

Perhaps the most important one is that main job of team leaders is
to project excitement to the others and energize them.
Misc other updates throughout, mostly small.

Thanks! Reviewing and merging in a moment. I will take it from here.


Wiki doesn't contain all the articles in the repo

Several articles that should show up on the wiki don't seem to do so yet.

@SaintPeter RegEx mayhem?

@hallaathrad Almost certainly.

@hallaathrad @SaintPeter so that's reasonably easy to fix, right? I think this is a high priority if one of you can dig into it.


Instructions require electron installation

After step 1 in the instrucitons should be
npm install electron
Otherwise you receive this error.
get sh: electron-forge: command not found
Maybe I'm the only person alive doing this who didn't have electron installed.

Thanks @paul-brenner .  I'll add to the instructions.  As mentioned in the README, this codebase is pretty rough and assumes a certain amount of experience.  Feel free to pass on any other feedback and I'll update accordingly.

Thanks! I don't touch node very much so probably anyone who does wouldn't have needed to google what was going on.
Loving the global hotkey now that the change you made in issue 2 is working! Did you modify your instal to hide the dock icon or are you just less bothered than I am by extra icons in the dock?
I may look into how to hide that dock icon and see how much effort it would take for someone without node experience... I suppose now is a good a time as any to gain some.

I don't care for extra dock icons either!  I just added a function call that hides the app icon in a Mac OS dock.  Not sure how this manifests on Windows or Linux (or if it does anything) but feel free to pull the latest code and give it a try. @paul-brenner

I love it! command-option-j is my new favorite shortcut. Fumbling to turn the light on in precious moments before a call is just a thing of the past now, I can't believe how happy this makes me.