Increase percentage of shared positive test results

Current Implementation
Currently only a small percentage of all positive PCR test results are registered with corona-warn-app to notify potential contacts (see https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/WarnApp/Archiv_Kennzahlen/Kennzahlen_18022021.pdf?__blob=publicationFile - currently it's 59% of all people which have been issued TANs or QR codes). Since people requesting the option of notifying via app are likely not opposed to sharing results this points to a process weakness.
Due to a risk notification in the corona warn app I went to a Centogene test lab today to get a (tax payer funded) free PCR test. I selected the "share with app" checkbox but was not handed a QR code. I asked the person performing the test how I could get a QR code - but he had no idea how that worked. Maybe I will receive one with the result. But that's too late. At that point users will have many other things to consider and often won't be ready to spend any time on communicating the results.
Note that I needed to opt in to share with app. Opt in vs opt out is often a difference of 90% vs 15% acceptance.
Suggested Enhancement
The test process needs to be optimized to maximize registered warnings in the app. Test centers should actively present QR codes to customers unless they decline. Test result communication should generally happen via the corona warn app unless people explicitly choose another mechanism. Positive test results should automatically be used to warn contacts via warn app unless the user explicitly opts out.
This is desirable for all tests - but certainly tax payer funded free ones should be run this way. If the tax payer funds the tax payer should get the benefit of notification.
Expected Benefits
With all the millions the German government spends on this app it would be desirable for its use to be optimized towards fulfilling the epidemiological goals it was contracted for. In particular the vast majority of app users should warn other users of their test results.

Internal Tracking ID: EXPOSUREAPP-11240

Btw my daughter just got tested 2 days ago and got her positive result today. I just called her and she hasn’t yet shared her results since she couldn’t figure out how to. She would have never declined to share the result. It was just a process weakness.

Thanks for your suggestion @joelucid. We have created an internal ticket for it and will raise this topic internally.
Internal Tracking ID: EXPOSUREAPP-11240

Corona-Warn-App Open Source Team

Hi @joelucid,
Thanks for the report.

If your test center is integrated into the CWA infrastructure, it should have provided you a QR code to be scanned with the CWA. If this is not the case, and they claim to be included in the  CWA infrastructure, we would need the name and adress of the test centre, please.

Once a test was registered and you have received a positive result via the app, the app will offer you automatically to share anonymously the result on a voluntary basis and warn in this way others. This will not happen automatically because is is based on a voluntary basis.

Should you happen that you did not receive the positive PCR test result via the app, either because  it was never registered via the app, or due to another problem, you still can warn others using the TAN procedure, see https://www.coronawarn.app/en/faq/#qr_test

Best wishes, DS

Corona-Warn-App Open Source Team

@dsarkar when I ordered the test on Centogene's  website I was presented with a check box to request notification to CWA. I checked that box. But I wasn't presented with a QR code when the test was performed.
This happened Sunday afternoon, 9.1.2021 in Testzentrum Wedding, Müllerstraße 143, 13353 Berlin. https://www.berlin.de/sen/gpg/service/oft-gesucht/artikel.1135347.php lists it as "Landeseigene Teststelle" - so I would be very surprised if they are not integrated into the CWA infrastructure.
I assume that no QR code was generated for me or that the QR code will get sent in the test result email. My wife and daughter also did not receive a QR code there.
Note that even test results with QR codes are only shared in 58% of all cases. So the changes I suggested above to the process seem like important improvements over voluntary sharing after notification.

@dsarkar
AFAIK CWA automatically warns when a test is registered and it comes back positive, but if the user has declined to this (either in the OS pop up or by turning a switch off in the CWA).

@joelucid, thanks for the feedback.

@Ein-Tim I will check that ...

@dsarkar See e.g. https://github.com/corona-warn-app/cwa-app-ios/issues/2840

@joelucid So you received the result via mail, and there was no QR code included in the email, alltough you check the box, that you request to get the result via CWA, correct?

Quick update:
I just received an email notifying me that results were ready. Had to log into a test portal to retrieve the results. The test result document does include the QR code for registering the test in CWA.
In my mind the problem with this process is evident: when a patient receives a positive test result he will be in a state of agitation - thinking of everything he now needs to do and how it all works (reporting to Gesundheitsamt, quarantäne, notifying contacts etc). It's very likely that he won't scroll down in the test result doc to find the QR codes and register the test in CWA.

We want the test to get registered into the app when the test is performed.

@joelucid I understand that there might be issues with process and room for improvements. Besides this, I still didn't understand if you received eventually CWA QR code (at the end of the email)?
Many thanks for your feedback.

@dsarkar I did receive the QR code in the test results pdf which I downloaded.

Just found this: https://apo-schnelltest.de/images/pdf/210420_CWA Schnelltest_3rd_Party_Info_kurz_1.1.pdf.
It's for Rapid Tests but I'll assume the guidelines are similar for PCR tests. So apparently receiving the QR code with the result is one of the recommended options. I'm surprised that this process is not optimized better to maximize registered tests and result sharing. I've always wondered why CWA test result sharing was such a low percentage of all positive test results - now I understand. Hope you will consider some of the suggestions I have made above.

@joelucid
The problem which you describe should be solved by the new CWA 3.0 version released yesterday, Jan 18, 2023:
Version 3.0: CWA warnings now possible after positive self-test
"Previously, an official positive rapid or PCR test in the CWA was required in order to initiate a warning via the Corona-Warn-App. With version 3.0, the Corona-Warn-App (CWA) has a new feature: Warnings are now also possible after a positive self-test. Users with a positive test result can initiate a warning through the CWA by themselves. This applies both to positive results of PCR tests and rapid antigen tests officially issued in testing centers that have not been transmitted to the CWA, and to positive results of point-of-care PCR tests (rapid PCR tests) and self-tests."
This doesn't follow your suggestion, but the end result is what you wanted, in that it is now much easier for people to warn others when they have a positive test result. This is independent of any QR code or TAN.

This is a good feature. But it doesn't address the core problem with the "Befundkommunikation" method: burdening the user/patient with extra effort at the worst possible time and in the form of an "opt-in" instead of "opt-out". If test results were primarily communicated via CWA and if future automatic sharing of positive test result were agreed to at the time of taking the test - when linking the test into CWA and as "opt-out" choice I can guarantee you'd have at least 5x the sharing rate of results.
It looks like this pandemic is on its way out. Maybe this can be done for the next pandemic? Seriously I hope there will be a post mortem on missed opportunities with CWA during Covid. In that case the process design around sharing test results deserves detailed discussion as that is one of the biggest missed opportunities.
How do we categorize this issue for such a discussion?


[TASK] XSD checking moving to 1.1 version

Issue Description
Is your feature request related to a problem? Please describe.
Moving RAVEN validation XSD to 1.1 for conditional type checking
Describe the solution you'd like
Describe alternatives you've considered

For Change Control Board: Issue Review
This review should occur before any development is performed as a response to this issue.

[ ] 1. Is it tagged with a type: defect or task?
[ ] 2. Is it tagged with a priority: critical, normal or minor?
[ ] 3. If it will impact requirements or requirements tests, is it tagged with requirements?
[ ] 4. If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users.
[ ] 5. Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.)

For Change Control Board: Issue Closure
This review should occur when the issue is imminently going to be closed.

[ ] 1. If the issue is a defect, is the defect fixed?
[ ] 2. If the issue is a defect, is the defect tested for in the regression test system?  (If not explain why not.)
[ ] 3. If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)?
[ ] 4. If the issue is a defect, does it impact the latest release branch? If yes, is there any issue tagged with release (create if needed)?
[ ] 5. If the issue is being closed without a pull request, has an explanation of why it is being closed been provided?

Note specifically that the OutStreams need to have their checking restored, which was paused in #1497 due to the subType checking limitation.


mcr.microsoft.com/mssql/server support alpine docker image?

hi,
Hello.
There is an image with alpine linux ?

Hi @EvgenyPrikhodko, no for now we don't have an image shipped on alpine linux, but you can build this with your own custom docker, like we do for SLES here is a sample : https://github.com/microsoft/mssql-docker/blob/master/linux/preview/SLES/dockerfile, but please be aware this will not be supported for production workload.


Installing Hotjar

Description
Paste the code into the  of every page where you want to track user behavior or collect feedback.

Expected change
To be able to see the tracking of people navigating the docs.

@RymMichaut
Do we know which are the "page where you want to track user behavior or collect feedback"?

I would try to make it everywhere, if possible.

@FabienLelaquais I would say all the pages, we need to track people's behavior.

We want it to be implemented in develop and latest.


First call to Analyze Images always fails and the subsequent call  succeeds.

Steps to reproduce the problem:

Chat with obot and ask to generate an image
Once image is generated , ask to describe this image as a pirate would do

Notice that there are 2 tool calls to  Analyze Images being made.

tool calls from debug logs:
          {
            "content": "",
            "role": "assistant",
            "tool_calls": [
              {
                "function": {
                  "arguments": "{\"images\":\"generated_image_a9dcd4d9.webp\",\"prompt\":\"Describe this image as a pirate would.\"}",
                  "name": "analyzeImages"
                },
                "id": "call_qsiveMepng2Sm8SZatKEk40M",
                "type": "function"
              }
            ]
          },
          {
            "content": "ERROR: got (exit status 1) while running tool, OUTPUT: file:///obot-tools/images/src/analyze.ts:17\n        throw new Error('Failed to parse images, expected a JSON array of strings');\n              ^\n\nError: Failed to parse images, expected a JSON array of strings\n    at analyzeImages (file:///obot-tools/images/src/analyze.ts:17:15)\n    at file:///obot-tools/images/src/tools.ts:11:13\n    at ModuleJob.run (node:internal/modules/esm/module_job:271:25)\n    at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:547:26)\n    at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:98:5)\n\nNode.js v23.4.0\n",
            "name": "analyzeImages",
            "role": "tool",
            "tool_call_id": "call_qsiveMepng2Sm8SZatKEk40M"
          },
          {
            "content": "",
            "role": "assistant",
            "tool_calls": [
              {
                "function": {
                  "arguments": "{\"images\":[\"generated_image_a9dcd4d9.webp\"],\"prompt\":\"Describe this image as a pirate would.\"}",
                  "name": "analyzeImages"
                },
                "id": "call_JVnv7d7oJ4SdJH3Ymm0ljhgI",
                "type": "function"
              }
            ]
          },
          {
            "content": "Arrr, behold this mighty beast standin’ tall in a sea o’ green, like a guardian o’ the grassy plains! The sky be painted with clouds as fluffy as the finest sails on a pirate ship. This giant bovine beauty gazes yonder, as though searchin’ fer hidden treasures beneath the billowin’ skies. Aye, her shadow be cast long and strong, like the shadow of a legendary sea monster! Ye can almost hear the whispers o’ the wind tellin’ tales of adventures untold. Yarrr!",
            "name": "analyzeImages",
            "role": "tool",
            "tool_call_id": "call_JVnv7d7oJ4SdJH3Ymm0ljhgI"
          }
        ],
        "model": "llm",

debug logs -
calls (61).json

Perhaps the images param could accept either an array or single string.


Add workflow for automatically remove ready to merge label

Description
Time to time, I find that some of the core dev (sometime me) forget to remove the "ready to merge" label after merge. This PR introduces workflow to do this.
Looking at the documentation, it should work. I do not know how to test it without merge.

I just periodically clear those, but I'm cool with giving this a whirl. Not sure what's easier long term 🤣

I'm +1 for some automation!


Manually disabling a channel is overridden when restarting the node

Background
After manually disabling a channel with lncli updatechanstatus TXID TXIDX --action disable, its state will be overridden as a automatically managed disabled channel (ChanStatusDisabled) on node restart.
After the channel is considered stable, it will then be automatically be enabled, hence completely overriding the state set manually prior to the restart.
The reason seems to be due to the function loadInitialChanState inside netann/chan_status_manager.go, which is not able to distinguish between if the last channel update was disabled automatically (ChanStatusDisabled) or manually (ChanStatusManuallyDisabled).
https://github.com/lightningnetwork/lnd/blob/42099ef5e1e0f927290531fe2bff18406141567b/netann/chan_status_manager.go#L664-L668
Your environment

version of lnd: 0.13.0-rc.5

Steps to reproduce
Manually disable a channel lncli updatechanstatus TXID TXIDX --action disable, restart the node, wait for the ChanEnableTimeout to pass, then the channel will be enabled.
Expected behaviour
I think it should stay manually disabled also after a node restart.
Actual behaviour
The channel is loaded as automatically disabled and then automatically enabled when the channel is stable.

Good observation! Unfortunately this will require the state to be written to disk if we want to support this. One possible workaround would be to run the command/RPC manually after restarts, so that channels don't automatically get re-enabled.

Ah yes. In that case I will change the helper text for the command to add this as a note, for as long as it is not picked up.

Unfortunately this will require the state to be written to disk if we want to support this

We purposefully didn't do this the first time around to simplify the implementation.


Improve the user store onboarding flow in the Console

Is your suggestion related to an experience ? Please describe.
In Asgardeo we have an improved user experience in the user store onboarding flow. We need to bring that improved experience to the Identity Server under the unification effort.

After discussing about the unification, it was decided to keep the IS experience for User Store as it is with the new look and feel. Therefore the features and UI will be the same with the new theme

This is available with the console version 2.0.0 in the is pack


Assignment

fixed merge conflicts

Looks good Kate!! well done!
For future reference for the review comments, refer to https://github.com/fear-me-laws-of-syntax/shell/pull/5


fluid.normalize~ tab "comparing scalers" seems to refer to a specific audio sample

This tab gives you an option of audio files to load, but then the grey text underneath each seems to talk about a file in specific (or at least makes assumption on how that data behaves with each plot).
If that's the case, it should load the intended soundfile by default, or at least, it should change the wording to be more generic "Standardize produces a similar shape to the robust scaler. In some cases the outliers can still pull the entire shape....."

Could also benefit from having a significantly smaller pointsizescale for all of them.
Lastly, a speedlim wouldn't hurt on the zoom outlet, as it really bogs my computer down trying to scroll with a longer audio file loaded.

I see, it does default load. I've just gotten in the habit of manually loading files as in many helpfiles this interface typically does not load a file.
Maybe just have the file baked into a buffer directly since this is demonstrating the idea with this specific audio file. So just buffer~ help.scalercomparison.src.really.long.name Olencki-TenTromboneLongTones-M.wav.

Agree with this so I've implemented it on dev


Clean anime cmds and a string in bug cmd

I am sure this will work I have tested it 6969% You can test it yourself :)

I also like shortening my code so I don't have unnecessary garbage. Thank you boss.

I also like shortening my code so I don't have unnecessary garbage. Thank you boss.


STORY: As an admin, I want user's login details to get authenticated so that all users will stay secure and accessed by the right person only.

frontend: The app will either flash a failure message or start a new session, according to the authentication process success.
backend: The app will check the Email and Password the user entered in the login page against the DB and will check if they're valid.
Travis CI: If possible, try to add a Travis CI test to go with the function you'll be creating.
Related Issues:
#102 #103 #104 #105 #107
Team Members:
@shirmenzely @VictoriaShumeruk @octopusShiva @eransevil @Omeramsc

WIP: as discussed, the function (#107) will be as follows:
def authenticate_user(username, pass):                       @Omeramsc      #107
    if(check_username(username)):                            @shirmenzely   #102
        if(check_password(username, pass)):                  @eransevil     #103
            return true
        else:
            (flash a message about incorrect password)    @VictoriaShumeruk #105
            return false
    (flash a message about incorrect username)            @octopusShiva     #104
    return false

each issue serves as a part of the whole function.

got it
Get Outlook for Androidhttps://aka.ms/ghei36

From: Omer<EMAIL_ADDRESS>Sent: Tuesday, December 31, 2019 11:08:55 AM
To: Code-Collaborate-Community/tiger<EMAIL_ADDRESS>Cc: octopusShiva<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Code-Collaborate-Community/tiger] STORY: As an admin, I want user's login details to get authenticated so that all users will stay secure and accessed by the right person only. (#106)
WIP: as discussed, the function (#107https://github.com/Code-Collaborate-Community/tiger/issues/107) will be as follows:
def authenticate_user(username, pass):                       @Omeramsc      #107
if(check_username(username)):                            @shirmenzely   #102
if(check_password(username, pass)):                  @eransevil     #103
return true
else:
(flash a message about incorrect password)    @VictoriaShumeruk #105
return false
(flash a message about incorrect username)            @octopusShiva     #104
return false
each issue serves as a part of the whole function.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Code-Collaborate-Community/tiger/issues/106?email_source=notifications&email_token=ALU6IUQY6M5H3LN3L47QLILQ3MD2PA5CNFSM4J3BXBMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEH36DGQ#issuecomment-569893274, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ALU6IUWKVTYWMNU6HL5F5DDQ3MD2PANCNFSM4J3BXBMA.

Looks awesome! I like your approach. Please do not hesitate to approach me if you are stuck. AMA


Existing Blog with Dynamic Content Creation

Description:
Convert the current static blog page into a dynamic platform that allows for creating and publishing content related to finance. This will enable fresh, relevant content and improve user engagement.
Key objectives:

[ ]  Transform static blog into a dynamic content management system.
[ ]  Enable the creation of posts.
[ ]  Improve user engagement through commenting and sharing features.

Additional context
Screenshots:

I would love to work on this task, could you please assign this task to me?


Update metadata.json

Add missing dependency, since the module is being included at line 24.

The build failed for unrelated reasons. Please pin rubocop at '0.35.0' in the Gemfile; this is an error on VoxPupuli's end, and that's the workaround until we do a modulesync.

@jyaworski Done


Packit service does not clear test flags on "/packit copr-build"

Seems packit does not clear test flags on /packit copr-build I still see the old results until a new copr build was built.

An example:

so the request is to clear all testing-farm check statuses when

there is a new push to the PR
or someone performs /packit copr-build
or someone performs /packit test (soon, TBD)

makes sense to me

Requires https://github.com/packit-service/ogr/issues/133

It seems that at the moment, there is no possibility to actually clear the commit statuses (aside from the push):

https://github.community/t5/GitHub-API-Development-and/Delete-or-cancel-commit-status/td-p/17928
https://developer.github.com/v3/repos/statuses/

But we can for the situations:

there is a new push to the PR

For new pushes to pull request, the checks are cleared automatically in github.

or someone performs /packit copr-build
or someone performs /packit test (soon, TBD)

For the /packit copr-build (and potentially /packit test) we can switch it back to pending as testing farm does.

or timeout on our side? (Edit: Rado)

On timeouts on our side, we can deal with it here: https://github.com/packit-service/packit-service/issues/225

For new pushes to pull request, the checks are cleared automatically in github.

Not always. (I am not sure, but Github probably runs some magic to determine if it is needed.)

For new pushes to pull request, the checks are cleared automatically in github.

Not always. (I am not sure, but Github probably runs some magic to determine if it is needed.)

True, it seems only for pushes that change the HEAD hash. (Assuming the pull request status is the status of the last commit on the PR) https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-status-checks

Looking at the code, run_copr_buld should report pending status on every new copr build. In our hello-world repository, it also works correctly now. Could have this been a packit service outage or maybe unreported error that is now fixed?
@thrix are you still able to reproduce this?

I think we don't fix the problem but response much sooner with the pending state. I hope it is not a big problem now.

Oh, I totally misunderstood. We want to clear the packit test result, not only the copr build, sorry about that


Avatar doesn't show at top left on the main page

Describe the bug
Avatar doesn't show at top left of the main page.
To Reproduce
Steps to reproduce the behavior:

Login on a GoToSocial server
Notice the missing avatar at the top left of the page.

Expected behavior
Avatar should show.
Screenshots

Desktop (please complete the following information):

OS: Ubuntu Linux
Browser: Chrome

@cheeaun, I have neglected to offer you an account on an instance running GoToSocial. Please let me know if you want/need one.

@Fastidious is it only 1 account?

Yes, one account. If I add a second one (Mastodon backend), the avatar shows. If I missed that the avatar shows only when there is more than one account, I will slap myself silly.

@Fastidious yeah, avatar only shows if more than 1 account added. Don't have to blame yourself, it's a rather hidden logic where I assume the avatar is not useful if there's only 1 account, which I suspect would be common for average users.

Thank you!


Fix compilation issue when building cilium-runtime

Missing python3 causes the compilation of bpftool to fail
with the following error:
"/bin/sh: 1: /tmp/linux/scripts/bpf_helpers_doc.py: not found
Makefile:184: recipe for target 'bpf_helper_defs.h' failed"
Fixes: #9719
Signed-off-by: Jianlin Lv<EMAIL_ADDRESS>

This change is

/retest

test-me-please

@Jianlin-lv Thanks for the PR, this was fixed by https://github.com/cilium/cilium/pull/9715


*: bump to kubernetes 1.16

Description of the change:
Bumps dependencies to support Kubernetes 1.16, including latest versions of controller-runtime, and helm that support 1.16.
Motivation for the change:
To support Kubernetes 1.16 APIs
This PR is a work-in-progress while we are awaiting a stable upstream release of controller-runtime.

/test e2e-aws-helm
/test e2e-aws-ansible
/test e2e-aws-subcommand
/test e2e-aws-go

See https://github.com/operator-framework/operator-sdk/pull/2202/files#diff-380d377ed40adc8f9a4dcaa03bde1fc9R116-R124

@camilamacedo86 Good catch! This makes me worried that our e2e's are insufficient since such a fundamental failure wasn't found. I'll fix this and take a look at that too.

I do not think that we have an e2e tests to gen the quick start or Memcached. Now that we could make the generate make file target and the scripts work properly in kubebuilder I have enjoy a lot this idea. See how ti works, I think would be very nice to have the same here:

The makefile target: https://github.com/kubernetes-sigs/kubebuilder/blob/master/Makefile#L47https://github.com/kubernetes-sigs/kubebuilder/blob/master/Makefile#L47
Call the script : https://github.com/kubernetes-sigs/kubebuilder/blob/master/generate_golden.sh
Which run the commands in the shell and gen the mock data projects in the repo: https://github.com/kubernetes-sigs/kubebuilder/tree/master/testdata

It is very helpful since we check the testdata to be sure that our change work, to review and etc ..

@camilamacedo86 We do have a go e2e that runs operator-sdk new and then copies in some templates. See this, which eventually calls this.
@estroz Are we skipping validation in the go e2e scaffolding so that we can add the replace line into go.mod before resolving dependencies. This seems related to the conversation we were having yesterday about the test-framework dependencies and how they get resolved. I'm now thinking I might have been incorrect in this comment.
Replicating the steps of the go e2e test to create the operator project without validation, adding the replace line for the local operator-sdk replacement, and then running go mod tidy and go build ./... works. I then ran go list -m all and it appears that the dependencies of the replaced module are honored. (i.e. I'm getting the kubernetes 1.16 deps from the local repo, not kubernetes 1.15 from master)
It seems like the error that @camilamacedo86 posted happens because the scaffolded go.mod file uses master, but master does not yet have the rest of the changes that are required to make the kubernetes-1.16.2 replacements work.
If I'm understanding the above correctly, once this PR is actually merged into master the autorest dependency errors will disappear.

Hi @joelanford,
We have the tests but they do not work exactly the generate in Kube. Actually, I have been thinking if we could not rip all and does as kube to gen the testdata and use it to do the tests.

It seems like the error that @camilamacedo86 posted happens because the scaffolded go.mod file uses master, but master does not yet have the rest of the changes that are required to make the kubernetes-1.16.2 replacements work.

I am not sure if I got this point. The test was made with this PR, then the scaffold was gen with its changes in the internal/scaffold/ansible/go_mod.go.

@joelanford yes that's why we skip validation.
@camilamacedo86 the issue you saw only surfaces when using a k8s bump branch before its merge with the remote master occurs. The master branch version that the scaffolded go.mod pulls in does not have the updates from the branch you built yet. Those changes are only present on @joelanford's k8s-1.16 branch. What the e2e tests do is equivalent to adding:
replace github.com/operator-framework/operator-sdk => github.com/joelanford/operator-sdk k8s-1.16

To the go.mod file.

@camilamacedo86 Does @estroz's comment make sense to you? What I've gleaned by testing this is that it is not valid to test a project created from a branch of operator-sdk without adding the replace line, because the project's go.mod file doesn't know anything about the branch without the replace.
Therefore when testing the scaffolded projects that use go.mod with any branch, it is always necessary to use replace in the go.mod file to force it to use the branch.

@hasbro17 Yep. I somehow always forget to do that. Thanks for the constant reminders :slightly_smiling_face:


On screen control

I do not get to see the physical control buttons for my Samsung Galaxy S7. I am using a second phone to remotely control the phone on which SCRCPY is running and using keyboard shortcuts is really cumbersome if not downright unmanageable. Can you please implement on-screen Back, Home, and App Switch buttons? Thanks!

Duplicate of #7.


[ja] Translate content/en/docs/reference/glossary/admission-controller.md into Japanese

close #44542
Change List

translate content/en/docs/reference/glossary/admission-controller.md into Japanese

The target page on the deploy preview:

https://deploy-preview-44544--kubernetes-io-main-staging.netlify.app/ja/docs/reference/glossary/?all=true#term-admission-controller

/assign @nasa9084

This file has already translated in #43641.
If you don't mind, I'll adopt that PR this time.
However, you created an issue first, so your working procedure is correct.

Thank you. I searched from the issue, so I couldn't confirm if there was any duplication (perhaps I should have checked the PRs as well).

If you don't mind, I'll adopt that PR this time.

Of course. Not a problem for me. Please adopt #43641  (and if this PR is no longer needed, feel free to close it, or I can close it myself).

ありがとうございます。PRまで気を回せれば良かったのですが、issueしか把握できていませんでした（以後気をつけます）

If you don't mind, I'll adopt that PR this time.

とありましたが、全く問題ないので、もちろん #43641 の方を採用していただいて大丈夫です🙆♂ （不要であればこのPRを閉じてもらって大丈夫です。あるいは後ほど自分で閉じます）

/unassign

/unassign @nasa9084

Thank you for your comment. I'll close it now.
コメントありがとうございます。ではクローズしますね。
/close


Turning off ticks, labels, guides

I'm trying to replicate an interactive element like this one: https://github.com/timholy/ImageView.jl/blob/master/readme_images/contrast.jpg
It's a histogram where the number of pixels is presumably irrelevant, and so I'd like to suppress rendering of y-ticks and the y-axis label. I poked around a little while, and by setting plot_aes fields like
plot_aes.ytick = Float64[]
plot_aes.ytickvisible = Float64[]
plot_aes.ytickscale = Float64[]

I could suppress the ticks. However, I suspect I just failed to find a simple method like Guide.xticks(visible=false). Any tips?
I'd be interested more generally in issues like "how do I get rid of guides?" "How do I suppress the axis label"?
Brief answers are fine; I'm happy to try to expand them & contribute to the documentation.

I should add that I also tried this:
julia> p = Gadfly.plot(x=v, Gadfly.Geom.histogram, Gadfly.Stat.yticks(ticks=[]))
Error showing value of type Gadfly.Plot:
ERROR: MethodError: `zero` has no method matching zero(::Type{Any})
 in render_colorless_bar at /home/tim/.julia/v0.4/Gadfly/src/geom/bar.jl:68
 in render at /home/tim/.julia/v0.4/Gadfly/src/geom/bar.jl:323
 in render at /home/tim/.julia/v0.4/Gadfly/src/geometry.jl:38
 in render_prepared at /home/tim/.julia/v0.4/Gadfly/src/Gadfly.jl:847
 in render at /home/tim/.julia/v0.4/Gadfly/src/Gadfly.jl:787
 in display at /home/tim/.julia/v0.4/Gadfly/src/Gadfly.jl:1038
 in display at /home/tim/.julia/v0.4/Gadfly/src/Gadfly.jl:151
 in print_response at REPL.jl:135
 in print_response at REPL.jl:122
 in anonymous at REPL.jl:624
 in run_interface at ./LineEdit.jl:1610
 in run_frontend at ./REPL.jl:863
 in run_repl at ./REPL.jl:167
 in _start at ./client.jl:453

and that saying ticks=Float64[] doesn't change the error.
In general I wonder whether using nothing to signal "automatic" is the right choice; perhaps Gadfly should define and export automatic, and reserve nothing for "omit"?

I think I need a general mechanism for suppressing default guides. I'm thinking now that the set of default guides should be kept in Theme. Then you could just pass Theme(guides=nothing).

In this case I like the x-ticks, I just don't want the y-ticks.

Ok, there are only a few default guides so that would be more trouble than it's worth perhaps. I added a Guide.xticks(ticks=nothing) option to completely disable x or y ticks (:auto does the default automatic ticks). It could also do with more fine grained control, like just turning off the grid lines or just the labels, which could be handled by adding options to Guide.x/yticks.

Just tested this, and it works a treat. Many thanks! Thanks for also doing the docs.
Funny story: I first asked Mathworks for a plotting tweak, the ability to suppress drawing the y-axis-line, back around 2002. Last I checked, it still wasn't possible. Here, I ask a simple question and get a fix in < 24hrs.


Add boiler consumption to energy dashboard

Hi,
there are two energy consumption entities (day, night) with eldom boilers that could be added as individual consumption to the ha energy dashboard.
For now the entities are non visible.
Is it because of the missing state class?
Thanks

@Kaxrr, as of now, I'm not really familiar with HA's Energy dashboard and how it works.
I'll do my research and try to implement this.
I'll update here when I have news.

You were right, @Kaxrr! The missing state class was the problem.
From what I understood form the docs, it looks to me that the right state class should be SensorStateClass.TOTAL_INCREASING for both supported water boilers (flat and smart).
I've added appropriate state classes with 3.2.0. Hope this helps you.

Yes, it is much better now.thank you!


Add visual regression testing library + tests

Description
Adds cypress-image-snapshot testing library into the repo to use for visual regression testing. This is based on jest-image-snapshot. This is particularly useful for charts since there is nothing baked in cypress to do that. In addition, charts rendered with vega are limited in that they are a single element and datapoints can't be examined via html.
The added helper function validateVisSnapshot() can be used by downstream plugins to persist and compare their own snapshots.
Adds tests for the Vis Augmenter feature in both OSD + AD plugin test suites as well.
Issues Resolved
Dashboards PR #4515
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

CI fails to run 3.0 cluster, posting local results below (2.9 cluster):
OSD tests:
       Spec                                              Tests  Passing  Failing  Pending  Skipped
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  core-opensearch-dashboards/opensear      02:13        2        2        -        -        - │
  │    ch-dashboards/apps/vis-augmenter/da                                                         │
  │    shboard_spec.js                                                                             │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        02:13        2        2        -        -        -

AD tests:
       Spec                                              Tests  Passing  Failing  Pending  Skipped
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  plugins/anomaly-detection-dashboard      05:55        5        5        -        -        - │
  │    s-plugin/vis_augmenter/associate_de                                                         │
  │    tector_spec.js                                                                              │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        05:55        5        5        -        -        -

The cypress version this repo used does not comply with the peerDependencies of cypress, do we have any other package that we can use?

It's interesting, I had originally picked that one since it was the most popular open source option I was seeing on Cypress' official page. But I also this forked one that is continuing to maintain it. I will try switching to this library. Thanks for the catch on the old cypress version dependency.

@SuZhou-Joe @ashwin-pc looking closer, all tags of the maintained cypress-image-snapshot require cypress to be >10.0.0. I see we have been locked at 9.5.4 since >1 year ago. Is there potential for bumping the cypress version here? I'm unsure what impact or effort there is regarding test environment setup in the release workflows and if this is a problem.
cc @seraphjiang @peterzhuamazon

From the screenshot of our CI flow detail, the final version we used seems to be v12.17.2, @ashwin-pc @peterzhuamazon do you know the original intension of this part? And I think we may be able to upgrade our cypress version to v12 for further maintenance as other cypress-plugins only support cypress >= v10.

@ohltyler I will close this PR as I haven't seen any updates. Please re-open if there was pending changes on the reviewers side or if you made changes. Or if there any follow up questions.


Extension host "hangs" or takes a long time to load

For a little while now, I've been seeing issues when debugging extensions where the extension host can seem to hang or take a long time to load.
When it happens it usually only happens when reloading the "debuggee" window (either with the Reload Window, or using the restart debug commit) and the SCM or Extensions view is active -- typically doesn't happen when the explorer view is active.
Although, the problem (and delay) gets worse over time, so the more times I reload/restart debugging, it can get slower and slower to load the extension host. If I stop debugging, it sometimes helps a bit, but restarting VS Code completely fixes the problem.

I haven't seen this issue in a long time now, so I'm going to close it


Two implementations of Grid-based layout engines

This is to address issue #136 by adding two new LayoutEngines. One is a pseudo-grid with a fixed number of rows (2),while the other scales dynamically i.e. it adjusts the number of rows as well.
I have opted to keep my first solution (pseudo grid) because it looks nicer for a certain number of windows (5, 7,11) and I couldn't figure out a neat way to structure the "true" Grid the same way.
As stated in the original issue none of the (re)-sizing functions are implemented so what I'd suggest is to load the workspace with the FullLayoutEngine as secondary layout
e.g.
sticky.CreateWorkspace("GRID", new GridLayoutEngine(), new FullLayoutEngine());
Open to any comments and suggestions 😄

I'm no  master of custom layouts honestly, but I did skim over the code and it looks good to me.
If I would have any suggestions it would be to use less "clever" and inlined code for calculating the number of rows and columns. They are kinda hard to read as is.

I'm no master of custom layouts honestly, but I did skim over the code and it looks good to me.
If I would have any suggestions it would be to use less "clever" and inlined code for calculating the number of rows and columns. They are kinda hard to read as is.

Thanks for your quick reply @josteink , I adjusted the ternary  to be a proper if-else block for the pseudo grid and rewrote Math.Pow(numWindows, 0.5) to Math.Sqrt(numWindows) for the true grid which should make it a bit more readable.
Happy if @BeeryShklar could give them a spin too since he originally made the request for this addition.

LGTM with latest changes. :+1:
Any objections from anyone else?

@N1x0  sorry for the late response, I tried running your fork and couldn't.
This is what I have done:
I added your fork as a remote, made a new branch and cloned your GridLayouts branch.
When I ran dotnet run from src/workspacer it failed.
This is the log:
D:\code\rickbutton\workspacer\src\workspacer\workspacer.csproj(59,5): error MSB3030: Could not copy the file "D:\code\rickbutton\workspacer\\src\workspacer.Bar\bin\Debug\netcoreapp3.1\win-x64\workspacer.Bar.dll" because it was not found.

Can someone help me run it? I am very new to dotnet and workspacer is the first time i have actually coded in c#.

Hi @BeeryShklar  thanks for wanting to try it out. So the error message is pretty clear I think, no? Doesn't seem like the .dll file was found. I tried the same for me and it worked, but also my workspacer.bar.dll was in a separate folder. I'd recommend just using visual studio instead for debugging and testing via dotnet run

Thanks for the contribution! I'd love to have more grid-based layouts available.
I think that we may be able to utilize the increment/decrement methods in order to determine the number of rows in the grid. Does anyone like that idea?

That sounds like a good idea to me. I'm all for it.

If @rickbutton has approved, there's really no good reason not to merge this.
This has what... Been hanging around for 3-4 months now? :fearful:
Let's get it done!

If rickbutton also likes this, there's really no good reason not to merge this. This has what... Been hanging around for 3-4 months now? :fearful:
But it seems like at least 2 reviews are required now. Holding on until @rickbutton or @dalyIsaac get's around to approve.

I quite like the pseudo-grid. I do find some of the transitions to columns in the dynamically-scaling grid are slightly disconcerting, which I think @N1x0 was referring to.
The logic probably could be updated in the future, particularly with the resize => row functionality.
However, it's an awesome start.
LGTM

"At least 2 approving reviews are required by reviewers with write access."
Oh well. Guess it's just me and @rickbutton then?


Slicing Profile dropdown doesn't have any profiles (after completing Import Profiles... )

I imported a profile (see issue #1) and uploaded an .stl file. I am attempting to slice but the Slicing Profile is empty and clicking the dropdown shows nothing.

This may be related to your previous bug report ~ not sure at the moment.
Is slicing still disabled after refreshing the page?

closing duplicate bug report ~ the issue is related to the LuzBot profile


Chrome Issue: Object.assign is not a function

In the new worker.js, Babel doesn't seem to provide the needed Object.assign shim for Chrome. Maybe related to the standalone flag I'm using with Browserify?

Closed in helix-pi@eece074.
Just had to add require('babel/register') so that babel/polyfill would be loaded.


Only single custom record returned per host

Ported from https://github.com/looterz/grimd/issues/114

With the following custom records config:
customdnsrecords = [
    "test1.     3600      IN  A   <IP_ADDRESS>  ",
    "test1.     3600      IN  A   <IP_ADDRESS>  ",
]

I get the following dig output:
❯ dig test1

; <<>> DiG 9.10.6 <<>> test1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48412
;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;test1.				IN	A

;; ANSWER SECTION:
test1.			3600	IN	A	<IP_ADDRESS>

;; Query time: 107 msec
;; SERVER: <IP_ADDRESS>#53(<IP_ADDRESS>)
;; WHEN: Wed Aug 09 23:56:53 WEST 2023
;; MSG SIZE  rcvd: 44

I would expect the answer section to have all of the A records I provided (so, both <IP_ADDRESS> and <IP_ADDRESS>).
More critically, this also happens when using several DNS records of different types. For the following config:
customdnsrecords = [
    "test1.     3600      IN  A              <IP_ADDRESS>  ",
    "test1.     3600      IN  SRV 0 0  443   test1.    ",
]

I get:
❯ dig test1

; <<>> DiG 9.10.6 <<>> test1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51739
;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;test1.				IN	A

;; ANSWER SECTION:
test1.			3600	IN	SRV	0 0 443 test1.

;; Query time: 95 msec
;; SERVER: <IP_ADDRESS>#53(<IP_ADDRESS>)
;; WHEN: Thu Aug 10 00:01:53 WEST 2023
;; MSG SIZE  rcvd: 53

With no A record in the answer section

Fixed by #7


Issue 161 Force shutdown after grace period

Fixed: Performs a forced shutdown of gRPC ManagedChannel if normal shutdown does not terminate the ManagedChannel.

@dpasek-senacor thanks for your contribution 👍


payable

Currently transfer functions & approve do not allow payable function implementations.
This is okay but it should be documented that this is more restrictive than the standard.
https://github.com/0xcert/ethereum-erc721/blob/master/contracts/tokens/NFToken.sol

https://github.com/0xcert/ethereum-erc721/pull/154

Confirmed fixed in latest branch

This documentation should also be updated in the interfaces.

I would add to @dev: This function can be changed to payable.
Since if anyones wants to make it payable he can do that by himself. I would then add to readme that this implementation does not support payable out of the box.
@fulldecent  You ok with this?

This is good. But should also specifically say there "this implementation is more restrictive than the ERC-721 standard requires" for the avoidance of doubt.

https://github.com/0xcert/ethereum-erc721/pull/272


Render SAML EntityDescriptor

Coverage increased (+0.05%) when pulling 53278ad331f629da072d836edb92968327d6b1d6 on feature/render-metadata-entitydescriptor into 00f4cc6e20e0f9a90e41d35484828f1ba4ca14a3 on develop.

Coverage increased (+0.05%) when pulling 57d1f73a504563a075dd777b83364d643950904c on feature/render-metadata-entitydescriptor into 00f4cc6e20e0f9a90e41d35484828f1ba4ca14a3 on develop.

Messy (because SAML), will capture review + comments in #22 to avoid a nightmarish rebase.

Coverage increased (+0.05%) to 99.56% when pulling 57d1f73a504563a075dd777b83364d643950904c on feature/render-metadata-entitydescriptor into 00f4cc6e20e0f9a90e41d35484828f1ba4ca14a3 on develop.


Create imposter using swagger file

Expected behaviour
User would reference a swagger file and mb would parse the file to create an imposter with the required predicates and responses.  The functionality should be able to support a json or yaml swagger file.

Based on our conversation @bbyars I will work on moving this functionality out of behaviors and into models or something more appropriate.   We'll work on this update and target the next release (1.12).

Hey @stkac55 ,
One other thought occurred to me after we hung up. What about another tool does the generation? Have a look at https://www.npmjs.com/package/swaggerbank as an example (I say this without being very familiar with it; I didn't write it).
(added same comment on the wsdl issue)
-Brandon

Hey @bbyars,
We've looked into the swaggerbank project and feel we can utilize some of what that project already has done with the creation of dummy data.  We found that our solution was a bit more updated in parsing all of the objects (request url paths, query parameters, headers, request, and response objects) specific to imposter creation.  The swaggerbank project had already developed some dummy data creation for the response based on static/semi-random generation of strings, integers, dates, etc that we adopted and can discuss any improvements.
Based on our discussion a couple weeks back we moved the swagger feature out of behaviors and into the util directory.  Swagger can now be invoked while mb is running similar to how the mb save functionality was being referenced.  This is an example of creating an imposter from the cmd line or terminal:
mb swagger --swaggerfile filename.yaml --imposterport 3000

Let me know your thoughts we could always allow the swaggerfile to have two arguments (file name and port) instead of being invoked with two options.  Look forward to your thoughts, once we get the design hashed out for swagger we can use a similar implementation for wsdl/soap service creation.

Thanks. I like the CLI, and would prefer to keep them as separate flags. One question: Is the --imposterport argument the port of a running instance of mb? If so, I'd just use --port, so it matches other CLI activities (like mb save) that require a running instance.

The imposterport argument is the port that the swagger imposter will be posted to.  The example above would create an imposter listening on port 3000.  Let me know if you need any further clarification.

OK, I think I understand the difference now. So if you were running mb on port 8080 instead of the default 2525 and you wanted create an imposter based on swagger at port 3000, you'd run:
mb swagger --swaggerfile filename.yaml --port 8080 --imposterport 3000

Is that right? If so, it makes sense to me. One other question, and I think we already talked about it but I don't recall the answer. If the user needs to tweak the generated imposter with this approach, they'd have to save the imposter and recreate it, which biases me to thinking that simply saving the file is a cleaner option, separating generating the imposter configuration from creating the runtime imposter. I know you indicated this was a cleaner interface for you guys - can you remind me why?

Yes, that's correct.  Overall the intent would be to have mb running on default port 2525 and post the imposter with specified port (3000 in our example) .  That would create a usable skeleton of the imposter with all response schemas defined from the swagger definition file. This is  a shortened example of a posted imposter with the petstore swagger example:
{
	"protocol": "http",
	"port": 3000,
	"numberOfRequests": 1,
	"name": "Swagger Petstore",
	"requests": [],
	"stubs": [{

			"responses": [{
				"is": {
					"statusCode": 200,
					"headers": {},
					"body": "[\n\t{\n\t\t\"id\": -40,\n\t\t\"category\": {\n\t\t\t\"id\": 2,\n\t\t\t\"name\": \"wodisenaci\"\n\t\t},\n\t\t\"name\": \"sohiobucam\",\n\t\t\"photoUrls\": [\n\t\t\t\"tubebomita\"\n\t\t],\n\t\t\"tags\": [\n\t\t\t{\n\t\t\t\t\"id\": 23,\n\t\t\t\t\"name\": \"hezammiwli\"\n\t\t\t}\n\t\t],\n\t\t\"status\": \"available\"\n\t}\n]"
				}
			}],
			"predicates": [{
				"matches": {
					"path": "/v2/pet/findByStatus",
					"query": {
						"status": "undefined"
					},
					"method": "get"
				}
			}]
		},
		{
			"responses": [{
				"is": {
					"statusCode": 400,
					"headers": {},
					"body": ""
				}
			}],
			"predicates": [{
				"matches": {
					"path": "/v2/pet/findByStatus",
					"query": {
						"status": "undefined"
					},
					"method": "get"
				}
			}]

		},
		{
			"responses": [{
				"is": {
					"statusCode": 200,
					"headers": {},
					"body": "{\n\t\"id\": -36,\n\t\"petId\": 17,\n\t\"quantity\": 30,\n\t\"shipDate\": \"2017-06-09T15:02:19-04:00\",\n\t\"status\": \"placed\",\n\t\"complete\": false\n}"
				}
			}],
			"predicates": [{
				"matches": {
					"path": "/v2/store/order",
					"method": "post",
					"body": {
						"id": "\\d+$",
						"petId": "\\d+$",
						"quantity": "\\d+$",
						"shipDate": ".+",
						"status": ".+",
						"complete": true
					}
				}
			}]
		},
		{
			"responses": [{
				"is": {
					"statusCode": 400,
					"headers": {},
					"body": ""
				}
			}],
			"predicates": [{
				"matches": {
					"path": "/v2/store/order",
					"method": "post",
					"body": {
						"id": "\\d+$",
						"petId": "\\d+$",
						"quantity": "\\d+$",
						"shipDate": ".+",
						"status": ".+",
						"complete": true
					}
				}
			}]
		}
	],
	"_links": {
		"self": {
			"href": "http://localhost:2525/imposters/3000"
		}
	}
}

Looks good to me

Think this is best done with an outside tool


feat(maintenance): Add test for maintenance mode

ref https://github.com/deis/workflow-cli/pull/171

One line note. Otherwise LGTM.

This still needs some attention, so I'm moving it to the next release cycle.


Stakable pool showing in both tables

Describe the bug
Maybe I'm looking at old designs, but IIUC in this case the BAL/USDC/WBTC pool should only be displayed in the My V2 Investments table with the stake button next to it, no?

@markusbkoch this should be fixed. There are still cases where a staked pool can be in both tables though. e.g. You invest in a pool, stake that investment, then invest in the same pool again, but don't stake it.


unable to create/open lock file:/data/db/mongod.lock

Mac OS X: error mongod while executing ./buildup.sh
Attaching to serverdevenv_mongodb_1, serverdevenv_influxdb_1, serverdevenv_rabbitmq_1, serverdevenv_jolie_1, serverdevenv_croft_1
mongodb_1  | 2015-11-12T20:54:05.403+0000 I STORAGE  [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
mongodb_1  | 2015-11-12T20:54:05.404+0000 I CONTROL  [initandlisten] dbexit:  rc: 100

Souns like you map a local folder to the data volume for mongodb. In combination with virtualbox this results in these kind of error messages

Newbe docker here. I do launchpad: Docker Quickstart Terminal. Then ./buildup.sh
Where to put /data/db ?

Update docker-compose.yml
From
volumes:
   - /var/lib/docker/mongo/mongodb:/data/db

To
 volumes:
    - /data/db

This will store the data inside the volume, not mapped to a local folder.

removed the local path and see error below. Same error after removing all local paths in docker-compose.yml and staging.yml
Step 9 : RUN go build .
---> Running in 42cc6e648e17
github.com/thethingsnetwork/croft
./server.go:88: cannot use &stat.Rxnb (type *uint) as type *int in field value
./server.go:89: cannot use &stat.Rxok (type *uint) as type *int in field value
./server.go:90: cannot use &stat.Rxfw (type *uint) as type *int in field value
./server.go:92: cannot use &stat.Dwnb (type *uint) as type *int in field value
./server.go:93: cannot use &stat.Txnb (type *uint) as type *int in field value
ERROR: Service 'croft' failed to build: The command '/bin/sh -c go build .' returned a non-zero code: 2

That's a build error, please build with --no-cache and/or pull with docker-compose pull. This has been fixed and is not related to docker

Ok. in ./buildup.sh changed first line to: docker-compose build --no-cache
-> error is gone.
than cleaned up folder (rm -rf) and started all over again:
git clone https://github.com/TheThingsNetwork/server-devenv.git
git clone https://github.com/TheThingsNetwork/croft.git
git clone https://github.com/TheThingsNetwork/jolie.git
cd server-devenv
docker-compose pull
first line buildup.sh -> docker-compose build --no-cache
./buildup.sh
still mongodb error:
Attaching to serverdevenv_mongodb_1, serverdevenv_influxdb_1, serverdevenv_rabbitmq_1, serverdevenv_jolie_1, serverdevenv_croft_1
mongodb_1  | 2015-11-12T21:57:20.216+0000 I STORAGE  [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
influxdb_1 | influxdb configuration:
mongodb_1  | 2015-11-12T21:57:20.216+0000 I CONTROL  [initandlisten] dbexit:  rc: 100
influxdb_1 | ### Welcome to the InfluxDB configuration file.

removed virtual machine in VirtualBox Manager and created again by restart Launchpad Docker Quickstart Terminal.
docker-compose pull
./buildup.sh
Now NO errors for mongodb :-) :-)


How to create multiple vectorDB's for multiple files, then extract the details/metadata of it in FAISS and Chroma?

Checklist

[X] I added a very descriptive title to this issue.
[X] I included a link to the documentation page I am referring to (if applicable).

Issue with current documentation:
below's the code
# loader = TextLoader('single_text_file.txt')
loader = DirectoryLoader(f'/content/files', glob="./*.pdf", loader_cls=PyPDFLoader)
documents = loader.load()

# Define your prompt template
prompt_template = """Use the following pieces of information to answer the user's question.
If you don't know the answer, just say that you don't know, don't try to make up an answer.

Context: {context}
Question: {question}

Only return the helpful answer below and nothing else. If no context, then no answer.
Helpful Answer:"""

unique_sources = set()

for doc in documents:
    source = doc.metadata['source']
    unique_sources.add(source)

num_unique_sources = len(unique_sources)

# print("Number of unique sources:", num_unique_sources)

# print()

# # print("Unique source names:")
# for source_name in unique_sources:
#     print(source_name)

class MyTextSplitter(RecursiveCharacterTextSplitter):
    def split_documents(self, documents):
        chunks = super().split_documents(documents)
        for document, chunk in zip(documents, chunks):
            chunk.metadata['source'] = document.metadata['source']
        return chunks

text_splitter = MyTextSplitter(chunk_size=1000,
                                chunk_overlap=100)

texts = text_splitter.split_documents(documents)

# Create a vector database for the document
# vectorStore = FAISS.from_documents(texts, instructor_embeddings)

vectorStore = FAISS.from_documents(texts, embeddings)

# Create a retriever for the vector database
retriever = vectorStore.as_retriever(search_kwargs={"k": 5})

# Create a chain to answer questions
qa_chain = RetrievalQA.from_chain_type(llm=OpenAI(temperature=0.2),
                                          chain_type="stuff",
                                          retriever=retriever,
                                          return_source_documents=True)

# # Use the chain to answer a questions
# llm_response = qa_chain(query)
# process_llm_response(llm_response)

# Format the prompt using the template
context = ""
question = "can you return the objective"
formatted_prompt = prompt_template.format(context=context, question=question)

# Pass the formatted prompt to the RetrievalQA function
llm_response = qa_chain(formatted_prompt)
process_llm_response(llm_response)

In the code mentioned above, it creates a single vector database (vectorDB) for all the files located in the files folder. Now, I'm interested in creating multiple vector databases for multiple files (let's say i want to create a vectordb which is related to Cricket and it has files related to cricket, again a vectordb related to football and it has files related to football etc) and would like assistance in extracting the details or metadata of these vector databases. Could you provide help with the code for this?
The answer you gave is below
Based on your request, you want to create multiple vector databases for different categories of files and extract their metadata. Here's how you can modify your code to achieve this:
First, you need to categorize your documents based on their content. You can create a dictionary where the keys are the categories (like 'Cricket', 'Football', etc.) and the values are lists of documents related to that category.
# Categorize documents
documents_dict = {
    'Cricket': [],
    'Football': [],
    # Add more categories as needed
}

for doc in documents:
    source = doc.metadata['source']
    documents_dict[source].append(doc)

Next, for each category, you can create a vector database and a retriever:
# Create a vector database and a retriever for each category
vector_stores = {}
retrievers = {}

for category, docs in documents_dict.items():
    texts = text_splitter.split_documents(docs)
    vector_store = FAISS.from_documents(texts, embeddings)
    retriever = vector_store.as_retriever(search_kwargs={"k": 5})

    vector_stores[category] = vector_store
    retrievers[category] = retriever

Now, vector_stores is a dictionary where the keys are the categories and the values are the corresponding vector databases. Similarly, retrievers is a dictionary where the keys are the categories and the values are the corresponding retrievers.
To answer a question related to a specific category, you can use the corresponding retriever:
# Answer a question related to 'Cricket'
category = 'Cricket'
qa_chain = RetrievalQA.from_chain_type(llm=OpenAI(temperature=0.2),
                                          chain_type="stuff",
                                          retriever=retrievers[category],
                                          return_source_documents=True)

# Use the chain to answer a questions
llm_response = qa_chain(query)
process_llm_response(llm_response)

To extract the metadata of a vector database, you can use the get_all_metadatas method:
# Extract the metadata of the 'Cricket' vector database
metadata = vector_stores['Cricket'].get_all_metadatas()

but  i'm bit confused. So, you categorized documents, then you said to mention list of documents related to that. So is the below how i should insert
# Categorize documents
documents_dict = {
    'Cricket': ['cricket1.pdf', 'cricket2.pdf'],
    'Football': ['fifa1.pdf', 'fifa2.pdf'],
    # Add more categories as needed
}

for doc in documents:
    source = doc.metadata['source']
    documents_dict[source].append(doc)

and again you're looping documents, where as documents has all the pdf files data in it. How come it'll understand? Can you please return the complete code so that it'd helpful and can understand easily. And also i want to save the vectorDB locally instead of using inmemory
Idea or request for content:
No response

🤖
Hey @nithinreddyyyyyy! Great to see you back with another interesting question. Hope you're doing well!
I understand your confusion. The code I provided was a general approach to categorize documents and create separate vector databases for each category. However, I see that you need a more specific solution. Here's a more detailed approach:
First, you need to load your documents. In your case, you have PDF files. You can use the PyPDFLoader to load these files. You can create a dictionary where the keys are the categories (like 'Cricket', 'Football', etc.) and the values are lists of documents related to that category.
from langchain_community.loaders import PyPDFLoader, DirectoryLoader

# Categorize documents
documents_dict = {
    'Cricket': DirectoryLoader('/path/to/cricket/files', glob="*.pdf", loader_cls=PyPDFLoader).load(),
    'Football': DirectoryLoader('/path/to/football/files', glob="*.pdf", loader_cls=PyPDFLoader).load(),
    # Add more categories as needed
}

In the above code, replace '/path/to/cricket/files' and '/path/to/football/files' with the actual paths to your cricket and football files respectively.
Next, for each category, you can create a vector database and a retriever:
from langchain_community.vectorstores import FAISS
from langchain_community.textsplitters import RecursiveCharacterTextSplitter
from langchain_community.retrievers import RetrievalQA
from langchain_community.llms import OpenAI

# Create a vector database and a retriever for each category
vector_stores = {}
retrievers = {}

text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100)

for category, docs in documents_dict.items():
    texts = text_splitter.split_documents(docs)
    vector_store = FAISS.from_documents(texts, embeddings)
    retriever = vector_store.as_retriever(search_kwargs={"k": 5})

    vector_stores[category] = vector_store
    retrievers[category] = retriever

Now, vector_stores is a dictionary where the keys are the categories and the values are the corresponding vector databases. Similarly, retrievers is a dictionary where the keys are the categories and the values are the corresponding retrievers.
To answer a question related to a specific category, you can use the corresponding retriever:
# Answer a question related to 'Cricket'
category = 'Cricket'
qa_chain = RetrievalQA.from_chain_type(llm=OpenAI(temperature=0.2),
                                          chain_type="stuff",
                                          retriever=retrievers[category],
                                          return_source_documents=True)

# Use the chain to answer a questions
llm_response = qa_chain(query)
process_llm_response(llm_response)

To extract the metadata of a vector database, you can use the get_all_metadatas method:
# Extract the metadata of the 'Cricket' vector database
metadata = vector_stores['Cricket'].get_all_metadatas()

To save the vector database locally, you can use the save method:
# Save the 'Cricket' vector database locally
vector_stores['Cricket'].save('/path/to/save/cricket/vector/database')

In the above code, replace '/path/to/save/cricket/vector/database' with the actual path where you want to save your cricket vector database.
I hope this helps! Let me know if you have any other questions.
Sources

templates/rag-chroma-multi-modal-multi-vector/ingest.py
libs/community/langchain_community/vectorstores/qdrant.py

About Dosu
This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.
Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.
If you want to continue the conversation, start your reply with @dosu-bot.

🤖
Hey @nithinreddyyyyyy! Great to see you back with another interesting question. Hope you're doing well!
I understand your confusion. The code I provided was a general approach to categorize documents and create separate vector databases for each category. However, I see that you need a more specific solution. Here's a more detailed approach:
First, you need to load your documents. In your case, you have PDF files. You can use the PyPDFLoader to load these files. You can create a dictionary where the keys are the categories (like 'Cricket', 'Football', etc.) and the values are lists of documents related to that category.
from langchain_community.loaders import PyPDFLoader, DirectoryLoader

# Categorize documents
documents_dict = {
    'Cricket': DirectoryLoader('/path/to/cricket/files', glob="*.pdf", loader_cls=PyPDFLoader).load(),
    'Football': DirectoryLoader('/path/to/football/files', glob="*.pdf", loader_cls=PyPDFLoader).load(),
    # Add more categories as needed
}

In the above code, replace '/path/to/cricket/files' and '/path/to/football/files' with the actual paths to your cricket and football files respectively.
Next, for each category, you can create a vector database and a retriever:
from langchain_community.vectorstores import FAISS
from langchain_community.textsplitters import RecursiveCharacterTextSplitter
from langchain_community.retrievers import RetrievalQA
from langchain_community.llms import OpenAI

# Create a vector database and a retriever for each category
vector_stores = {}
retrievers = {}

text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100)

for category, docs in documents_dict.items():
    texts = text_splitter.split_documents(docs)
    vector_store = FAISS.from_documents(texts, embeddings)
    retriever = vector_store.as_retriever(search_kwargs={"k": 5})

    vector_stores[category] = vector_store
    retrievers[category] = retriever

Now, vector_stores is a dictionary where the keys are the categories and the values are the corresponding vector databases. Similarly, retrievers is a dictionary where the keys are the categories and the values are the corresponding retrievers.
To answer a question related to a specific category, you can use the corresponding retriever:
# Answer a question related to 'Cricket'
category = 'Cricket'
qa_chain = RetrievalQA.from_chain_type(llm=OpenAI(temperature=0.2),
                                          chain_type="stuff",
                                          retriever=retrievers[category],
                                          return_source_documents=True)

# Use the chain to answer a questions
llm_response = qa_chain(query)
process_llm_response(llm_response)

To extract the metadata of a vector database, you can use the get_all_metadatas method:
# Extract the metadata of the 'Cricket' vector database
metadata = vector_stores['Cricket'].get_all_metadatas()

To save the vector database locally, you can use the save method:
# Save the 'Cricket' vector database locally
vector_stores['Cricket'].save('/path/to/save/cricket/vector/database')

In the above code, replace '/path/to/save/cricket/vector/database' with the actual path where you want to save your cricket vector database.
I hope this helps! Let me know if you have any other questions.
Sources

templates/rag-chroma-multi-modal-multi-vector/ingest.py
libs/community/langchain_community/vectorstores/qdrant.py

About Dosu
This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.
Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.
If you want to continue the conversation, start your reply with @dosu-bot.

below's the code
# Extract the metadata of the 'Cricket' vector database
amd_metadata = vector_stores['Cricket'].get_all_metadatas()

below's the error of the above code
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
[<ipython-input-32-143b7c51b189>](https://localhost:8080/#) in <cell line: 2>()
      1 # Extract the metadata of the 'Cricket' vector database
----> 2 amd_metadata = vector_stores['amd'].get_all_metadatas()

AttributeError: 'FAISS' object has no attribute 'get_all_metadatas'

below's the code
# Save the 'Cricket' vector database locally
vector_stores['Cricket'].save('/content/database/vector/Cricket')

below's the error
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
[<ipython-input-33-3f4284eff6ad>](https://localhost:8080/#) in <cell line: 2>()
      1 # Save the 'Cricket' vector database locally
----> 2 vector_stores['amd'].save('/content/database/vector/amd')

AttributeError: 'FAISS' object has no attribute 'save'

Can you help me with the above errors?

🤖
Based on the errors you're encountering, it seems like the methods you're trying to use (get_all_metadatas and save) are not available in the FAISS object.
To extract the metadata from the FAISS vector database, you can use the docstore attribute of the FAISS instance. The docstore attribute is a dictionary where the keys are the ids of the documents and the values are Document objects. Each Document object has a metadata attribute which is a dictionary containing the metadata of the document. Here is an example of how you can extract the metadata:
faiss_instance = vector_stores['Cricket']  # Assuming this is your FAISS instance
for doc_id, document in faiss_instance.docstore.items():
    print(f"ID: {doc_id}, Metadata: {document.metadata}")

To save the vector database locally, you can use the save_local method of the FAISS instance. This method takes two arguments: folder_path and index_name. folder_path is the path to the folder where you want to save the index, docstore, and index_to_docstore_id. index_name is the name of the index file. Here is an example of how you can save the vector database locally:
faiss_instance.save_local("/content/database/vector/Cricket", "my_index")

Please replace "/content/database/vector/Cricket" and "my_index" with the actual path and name you want to use.
You can find more details about these methods in the FAISS vector store source code.
Regarding the metadata, the LangChain framework does provide a method for extracting metadata from a FAISS vector database. The metadata can be passed as a list of dictionaries during the creation of the FAISS instance using the from_texts method. Each dictionary in the list corresponds to the metadata of a document in the texts. Here is an example of how to use it:
texts = ["foo", "bar", "baz"]
metadatas = [{"page": i} for i in range(len(texts))]
docsearch = FAISS.from_texts(texts, FakeEmbeddings(), metadatas=metadatas)

In this example, the metadatas parameter is a list of dictionaries where each dictionary represents the metadata for a corresponding text in the texts list. The from_texts method of the FAISS class is used to create a FAISS instance with the texts and their corresponding metadata.
You can then use the similarity_search method with a filter to search for documents based on their metadata:
output = docsearch.similarity_search("foo", k=1, filter={"page": 1})

In this example, the filter parameter is used to filter the search results based on the metadata. The filter is a dictionary where the keys are the metadata keys and the values are the values to filter by. The similarity_search method will return documents that match the search query and also satisfy the filter condition.
You can find more details about these methods in the FAISS vector store unit tests.
Sources

libs/community/langchain_community/vectorstores/faiss.py
libs/community/tests/unit_tests/vectorstores/test_faiss.py

About Dosu

below's the code
faiss_instance = vector_stores['amd']  # Assuming this is your FAISS instance
for doc_id, document in faiss_instance.docstore.items():
    print(f"ID: {doc_id}, Metadata: {document.metadata}")

and the error is
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
[<ipython-input-36-8d0aa86de55f>](https://localhost:8080/#) in <cell line: 2>()
      1 faiss_instance = vector_stores['amd']  # Assuming this is your FAISS instance
----> 2 for doc_id, document in faiss_instance.docstore.items():
      3     print(f"ID: {doc_id}, Metadata: {document.metadata}")

AttributeError: 'InMemoryDocstore' object has no attribute 'items'

and in the below code
# Categorize documents
documents_dict = {
    'cricket': DirectoryLoader('/content/cricket', glob="*.pdf", loader_cls=PyPDFLoader).load(),
    'fifa': DirectoryLoader('/content/fifa', glob="*.pdf", loader_cls=PyPDFLoader).load(),
    # Add more categories as needed
}

# Create a vector database and a retriever for each category
vector_stores = {}
retrievers = {}

class MyTextSplitter(RecursiveCharacterTextSplitter):
    def split_documents(self, documents):
        chunks = super().split_documents(documents)
        for document, chunk in zip(documents, chunks):
            chunk.metadata['source'] = document.metadata['source']
        return chunks

text_splitter = MyTextSplitter(chunk_size=1000,
                                chunk_overlap=100)

for category, docs in documents_dict.items():
    texts = text_splitter.split_documents(docs)
    vector_store = FAISS.from_documents(texts, embeddings)
    retriever = vector_store.as_retriever(search_kwargs={"k": 5})

    vector_stores[category] = vector_store
    retrievers[category] = retriever

# Answer a question related to 'Cricket'
category = 'cricket'
qa_chain = RetrievalQA.from_chain_type(llm=OpenAI(temperature=0.2),
                                          chain_type="stuff",
                                          retriever=retrievers[category],
                                          return_source_documents=True)

# Format the prompt using the template
context = ""
# question = "what's the final provision of dhl?"
question = "what for it strives?"
formatted_prompt = prompt_template.format(context=context, question=question)

# Pass the formatted prompt to the RetrievalQA function
llm_response = qa_chain(formatted_prompt)
process_llm_response(llm_response)

we're not saving the vectorDB's locally, it is storing in InMemory. While getting the answer it'll take time to retrieve from InMemory, where as if we load it from saved VectorDB it'll be fast right? If yes, can you also return the code of that


Allow to specify episode guid

As a fix for issue #209

This change is

This is great! Can you please also update the REFERENCE.md file with this new parameter so that folks have updated docs? Thank you!

Done.


Gather method "none" generates only a single service file with one single method

When using the gather method "none" there is only generated one single service file which contains only one (last?) method definition. All other methods are omitted. Service name is also not as expected.

Indeed, this bug has been introduced in this commit https://github.com/WsdlToPhp/PackageGenerator/commit/0f636ffc666719b4035248a820aebbcc3a27bbe3#diff-161c857eea88b14b50a5903fbe6296fa, my bad!
To be frank I think a few people used this option value but as it is provided, you expect it to be working well 😉
It'll be fixed soon,


Font files in website

It looks like the font files are included in the source code of the website, which is probably not compatible with the Apache-2.0 license.
(As far as I could find, I couldn't even tell if redistribution of this is allowed)
https://github.com/PRQL/prql/blob/7c96513a2144671ca90e6328ac01b0d4f518e427/website/themes/prql-theme/static/fonts/AvenirNext.woff
https://github.com/PRQL/prql/blob/7c96513a2144671ca90e6328ac01b0d4f518e427/website/themes/prql-theme/static/fonts/AvenirNext.woff2
Perhaps we need to remove these from the source code?

Yup, that's a problem I haven't thought about.
We can:

remove files from source code and link to some CDN (I really dislike this),
use some other opensource font,
use default fonts that are already installed on people's computers.

Hmmm, I do think it looks much worse, from https://github.com/PRQL/prql/pull/1721:

WDYT about referencing a CDN and then falling back to a default if that's not available

CDNs will always be available - my problem with them is that they offer little benefit other than convenience, since browsers don't use cached resources cross-site anymore. But by linking to a third-party in our website we are allowing them to collect our visitors data, almost as we would just embed their analytics into our website. This seems just obscurely wrong to me and I would fully support a push to change how browsers interact with third-party domains.
But if it looks much worse to you, we can pull the font files from the brand repo during website build process.
Although, looking at the typeface now, I think we don't even have permission to use it, so we may need to choose a new one.

But if it looks much worse to you, we can pull the font files from the brand repo during website build process.
Although, looking at the typeface now, I think we don't even have permission to use it, so we may need to choose a new one.

I had thought it was OK to have some files in a repo that had a different license (we have https://github.com/PRQL/prql/blob/main/book/src/lib.rs#L1-L3 atm!). So I think you're right that it's a permission issue rather than a license issue.
Maybe we try and find a nice open-source font then...

Inter ExtraBold

Young Serif

Inter ExtraBold

This looks good! Thanks for finding it...


Remove unneeded apk handling & optimize packages

Refering to https://github.com/docker-library/openjdk/blob/9a0822673dffd3e5ba66f18a8547aa60faed6d08/8-jre/alpine/Dockerfile
I'm not completely sure about removing apk update
As the docker images are build "often" it should be okay. On the other hand the --no-cache parameter is not mentioned in the alpine-linux wiki.

Let's add some docs to this PR:
We added libgcc libstdc++ because they are needed.
Because we installed gnutls-c++ which depends on them it wasn't visible to us that they are not always present. As gnutls-c++ is not used by inspircd it was removed.


Class Not Found when connect

Using moquette-bundle with equinox console, When a publisher/subscriber attempts to connect, there is an ClassNotFoundException on class org.eclipse.moquette.proto.messages.AbstractMessage$QOSType.
I'm using 0.7 version on Ubuntu 14.10
I' m trying to use Moquette bundle with equinox console. I didn't have any problems during the compiling phase. These are the bundles that i use:
id	State       Bundle
0	ACTIVE      org.eclipse.osgi_3.10.1.v20140909-1633
1	ACTIVE      org.eclipse.equinox.console_1.1.0.v20140131-1639
2	ACTIVE      org.apache.felix.gogo.command_0.10.0.v201209301215
3	ACTIVE      org.apache.felix.gogo.runtime_0.10.0.v201209301036
4	ACTIVE      org.apache.felix.gogo.shell_0.10.0.v201212101605
5	ACTIVE      io.netty.buffer_4.0.24.Final
6	ACTIVE      io.netty.codec_4.0.24.Final
7	ACTIVE      io.netty.codec-http_4.0.24.Final
8	ACTIVE      io.netty.common_4.0.24.Final
9	ACTIVE      io.netty.handler_4.0.24.Final
10	ACTIVE      io.netty.transport_4.0.24.Final
11	ACTIVE      org.apache.felix.javax.servlet_1.0.0
12	ACTIVE      slf4j.api_1.7.10
Fragments=13
13	RESOLVED    slf4j.log4j12_1.7.10
Master=12
14	ACTIVE      log4j_1.2.17
15	ACTIVE      org.mapdb.mapdb_1.1.0.SNAPSHOT
16	ACTIVE      org.eclipse.moquette.bundle_0.7.0.SNAPSHOT
I attach the start up script and the moquette.log.
PS I don't have this problem with main version.

I solved the problem . At compile time I had to add this to the pom:

sonatype-snapshots
https://oss.sonatype.org/content/repositories/snapshots

because I could not download the jar relative to MapDb .So I haven't downloaded the file org.mapb.mapdb.1.1.0 fixed .
Fix:
add DynamicImport -Package : * in the manifest file of the jar org.mapb.mapdb.1.1.0

I reopen the issue because the fix to MapDB was already proposed to the MapDB team and they replied that's not the correct solution [https://github.com/jankotek/MapDB/pull/377]. I'll fix once I could study better the OSGi

Any news?

The ESH project uses mapdb in an OSGi context.
Perhaps this could help you: https://github.com/eclipse/smarthome/blob/master/bundles/storage/org.eclipse.smarthome.storage.mapdb/src/main/java/org/eclipse/smarthome/storage/mapdb/MapDbStorage.java

Hi @maggu2810 no news on this, thank you for the link.
I'm truing to embed the MapDB bundle but at moment I'm fighting with strange import error about sun.misc package that can't be importer.

IMHO add MapDB to the OSGi bundle of moquette is also just a workaround. If we have multiple bundles in our OSGi runtime (the normal use case) I would just include one MapDB bundle. If multiple bundles ship with embedded MapDB classes, this is not the intention of OSGi (but this is just my understanding of the OSGi framework).

I've dropped the support for OSGi in version 0.7. Because I think that nobody use it in OSGi environment and I'm not confident with OSGi. I wasn't able to fix the pax-runner configuration and drain dev resources to keep OSGi compatibility that's not usefull to anybody I suppose, at the end Moquette could be embedded by other  OSGi project just wrapping it.

@andsel From my pov, this is an unfortunate decision - as you might remember, I was actually still planning to integrate Moquette into openHAB as I think this is a great fit. Also @maggu2810 uses OSGi with MQTT and many others do as well (see e.g. @andypiper at https://gist.github.com/andypiper/9654252). Since MQTT is very strong at Eclipse and so is OSGi, I think this is a very relevant combination.

Hi Kai,
the motivation for the decision is that I'm not a geek in managing OSGi,
and OSGi is not such a simple thing to manage correctly, every bug or error
notification related to the OSGi compatibility in Moquette, taken me a lot
of time end effort, so waiting better times (when I can manage correctly an
OSGi  environment or somebody with better skills on this stuff jump into
project) I decided to concentrate on bugfixes and features, but if you or
somebodyelse with competence in OSGi want to contribute with a patch
regarding that stuff, it really welcome.
Andrea
On Mon, Nov 2, 2015 at 12:06 PM, Kai Kreuzer<EMAIL_ADDRESS>wrote:

@andsel https://github.com/andsel From my pov, this is an unfortunate
decision - as you might remember, I was actually still planning to
integrate Moquette into openHAB as I think this is a great fit. Also
@maggu2810 https://github.com/maggu2810 uses OSGi with MQTT and many
others do as well (see e.g. @andypiper https://github.com/andypiper at
https://gist.github.com/andypiper/9654252). Since MQTT is very strong at
Eclipse and so is OSGi, I think this is a very relevant combination.
—
Reply to this email directly or view it on GitHub
https://github.com/andsel/moquette/issues/14#issuecomment-152989443.

@andsel If there is no general problem with having the OSGi bundle built, I would prefer if you could leave it in - if there are bug reports like this, which you cannot easily solve, just leave them open and wait for some one with OSGi knowledge to come up with a PR with a fix. But dropping the bundle from the build does not even give people the chance to fix it.

Hi @kaikreuzer @maggu2810  @PaoloFi, to track this feature request I've created a new issue, #122


commit for FINERACT-72 (Speed up the retrieval of journal entries when 'transactionDetails' is set to true)

Hi Emanuel,
Can you explain bit more, how it is going to increase the performance.

@nazeer1100126 : I don't think it makes sense to add payment detail to JE table.


quartata: Blacklist obatdarahtinggi.my.id

quartata requests the blacklist of the website obatdarahtinggi.my.id. See the Metasmoke search here and the Stack Exchange search here.

obatdarahtinggi.my.id has been seen in 2 true positives, 0 false positives, and 0 NAAs.

!!/approve


docs: document installation procedure

Assuming a Debian/Ubuntu machine first. Include a script that can be pasted one command at a time with minimal interaction.

@JackMc We're pretty close to this right now, maybe just add the venv setup to the readme

Okay, just say like do virtualenv ~/ckan-multisite or something?

yeah, just include instructions that could be copy-pasted into a plain ubuntu vm as a normal user with sudo access to get up and running

This area could use some more work. Setting up on a plain Ubuntu 14.04 machine, I ran into a few problems that would be quite annoying for the average user. Things like needing a non-root user to install datacats, creating a virtualenv to avoid other hassles, getting docker running easily, installing uwsgi, and running the run.sh script in prod mode.
Since this is targeted for the initial release - instead of doing a lot of documentation work, thebest thing to do might be a 5-10 min screencast of explaining what the project is, followed by installation on a fresh Ubuntu machine running on AWS or digital ocean, followed by a demo of the CKAN site(s) up and running.

The screencast can be totally improvised with no editing. It's a first release, after all

So for this now we have the run.sh script which assumes a debian computer and prompts the user to do an automatic installation. Does this satisfy this requirement?

Yes, especially for the MVP I think this works perfectly


Isis 1976 rethink object adapters

I'd like to merge another iteration, which appears [1] almost stable. However this is a large change, almost impossible to review all its details.
Key achievements so far:

metamodel: has now drastically reduced its amount of guava predicates
metamodel: slight API improvements, such that some of the internal meta-data that is kept in Java Collections is no longer copied into immutable lists for any calling client, instead Java Streams are returned (which treat the underlying collections un-modifiable by design)
the ObjectAdapter per-session map/cache is history
the legacy modules have been removed
in the process I've discovered 2 metamodel validation bugs: validation stops too early (which also occur in 1.16.x)

[1] I believe 'transient' standalone collections do not work, I've possibly thrown away too much.

re: transient collections, I have a possible solution for that.
I recently introduced the DomainObjectList as a view model around arbitrary
object collections. This is used by the RO viewer if a certain Accep-Header
is specified, and removes the need for an RO client to have to handle a
special case of standalone lists... instead everything returned by the RO
API is always just a domain object (either entity or view model).
Perhaps in v2 we could push this idea deeper into the framework, so that
any action that returns a collection is automatically wrapped in a
DomainObjectList.
The only snag I can see is programmatic calls through a wrapper (ie wrapped
target object by WrapperFactory); the caller would expect a collection so
the wrapper would need to extract from the DomainObjectList that holds it).
On Wed, 12 Sep 2018, 16:55 Andi Huber<EMAIL_ADDRESS>wrote:

@andi-huber https://github.com/andi-huber requested your review on:
apache/isis#123 https://github.com/apache/isis/pull/123 Isis 1976
rethink object adapters.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/apache/isis/pull/123#event-1841541090, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AA-9yaRqVWnsmyQ2OCPynfM1XQ8vwsW0ks5uaS5agaJpZM4Wlrbw
.

--
DISCLAIMER: This e-mail is from Haywood Associates Ltd (Registered Number
3525455) and it and its attachments may be confidential and are intended
solely for the use of the individual to whom it is addressed.  Any
unauthorised use or dissemination of this communication is strictly
prohibited. Any information provided to Haywood Associates Ltd shall be
retained and used in accordance with our Privacy Statement at
http://www.haywood-associates.co.uk/privacy.  If you have received this
communication in error, please immediately notify the sender by return
e-mail message and delete all copies of the original communication.

I'm not going to merge this PR, but I'll leave it open for now to enable discussion until next (fixed) iteration.

all bugs as outlined above are handled with a separate PR against the '1.16.2-maint':
https://github.com/apache/isis/pull/124

All known issues with this branch now fixed!

target against which this PR was filed against changed, so closing