Change annotation attribute name to support Swagger migration

Thanks for the feedback both; merged with the reasonable assumption that there's no further feedback; let me know otherwise!


Migrate to .NET Core

If that project can be migrated to .net core, it can be used to build a crossplatform app to support win, mac and linux

Unfortunately, EvilLimiter for Windows requires a 3rd party library called WinDivert that is only available for Windows and absolutely crucial for the tool to work.


To-do Graphic effects

Sky-box
Anti aliasing
High Dynamic Range
Depth of field
SSAO
GI
reflection

Lol
GI == a graphic effect
Good luck ^^


Python implementation

hi guys. if you are interested - i've reimplemented this library on Python:
https://pypi.org/project/PyLTI1p3/
https://github.com/dmitry-viskov/pylti1.3
All suggestions/contribution are welcome

Nice, always good to have some more 1.3 implementations 👍 i'll pass it on to the group to see if there are any people interested in contributing


Jv poc collector cluster config send message on collector start

Description

A previous PR  made it so that when central sends the cluster config to sensor, that sensor sends the collector portion of the configuration to collector. This PR makes it so that when a new collector comes online, that the configuration is sent to collector. A future PR will make it so that when the configuration is set in a helm chart, it will be sent to collector.
User-facing documentation

[ ] CHANGELOG is updated OR update is not needed
[ ] documentation PR is created and is linked above OR is not needed

Testing and quality

[ ] the change is production ready: the change is GA or otherwise the functionality is gated by a feature flag
[ ] CI results are inspected

Automated testing

[ ] added unit tests
[ ] added e2e tests
[ ] added regression tests
[ ] added compatibility tests
[ ] modified existing tests

How I validated my change

Set ROX_COLLECTOR_RUNTIME_CONFIG to true. Deployed ACS using this branch. Set the cluster config with the following script
!/usr/bin/env bash
set -eou pipefail

ROX_ENDPOINT=${1:-localhost:8000}

clusters_json="$(curl --location --silent --request GET "https://${ROX_ENDPOINT}/v1/clusters" -k --header "Authorization: Bearer $ROX_API_TOKEN")"

cluster_id="$(echo "$clusters_json" | jq -r '.clusters[0].id')"

input_file=delete_temp.josn
echo "$clusters_json" > "$input_file"

cluster_put="$(jq -s '.[0].clusters[0].dynamicConfig.collectorConfig = .[1]' "$input_file" collector_config_5.json | jq '.[0].clusters[0]' | jq 'del(.id)')"

curl --location --silent --request PUT "https://${ROX_ENDPOINT}/v1/clusters/$cluster_id" -k --header "Authorization: Bearer $ROX_API_TOKEN" --header "Content-Type: application/json" --data "$cluster_put"

Where collector_config_5.json has the following contents
{
  "processConfig": {
    "enabled": true
  },
  "networkEndpointConfig": {
    "enabled": true,
    "includeListeningEndpointProcesses": true
  },
  "networkConnectionConfig": {
    "enabled": true,
    "aggregateExternal": true
  },
  "namespaceScopeConfig": [
    {
      "feature": {
        "networkConnection": {
          "enabled": true,
          "aggregateExternal": false
        }
      },
      "namespaceSelection": [
        {
          "namespace": "marketing.*",
          "matchType": "REGEX"
        },
        {
          "namespace": "namespace1",
          "matchType": "EXACT"
        }
      ]
    }
  ]
}

This script gets the cluster configuration by calling the API, adds a collector config to it, makes a few other minor changes, and then sets the cluster config using the API endpoint. The collector logs were checked and in each log something like the following was found.
[INFO    2024/09/25 00:14:50] Before switch
[INFO    2024/09/25 00:14:50] [runtime-control::Service] Receive: CollectorRuntimeConfig
[INFO    2024/09/25 00:14:50] Before Update
[INFO    2024/09/25 00:14:50] process_enabled= 1

This means that the collectors got the configuration.
The collector pods were then deleted and allowed to come back up using
ks delete pod -l app=collector

Afterwards the collector logs were checked again, and it was confirmed that they had received the configuration, even though the API had not been called again.

Closing as the existing code in networkflows will be used to send the configuration. The new PR is here https://github.com/stackrox/stackrox/pull/12826


Add AutoSearch solver

overview
Add solver that selects the appropriate algorithm for input problem and setting

usage
from flopt import Variable, Problem, Solver

# Variables
a = Variable('a', lowBound=0, upBound=1, cat='Integer')
b = Variable('b', lowBound=1, upBound=2, cat='Continuous')
c = Variable('c', lowBound=1, upBound=3, cat='Continuous')

prob = Problem(name='Test')
prob += 2*(3*a+b)*c**2+3

solver = Solver(algo='auto')
solver.setParams({'timelimit': 10})
prob.solve(solver, msg=True)


Can't test, dependency not found

https://github.com/stretch/testify/assert returns 404 but is required in testing, so I can't run the tests.

It's spelled "stretchr". Try go get -t github.com/justinas/alice. The -t flag makes the go tool also download test-only dependencies.

It's spelled "stretchr". Try go get -t github.com/justinas/alice. The -t flag makes the go tool also download test-only dependencies.

Wow, great start to a new year. Sorry to bother you.

Wow, great start to a new year. Sorry to bother you.

No problem at all. :)

No problem at all. :)


Fix backwards diff colors.

Previously, additions in the diff and gitcommit filetypes would be highlighted in red and deletions in white, which was very confusing:

Now additions are green and removals are red:

I copied the same colors as for the base vim diff highlight groups, i.e.:

DiffAdd -> diffAdded
DiffChange -> diffChanged
DiffDelete -> diffRemoved

I have no clue if this was the right way to go about this, but it works.
Thanks for the great color scheme!

Hi, thanks for the feedback. Like I said, I used the same styles you already had for the built-in (vim) diff styles – see here. Do you want me to change those too? Or do you want them to be different?


Strike through real fee for freebie actions

Is your feature request related to a problem? Please describe.
While reviewing #1031, I found our current UX when we show free to be confusing. It hides the real fee and mixes two cases together: when the action is really free or it's just free because it's an action for which you don't have enough sats and freebie is allowed ("freebie action").[^1]
[^1]: One can tell from the help icon for the freebie dialog if it's really free or just freebie since it only shows up for freebie actions, but I think it's still confusing.
Describe the solution you'd like
I think we should only show free when it's really free. When it's 1 sat and you can pay, we show nothing as currently (the overlay shows 1 sat).
For freebie actions (total >= 1 + freebie is allowed + you can't pay), we show the fee but striked through:

I think this would make it more clear when something is free for freebie reasons while also not hiding the real fee. I think it's nice to know how much it would actually cost.
Describe alternatives you've considered
doing nothing
Additional context
n/a

I think this would make it more clear when something is free for freebie reasons while also not hiding the real fee. I think it's nice to know how much it would actually cost.

Is that true for a new user that’s never posted before?

Is that true for a new user that’s never posted before?

Mhhh, they probably don't immediately care. At least I only started to care after I had been using external wallets for a while and noticed I don't see the real fee anymore, only "free" all the time. Then in #1031 I additionally noticed how free can have two meanings now.[^1]
My idea with the striked through text was to make the UX more consistent since we do show the fee inside the button text if you're able to pay.
However, I can see how it's probably too much immediate information for newbies and showing a fee when you will pay it is obviously more important than showing a fee you won't pay. An alternative for curious minds could be to show how much it would cost in the freebie info dialog.
However, feel free to close this ticket. Just wanted to have a discussion about this and I have to rework how freebies work with attached wallets and this then might become obsolete anyway.
[^1]: Maybe we shouldn't show "free" for edits as my suggested fix in #1031 would do since afaik, it's the only truly free action and we can assume stackers realize it's free even though the button looks the same as for actions that cost 1 sat? The overlay would clarify though.

I'm happy to discuss it. My main UX fear is us developing myopia around a power users perspective because it's the easiest thing for us to imagine as power users. My mental checklist usually is:

[ ] is this more confusing for new stackers
[ ] is this more confusing for old stackers
[ ] is this good for new stackers
[ ] is this good for old stackers

One of the bottom two should be checked (ideally both) and the top two shouldn't.
Another example of this is having a link to attached wallet logs on the main wallet page. For the majority of people that don't have attached wallets, it opens up an empty log.


Deadlock in the pipeline on Exception?

I've been trying to hunt down this issue for a while when our web application suddenly locks up with 100% CPU usage. I've finally acquired a full memory dump and analysis (fairly hard when the CPU is panicking).
It appears that somehow Exception.RestoreExceptionDispatchInfo is somehow deadlocking itself?

This is using .NET Framework 4.7.1. I'm not quite sure if this is related to ASP.NET Core or just a bug in the framework overall, or if this is possible at all...
EDIT: Opening the dump, the exception hanging in thread 151 is An existing connection was forcibly closed by the remote host

Likely a duplicate of https://github.com/aspnet/KestrelHttpServer/issues/2806. Do you have a reliable repro? Can you try it on 2.2.0-preview2 or later?

@Tratcher I've actually seen this happen on ASP.NET MVC5 as well. I have a suspicion I've found the cause, but if that's not it I'll try that next.

cc @pakrym

@kanadaj do you see other threads being blocked on Monitor.Enter?

@pakrym Yes, there are another 72 other threads all waiting on Thread 151 on the same lock

Also, it seems like removing the non-thrown exception from our old custom Sentry RavenSharp middleware  seems to have removed the issue.
In essence, the middleware did something like this:
var request = context.Request;
var body = request.Body;
try
{
    request.EnableRewind();
    await _next(context);
}
catch(Exception ex)
{
    if (ex is OperationCanceledException || ex is Win32Exception)
    {
        // Let's ignore these errors since they are meaningles
        throw;
    }
    if(ex is DbEntityValidationException dbex)
    {
        var errorMessages = dbex.EntityValidationErrors.Select(x => $"{x.Entry.Entity.GetType().Name}.{string.Join("; ", x.ValidationErrors.Select(y => $"{y.PropertyName}: {y.ErrorMessage}"))}");
        var err = new Exception($"Database Validation error: {string.Join("; ", errorMessages)}", ex);
        await _ravenClient.CaptureAsync(ex);
    }
    throw;
}```
So maybe it's related to creating an exception without throwing? Could that cause a throw inside the global Exception lock?

This is all very strange. I don't see how anything might be hanging while holding the lock in question (https://referencesource.microsoft.com/#mscorlib/system/exception.cs,837).

It might be a side effect of attaching too many stacks to the same exception object because of aspnet/KestrelHttpServer#2806

@pakrym Me neither, but it somehow happens. I have 2 possible scenarios in mind, 1 is that somehow something in that lock throws... But that's rather unlikely, since I believe the stacktrace would show a recursion there, which it doesn't. The other guess is that maybe something externally hangs at that point, like the Application Insights or Retrace - we've observed the problem surfacing very rarely without either, but with that middleware added, Application Insights' profiler causes a hang very quickly, and Retrace's own agent causes hangs after a couple hours. I have yet to try the code without the middleware with Application Insights' profiler again.
I've also seen identical issues without any profiler attached (though I have no dumps from that, so no guarantee it's the same, but all external symptoms are completely identical, so likely) but far less often, maybe once every few months. It's all very weird, and even diagnosing this far was hard since we've looked for the problem in other places. The error messages collected by Serilog and Sentry point all over the place, usually reporting timeouts from Redis and Entity Framework 6. But in hindsight that's only a consequence of the deadlock, since first chance exceptions would also hang, which would look like a timeout to Entity Framework.
Other things that usually happen when the problem surfaces is a massive spike in open connections - I recon it's maybe Kestrel trying to add more threads since the ones hanging can't serve requests - and increased CPU load on the victim server, though usually only to around 80% on a V2 4 core Azure Web Service instance.

It might be a side effect of attaching too many stacks to the same exception object because of aspnet/KestrelHttpServer#2806

I've seen identical issues on ASP.NET MVC 5 before we migrated from it. I don't think that part of the pipeline is shared?

I only have a stacktrace for the inner exception:
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketAwaitable.GetResult() in /_/src/Kestrel.Transport.Sockets/Internal/SocketAwaitable.cs:line 40
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection.<ProcessReceives>d__25.MoveNext() in /_/src/Kestrel.Transport.Sockets/Internal/SocketConnection.cs:line 164
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\clr\src\BCL\system\runtime\exceptionservices\exceptionservicescommon.cs:line 133
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\clr\src\BCL\system\runtime\compilerservices\TaskAwaiter.cs:line 156
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection.<DoReceive>d__24.MoveNext() in /_/src/Kestrel.Transport.Sockets/Internal/SocketConnection.cs:line 110

_stackTraceCopy is null, as are all the copied values of exceptionDispatchInfo.

Throwing in the lock would release the lock so I doubt that's it.

Wouldn't the throw have to finish before the lock is released?

Pipelines didn't exist until AspNetCore 2.0.

That's what I guessed. Sadly there are so many external factors in play here (from profilers to whatever things Azure App Services run for monitoring) it's very hard to pinpoint why this is happening. None of this really makes any sense to me. It makes even less sense to me that removing the middleware seems to have fixed the problem.

The reason I suspect some sort of recursion is that the thread seems to be waiting to enter a lock that's already owned by itself

This issue appears to have gotten stale. If you're still having a problem with this, please feel free to chime in and we can try to resume investigating :)


tox: only wait 30sec for right jobs

There's no need to call sleep 30 for other job than all_daemons and
all_in_one.
Signed-off-by: Guillaume Abrioux<EMAIL_ADDRESS>

jenkins test centos-container-lvm_osds

jenkins test centos-container-all_in_one


[OS-Exception] DestWindow isn't exist

you need to modify the window name when call Gui.AttachAnotherWindow();

wdf
how to do this

i need help


Update scala 2.13.0-RC2 to 2.13.0-RC3

Validation failed because of the missing specs2 release for 2.13.0-RC3. That is being worked on currently and here is a ticket to track that: https://github.com/etorreborre/specs2/issues/743

published to staging at https://oss.sonatype.org/content/groups/staging/io/spray/spray-json_2.13.0-RC3/1.3.5/ - will release after testing

specs2 is now available for 2.13.0-RC3, so a rebuild should do the trick.

triggered

and now specs2 is available for 2.13.0, let's follow suit here...


Browser support without CORS

Hi,
The current JS kit does not support browsers without CORS support. From the readme:

The library makes cross-origin Ajax calls (CORS) to get the card token and handle card registration with MangoPay API. Therefore it requires a browser that supports CORS. The kit does not currently work in Internet Explorer 6, 7 & 8 and Opera Mini (fix due in November 2014).

Is there any progress on this?
Thanks.

Hi @javiercr, sorry for the lack of updates. IE8 is now supported but I've just checked and IE6+7 have a different error, so I'll let you know via this thread when thats improved (if it is indeed possible to fix).

Great, thanks for the update @hobailey!

Hi @javiercr, I've just been told by our tech team that the annoucement in the readme was misleading - we never infact planned to support IE6/7 given the incredibly low usage (and complexity of doing so) but IE8 is fine.


[Fix] jsx-newline: jsx-newline breaking with comments

Closes #3573

Can we rerun the failing test once?

yep, looks like a fluke; reran.

Bumping this up!

I remember the same issue mentioned in #3573 was happening for me too, which got fixed by this. But now I am unable to reproduce it :(


[Question] - how to setup the example

Hi there,
I would like to see your plugin in action, so I just cloned the repo and built the example project. It is not clear to me where I should set my stream url, which will allow to watch the broadcasted video afterwards.
Any hints will be greatly appreciated, thanks!

Under example/lib/video.dart inside the video player state there is a url String which is null. Follow that variable to see how to pass it to the Video widget. Also setting this value in example app would play your video.
class _VideoPlayoutState extends State<VideoPlayout>
    with PlayerObserver, MultiAudioSupport {

  final String _url = null;

  List<HLSManifestLanguage> _hlsLanguages = List<HLSManifestLanguage>();

  @override
  void initState() {
    super.initState();
    Future.delayed(Duration.zero, _getHLSManifestLanguages);
  }


Add coordattention in MobileNetV2?

I modify the code of MobileNetV2 by adding CoordAttention at line 101, is it right? @Andrew-Qibin

Anyone reproduct the performance of CoordAttention with MobileNetV2 on VOC2007?

Have you pretrained the model on ImageNet?

I firstly test MobileNetV2,the mAP can archive 71.7. Then, I try to add CoordAttention as shown above, meanwhile the pretrained model of 'mobilenet_v2-b0353104.pth' is not use. The mAP only can achive 64.
@Andrew-Qibin

ssdlite-pytorch-mobilenext with CoordAttention need to be trained with ImageNet, then test on VOC?

Exactly. Otherwise, it does not work. Recently, I will release the pretrained models.

I look forward to it, thx.

And the ImageNet dataset used for training is ILSVRC2012 or others?
@Andrew-Qibin


Make crypto tests work with OpenSSL 3.0 under FIPS

There are a few restrictions enforced when OpenSSL 3.0 is used under FIPS mode, that are incompatible with the Go tests, namely:

For creating signature, encrypting, and decrypting, RSA key size must be equal to or longer than 2048 bits
For verifying signature, RSA key size must be equal to or longer than 1024 bits
PKCS#1 v1.5 is not supported for encryption and decryption (signing and verification are still allowed)

This either skips the relevant tests or increases key size used for testing.
This should fix the test failures in crypto tests as mentioned in golang-fips/openssl-fips#25.

@dbenoit17 in the latest revision I've replaced the RSA test key with newly generated 2048-bit key, so the majority of encryption/signing tests are not skipped.


findOne optimization

To quote from an earlier specs issue:

One of the main usecases of Photon Prisma Client is to use it inside a GraphQL server. The resolver system of a GraphQL server is prone to suffer from the N+1 problem. To mitigate this problem users can choose to implement the DataLoader pattern within the application server. This burdens our users with unnecessary work that is not related to their core domain. This issue explores how we could include a DataLoader implementation within Photon Prisma Client.

As a first step we want to look specifically into optimizing findOne queries by batching them.

Memo: unsurprisingly faster with optimization.

Green: batching without optimization
Purple: with optimization
Tested three queries in batches of 100, $user_id randomized from 1 to 3000. 3000 users, 30000 posts and 30000 comments.
query NoJoin {
  findOneUser(where: { id: $user_id }) {
    firstName
    lastName
  }
}

query OneJoin {
  findOneUser(where: { id: $user_id }) {
    firstName
    lastName
    posts {
      content
    }
  }
}

query TwoJoins {
  findOneUser(where: { id: $user_id }) {
    firstName
    lastName
    posts {
      content
      comments {
        content
      }
    }
  }
}

Backend (engines) merged to master today.

Status: Engine work is done (see above), now Prisma Client work is left: https://github.com/prisma/prisma-client-js/issues/523

Note: Also improve debug logging around this.

Thanks a lot for reporting 🙏
This issue is fixed in the latest alpha version of @prisma/cli.
You can try it out with npm i -g @prisma/cli@alpha.
In case it’s not fixed for you - please let us know and we’ll reopen this issue!

Shouldn't we update the Query optimization
article so that users know findFirst are also batched when occurring in the same tick and having the same where and include parameters ?

Can you open an issue over at https://github.com/prisma/docs? Include a link to this issue here of course.

Sure it's done here


Jumping to middle of long page on modal show

I'm using Bootstrap 3 along with Remodal. When I open the modal it jumps down to the middle of the page instead of staying where it currently is. Is this a known issue, and is there a way around this?
Update: A fix we're using now to prevent this:
function open_remodal_nojump(modal) {
    x=$(document).scrollTop();
    modal.open();
    $(document).scrollTop(x);
}

What version do you use?

0.6.3 - updated yesterday.

I have an assumption that you have an anchor on your page. And when the hash changes, it jumps to the specified id. #info ->

https://github.com/VodkaBears/Remodal/blob/master/src/jquery.remodal.js#L368

You sir, are 100% correct.


fix: sh compatibility

this is a weird one. Husky wouldn't let me push.
Linting commits before push...
.husky/pre-push: 7: Syntax error: "(" unexpected (expecting "done")
husky - pre-push hook exited with code 2 (error)

I did a little digging and found out that the array on line 7 isn't SH-shell compatible.
With that being said, it returned the same error when I ran it with bash and fish.
This might very well be a me-problem, I have no idea. Anyways, I rewrote the line to use awk. I don't insist on the PR, I just want to share my fix. Thank you and have a nice weekend.

Weird, it works perfectly fine in both zsh and bash on my machine (macOS). In any case, more compatibility is (almost) always good, so thank you for the fix!

Codecov Report

Merging #121 (e10a249) into master (ab02e19) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #121   +/-   ##
=======================================
  Coverage   10.87%   10.87%
=======================================
  Files          41       41
  Lines        1315     1315
  Branches      159      159
=======================================
  Hits          143      143
  Misses       1130     1130
  Partials       42       42


A few issues in new standby/convenience_switch interfaces

There are a few parameter mismatches in the newly added standby/convenience_switch interfaces.
The toggle standby interface is missing the 'toggle' in its name.
Patch attached.
lib.js.patch.txt

incorporated these in aead0a8
github supports the "pull request", which means you can fork my repo, make changes in your forked copy, and then push your changes over to me, and with 1 click I can incorporate them. Much easier than a patch :-)

Next time I will create a pull request.
Thanks for applying.


Adding image to text causes newline issues

I am running the latest current production release of Mezzanine.
I have a strange issue when I add images to text.  I am doing all this via TinyMCE.  Everything appears correct in TinyMCE.   Viewing the webpage is when you see the incorrect formatting.
If I view the source in Tinymce it looks like this

asdfasdf
asdfasdf
asdfasdf
asdfasdf

<img src="/static/media/uploads/django-logo.jpg"

I verified it is also saved into the database this way
When I view the website in any browser there are additional line breaks added.  One for each existing linebreak already there.
So the source in the browser is as follows:

asdfasdf

asdfasdf

asdfasdf

See the 2 additional linebreaks added at the end of the first paragraph.  They should not be there.  If I add a 3rd line of text with another linebreak in that first paragraph there would be 3 additional linebreaks added instead of 2 and so on.  If I remove the image in the second paragraph and just use regular text then everything appears normal again in the first paragraph with no additional linebreaks added.
I have tried various formatting tricks but so far haven't found a workaround.  I basically can't add images to my posts until I can fix this.
It doesn't matter where the image is in the text.  It could be several paragraphs down or up from the paragraph(s) with newlines.  As soon as you add it then all the newline formatting in every paragraph before and after will have the additional newlines added.  I tried different images and different image sizes and resizes.  That doesn't seem to matter either.
I disabled my theme and all my apps to verify it doesn't have anything to do with that either.  Content type is Blog Post but I have verified it happens with other content types.

I installed from scratch on VM just running the demo site and development webserver and it still does it.  So this should be 100% reproducible.  Only difference between blog posts and other posts is where all the extra  tags get added.  On blog posts it's in the same paragraph as the newlines.  On other posts such as richtext they are all added at the end of the post.

Thanks for the report - it's a side effect of the BeautifulSoup library we use to parse HTML before rendering it, in order to swap images out with thumbnails - I've pushed a fix.

This appears to have solved the problem.  Thanks so much!

Sorry for raising this one again but it is possible to have this as a hot-fix and add it to that last release. Otherwise I can always go with the master branch but I am not sure if it is stable enough.
Thanks for the great CMS btw )

I'd suggest pinning to the latest commit on here - stability is fine.

Thanks a lot )


New Migration interface improvements

When doing a migration, it doesn't show the options to migrate issues,pr,etc.. until you put in authentication information which is confusing and leads people to think those aren't available before even trying.
I think it should always show the checkboxes and perhaps just grey them out until information has been added (with text indicating why).
Also I think we should make it clear that you can add a token in the username field which is a very nice but also unknown feature for migration.
This would be nice to have for 1.9 since migration is new for this release and it would give a better first impression (and should be just a small ui change)

This would be incredibly useful. I spent about an hour looking for how to migrate issues, PRs, etc.

We can add a middle page before current migration page. It will let you chose migration type, if you chose non-git, issues/pulls/releases ... will be displayed on the next page. If you chose git, the options will not be displayed.

@lunny only if we can use that drawing as the interface ; )

@mrsdizzie any idea? I will try to send a PR to do that.

Fixed by #12619


TextEditingController strange behavior on the listener

Hi,
since the last stable 1.20.2 release, the listener of the TextEditingController has a strange behavior.

on the first input, the listener is called twice
when the controller is cleared, the listener is called 3 times.

one with the empty text
one with the previous text
the last with the empty text again.

Steps to Reproduce
Code :
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

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

class _MyHomePageState extends State<MyHomePage> {
  TextEditingController controller = TextEditingController();

  @override
  void initState() {
    super.initState();
    controller.addListener(() {
      print(controller);
      if (controller.selection.baseOffset > 0) {}
      if (controller.text.length == 3) {
        controller.clear();
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextFormField(
              controller: controller,
              decoration: InputDecoration(hintText: 'input'),
            ),
          ],
        ),
      ),
    );
  }
}

Expected results on 1.17.5
I/flutter ( 3162): TextEditingController#9066a(TextEditingValue(text: ┤├, selection: TextSelection(baseOffset: 0, extentOffset: 0, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
I/flutter ( 3162): TextEditingController#9066a(TextEditingValue(text: ┤0├, selection: TextSelection(baseOffset: 1, extentOffset: 1, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
I/flutter ( 3162): TextEditingController#9066a(TextEditingValue(text: ┤00├, selection: TextSelection(baseOffset: 2, extentOffset: 2, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
I/flutter ( 3162): TextEditingController#9066a(TextEditingValue(text: ┤000├, selection: TextSelection(baseOffset: 3, extentOffset: 3, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
I/flutter ( 3162): TextEditingController#9066a(TextEditingValue(text: ┤├, selection: TextSelection(baseOffset: -1, extentOffset: -1, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
D/dalvikvm( 3162): GC_CONCURRENT freed 352K, 14% free 3264K/3780K, paused 2ms+0ms, total 4ms

Actual results on 1.20.2
I/flutter (25307): TextEditingController#83c21(TextEditingValue(text: ┤├, selection: TextSelection(baseOffset: 0, extentOffset: 0, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
I/flutter (25307): TextEditingController#83c21(TextEditingValue(text: ┤0├, selection: TextSelection(baseOffset: 1, extentOffset: 1, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: 0, end: 1)))
I/flutter (25307): TextEditingController#83c21(TextEditingValue(text: ┤0├, selection: TextSelection(baseOffset: 1, extentOffset: 1, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
I/flutter (25307): TextEditingController#83c21(TextEditingValue(text: ┤00├, selection: TextSelection(baseOffset: 2, extentOffset: 2, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
I/flutter (25307): TextEditingController#83c21(TextEditingValue(text: ┤000├, selection: TextSelection(baseOffset: 3, extentOffset: 3, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
I/flutter (25307): TextEditingController#83c21(TextEditingValue(text: ┤├, selection: TextSelection(baseOffset: -1, extentOffset: -1, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
I/flutter (25307): TextEditingController#83c21(TextEditingValue(text: ┤000├, selection: TextSelection(baseOffset: -1, extentOffset: -1, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
I/flutter (25307): TextEditingController#83c21(TextEditingValue(text: ┤├, selection: TextSelection(baseOffset: -1, extentOffset: -1, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))

I was able to reproduce part of this issue on latest master channel.

on the first input, the listener is called twice

I can't reproduce this on master channel. What is happening is that the first print happens when the TextFormField gains focus.

when the controller is cleared, the listener is called 3 times.

one with the empty text
one with the previous text
the last with the empty text again.

This may be eventually caused because you're clearing the field inside the listener. I added a delay in the clear operation with a duration of one second and here is my output (the first line is when the field gains focus):
flutter: TextEditingController#87c5c(TextEditingValue(text: ┤├, selection: TextSelection(baseOffset: 0, extentOffset: 0, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
flutter: TextEditingController#87c5c(TextEditingValue(text: ┤q├, selection: TextSelection(baseOffset: 1, extentOffset: 1, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
flutter: TextEditingController#87c5c(TextEditingValue(text: ┤qw├, selection: TextSelection(baseOffset: 2, extentOffset: 2, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
flutter: TextEditingController#87c5c(TextEditingValue(text: ┤qwe├, selection: TextSelection(baseOffset: 3, extentOffset: 3, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
flutter: TextEditingController#87c5c(TextEditingValue(text: ┤├, selection: TextSelection(baseOffset: -1, extentOffset: -1, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))
flutter: TextEditingController#87c5c(TextEditingValue(text: ┤├, selection: TextSelection(baseOffset: 0, extentOffset: 0, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1)))

Note that after cleaning the field I got two prints, this may be the issue: the listener is being called multiple times when we call controller.clear().

 complete sample code (with a delay before cleaning the text field)
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

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

class _MyHomePageState extends State<MyHomePage> {
  TextEditingController controller = TextEditingController();

  @override
  void initState() {
    super.initState();
    controller.addListener(() {
      print(controller);
      if (controller.selection.baseOffset > 0) {}
      if (controller.text.length == 3) {
        Future.delayed(Duration(seconds: 1), () {
          controller.clear();
        });
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextFormField(
              controller: controller,
              decoration: InputDecoration(hintText: 'input'),
            ),
          ],
        ),
      ),
    );
  }
}

 flutter docctor -v
[✓] Flutter (Channel master, 1.21.0-10.0.pre.138, on Mac OS X 10.15.6 19G2021,
    locale en)
    • Flutter version 1.21.0-10.0.pre.138 at
      /Users/pedromassango/dev/SDKs/flutter_master
    • Framework revision 3562b3c0de (27 hours ago), 2020-08-18 01:46:02 -0400
    • Engine revision 02de4eb7ce
    • Dart version 2.10.0 (build 2.10.0-37.0.dev)

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at /Users/pedromassango/Library/Android/sdk
    • Platform android-30, build-tools 30.0.1
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor
      --android-licenses

[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.6, Build version 11E708
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] IntelliJ IDEA Community Edition (version 2020.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 48.1.4
    • Dart plugin version 202.6397.47

[!] VS Code (version 1.48.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    ✗ Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (4 available)
    • sdk gphone x86 (mobile) • emulator-5554 • android-x86    • Android 11 (API
      30) (emulator)
    • macOS (desktop)         • macos         • darwin-x64     • Mac OS X
      10.15.6 19G2021
    • Web Server (web)        • web-server    • web-javascript • Flutter Tools
    • Chrome (web)            • chrome        • web-javascript • Google Chrome
      84.0.4147.135

! Doctor found issues in 3 categories.

@pedromassangocode
I also have the same problem. I'm using Flutter 3.1.0-0.0.pre.2318 • channel master
and error message is:
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following FormatException was thrown building Obx(has builder, dirty, state: _ObxState#078dd):
TextEditingValue(text: ┤0├, selection: TextSelection.invalid, composing: TextRange(start: -1, end:
-1))

I did initialize TextField's value as "0" and did nothing before I see that message. I didn't make any clear event.
What is the reason ┤ and ├ are showing up?

Reproducible on stable 3.3 and master 3.7,
Listener called on

tap (+1)
Text enter (+2 for two characters)
called twice on clear (+2)

console
Restarted application in 408ms.
flutter: Listener called
flutter: Listener called
flutter: Listener called
flutter: Listener called
flutter: Listener called

flutter doctor -v (mac)
[✓] Flutter (Channel master, 3.7.0-13.0.pre.131, on macOS 13.1 22C65 darwin-arm64, locale en-IN)
    • Flutter version 3.7.0-13.0.pre.131 on channel master at /Users/mahesh/Development/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 0196e6050b (2 days ago), 2022-12-31 11:10:23 -0500
    • Engine revision 932591ec04
    • Dart version 3.0.0 (build 3.0.0-76.0.dev)
    • DevTools version 2.20.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks
      and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc4)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0-rc4
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.74.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.56.0

[✓] Connected device (3 available)
    • iPhone 12 Pro (mobile) • 026D5789-9E78-4AD5-B1B2-3F8D4E7F65E4 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 13.1 22C65 darwin-arm64
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 108.0.5359.124

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[✓] Flutter (Channel stable, 3.3.9, on macOS 12.6 21G115 darwin-arm, locale en-IN)
    • Flutter version 3.3.9 on channel stable at /Users/mahesh/Development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b8f7f1f986 (24 hours ago), 2022-11-23 06:43:51 +0900
    • Engine revision 8f2221fbef
    • Dart version 2.18.5
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc4)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0-rc4
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.70.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.53.20221101

[✓] Connected device (3 available)
    • iPhone 12 Pro (mobile) • 026D5789-9E78-4AD5-B1B2-3F8D4E7F65E4 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.6 21G115 darwin-arm
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 107.0.5304.110

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Still happening in 3.10...


Change License to BSD-3

In accord w/ @traversaro and @CarlottaSartore we decided to change the license to BSD in order to ease the use of the code for the users
It fixes #37

cc @claudia-lat


Generate Date and Time in Text Document using Date and Time Variable

Generate Date and Time in Text Document using Date and Time Variable

@ChandupriyaY
Task – 3
Code verified. Default activity names.

Annotation are given correctly but activity names are in default
When you raise the pr that pr no is updated in tracker also


Requestable Threads

Feature Addition

What is the feature you would like to see added?

Ability for reppy to automatically hand out roles.

Requestable threads for questions that don't require code, and can not meet the required score threshold.

Why would this be beneficial to add?

Again, my mother's brother told me.

It would allow users to carry in-depth conversation without disrupting the flow of the channel.

Additional context?

Jesus christ this is epic.

The allowed requestable thread pool should either be global based on active threads, or based on a users rep and their currently open threads.

v0.1 removes the request for this functionality in place of /post-question command.


Update FAQ #update_faq: Link to GitHub file history

While going through the FAQ for another task, I came across the #update_faq article and noticed something odd. Although we haven't merged any FAQ changes this year, it already showed a 2023 date. Instead of showing the date of the last FAQ change, it shows the date from when the site was built. Every merged PR or scheduled deployment would update that date, not just FAQ changes like intended.
After thinking about fixing this, I came up with an alternative idea. In my opinion, it doesn't really make sense to specify this in the FAQ if it's always up to date anyway. Especially not if that is the only information included in the FAQ article, with no text whatsoever. Linking to the GitHub file history for faq_de.json / faq.json would give the visitors much more information. Not only would they see when the last change was made like before, but they would now see what has changed in specific. They can see any change that has been made to the file in a chronological order.
(After taking the comments below into consideration, a date within the FAQ article itself has been re-added)
With the changes I've made in this PR, the article would look like this:

I am looking forward to your feedback.

Internal Tracking ID: EXPOSUREAPP-14522

I would vote for still including a date in the entry, as not tech-savvy users probably won't go to GitHub revision histories. :D

@larswmh
I don't think that referring general readers to GitHub commit history is a good idea.
I would either leave it alone or delete the article https://www.coronawarn.app/en/faq/results/#update_faq.
If you want to keep a date, then I would put it into the footer, with text: "Website last updated on ...." (instead of FAQ last updated ...).
How long is this website going to continue to be productive? Is there an end-of-life planned?

@larswmh
I don't think that referring general readers to GitHub commit history is a good idea.
I would either leave it alone or delete the article https://www.coronawarn.app/en/faq/results/#update_faq.
If you want to keep a date, then I would put it into the footer, with text: "Website last updated on ...." (instead of FAQ last updated ...).
How long is this website going to continue to be productive? Is there an end-of-life planned?

First of all, a happy New Year 2023 and thanks for your ongoing community support.
To give a first shot answer here: Yes, we are starting to plan the ramp-down of the the Corona-Warn-App solution and all linked systems. The whole process will be performed in stages. It is not yet finalized, what are the respective dates for each system of application, though.
Most probably, we are going to add a noticable hint on the website first before it will be archived and removed at a later date. Same with the app.
Hopefully, also the "official" communication will release an information about the upcoming ramp-down process, so the whole community is informed.

Regarding the question of "last update on the footer" or the "link to change history", I'd prefer the latter way (the link) - as the date only seems to be a quite flimsy piece of information without much added value. I strongly believe, whoever clicks on the FAQ article "When were the FAQ last updated?" does not only looks for the date, but also for the underlying change context.

@GisoSchroederSAP
Happy New Year to you too, and to the rest of the team who I haven't mentioned individually so far!
Thanks very much for confirming that you are starting end-of-life planning. In that case any proposed change here should be considered against the remaining life-time and whether it gives significant benefit against the effort to make the change and test it.

I question whether most people will find the https://www.coronawarn.app/en/faq/results/#update_faq article, since it is at the bottom of the section Resolved.

My opinion: Best would probably be to do what @MikeMcC399 suggested and move the date into the footer.

Just to expand on my comment that linking to GitHub history is not very helpful for general readers: the list contains both textual and technical changes (see screenshot below).
General readers would be more interested in a curated list of text changes. This would be possible using GitHub releases which can automatically generate release notes that can be edited. This would however be a significant manual effort to implement and so I do not suggest that this be done.

After discussing with other team members, we've internally decided to stick with the current state of the PR (screenshots in the opening comment have been adjusted). Because of aforementioned concerns that we agree with, we've re-added the date in the FAQ article. The text and link to the GitHub change history is just an extra now.
We're aware that the solution requires manual intervention every time a change is made to the FAQ, but the way it would need to be automated would create unreasonable effort at the current state of the project. We're planning to update this date only when there are real content changes, not when there are technical changes that are unobservable for the normal user.
However, thank you for the feedback @Ein-Tim @MikeMcC399. Unless there are any more critical concerns, this will be merged later today.

In my opinion this is worse than before, but if you want to go this way, it's ok for me. However, I suggest to make it more clear that the date refers to the whole FAQs and not only this one entry, as we have similar update notices in other FAQ entries too.

@Ein-Tim @MikeMcC399 Many thanks for reviewing and providing your assessments. We will merge for now the current PR, however, as usual, we are open to suggestions and changes.

@larswmh
This PR fails the Cypress test faq_link_attr.
According to the convention described in Links on FAQ pages:
"All internal and external links on the FAQ pages should use the HTML hyperlink attribute target='_blank' to open in a new frame. This provides a consistent user experience and works around an issue with the browser back arrow button in the FAQ Glossary."
The link GitHub does not conform to this requirement.
Perhaps we should consider running these tests automatically for pull requests so that there is no surprise later?

@MikeMcC399
Thanks for the information. A new PR has been submitted to fix this

Perhaps we should consider running these tests automatically for pull requests so that there is no surprise later?

I have brought this up internally once again. Since we have similar checks running in the app repositories, I don't think it's too unrealistic we can add automated Cypress tests here too.

@larswmh

I have brought this up internally once again. Since we have similar checks running in the app repositories, I don't think it's too unrealistic we can add automated Cypress tests here too.

I can prepare something for this if you like. Please let me know.


Turbine stream not working for clusters discovered by KubernetesInstanceDiscovery

It's actually two issues, but they are related:

If I configure breakerbox to use KubernetesInstanceDiscovery, the YamlInstanceDiscovery still seems to be active. Is there a reason for that? This seems confusing and can lead to errors in the configuration if users just leave out the 'turbine' field in their yaml file.
The metrics dashboard only works for those clusters that are specified via yaml. Clusters disovered by KubernetesInstanceDiscovery lead to the following:

"GET /turbine.stream?cluster=staging-auth-facade&delay=1000 HTTP/1.1" 404 (Cluster not found). Am I missing something here?

https://github.com/yammer/breakerbox/commit/22944efea20d113823a5642246b8ebe2ac6efbe0
That is fixed in this commit, I'll cut a release so it's available in 0.4.4 (https://github.com/yammer/breakerbox/commit/044e65cbd3df37506c3447dc8ef5a758e04949f7)

https://github.com/yammer/breakerbox/releases/tag/breakerbox-parent-0.4.4

Awesome! Thank you :)

So I've tried the new 0.4.4 release and I still get the same error. A curl to /turbine.stream\?cluster\={MY-CLUSTER}\&delay\=1000 gives me this 404 response:
Problem accessing /turbine.stream. Reason: Cluster not found
The cluster shows up in the frontend and configures my services correctly

I forgot that we'll need to make a change to KubernetesInstanceDiscovery so that you also register your new clusters!
`TurbineInstanceDiscovery.registerClusters(Collection clusterNames, String pathToStream)
Here you can see an example: https://github.com/yammer/breakerbox/blob/master/breakerbox-turbine/src/main/java/com/yammer/breakerbox/turbine/YamlInstanceDiscovery.java#L42-L43
and also https://github.com/yammer/breakerbox/blob/master/breakerbox-turbine/src/main/java/com/yammer/breakerbox/turbine/TurbineInstanceDiscovery.java
For the pathToStream you can use this value: https://github.com/yammer/breakerbox/blob/master/breakerbox-turbine/src/main/java/com/yammer/breakerbox/turbine/YamlInstanceConfiguration.java#L25
This can probably be refactored a bit so it's just the default

Another thing I've been thinking is since Turbines InstanceDiscovery doesn't offer a way to register new clusters in between calls. I might just have a wrapper so that we parse the clusterNames from all the Instance objects that you've just created and returned. That way not every single InstanceDiscovery instance needs to make sure to register new cluster names and potentially forget to.

I went for the option to register the clusters directly in KubernetesInstanceDiscovery, since I don't feel like I have enough insights into the project to implement a universal cluster registration. If I should make a guess, I believe this would be a good place to do it:
https://github.com/yammer/breakerbox/blob/master/breakerbox-turbine/src/main/java/com/yammer/breakerbox/turbine/ConcatenatingInstanceDiscovery.java
However I am unsure how exactly this class fits into the bigger picture.

That sounds good. We can merge it in for now, then I'll take another pass and have InstanceDiscovery always register new cluster names so that you don't have to manually call it in every InstanceDiscovery implementation.


Step 3: Create FSD's F/ New Schemas, Capabilities

Needs story point estimate. This is work for Max and @anvabr . Adding to Sprint 5

@danielnorkin with the delivery of the Excel Document (REDD APD Schema Design_1-12-21) from Max to the DEV Team, does this complete this task as well.


RTC not working on v1.3.0

RTC doesn't work. I did put -D USERMOD_RTC in the platformio environment on v1.3.0. It was works on v1.1.0.
Please let me know.
Thanks.

Found problem. It is bad RTC board.


⚠ Bofrost.be has degraded performance

In f6574de, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1461 ms

Resolved: Bofrost.be performance has improved in ebb91bc.


Failed to get item count using query: 'project=XXX ORDER BY assignee ASC'

Connecting to Jira...
Retrieving Jira fields...
Retrieving Jira link types...
Failed to get item count using query: 'project=XXX ORDER BY assignee ASC'
[System.AggregateException] System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: Response Status Code: 400. Response Content: {"errorMessages":["The value 'XXX' does not exist for the field 'project'.","Not able to sort using field 'assignee'."],"warningMessages":[]}
at Atlassian.Jira.Remote.JiraRestClient.GetValidJsonFromResponse(IRestRequest request, IRestResponse response)
at Atlassian.Jira.Remote.JiraRestClient.d__11.MoveNext()
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification)    at System.Threading.Tasks.Task1.get_Result()
at JiraExport.JiraProvider.GetItemCount(String jql)
---> (Inner Exception #0) System.InvalidOperationException: Response Status Code: 400. Response Content: {"errorMessages":["The value 'XXX' does not exist for the field 'project'.","Not able to sort using field 'assignee'."],"warningMessages":[]}
at Atlassian.Jira.Remote.JiraRestClient.GetValidJsonFromResponse(IRestRequest request, IRestResponse response)
at Atlassian.Jira.Remote.JiraRestClient.d__11.MoveNext()<---
:
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification)    at System.Threading.Tasks.Task1.get_Result()
at JiraExport.JiraProvider.GetItemCount(String jql)
[I][15:44:25] Export started. Exporting 0 items.
[W][15:44:26] Epic link field missing for config field 'cf[10007]'.
[W][15:44:26] Sprint link field missing for config field 'cf[10006]'.
[W][15:44:26] User mapping file 'C:\Temp\JiraExport\users.txt' not found, ignoring mapping user identities.
[I][15:44:26] Initializing Jira field mapping...
[E][15:44:26] Failed to retrieve issues

Can someone help on this?

You should replace XXX with your project key in the query:
 'project=XXX ORDER BY assignee ASC'

@Alexander-Hjelm For security reasons I didn't mention the name here, but in actual I'm using my project name instead of XXX in the query.

Not the project name, but the project key

What will be the Project Key? Means how can I find it?

In the URL for example:
https://solidifydemo.atlassian.net/jira/software/c/projects/AGILEDEMO/boards/7
Here the project key is AGILEDEMO

@Alexander-Hjelm I think I'm using Project key only but still it's throwing the same error.

Try like this?
  "query": "project = \"AGILEDEMO\" ORDER BY created DESC",

I tried like this as well but still the issue is not resolved. Do I need to do anything in the config file?

jira-export-log-230508-182009.txt
Here is my log file

It still seems to complain that there is no project with the given key.
Attach your config file as well?

@Alexander-Hjelm Could you please help with the issue?

@Alexander-Hjelm @Jura @chekkan @webmonger @madkoo can someone please help on this?

The project name and key are both "SLKGT" in jira?

@ramakanth-slk Please keep the discussion to solidify employees only, and do not bring in community contributors without any reason

@Alexander-Hjelm  Sorry, my bad I thought they are also belongs to Solidify.
My project name is different, key is "SLKGT" in JIRA

The source-project property in your config should be the project name, not the project key

I have tried with the name also but still not working. Please find the below updated config file
config-file.txt

Not sure what could be the issue here, other than wrong input of the jira project name or key, or missing user access to your jira project maybe.

@ramakanth-slk  I would change the query:
from: "query": "project=SLKGT" to "query": "project = SLKGT"
Do notice the spaces in the query.

@Alexander-Hjelm I have product owner access to my Jira project, do I need any other specific access?

@Alexander-Hjelm Yeah, but still I'm not i'm getting the issue

@Alexander-Hjelm Now I'm able to export the JIRA data but while importing into ADO nothing is happening, terminal is not showing any errors

The importer cannot find any issue files. Are you sure you are running the correct import command? Same workspace?

I'm using the below command
wi-import --token XXXX --url XXXX --config config-agile.json --force

This is my log file after the Export, is anything wrong in this file while exporting?
jira-export-log-230523-130504.txt

@Alexander-Hjelm Could you please check the log file once and let me know if I need to change anything.

Yeah some field is "Null" when it shouldn't be, as indicated by the error message:
System.ArgumentNullException: Value cannot be null
Will relabel as a bug, but currently lacking enough information to reproduct the issue

Nah that looks fine. Fetch the issue over the Issues Rest API and check if you have any fields that are unset or null maybe?

OK, I'll check

Issue reported separately through support mailbox. See email from Miroslav Koutny (CZ), Thu 5/25/2023 7:12 PM

@ramakanth-slk That was just for internal issue tracking :)

@Alexander-Hjelm Ok, is there any update on this issue?

@Alexander-Hjelm Is there any update on this issue?

Not yet, but will work on it as soon as time allows

Additional details:
Any change in the field
"epic-link-field": "Epic Link",
Trying to enter custom field name ended up in above error

Hi @Alexander-Hjelm No I'm using default Epic Link only.
I'm able to export and import data now, not sure what was the issue but the tool is working after trying recent release(v3.0.139)
Thanks a lot for the support.

Glad to hear! Reopen this issue if the problem should persist


Initial schema and build

Initial schema as JSON and deploy script from @david-i-berry

@david-i-berry  I'm not sure about a couple of things:

The JSON appears to be a custom format and it looks like the intention is to create and maintain our own custom tooling to create UML and SQLAlchemy models from this? Instead I was expecting either:

JSON schema files and reusing some existing tooling. For example, this tool converts from DDL to JSON schema (but not the other way around). Or ...
Definition and maintenance of the physical data model using SQLAlchemy models (but only if these models were the single source of truth)

The Climate Data Model Standard is intended to be project agnostic. I'm not sure OpenCDMS is the correct home for the single source of truth. Would it make more sense for the versioned data model definition to live at wmo-im/cdm?

(2) I agree, the correct home will be in the TT-CDM and documented in the relevant manual. However, our task in the TT-CDM will be to develop and document the logical data model. Here we will implement that data model.
(1) is slightly more complicated. I've looked at various tools and started off in json schema (after EA that I'm keen to avoid) but then I struggled to generate UML diagrams from the json schema. I also looked at starting from PlantUML files but there doesn't appear to be any easy solution there.  At the moment I've used the json file I shared and two short jinja2 templates (~30 lines each) to create the models.py and a UML diagram but I'm not sure this is the correct way to go.  Ultimately I think we'll need to bite the bullet and use EA which makes collaboration more difficult and will require the use of EA to generate the DDL.

I added some additional files to automate the process to try it out. I am pasting the contents of the files here.

Dockerfile
FROM python:3.10-slim

RUN apt-get update -y
RUN apt-get install -y python3-dev libpq-dev build-essential

COPY requirements.txt /opt/project/requirements.txt

RUN pip install -r /opt/project/requirements.txt

WORKDIR /opt/project
ENV PYTHONPATH="$PYTHONPATH":/opt/project

docker-compose.yml
version: "3"

services:
  opencdms-database:
    image: postgres:13
    environment:
      POSTGRES_PASSWORD: password
    ports:
      - "5432:5432"

  db-builder:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - "${PWD}:/opt/project"
    entrypoint: bash
    environment:
      POSTGRES_PASSWORD: password
      POSTGRES_USER: postgres
      POSTGRES_DB: postgres

requirements.txt
sqlalchemy
SQLAlchemy-Utils
geoalchemy2
psycopg2

And then when I run the script like below, it throws error.
$ docker-compose up --build -d
$ docker-compose run db-builder
root@fde5a57a4fbc:/opt/project# python build_db.py
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
    cursor.execute(statement, parameters)
psycopg2.errors.ObjectInUse: cannot drop the currently open database

when I comment line 19 and 20, it returns throws psycopg2.errors.DuplicateDatabase: database "postgres" already exists
When I comment line 21, it doesn't throw any error. But there are no databases either.
When I changed build_db.py like below
import os
from sqlalchemy import create_engine, schema

from data_model import Base

UID = os.environ["POSTGRES_USER"]
PWD = os.environ["POSTGRES_PASSWORD"]
DBNAME = os.environ["POSTGRES_DB"]

engine = create_engine(f"postgresql+psycopg2://{UID}:{PWD}@opencdms-database:5432/{DBNAME}")

Base.metadata.bind = engine

schemas = {v.schema for k, v in Base.metadata.tables.items()}

for _schema in schemas:
    if not engine.dialect.has_schema(engine, _schema):
        engine.execute(schema.CreateSchema(_schema))

Base.metadata.create_all(engine)

and changed the docker image for db to postgis/postgis:13-3.3, it worked.