Feature/tweet button

Codecov Report

Merging #386 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master    #386      +/-   ##
=========================================
- Coverage    2.59%   2.58%   -0.01%
=========================================
  Files          63      64       +1
  Lines        1504    1509       +5
  Branches      306     306
=========================================
  Hits           39      39
- Misses       1465    1470       +5

Impacted Files
Coverage Δ

.../src/pages/Internal/VirtualContest/ShowContest.tsx
0% <ø> (ø)
:arrow_up:

...r-problems-frontend/src/components/TweetButton.tsx
0% <0%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ca1b9df...20191b1. Read the comment docs.


Feature Request: Desktop Window Persistence for Visual Studio Code

Dear Visual Studio Code Team,
I am writing to request a new feature for Visual Studio Code that would greatly improve my user experience. When using Google Chrome, if multiple windows are open across different desktops, each window will open in its respective desktop upon relaunching the browser. I believe that implementing a similar feature in Visual Studio Code would be extremely beneficial for users who work with multiple desktops.
Currently, when I have multiple windows of Visual Studio Code open across different desktops, upon relaunching the program, all windows are consolidated onto a single desktop. This can be quite frustrating, as I often need to rearrange my windows to their original positions across different desktops. If Visual Studio Code could remember the desktop position of each window upon relaunching the program, it would save me and many other users a lot of time and effort.
I understand that implementing this feature may require a significant amount of work and development time, but I believe it would be a valuable addition to the program. Please let me know if you have any questions or need any further information.
Thank you for your time and consideration. I would greatly appreciate being kept informed of any updates regarding this request.
Best regards

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

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


Message Components

https://discord.com/developers/docs/interactions/message-components#message-components

And so, let's think about it. Initially, the general concept should be that components always have a parent (command or view) and should be initialized through interaction.
Little concept with command
from aurum.context import InteractionContext
from aurum.commands import SlashCommand
from aurum.components import View, Button, decorators
# or from aurum.components.decorators import button

class ButtonCommand(SlashCommand):
    def __init__(self) -> None:
        super().__init__("button", description="Get button")

     @decorators.button(label="Magic", emoji="🪄")
     async def magic_button(self, context: InteractionContext, button: Button) -> None:
          await context.create_response("Woah, you clicked that button!", ephemeral=True)

      async def callback(self, context: InteractionContext) -> None:
          await context.create_response(components=[context.init_component(self.magic_button)])  # doubtful, but OK

Furthermore, the concept for objects is likely to be similar to that of commands, with a get_builder function. I think it would be possible to return these to commands by implementing a proxy (CommandBuilder), thus avoiding unnecessary complexity in the code.
It's difficult.

we can command components initialize through metaclass automatically and just creating response with component=self.magic_button I think, but that will be little difficult and add some complexity :b
but with the view – all the same way, because it's can't be an independent object without interaction.

beh
from aurum.context import InteractionContext
from aurum.commands import SlashCommand
from aurum.components import View, Button, decorators

class ButtonView(View):
    @decorators.button(label="Magic", emoji="🪄")
    async def magic_button(self, context: InteractionContext, button: Button) -> None:
         await context.create_response("Woah, you clicked that button!", ephemeral=True)

class ButtonCommand(SlashCommand):
    def __init__(self) -> None:
        super().__init__("button", description="Get button")

      async def callback(self, context: InteractionContext) -> None:
          await context.create_response(components=context.init_view(ButtonView()))


Port Group E test_transforms.py to pytest

To port Group E in test_transforms.py to pytest as discussed in #3945

Hi @artifiitr , thanks again for the PR!
Are you still interested in working on it?

@NicolasHug , I had to make changes in environment, so have created a new pull request. The link to new PR is: https://github.com/pytorch/vision/pull/4026


ModuleNotFoundError: No module named 'bruce_slam'

Hello there,
When I tried to excute roslaunch bruce_slam slam.launch file:=path_to_data/your_data.bag, an error message poped up, please see the followed image for the detail.

Do you know what caused this error? and how to fixed this？
Thank you for the help.

Thank you so much for your quick reply. My Ubuntu is 20.04 and ROS is noetic. I used catkin build not catkin_make and I did source ~/catkin_ws/devel/setup.bash. I also tried to run roslaunch bruce_slam slam.launch, and I still got the same error message.

No problem!
I see you are sourcing .bashrc, but not exactly as written below.

Can you try running the above command and then the roslaunch?

Hi Jake. Soz but i had same issues here as well

and when i use catkin build. only 11 of 15 packages succeeded


Ability to quit using Ctrl + Q

Could we get an ability to exit app using ctrl + Q on linux? I am kinda used to it in most of linux programs. If I get a moment of spare time I may be able to add this and make a pull request, but before that I just wanted to put it here.

Sorry, mistook it for another repo.


EndlessRecyclerOnScrollListener causes binding to not occur until scroll

About this issue

Briefly describe the issue - If I add a EndlessRecyclerOnScrollListener to the RecyclerView, when the fast adapter calls notifyItemRangeChanged(0, 1, null), bindView isn't called until I scroll the RecyclerView a little bit

Everything is getting called on the thread it's supposed to, and I can get this to stop by either commenting out my addScrollListener, or not adding a ProgressItem in the EndlessRecyclerOnScrollListener.
private val endlessScrollListener = object : EndlessRecyclerOnScrollListener(endlessScrollAdapter) {
    override fun onLoadMore(currentPage: Int) {
//      endlessScrollAdapter.clear()
//      endlessScrollAdapter.add(ProgressItem())

      observeSessions(page = currentPage.toLong() + 1)
    }
  }

Details

[ ] Used library version - 3.2.4
[ ] Used support library version - 27.0.2

Checklist

[x] Searched for similar issues
[x] Checked out the sample application
[x] Read the README
[x] Checked out the CHANGELOG
[x] Checked out the MIGRATION GUIDE

@eygraber independent of the issue you should use the FastAdapter provided notify methods. (like notifyAdapterItemChanged...)
It sounds strange. can it be that the item 0 and 1 are not really visible?
As you can see herE: https://github.com/mikepenz/FastAdapter/blob/develop/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/scroll/EndlessRecyclerOnScrollListener.java it is just a default scroll listener which will not prevent default behaviour. only in addition trigger the according listeners when a specific limit is reached

I do, I was just referring to what FastAdapter calls internally.
They're definitely visible on the screen; I stared at them for a good 5 minutes waiting for updates to bind, but they never did. I also verified that the backing items data changed. It just never got bound.

@eygraber do you have a item animator set. that one might also fool the layoutmanager of giving the RV the proper info to rebind.
Do you have an equals implementation: https://github.com/mikepenz/FastAdapter/blob/develop/library-core/src/main/java/com/mikepenz/fastadapter/items/AbstractItem.java#L323 ? perhaps there is something going on because it is still equal to before?
Do you items have proper identifiers?

Was this also related to the other issue you had in that hackathon?
Is this still relevant? Please comment if we need to re-open it.

Same Issue here.


chore: add favicon and meta tags

Related Issue
Closes #259
Description of Changes

Add the favicon

Removed these meta tags from _document.page.js due to standard conventions

<meta name="title" content="GrabTern" />
<meta name="viewport" content="width=device-width, initial-scale=1" />

Add the following meta tags in _app.page.js

<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="language" content="English" />
<meta name="linkedin:profile" content="https://www.linkedin.com/company/grabtern/" />
<meta property="instagram:username" content="https://www.instagram.com/grabtern.guide/" />
<meta name="twitter:site" content="@grabtern_twitter_username" />

Checklist:

[x] My code adheres to the established style guidelines of this project.
[x] I have conducted a self-review of my code.
[x] I have included comments in areas that may be difficult to understand.
[ ] I have made corresponding updates to the project documentation.
[x] My changes have not introduced any new warnings.

@anmode,
Could you please review this pull request :)
I would appreciate it if you could provide any feedback or suggest any changes that need to be made.

Looks Cool! Actually we are dealing with a problem. look if you can find a solution. there is google script in this file documents.
https://github.com/anmode/grabtern-frontend/blob/9f0b439f0478ba23a3ccf99a17a3f2d0155001e9/pages/_document.page.js#L8
actually, that script should be loaded first.
we have used auth in are components.
eg:https://github.com/anmode/grabtern-frontend/blob/9f0b439f0478ba23a3ccf99a17a3f2d0155001e9/components/MentorFormRegistration.js#L65
so what happens is that we get error google is not defined. This comes when script does not loaded.
This pR is looks good otherwise

I will make a different PR if I can solve this.

oh okay @Anmol-Baranwal ..Thanks!

@anmode
I have made contributions to multiple projects following the guidelines. As per the guidelines, it is required to add a level tag based on the contribution. Therefore, kindly add the appropriate label tag.


Add a verticalStackSeparation and horizontalStackSeparation

Hi guys ! Thanks for keeping this updated ;)
I wanted to use stackSeparation, but Horizontally. I don't think this is possible actually ? It would be great to be able to precise either horizontal or vertical separation, so that we can even see cards in diagonal maybe, if we use both of them at the same time ^^
Thanks !
Arnaud

@arnaud9145 I've added some labels to the issue. If this gets some interest it might be a good enhancement.


Unable to connect to Mature live chats.

This happens even though the host is definitely online. Passing in a Session ID does not fix the issue.
Log:
[TikTokLive <REDACTED>] [INFO]: TikTokLive client state: CONNECTING
[TikTokLive <REDACTED>] [INFO]: Fetching room ID
[TikTokLive <REDACTED>] [INFO]: RoomID -> <REDACTED, BUT VALID VALUE>
[TikTokLive <REDACTED>] [INFO]: Fetching RoomInfo
[TikTokLive <REDACTED>] [INFO]: RoomInfo status -> HostNotFound
[TikTokLive <REDACTED>] [INFO]: TikTokLive client state: DISCONNECTED
Exception in thread "main" io.github.jwdeveloper.tiktok.exceptions.TikTokLiveOfflineHostException: LiveStream for Host name could not be found. Is the Host online?
	at io.github.jwdeveloper.tiktok.TikTokLiveClient.tryConnect(TikTokLiveClient.java:143)
	at io.github.jwdeveloper.tiktok.TikTokLiveClient.connect(TikTokLiveClient.java:94)
	at Test.main(Test.java:15)

Looks like fetchRoomInfo() is getting a status_code of 4003110.

help


No performance gain after reloading policy.

Using
agent.act.load_state_dict(loaded_agent['actor'].state_dict())
to load policy rather than
agent.act = loaded_agent['actor']
where the policy gradient is disabled.


Doesn't work on any OS X lower than 10.11

Seems to be a great software! I was looking for something like that for a long time!
But it doesn't run on my Mac that has OS X 10.10. Do you have plans to port it to legacy OSs?

Hi! Just added a version that should also run on OSX10.10: https://github.com/tschoffelen/vibe/releases/tag/0.1.2

Did that work @anastasiuspernat? Want to know if I can close this ticket.

Wow, yhanks for the fast fix!
It opens, but the text on the top is cut like on the attached picture.

Also everything is very buggy when windows is being scaled.

Ah, I see. Seems like the constraints that it uses don't work correctly. With OS X 10.12 coming up in the the next 2 months, I don't think it's necessary to spend a lot of time on correcting this, right?

I dunno, it depends on the scope of your project! I'm personally not going to upgrade unless I need to, my environment works perfect on 10.10 and I don't see any reasons for upgrading. Also I have a lot of friends on 10.9 and 10.10.
P.S. Tried it on 10.11 and the bugs with repainting when scaling remained.
Thank you!


Myanmar

Kindly propose to add Myanmar. Thanks!

🚀 Deployed: https://welcome.osm.be/asia/myanmar/list


Lambda: removes a superfluous backtick in a typing judgment

In the chapter on lambda calculus, this patch removes a superfluous backing in a typing judgment.

Thanks!


help: Add mobile instructions to "Create a stream".

Updates Create a stream and Create streams to follow current help center documentation patterns.
Moves Desktop/Web instructions instructions to a Markdown include-block.
Adds mobile instructions.

Screenshots and screen captures:

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans.
[x] Highlights technical choices.
[x] Automated tests.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Links.

@laurynmm This PR is ready for review.
@zulipbot add "help center review"

@drrosa - I had one small word choice note. Otherwise, this looks good!

Thanks! I updated the PR and screenshot.

@drrosa - Looks good! Marking for integration review.

Merged, thanks @drrosa and @laurynmm!


Added option in addTiledImage to replace tiledImage at index.

Based on the discussion of https://github.com/openseadragon/openseadragon/pull/701, I changed my pull request to a replace tiledImage API. Added the API as an option on addTiledImage.

Looks good. My only concern is race conditions...it's possible for the world list to have changed between the time addTiledImage is called and the time the image actually loads. On the other hand, we already have that issue even without the replace flag, so this doesn't make things any worse. @LarissaSmith what do you think?
Also, would you be up for adding a test for this new feature?

Hmm... At the beginning of the function, I could get the world item that should be removed and use it to make sure the right item is replaced. That way there won't be a disadvantage from using the index parameter instead of passing in the item.
Sure, I'll get started on a test.

I fixed the race condition and added a test for this.

Lovely! Thank you for making this happen :)


How to get templates in parse_by_Official() function of class HDFSLoader

Hi Dr. Yang,
Can you guide me on how to get the templates like this? Thank you so much.
class HDFSLoader(BasicDataLoader):

    ...

    def parse_by_Official(self):
        self._restore()
        templates = [
            "Adding an already existing block (.*)",
            "(.*)Verification succeeded for (.*)",
            "(.*) Served block (.*) to (.*)",
            "(.*):Got exception while serving (.*) to (.*):(.*)",
            "Receiving block (.*) src: (.*) dest: (.*)",
            "Received block (.*) src: (.*) dest: (.*) of size ([-]?[0-9]+)",
            "writeBlock (.*) received exception (.*)",
            "PacketResponder ([-]?[0-9]+) for block (.*) Interrupted\.",
            "Received block (.*) of size ([-]?[0-9]+) from (.*)",
            "PacketResponder (.*) ([-]?[0-9]+) Exception (.*)",
            "PacketResponder ([-]?[0-9]+) for block (.*) terminating",
            "(.*):Exception writing block (.*) to mirror (.*)(.*)",
            "Receiving empty packet for block (.*)",
            "Exception in receiveBlock for block (.*) (.*)",
            "Changing block file offset of block (.*) from ([-]?[0-9]+) to ([-]?[0-9]+) meta file offset to ([-]?[0-9]+)",
            "(.*):Transmitted block (.*) to (.*)",
            "(.*):Failed to transfer (.*) to (.*) got (.*)",
            "(.*) Starting thread to transfer block (.*) to (.*)",
            "Reopen Block (.*)",
            "Unexpected error trying to delete block (.*)\. BlockInfo not found in volumeMap\.",
            "Deleting block (.*) file (.*)",
            "BLOCK\* NameSystem\.allocateBlock: (.*)\. (.*)",
            "BLOCK\* NameSystem\.delete: (.*) is added to invalidSet of (.*)",
            "BLOCK\* Removing block (.*) from neededReplications as it does not belong to any file\.",
            "BLOCK\* ask (.*) to replicate (.*) to (.*)",
            "BLOCK\* NameSystem\.addStoredBlock: blockMap updated: (.*) is added to (.*) size ([-]?[0-9]+)",
            "BLOCK\* NameSystem\.addStoredBlock: Redundant addStoredBlock request received for (.*) on (.*) size ([-]?[0-9]+)",
            "BLOCK\* NameSystem\.addStoredBlock: addStoredBlock request received for (.*) on (.*) size ([-]?[0-9]+) But it does not belong to any file\.",
            "PendingReplicationMonitor timed out block (.*)"
        ]

Hi @tunglambk,
Sure, its my pleasure!
Such "ground truth" of HDFS log messages are downloaded from the homepage of Prof. Wei Xu. And we manually moved it into the python project.
According to our experiences with log parsers, I think it is safe to say that those were manually written or  extracted from the source code of the target system. Log parsers are highly likely to introduce noises.
Hope this will help, if anything, feel free to comment and I am happy to answer :P

Hi Dr.@YangLin-George ,
Thank you so much for your enthusiastic support.
From your explanation, I understand that if we can extract the log templates from the source code, we should use them like the parse_by_Official() function to avoid noise from the log parser. Otherwise, we can use IBM Drain3 to parse logs like the parse_by_IBM() function. Is this right?

In my opinion, while doing research, log parsing seems necessary. For example, the widely used BGL dataset does not have such a "ground truth" like HDFS.
However, while you are using an anomaly detection approach in industry, if the real templates are available, its better to use them directly.

Hi Dr. @YangLin-George,
Yeah, I understood. Besides, I have one more question.

For example, the widely used BGL dataset does not have such a "ground truth" like HDFS.

The parse_by_Official() function of the BGLLoader class also has templates like HDFSLoader. How do you extract it? Thank you so much.

Those were written based on the tempaletes generated by Drain. We tried to study the impact of parsing and prepared those.

Thank you so much for your support and great work, Dr. @YangLin-George, I close this issue here.


More elaborate user-defined metafields validation rules are not processed fully

When validation rules of $metaFields are defined more extensively, like in the case of baz below, only the first rule (in that particular case - the rule required is applied, while the subsequent rules are ignored.
    public $metaFields = [
                'Example Fields' => [
                    'foo' => ['label' => 'Foo', 'type' => 'text', 'validation' => 'permit_empty|string'],
                    'Bar' => ['type' => 'text', 'validation' => 'required|string'],
                    'baz' => [
                         'label' => 'Baz',
                         'type' => 'checkbox',
                         'validation' => [
                             'label' => 'Baz',
//'required is applied, but subsequent `in_list` is ignored;
                             'rules' => 'required|in_list[true,false]'
                         ],
                     ],
                ],
    ];

I intend to investigate this problem later.

On further investigation I could not confirm  this problem, must have been using rules incorrectly.


2.6 deadlocked loading targets page

See https://gist.github.com/tomwilkie/43b99a28cebe39d22e7c3b6e12c545bd for stack

@tomwilkie is this issue still relevant considering that the remote write code has changed a lot in 2.8?

Since I switched to 2.8.1, I now longer have slowness and freeze when reloading.

Closing, feel free to re-open if it still occurs with 2.9.


opi testing

more details to be filed in as setup is catching shape and cases are contributed, the intent here is to give shape to the documentation structure.

lab cabling diagram
install software in the servers
run the test cases

those colors look too bright but should do the job


Create tests for all images

Together with #42 we should add tests to all images. The tests should contain of at least a smoke test, testing that the image works at all and gives the right output.

done


Changes for doxyport

Signed-off-by: Andrei Vasiliu<EMAIL_ADDRESS>

Merged here 1ceb78425280db1cbb379b6e95e094d0cf1dec74. Thanks!


feat(ServiceDaemon): possibility to use a specific network interface

Add the possibility of using a specific network interface using the on_interface constructor function.
The addition is not a breaking change.
Hello, for my use case I need to use a specific network interface (that is also using a link local address) so I added this feature to your fantastic library.
If you think this could be useful (I do 😁) consider merging this PR or let me know if you want me to change something before merging.

I still have to add the tests 🙂

I still have to add the tests 🙂

It was closed briefly by mistake,  Sorry. I was trying to post a comment saying "I will review again after you add the test".

It was closed briefly by mistake, Sorry. I was trying to post a comment saying "I will review again after you add the test".

Yes, I'm not sure when but I will add them :D

One question: why do you bind the sockets to <IP_ADDRESS> ?
https://github.com/keepsimple1/mdns-sd/blob/ab24121bec6a9c4f121f7444270138e6fa69f62d/src/service_daemon.rs#L527

One question: why do you bind the sockets to <IP_ADDRESS> ?

As I recall, if we bind the socket to a specific address, the join_multicast_v4 and/or set_multicast_if_v4 fails. Does this cause any issues for you?

One question: why do you bind the sockets to <IP_ADDRESS> ?

As I recall, if we bind the socket to a specific address, the join_multicast_v4 and/or set_multicast_if_v4 fails. Does this cause any issues for you?

Oh, ok thanks. I would prefer to generate traffic only on the interface specified

One question: why do you bind the sockets to <IP_ADDRESS> ?

As I recall, if we bind the socket to a specific address, the join_multicast_v4 and/or set_multicast_if_v4 fails. Does this cause any issues for you?

Oh, ok thanks. I would prefer to generate traffic only on the interface specified

Although we bind to INADDR_ANY (<IP_ADDRESS>), the multicast traffic only generates on the interface specified. Btw we don't support unicast at this point. If that's not the case for you, then we shall try to fix.

Just wanted to let you know, I've posted a new release to fix issue #121 .  So you would need to update your diff to resolve conflicts. And if you encountered any problems when adding the test, please let me know.

Just wanted to let you know, I've posted a new release to fix issue #121 . So you would need to update your diff to resolve conflicts. And if you encountered any problems when adding the test, please let me know.

Merged, thanks!
I'm sorry but I won't have time to work on this in the short/middle term :(

I have created a new PR that solves a problem and support this feature at the same time: #137 . Please take a look if you have time. Any comments are appreciated.

That's awesome, thank you! :)


SupervisorD Go binary implementation

WIP
#556

@kadel This is the error I'm getting:
Volumes:
  shared-data:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
  test-app-s2idata:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  test-app-s2idata
    ReadOnly:   false
  default-token-s8dcz:
    Type:       Secret (a volume populated by a Secret)
    SecretName: default-token-s8dcz
    Optional:   false
QoS Class:      BestEffort
Node-Selectors: <none>
Tolerations:    <none>
Events:
  FirstSeen     LastSeen        Count   From                    SubObjectPath                                   Type            Reason                  Message
  ---------     --------        -----   ----                    -------------                                   --------        ------                  -------
  15s           15s             1       default-scheduler                                                       Normal          Scheduled               Successfully assigned test-app-1-q9nnx to localhost
  15s           15s             1       kubelet, localhost                                                      Normal          SuccessfulMountVolume   MountVolume.SetUp succeeded for volume "shared-data"
  15s           15s             1       kubelet, localhost                                                      Normal          SuccessfulMountVolume   MountVolume.SetUp succeeded for volume "pv0025"
  14s           14s             1       kubelet, localhost                                                      Normal          SuccessfulMountVolume   MountVolume.SetUp succeeded for volume "default-token-s8dcz"
  14s           14s             1       kubelet, localhost      spec.initContainers{supervisord-copy}           Normal          Pulling                 pulling image "docker.io/cdrage/supervisord-test:latest"
  13s           13s             1       kubelet, localhost      spec.initContainers{supervisord-copy}           Normal          Pulled                  Successfully pulled image "docker.io/cdrage/supervisord-test:latest"
  13s           13s             1       kubelet, localhost      spec.initContainers{supervisord-copy}           Normal          Started                 Started container
  13s           13s             1       kubelet, localhost      spec.initContainers{supervisord-copy}           Normal          Created                 Created container
  12s           12s             1       kubelet, localhost      spec.initContainers{copy-files-to-volume}       Normal          Pulling                 pulling image "docker-registry.default.svc:5000/openshift/nodejs:latest"
  12s           12s             1       kubelet, localhost      spec.initContainers{copy-files-to-volume}       Warning         Failed                  Failed to pull image "docker-registry.default.svc:5000/openshift/nodejs:latest": rpc error: code = Unknown desc = Get https://docker-registry.default.svc:5000/v1/_ping: dial tcp: lookup docker-registry.default.svc on <IP_ADDRESS>:53: no such host
  12s           12s             1       kubelet, localhost      spec.initContainers{copy-files-to-volume}       Warning         Failed                  Error: ErrImagePull
  11s           11s             1       kubelet, localhost      spec.initContainers{copy-files-to-volume}       Normal          BackOff                 Back-off pulling image "docker-registry.default.svc:5000/openshift/nodejs:latest"
  11s           11s             1       kubelet, localhost      spec.initContainers{copy-files-to-volume}       Warning         Failed                  Error: ImagePullBackOff

The actual supervisord image works correctly, it's the internal template/service ones that do not :(

@cdrage you probably have wrong registry address, as you are getting no such host  error.
Don't use openshift registry directly like this.
Important part is ImageChangeTrigger, this is what determines what image will be used for container. When deployment is triggered, OpenShift looks for triggers, and if it finds triger with matching container name it looks for the ImageStream that is specified in the trigger, and replaces image field in the container with resolved image from the ImageStream.
You can even set image: " " and it everything will work properly.

You can set image to image stream name in init container so long as the target image stream has local lookup policy enabled, or annotation has been added on deployment config to cause image name in init container be resolved against image streams.
So image stream either has:
                    "spec": {
                        "lookupPolicy": {
                            "local": true
                        }
                    }

or deployment/deployment config/stateful set, has:
      annotations:
        alpha.image.policy.openshift.io/resolve-names: '*'

See:

https://docs.openshift.com/container-platform/3.9/dev_guide/managing_images.html#using-is-with-k8s

Okay! So here are some instructions on how to test this out before I disappear for 3-days next week.
First, bring up your cluster:
minishift start
# or whatever cluster you have

With this implementation, nodejs is working correctly, so you can deploy with just a git clone and then create:
git clone https://github.com/openshift/nodejs-ex
odo create nodejs --local ~/nodejs-ex

Because of the supervisord binary implementation, this is deployed immediately.
After the pods have changed to Running (you can check pending status using oc get po or even just do odo push -v, you can push:
odo push
# or verbose
odo push -v

All of this relies on an image that is pushed to Docker Hub with the contents from script/supervisord. You can change this by modifying the `cdrage/supervisord-test:latest" variable within the code to your own image.
There's some things that need more testing, but as of right now, nodejs seems to work well.

Anddd here's a video on how to do it:
https://www.youtube.com/watch?v=HoI61g1bDbc

I did a quick test using my testing project
$GOPATH/bin/odo create openjdk18 sb1 --local ./src
Please wait, creating sb1 component ...
Component 'sb1' was created and ports 8778/TCP,8080/TCP,8443/TCP were opened
To push source code to the component run 'odo push'

Component 'sb1' is now set as active component.

and when I do the odo push, I get this error
$GOPATH/bin/odo push
Pushing changes to component: sb1
Please wait, building component....
+ set -eo pipefail
+ mkdir -p /tmp/src
+ touch /tmp/src/.dummy
++ find /opt/rh/ -name bin -type d
++ grep /root/usr/bin
+ for i in '$(find /opt/rh/ -name '\''bin'\'' -type d | grep '\''/root/usr/bin'\'')'
+ PATH=/opt/rh/rh-maven35/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/s2i
+ PATH=/usr/bin:/opt/rh/rh-maven35/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/s2i
+ HOME=/opt/app-root
+ fix-permissions /opt/app-root/src
/var/lib/supervisord/bin/assemble-and-restart: line 30: fix-permissions: command not found
failed to push component: sb1

cdrage deleted the cdrage:implement-supervisord  branch 13 hours ago

?

Why was this closed?

I suspect that @cdrage  deleted his branch by mistake.

Alarm bells went off, since we are really looking forward to this work :P

Yeah, I didn't close this locally. Odd! It's restored. I'm still working on it.

:relieved:

Update:

I'm encountering a log of failed storage commands. Looks like having the share-data volume with no PVC is messing a few things up. Just going through and bugfixing them.

We still have 3 issues to be fixed for this PR. When we do a binary upload, then it fails as the path to copy the binary points to a file /opt/app-root-src and not a directory (see #703).
The commands defined to run or assemble the application must be changed too (see #707)

Tests pass (locally at least for me).
Feel free to test / have a look at this implementation!
It's as simple as:
git clone https://github.com/openshift/django-ex.git
./odo create python --local django-ex
./odo push

Tests are all :green_heart:

NOTE (for myself): Make sure to keep an eye out on https://github.com/redhat-developer/odo/pull/626 so that env variables are persistent across odo update

I assume "work in progress" label is due to more UTs coming up?
I did very less and basic testing today will do more testing tomorrow...

Verified as in https://gist.github.com/anmolbabu/862f9b8cd4dd767cf6c6adf0400018cb
based on the demo video at https://www.youtube.com/watch?v=HoI61g1bDbc

I created component using git as a source:

 odo create nodejs mynode --git=https://github.com/sclorg/nodejs-ex

I updated the source to local,

$ odo update --local=.
The component mynode was updated successfully, please use 'odo push' to push your local changes

I tried to push the code but it crashed,

$ odo push -v 4
I1004 14:43:36.136227   29569 occlient.go:264] Trying to connect to server <IP_ADDRESS>:8443
I1004 14:43:36.136875   29569 occlient.go:270] Server https://<IP_ADDRESS>:8443 is up
I1004 14:43:36.155102   29569 occlient.go:247] isLoggedIn err:  <nil>
 output: "developer"
I1004 14:43:36.155383   29569 push.go:45] No component name passed, assuming current component
Pushing changes to component: mynode
I1004 14:43:36.155625   29569 occlient.go:1680] Getting DeploymentConfig: mynode-app
I1004 14:43:36.170104   29569 component.go:382] Source for component mynode is file:///home/snarwade/odo-example/nodejs-ex (local)
I1004 14:43:36.170151   29569 push.go:93] Copying directory /home/snarwade/odo-example/nodejs-ex to pod
I1004 14:43:36.179717   29569 occlient.go:1066] Waiting for deploymentconfig=mynode-app pod
I1004 14:43:36.186904   29569 occlient.go:1081] Status of mynode-app-2-nttb4 pod is Pending
I1004 14:43:36.187002   29569 occlient.go:1081] Status of mynode-app-1-99xrq pod is Running
I1004 14:43:36.187012   29569 occlient.go:1084] Pod mynode-app-1-99xrq is running.
I1004 14:43:36.187088   29569 component.go:249] Copying to pod mynode-app-1-99xrq
Please wait, building component....
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"/var/lib/supervisord/bin/assemble-and-restart\": stat /var/lib/supervisord/bin/assemble-and-restart: no such file or directory"

I1004 14:43:36.404275   29569 root.go:175] Error:
unable to execute assemble script: error while streaming command: command terminated with exit code 126
failed to push component: mynode

After a while, I tried and it worked.

REASON: it takes time to create new deploymentconfig as we change the source, (I think odo update should wait till the pod is up and running)

@cdrage Almost same error as @surajnarwade when following the above scenario, my logs are a bit different. In my case it fails with read/write on closed pipe
[mrinaldas@localhost odo]$ ./odo push -v 4
I1004 15:21:10.123933   13388 occlient.go:264] Trying to connect to server <IP_ADDRESS>:8443
I1004 15:21:10.124219   13388 occlient.go:270] Server https://<IP_ADDRESS>:8443 is up
I1004 15:21:10.135697   13388 occlient.go:247] isLoggedIn err:  <nil>
 output: "developer"
I1004 15:21:10.135897   13388 push.go:45] No component name passed, assuming current component
Pushing changes to component: nodejs
I1004 15:21:10.136070   13388 occlient.go:1680] Getting DeploymentConfig: nodejs-app
I1004 15:21:10.143926   13388 component.go:382] Source for component nodejs is file:///home/mrinaldas/nodejs-ex (local)
I1004 15:21:10.143965   13388 push.go:93] Copying directory /home/mrinaldas/nodejs-ex to pod
I1004 15:21:10.150515   13388 occlient.go:1066] Waiting for deploymentconfig=nodejs-app pod
I1004 15:21:10.155108   13388 occlient.go:1081] Status of nodejs-app-6-brrv7 pod is Running
I1004 15:21:10.155140   13388 occlient.go:1084] Pod nodejs-app-6-brrv7 is running.
I1004 15:21:10.155178   13388 component.go:249] Copying to pod nodejs-app-6-brrv7
E1004 15:21:10.261045   13388 v2.go:163] io: read/write on closed pipe
I1004 15:21:10.300495   13388 root.go:175] Error:
unable push files to pod: error while streaming command: command terminated with exit code 2
failed to push component: nodejs

That is probably the same as in #647

I have a similar feeling too. I had posted my findings here https://github.com/redhat-developer/odo/issues/647#issuecomment-418745579

build locally and deployed nodejs and python app everything went well

I've just added commit https://github.com/redhat-developer/odo/pull/622/commits/c438d0486216509f4ac1db85d9696e7a1fa7c048 that moves a directory from which  supervisord image is build to the separate repository redhat-developer/odo-supervisord-image and also setup Quay build for it https://quay.io/repository/openshiftdo/supervisord
@cdrage feel free to delete my commit and repo if you wanted to do it in a different way.

I also just tested with nodejs and java s2i and both worked :tada:

since the image is being consumed from quay.io(quay.io/openshiftdo/supervisord:0.1.0) we can remove the TODO from commit message as well as PR description

Travis is reporting that tests failed, but they actually passed, there is just something wrong with macOS brew package

ERR_TIMEOUT - merging ;-)


[Component Guide] KFServing

Is your feature request related to a problem? Please describe.
Existing samples/tutorial in this repository focus on how to install Kubeflow on EKS.
kserve docs show how to create an inference service and sending requests from ingress gateway, if user has a realDNS etc. It does not talk about auth or how to setup a real DNS
Describe the solution you'd like

[ ] E2e tutorials for users on how to use inference service in production on AWS with an ALB endpoint/custom domain and auth
[ ] How to use a model in S3

Working e2e POC:
In this tutorial we will create a TLS enabled load balancer endpoint for serving prediction requests over HTTPS.
Pre-requisites:

Kubeflow deployment
Alb ingress controller installed
Cluster subnets tagged according to the Prerequisites section in this document for ALB controller to work

Background:

Currently, it is not possible to programatically authenticate a request through ALB that is using cognito authentication.
Certificates for ALB public DNS names are not supported. Instead, you must create a custom domain.

Hence, we will be creating another ALB endpoint which authorizes based on a token in a predefined header.
Step 1: Register a domain or reuse the domain if you are using the Cognito based deployment. You can get a domain using any domain registration service like Route53 or godaddy.com
Step 2: Modify knative domain configuration to use your custom domain. Note that knative default domain is in the format {route}.{namespace}.{default-domain}. Lets assume your domain name is platform.example.com and you will create the resource in kserve namespace. We will use this information in the next step
Step 3: To get TLS support from the ALB, you need to request a certificate in AWS Certificate Manager. Follow this tutorial to create a certificate for *.example.com and *.kserve.example.com(both domains in the same certificate) in the region where your cluster exists.
After successful validation, you will get a certificate ARN to use with the Ingress ALB endpoint.
Step 4: Create an ingress with the following config by substituting the value of randomStringxxx and randomStringyyy. You can also change the HttpHeaderName from x-api-key to your choice of header.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
    alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=180
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/certificate-arn: 'arn:aws:acm:ca-central-1:123456789012:certificate/xxxxxx-xxxx-xxxx-xxxx-xxxxxxx'
    alb.ingress.kubernetes.io/conditions.istio-ingressgateway: '[{"Field":"http-header","HttpHeaderConfig":{"HttpHeaderName": "x-api-key", "Values":["randomStringxxx", "randomStringyyy"]}}]'
    alb.ingress.kubernetes.io/actions.istio-ingressgateway: '{"Type":"forward","ForwardConfig":{"TargetGroups":[{"ServiceName":"istio-ingressgateway","ServicePort":"80","Weight":100}]}}'
    kubernetes.io/ingress.class: alb
  name: istio-ingress-api
  namespace: istio-system
spec:
  rules:
  - http:
      paths:
      - backend:
          serviceName: istio-ingressgateway
          servicePort: 80
        path: /*

Step 5: Wait for the ALB to get created (this takes about 3-5 minutes)
$ kubectl get ingress -n istio-system istio-ingress-api
NAME            CLASS    HOSTS   ADDRESS                                                                     PORTS   AGE
istio-ingress   <none>   *       956f2953-istiosystem-istio-2gh2-1234567890.ca-central-1.elb.amazonaws.com   80      14m

Step 6: When ALB is ready, copy the DNS name of that load balancer and create a CNAME entries to it in Route53 under subdomain (platform.example.com) for *.platform.example.com and *.kserve.platform.example.com.
Step 7: Create a sample sklearn InferenceService and wait for it to be READY
apiVersion: "serving.kubeflow.org/v1beta1"
kind: "InferenceService"
metadata:
  name: "sklearn-iris"
  namespace: kserve
spec:
  predictor:
    sklearn:
      storageUri: "gs://kfserving-samples/models/sklearn/iris"

$ k get inferenceservice -A
NAMESPACE    NAME           URL                                                  READY   PREV   LATEST   PREVROLLEDOUTREVISION   LATESTREADYREVISION                    AGE
kserve       sklearn-iris   http://sklearn-iris.kserve.platform.example.com       True           100                              sklearn-iris-predictor-default-00001   2d

Step 8: Your endpoint is ready to serve! Send request using the sample script below:
import requests

data = {
  "instances": [
    [6.8,  2.8,  4.8,  1.4],
    [6.0,  3.4,  4.5,  1.6]
  ]
}

url = "https://sklearn-iris.kserve.platform9.surakota.people.aws.dev/v1/models/sklearn-iris:predict"
headers = {
  "Host" : "sklearn-iris.kserve.platform9.surakota.people.aws.dev",
  "x-api-key": "randomStringxxx"
}

response = requests.post(url, headers=headers, json=data)

print("Status Code", response.status_code)
print("JSON Response ", response.json())

Output would look like:
Status Code 200
JSON Response  {'predictions': [1, 1]}

Looks fine to me, in the pre-requisites when you direct them towards https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html to have the cluster subnets tagged properly, perhaps we should also link to this command we have in the cognito readme to make it easier for the user? Specifically section 4 of this https://github.com/awslabs/kubeflow-manifests/tree/main/docs/deployment/cognito#40-configure-ingress

for 1. -> I will work on #67 first so the prerequisites are reduced
2 -> tokens are static strings. They are not linked to any session and hence have no expiration times. Will add this to the documentation or think of a better wording

@surajkota I see that we specify 2 values for the tokens when defining the Ingress but we only specify one when doing a test request.
Should we use 1 or 2 values?

Hello, we followed the guide but unfortunately could not get an inference to return a result.
Important of the issue
This issue is critical for us since it blocks us from deploying any model to production.
Issue
Performing an inference to a model server returns a 504 Gateway Timeout Error
Steps to reproduce

Create a cluster on EKS 1.21
Here is the cluster definition I used

---
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: mycluster-1
  version: "1.21"
  region: us-east-2

availabilityZones: ["us-east-2a", "us-east-2b"]

managedNodeGroups:
  - name: ai-platform-1
    minSize: 3
    maxSize: 5
    desiredCapacity: 3
    instanceType: m6i.xlarge
    iam:
      withAddonPolicies:
        autoScaler: true
    tags:
      k8s.io/cluster-autoscaler/enabled: "true"
      k8s.io/cluster-autoscaler/mycluster-1: "owned"

Install Kubeflow according to RDS-S3-Cognito setup (I used the rds-s3 script for rds-s3 part then manually did Cognito following the doc)

Branch : main + upstream v1.4.1

Create a profile/namespace prod

apiVersion: kubeflow.org/v1beta1
kind: Profile
metadata:
  name: prod

Create a default-editor service account for prod

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: default-editor-access-binding-prod
subjects:
- kind: ServiceAccount
  name: default-editor
  namespace: prod
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

Authorize yourself to the namespace (follow kuveflow doc step )
Setup KFServing
Perform an inference.
Notice 504 error

Context

Cluster region : us-east-2
Cognito setup

Root domain (mydomain.com) is under a different domain registry (not AWS Route53)

I created a Hosted Zone for the subdomain ai.mydomain.com to allow subdomain delegation.
I created 4 NS records on my root domain registry with the nameservers from the subdomain hosted zone

KFServing setup

Modified the config-domain config map to use my sub domain.

kubectl edit configmap config-domain -n knative-serving

apiVersion: v1
data:
  ai.mydomain.com: ""
kind: ConfigMap
[...]

Certificates

I successfully created a certificate in us-east-2 (my cluster region) using AWS Certificate Manager.

The certificate has 2 domain values :  *.prod.ai.mydomain.com and *.ai.mydomain.com

Created the ingress using a copy paste from the procedure and I entered the certificate ARN in place of arn:aws:acm:ca-central-1:123456789012:certificate/xxxxxx-xxxx-xxxx-xxxx-xxxxxxx
Created a CNAME for the ELB

*.prod.ai.mydomain.com | CNAME | Simple | - | 0dfceb22-istiosystem-istio-a50d-1499903191.us-east-2.elb.amazonaws.com

Any help on this would be extremely appreciated.

Thanks for reporting the issue and detailed steps to reproduce. My first thought is you might be hitting these open issue where auth policy is incomplete in profile namespace: https://github.com/kserve/kserve/issues/1558, https://github.com/kubeflow/kubeflow/issues/5965. I can confirm this issue exists in 1.4 since I was also not able to get the request served in profile namespace.
I created a plain k8s namespace using: kubectl create namespace kserve. Can you try this as well?
I understand from our discussion that this is not ideal since these models wont be visible in the webapp and it will not be accessible from pipelines or notebooks but lets try to break this into: getting inference request served w/o profile and getting it to work in profile namespace

Thank you @surajkota , I was able to still use profiles by applying the right auth policy (mine is slightly modified to the one linked to add v2 protocol support) :
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: allow-predictor
  namespace: istio-system
spec:
  selector:
    matchLabels:
      component: predictor
  action: ALLOW
  rules:
  - to:
    - operation:
        paths:
        - /metrics
        - /healthz
        - /ready
        - /wait-for-drain
        - /v1/models/*
        - /v2/models/*

If someone uses transformers he would need to apply it for transformers as well :
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: allow-transformer
  namespace: istio-system
spec:
  selector:
    matchLabels:
      component: transformer
  action: ALLOW
  rules:
  - to:
    - operation:
        paths:
        - /metrics
        - /healthz
        - /ready
        - /wait-for-drain
        - /v1/models/*
        - /v2/models/*

This is not an AWS issue, it should be added to vanilla Kubeflow in my opinion.
Until it is added to vanilla Kubeflow we could mention it in the doc so that people with KF 1.4 don't face the issue.

The above problem is being addressed in this PR: https://github.com/kubeflow/kubeflow/pull/6013

https://github.com/kubeflow/kubeflow/pull/6627


Manjaro/Arch Linux: build from sources fails

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Manjaro (Arch Linux; Kernel 4.16.8)
TensorFlow installed from (source or binary): sources
TensorFlow version (use command below): 1.7.1
Python version: 3.6.5
Bazel version (if compiling from source): 0.13
GCC/Compiler version (if compiling from source): 4.9.3, 5.4.1, 6.4.1, 8.1
CUDA/cuDNN version: 9.0.176 / 7.0.5
GPU model and memory: GTX 1080 8GB

Describe the problem
Build from sources fails with CUDA support.
Build for CPU-only works properly.
pip install tensorflow-gpu==1.7.1 works properly, I'd just prefer a custom build with --march native stuff.
Any suggestions? Should I try to build older versions of TensorFlow?
Source code / logs
gcc-4.9 build fails very early on complaining about missing files:
libmpfr.so.4: cannot open shared object file: No such file or directory
The same goes for gcc-5.4, although it builds for a few seconds longer and fails with other missing files.
gcc-6.4 compiles for 1-2 minutes, then fails with:
/usr/include/bits/floatn.h(74): error: invalid argument to attribute "__mode__"

/usr/include/bits/floatn.h(86): error: identifier "__float128" is undefined

2 errors detected in the compilation of "/tmp/tmpxft_00003957_00000000-6_libwrap.cu.cpp1.ii".
ERROR: (...) output 'external/nccl_archive/_objs/nccl/external/nccl_archive/src/libwrap.cu.pic.o' was not created
ERROR: (...) not all outputs were created or valid

gcc-8.1 builds for 20+ seconds and then fails with undeclared inclusion(s) in rule '@nccl_archive. Sometimes with another rule (maybe it depends which rule is violated first? I am building with 16 threads).

@ppwwyyxx TF 1.7.1? What Kernel are you using? CUDA/cuDNN version? Python version?

TF head (as of yesterday).
Up-to-date archlinux kernel (4.16.9-1). Python 3.6. cuda 9.0.176-4. cudnn 7.1.3-1. These are all official archlinux packages.

The official ArchLinux build script should work: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/tensorflow.
Otherwise you should report bug to the maintainer of the build script.

Nagging Assignee @bignamehyp: It has been 19 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Idk, maybe the issue can be closed. All attempts to build TensorFlow with GPU support crashed. However, I suspect it was something about Bazel and GCC.
GCC 4 and 5 still miss libmpfr.so and fail, as well as GCC 8, since it is not supported as of now.
...but after updating Bazel and GCC-7 to the most recent version I can compile  works again with TensorFlow 1.8.


WIP: Set nightly builds deployment per platform

Set nightly builds deployment per platform, keep release as before. This will need co-operation with configuration updates of build openjdk_{JVMVERSION}_build_checksum and openjdk_release_tool
Signed-off-by: Sophia Guo<EMAIL_ADDRESS>

Job openjdk_xxx_build_checksum jobs and the openjdk_release_tool job are not in source control as far as I know.

OK let me see if I can add those, PR hopefully soon.

@sophia-guo So the only code I think I can extract out of the checksum jobs are a small piece of shell script that executes:
for FILE in *; do
  case $FILE in
  *.sha256.txt) echo Skipping $FILE ;;
  *) sha256sum $FILE > $FILE.sha256.txt ;;
  esac
done

Is that what you want stored in source control?  Happy to oblige, but not 100% of the value.

@sophia-guo and the openjdk release tool is sourced from https://github.com/AdoptOpenJDK/openjdk-website-backend.git


Type of dir argument for Tar.extract

Given a directory that has been converted into a tar archive, say "archive.tar", it is often typical to extract this into a directory simply named "archive". The obvious way to achieve this programmatically, for example, when you want to extract a list of tar archives input_files, is to set the list of output directory names as output_list = map(x->split(x,".tar")[1], input_files). However, split returns output with types SubString{String}. While Tar.extract accepts dir::AbstractString, I receive a downstream error from Tar.extract_tarball which requires the output root directory to be a String, with signature extract_tarball(predicate::Function, tar::IO, root::String; kws...).
This can be solved if the user converts the SubString to a standard String before passing to Tar.extract. This is not terribly inconvenient, but I hit this snag in my first attempt to use this package and it confused me for a few minutes. Is there a technical reason why the type of root cannot be any AbstractString in Tar.extract_tarball? Or perhaps Tar.extract should convert dir to a standard String before passing it to Tar.extract_tarball?
Running Julia 1.10.3 with Tar 1.10.0.

Can reproduce. This is definitely a bug.


Restructure and Rearrange OpenMS RTD Documentation

Describe the change
I have restructured the documentation according to Julianus's document (closes #59).
I have also sorted the glossary (closes #63) and added a definition for FASTA format.
The branch can be viewed here.
New structure:

PR checklist

[x] I have added description of the change I'm proposing in the OpenMS Documentation.
[x] I have read and followed OpenMS Documentation Contributing guidelines.
[x] I have attached a screenshot of the relevant area after this change.
[ ] CHANGELOG.md is updated.
[ ] I have added my name in CONTRIBUTING.md.

Sorry but I don't see much difference. Is it uptodate?

Sorry but I don't see much difference. Is it uptodate?

It shouldn't be. I've just restructured the side navigation bar to a structure similar to the one you proposed.

Please have a look at the structure at the bottom of this document

I'm not responsible for staging branch of OpenMS/OpenMS-docs, if this PR goes in/merged to staging.
cc @axelwalter @enetz @jpfeuffer @KyowonJeong @poshul @OpenMS/doc-team.

@tapaswenipathak what do you mean?


Sidebar cell width incorrect at startup

This is a weird one. I don’t know why it’s happening, and I haven’t been able to find a work-around, and I’m hoping Maurice will be able to figure it out.

What is happening is that the table column isn't automatically resizing with the outline view.  This can happen if the table column width isn't set perfectly.  Right now I have it set to 3 pixels less than the containing scrollview.  This seems to work better.
I've been having trouble testing this.  It doesn't show up on my main development machine.  I assume that it is because it is running Big Sur.  My backup dev machine has that weird bug where it incorrectly is reporting the row width and so the unread count indicator is always positioned wrong.
If I still haven't got this thing fixed right, try tweaking the table column width to see how it behaves on your setup.


Added a frozen option; headroom ignores interaction while frozen

Added an option to freeze headroom's state. When headroom has the frozen class set it will not update until the frozen class is taken off.
This could also cover #38

+1 for this feature.
It can helps also in case spinned menu height more than window height.

@WickyNilliams bump :)

@WickyNilliams This would be great for A/B testing libraries to turn headroom on and off, also. +1 from me.

+1

Closing, as superseded by #309


Rename ServingFlags to NetworkingFlags

This patch changes:

to rename ServingFlags to NetworkingFlags.
to delete unused SystemNamespace from NetworkingEnvironmentFlags struct.

/cc @tcnghia @mattmoor @ZhiminXiang
Fixes https://github.com/knative/networking/issues/211

net-istio and net-kourier uses it on their repo like https://github.com/knative-sandbox/net-istio/blob/master/test/e2e/probing_test.go#L277 so needs to update once this PR was merged.

@nak3 I am not sure how the Downstream tests run will work ... Maybe we will need to keep a pointer with the name ServingFlags pointing to NetworkingFlags to keep the downstream test runs from failing?

(there is at least one reference here https://github.com/knative-sandbox/net-istio/blob/9365349470ebd15f4e6b75b9892b81330ba3c31b/test/e2e/probing_test.go#L277 )

@tcnghia Yes, agreed. Updated. Thank you!


Include more logging related to test execution (test start, test end, timestamps)

For Beaker/Restraint, we can see clearly in the console.log when a test began and ended, this is critical for for kernel debugging (Automotive and RHEL) to identify which test may have caused a kernel panic/oops. Example snippet of how this looks in Restraint when viewing the console.log:
[   85.586564] restraintd[4212]: ** Fetching task: 184687307 [/mnt/tests/distribution/install/tag-repository]
[   88.398025] restraintd[4212]: ** Preparing metadata
[   89.399494] restraintd[4212]: ** Refreshing peer role hostnames: Retries 0
[   90.380893] restraintd[4212]: ** Updating env vars
[   90.381091] restraintd[4212]: ** Updating external watchdog: 2400 seconds
[   91.370516] restraintd[4212]: ** Installing dependencies
[  110.108446] restraintd[4212]: ** Running task: 184687307 [/distribution/install/tag-repository]
[  112.548781] restraintd[4212]: ** Completed Task : 184687307

It would be nice if we had a similar capability in tmt/Testing Farm so that more details related to test execution is logged in dmesg which would then be propogated in the console log as well.

Similar issue https://github.com/teemtee/tmt/issues/1409


stax.serial.apply_fun is not a valid JAX type inside odeint

Hi,
FWIW, I'm using a self-built jax and jaxlib following instructions from #2083.
#
# Name                    Version                   Build  Channel
jax                       0.1.64                    <pip>
jaxlib                    0.1.45                    <pip>

I'm trying to do get gradients through an ODE solver. First, I ran into AssertionError issue  #2718 and I think I solved it by passing all the arguments directly into odeint.  Then I followed instructions to solve another AssertionError issue #2531 by doing vmap of grads instead of grads of vmap . Now I'm getting the following error.

Full trace back.

----> 1 batch_grad(batch_y0, batch_t, batch_y,[1.3,1.8], [U1,U2], [U1_params,U2_params])

~/Code/jax/jax/api.py in batched_fun(*args)
    805     _check_axis_sizes(in_tree, args_flat, in_axes_flat)
    806     out_flat = batching.batch(flat_fun, args_flat, in_axes_flat,
--> 807                               lambda: _flatten_axes(out_tree(), out_axes))
    808     return tree_unflatten(out_tree(), out_flat)
    809

~/Code/jax/jax/interpreters/batching.py in batch(fun, in_vals, in_dims, out_dim_dests)
     32   # executes a batched version of `fun` following out_dim_dests
     33   batched_fun = batch_fun(fun, in_dims, out_dim_dests)
---> 34   return batched_fun.call_wrapped(*in_vals)
     35
     36 @lu.transformation_with_aux

~/Code/jax/jax/linear_util.py in call_wrapped(self, *args, **kwargs)
    148     gen = None
    149
--> 150     ans = self.f(*args, **dict(self.params, **kwargs))
    151     del args
    152     while stack:

~/Code/jax/jax/api.py in value_and_grad_f(*args, **kwargs)
    436     f_partial, dyn_args = argnums_partial(f, argnums, args)
    437     if not has_aux:
--> 438       ans, vjp_py = _vjp(f_partial, *dyn_args)
    439     else:
    440       ans, vjp_py, aux = _vjp(f_partial, *dyn_args, has_aux=True)

~/Code/jax/jax/api.py in _vjp(fun, *primals, **kwargs)
   1437   if not has_aux:
   1438     flat_fun, out_tree = flatten_fun_nokwargs(fun, in_tree)
-> 1439     out_primal, out_vjp = ad.vjp(flat_fun, primals_flat)
   1440     out_tree = out_tree()
   1441   else:

~/Code/jax/jax/interpreters/ad.py in vjp(traceable, primals, has_aux)
    104 def vjp(traceable, primals, has_aux=False):
    105   if not has_aux:
--> 106     out_primals, pvals, jaxpr, consts = linearize(traceable, *primals)
    107   else:
    108     out_primals, pvals, jaxpr, consts, aux = linearize(traceable, *primals, has_aux=True)

~/Code/jax/jax/interpreters/ad.py in linearize(traceable, *primals, **kwargs)
     93   _, in_tree = tree_flatten(((primals, primals), {}))
     94   jvpfun_flat, out_tree = flatten_fun(jvpfun, in_tree)
---> 95   jaxpr, out_pvals, consts = pe.trace_to_jaxpr(jvpfun_flat, in_pvals)
     96   out_primals_pvals, out_tangents_pvals = tree_unflatten(out_tree(), out_pvals)
     97   assert all(out_primal_pval.is_known() for out_primal_pval in out_primals_pvals)

~/Code/jax/jax/interpreters/partial_eval.py in trace_to_jaxpr(fun, pvals, instantiate, stage_out, bottom, trace_type)
    435   with new_master(trace_type, bottom=bottom) as master:
    436     fun = trace_to_subjaxpr(fun, master, instantiate)
--> 437     jaxpr, (out_pvals, consts, env) = fun.call_wrapped(pvals)
    438     assert not env
    439     del master

~/Code/jax/jax/linear_util.py in call_wrapped(self, *args, **kwargs)
    148     gen = None
    149
--> 150     ans = self.f(*args, **dict(self.params, **kwargs))
    151     del args
    152     while stack:

~/Code/jax/jax/api.py in f_jitted(*args, **kwargs)
    152     flat_fun, out_tree = flatten_fun(f, in_tree)
    153     out = xla.xla_call(flat_fun, *args_flat, device=device, backend=backend,
--> 154                        name=flat_fun.__name__)
    155     return tree_unflatten(out_tree(), out)
    156

~/Code/jax/jax/core.py in _call_bind(processor, post_processor, primitive, f, *args, **params)
   1003     tracers = map(top_trace.full_raise, args)
   1004     process = getattr(top_trace, processor)
-> 1005     outs = map(full_lower, process(primitive, f, tracers, params))
   1006   return apply_todos(env_trace_todo(), outs)
   1007

~/Code/jax/jax/interpreters/ad.py in process_call(self, call_primitive, f, tracers, params)
    342     name = params.get('name', f.__name__)
    343     params = dict(params, name=wrap_name(name, 'jvp'))
--> 344     result = call_primitive.bind(f_jvp, *primals, *nonzero_tangents, **params)
    345     primal_out, tangent_out = tree_unflatten(out_tree_def(), result)
    346     return [JVPTracer(self, p, t) for p, t in zip(primal_out, tangent_out)]

~/Code/jax/jax/core.py in _call_bind(processor, post_processor, primitive, f, *args, **params)
   1003     tracers = map(top_trace.full_raise, args)
   1004     process = getattr(top_trace, processor)
-> 1005     outs = map(full_lower, process(primitive, f, tracers, params))
   1006   return apply_todos(env_trace_todo(), outs)
   1007

~/Code/jax/jax/interpreters/partial_eval.py in process_call(self, call_primitive, f, tracers, params)
    175     in_pvs, in_consts = unzip2([t.pval for t in tracers])
    176     fun, aux = partial_eval(f, self, in_pvs)
--> 177     out_flat = call_primitive.bind(fun, *in_consts, **params)
    178     out_pvs, jaxpr, env = aux()
    179     env_tracers = map(self.full_raise, env)

~/Code/jax/jax/core.py in _call_bind(processor, post_processor, primitive, f, *args, **params)
   1003     tracers = map(top_trace.full_raise, args)
   1004     process = getattr(top_trace, processor)
-> 1005     outs = map(full_lower, process(primitive, f, tracers, params))
   1006   return apply_todos(env_trace_todo(), outs)
   1007

~/Code/jax/jax/interpreters/batching.py in process_call(self, call_primitive, f, tracers, params)
    146     else:
    147       f, dims_out = batch_subtrace(f, self.master, dims)
--> 148       vals_out = call_primitive.bind(f, *vals, **params)
    149       return [BatchTracer(self, v, d) for v, d in zip(vals_out, dims_out())]
    150

~/Code/jax/jax/core.py in _call_bind(processor, post_processor, primitive, f, *args, **params)
    999   if top_trace is None:
   1000     with new_sublevel():
-> 1001       outs = primitive.impl(f, *args, **params)
   1002   else:
   1003     tracers = map(top_trace.full_raise, args)

~/Code/jax/jax/interpreters/xla.py in _xla_call_impl(fun, device, backend, name, *args)
    460
    461 def _xla_call_impl(fun: lu.WrappedFun, *args, device, backend, name):
--> 462   compiled_fun = _xla_callable(fun, device, backend, name, *map(arg_spec, args))
    463   try:
    464     return compiled_fun(*args)

~/Code/jax/jax/linear_util.py in memoized_fun(fun, *args)
    219       fun.populate_stores(stores)
    220     else:
--> 221       ans = call(fun, *args)
    222       cache[key] = (ans, fun.stores)
    223     return ans

~/Code/jax/jax/interpreters/xla.py in _xla_callable(fun, device, backend, name, *arg_specs)
    477   pvals: Sequence[pe.PartialVal] = [pe.PartialVal.unknown(aval) for aval in abstract_args]
    478   jaxpr, pvals, consts = pe.trace_to_jaxpr(
--> 479       fun, pvals, instantiate=False, stage_out=True, bottom=True)
    480
    481   _map(prefetch, it.chain(consts, jaxpr_literals(jaxpr)))

~/Code/jax/jax/interpreters/partial_eval.py in trace_to_jaxpr(fun, pvals, instantiate, stage_out, bottom, trace_type)
    435   with new_master(trace_type, bottom=bottom) as master:
    436     fun = trace_to_subjaxpr(fun, master, instantiate)
--> 437     jaxpr, (out_pvals, consts, env) = fun.call_wrapped(pvals)
    438     assert not env
    439     del master

~/Code/jax/jax/linear_util.py in call_wrapped(self, *args, **kwargs)
    148     gen = None
    149
--> 150     ans = self.f(*args, **dict(self.params, **kwargs))
    151     del args
    152     while stack:

<ipython-input-17-de50dc731d85> in loss(batch_y0, batch_t, batch_y, params, ufuncs, uparams)
      1 @partial(jit, static_argnums=(4,))
      2 def loss(batch_y0, batch_t, batch_y, params, ufuncs,uparams):
----> 3     pred_y = odeint(batch_y0,batch_t,params,ufuncs,uparams)
      4     loss = np.mean(np.abs(pred_y-batch_y))
      5     return loss

~/Code/jax/jax/experimental/ode.py in odeint(func, y0, t, rtol, atol, mxstep, *args)
    152     shape/structure as `y0` except with a new leading axis of length `len(t)`.
    153   """
--> 154   return _odeint_wrapper(func, rtol, atol, mxstep, y0, t, *args)
    155
    156 @partial(jax.jit, static_argnums=(0, 1, 2, 3))

~/Code/jax/jax/api.py in f_jitted(*args, **kwargs)
    149       dyn_args = args
    150     args_flat, in_tree = tree_flatten((dyn_args, kwargs))
--> 151     _check_args(args_flat)
    152     flat_fun, out_tree = flatten_fun(f, in_tree)
    153     out = xla.xla_call(flat_fun, *args_flat, device=device, backend=backend,

~/Code/jax/jax/api.py in _check_args(args)
   1558     if not (isinstance(arg, core.Tracer) or _valid_jaxtype(arg)):
   1559       raise TypeError("Argument '{}' of type {} is not a valid JAX type"
-> 1560                       .format(arg, type(arg)))
   1561
   1562 def _valid_jaxtype(arg):

TypeError: Argument '<function serial.<locals>.apply_fun at 0x2b06c3d6f7a0>' of type <class 'function'> is not a valid JAX type

I'm passing two stax.Serial modules with three Dense layers each as an input to odeint to integrate the Lotka-Volterra ODEs. ufuncs and uparams contains apply functions and params of stax.Serial module.
def lv_UDE(y,t,params,ufuncs,uparams):
    R, F = y
    alpha, theta = params
    U1, U2 = ufuncs
    U1_params, U2_params = uparams
    dRdt = alpha*R - U1(U1_params, y)
    dFdt = -theta*F + U2(U2_params, y)
    return np.array([dRdt,dFdt])

I'm trying to get gradients through an odeint w.r.t uparams. Is there a workaround to pass stax.Serial modules as an argument? Thanks in advance.

Could you please share a full example of how you get this error? Ideally something that I could copy into a terminal and run.

Hi,
I just noticed that even the non vmapped version of a function with stax.serial as an input errors out with the same error message.  Here's the full example. Thanks
import jax
import jax.numpy as np
import numpy as onp
from jax import random
from jax import grad, jit, vmap, value_and_grad
from jax.experimental.ode import odeint
from jax.experimental import stax
from functools import partial

def lv(y,t,params):
    """
    original lotka-volterra equations
    """
    R,F = y
    alpha, beta, gamma, theta = params
    dRdt = alpha*R - beta*R*F
    dFdt = gamma*R*F - theta*F
    return np.hstack([dRdt,dFdt])

t = np.linspace(0.,4.,num=1000)
y0 = np.array([0.44249296,4.6280594])

true_y = odeint(partial(lv,params=[1.3,0.9,0.5,1.8]),y0=y0,t=t) #training data generation

def lv_UDE(y,t,params,ufuncs,uparams):
    """
    additional parameters include stax.Serial
    modules and uparams associated with them
    """
    R, F = y
    alpha, theta = params
    U1, U2 = ufuncs
    U1_params, U2_params = uparams
    dRdt = alpha*R - U1(U1_params, y)
    dFdt = -theta*F + U2(U2_params, y)
    return np.hstack([dRdt,dFdt])

#two modules of stax Serial
U1_init, U1 = stax.serial(stax.Dense(32),stax.Tanh,
                            stax.Dense(32), stax.Tanh,
                            stax.Dense(32),stax.Tanh,
                           stax.Dense(1))
U2_init, U2 = stax.serial(stax.Dense(32),stax.Tanh,
                            stax.Dense(32), stax.Tanh,
                            stax.Dense(32),stax.Tanh,
                           stax.Dense(1))

key, subkey = random.split(random.PRNGKey(0))

_,U1_params = U1_init(key,(2,)) #inputs of size 2
_,U2_params = U2_init(subkey,(2,))
key,subkey = random.split(subkey)

def get_batch():
    """
    Get batches of inital conditions and
    times along with true time history
    """
    s = onp.random.choice(onp.arange(1000 - 20,
                        dtype=onp.int64), 20, replace=False)
    batch_y0 = true_y[s]  # (M, D)
    batch_t = t[:20]  # (T)
    batch_y = np.stack([true_y[s + i] for i in range(20)])  # (T, M, D)
    return batch_y0, batch_t, batch_y

def loss(batch_y0, batch_t, batch_y, params, ufuncs,uparams):
    """
    Mean absolute loss
    """
    pred_y = odeint(batch_y0,batch_t,params,ufuncs,uparams) # integrate using odeint
    loss = np.mean(np.abs(pred_y-batch_y)) #calculate loss
    return loss

grads = value_and_grad(loss,(5,)) #grads w.r.t uparams
batch_grad = vmap(grads,(0, None, None, None, None, None)) #vectorize over initial conditions (batch_y0)

grads(y0,t,true_y,[1.3,1.8], [U1,U2],
      [U1_params,U2_params]) #non vmappped  doesn't work
batch_grad(batch_y0, batch_t, batch_y,[1.3,1.8],
           [U1,U2], [U1_params,U2_params]) #vmap version same error

Hey @skrsna , thanks for the question!
In your example, it seems the lv_UDE is never called. Is that intentional?
The underlying issue here is that odeint can't take function-valued arguments in *args; those must be arrays (or potentially-nested containers of arrays, like potentially-nested lists/tuples/dicts of arrays). Instead of passing ufuncs via the *args of odeint, maybe you can instead just write something like:
def lv_UDE(ufuncs,y,t,params,uparams):  # moved ufuncs to front
    ...

odeint(partial(lv_UDE, ufuncs), ...)

WDYT?

It's possible we could support passing function-valued arguments in *args, but I'm not sure it'd be worth the extra complexity. We could at least raise a better error...

Hi @mattjj , thanks for the super fast response. My bad I forgot to add lv_UDE while refactoring the code to make it look nice. I'll try your solution and update the issue with the workaround. Thanks again.

Awesome, glad to hear that might help!
I just pushed #2931 to improve the error message. Now running your test program we get:
TypeError: The contents of odeint *args must be arrays or scalars, but got
<function serial.<locals>.apply_fun at 0x7f17fc69ca70>.

I also improved the docstring from this:
     *args: tuple of additional arguments for `func`.

To this:
    *args: tuple of additional arguments for `func`, which must be arrays
      scalars, or (nested) standard Python containers (tuples, lists, dicts,
      namedtuples, i.e. pytrees) of those types.

To make odeint handle those types in *args automatically, we could try to hoist non-arrays out of *args inside odeint. But maybe we can open a separate issue for that enhancement if it's a high priority for anyone. (@shoyer interested to hear if you have a strong opinion!)

I'm going to let #2931 close this issue, just so as to keep our issues under control. Let me know if that's a bad idea :)

Sure, please close the issue. I'm currently trying to try out your suggestions and I'll update the issue just in case if anyone else runs into the same error.

Hi, @mattjj , I tried your solution and it works seamlessly with vmap. Thanks again.


Trying to make pd.concat work with pyright strict mode.

Steps are:

[x] Add explicit anys
[ ] Add tests that should work already
[ ] Add explicit S1 overloads

The first step is done. The second step does not work because of mypy. Those test failures also happen without the explicit Any.

The first step is done. The second step does not work because of mypy. Those test failures also happen without the explicit Any.

I made a copy of your PR,  and played around with it.  I think this is a bug in mypy for which there is no easy workaround.
First, one change I did is to change the last overload of __new__() in series.pyi to return Series[Any] rather than Series.  That will make mypy recognize that series2 declared at https://github.com/JanEricNitschke/pandas-stubs/blob/5a53dfca1cfb04263d136f5f2fda3cafcfa15b5d/tests/test_pandas.py#L59
to be type Union[list[None | pd.Series[Any]].   Then if I remove the last overload for pd.concat(), mypy will get past the first test that uses series2.  But removing that overload causes other tests to fail.
So the issue here is that we have to return different results dependent on whether DataFrame is present in the Iterable passed to concat.   So we need that last overload, but when that overload is present, then mypy isn't matching the test pd.concat([None, series2]) to the correct overload.
This is one of the challenges with our stubs - making them work with pyright and mypy, when the two type checkers have different behaviors in certain cases, and, in some cases, it is due to mypy bugs.

Thanks for checking this out. Then i guess the best we can do here is just taking the first commit for now and keeping it at that until the behaviour between mypy and pyright is consistent or at least can be made compatible here.

I removed the second commit that added the tests and just kept it add the basic addition of the Any type parameters.


Cancel gRPC stream when client cancels.

Currently, a server would know the client cancelled when they attempt to write to the closed stream. Now, they can listen for the cancellation itself.

/cc @tobias-

@anuraaga Would this a bug or an improvement?

I guess bug, even though there's a workaround - the cancel should reach the stream observer correctly. Also added a method on ServerRule and used it.

@anuraaga I didn't realize that a new method had to be added to ServerRule. Thanks!

Thanks, @anuraaga !


MB-8836 add prime get move by locator

Description
This PR adds a new endpoint to the prime api to get a move by the mode code (aka locator).
Setup
To run the tests execute make server_test
To test the end point via postman complete the following steps:

Start your local server via make server_run
Open postman and hit fetchMTOUpdates
Copy a moveCode field from one of the returned moves
Enter the copied moveCode in the parameter for getMove and send

You should be returned a move and its details.
Code Review Verification Steps

[ ] Code follows the guidelines for Logging
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change

Messages

:book:
:link: MB-8836

  Generated by :no_entry_sign: dangerJS against e80c5d5c305bc6622623fc3aa8e8c8e9ef219e0a


Random network issue causes manager to get Unplanned exit

Hello!
I'm having a random problem that is becoming painful when the manager is running.
I don't know why, but sometimes it fails to get the address of the steam api. Until there, ok, but the problem with that
when this happens, this causes the manager to exit and stop working.
Follow goes the error:

Maybe it would be possible to handle this exception and make the manager retry the failed operation?
Right now, the manager just stop working and as it's not working, it doesn't start the dayz server =/
And the paing is that the server goes offline (normal reboot flow I implemented) and as the manager it's not started,
the server keeps offline and after some time offline, I need to manually restart the manager, which will start the dayz server!
Thank you!

same issue on Windows Server 2008

same issue on windows server 2019


Handle .eslintrc comma dangles?

The interactive linter was complaining with an Aurelia project and I tracked it down to a dangling comma in the .eslintrc file: https://github.com/aurelia/skeleton-navigation/blob/master/.eslintrc#L4
Any thoughts for supporting it?  http://eslint.org/docs/rules/comma-dangle.html

@stela5 FYI - dangling commas will cause problems in IE.  I am not sure what versions anymore but that was definitely an issue.
As far as interactive linter goes.  the fact that it complained about it makes me happy :)  It is catching problems and telling you about it.  Also, interactive linter uses https://github.com/zaach/jsonlint to do the JSON linting, so that wouldn't be an ESLint that complained about your .eslintrc file.  And I am not sure you turn off that behavior.
The eslint setting is for for javascript files...  And I would not recommend ignoring those warnings/errors. :)

Okay, thanks!


Use java.time.Clock in managed ledger

Rather than direct calls to currentTimeMillis. This allows us to test
time based functionallity with a mocked clock, and avoid Thread.sleep.

retest this please


Update Anti.lua

Made inappropriate animation playing kick players (why were we not punishing them for it???)

Decreased client timeout limit to 60 seconds (1 minute) (5 minutes is definitely too long Scel)

Too casual PR description thank you
You have re-implemented/undone the changes that were required to mostly prevent players from getting kicked accidentally, and you can't kick a player for an inappropriate animation. What if it's being used appropriately?

this is bad

Made inappropriate animation playing kick players (why were we not punishing them for it???)

There is an extremely small minority of very old games that use the animation. The current patch only stops other players from seeing it and displays a quick notification, which is adaquate and doesn't cause issues.

Decreased client timeout limit to 60 seconds (1 minute) (5 minutes is definitely too long Scel)

It's possible for the Roblox events to be throttled over a minute in very laggy situations. 5 minutes is sufficient but 1 minute has caused issues in the past.


Lambda Runtime Benchmarks

Add benchmarks used to choose which Lambda runtime to use (i.e. python lambda runtime vs. c++ lambda runtime).

merged into #61


Support for pickle or other ways to save combined data, including tensors, to a file

In a typical application of tensor network algorithms, one runs the code for a certain set of parameters. Then, the results (and possilby intermediate results) shall be stored. Since such a run can involve hundred and thousands of tensors, one does not want to save each one in its own file. It would be better to have one file which contains all relevant data. In this way, only one or few files are created for every set of parameters. Since such runs are typically repeated for many different parameters, many files are created already. For each run, the number of files to take track of or share with colleges should therefore be reduced.
It would be great to have a feature which can save multiple tensors along with other data to a file. This data could, for example, be a tensor network state consisting of many tensors, together with other parameters like energies, observables, iteration numbers, (imaginary) time, runtimes etc.
Also, it would be great if this could be done in a standardized way, so not every developer has its own very specific file format and way to save data.
As we discussed before, Pythons pickle provides a way to store the data. One class containing all the data to be stored can be created and then saved and loaded with pickle. For this, pickle needs to be supported by the classes in the library, especially for tensors.

In the past, we have HDF5 support to store tensors with a simple schema. HDF5 is universal and has good Python support. We can define a standardized schema to store all different types of data.


A Falco Ecosystem section

/area documentation
What would you like to be added:
A section in the Falco Website that gives a detailed list on existing Falco integrations, plugins, and other members of its ecosystem. This section should also outline how to create new integrations and plugins.
Why is this needed:
When deploying Falco, users need to make sure it connects well to their existing environments and alerting systems. This section will help them understand what is out there, and how to use it - as well as how to create new integrations.
Other aspects of ecosystem might also be covered, such as current Falco users and vendors, that give users a signal whether the project is used and supported by different entities.

Sharing the design proposal for Falco Ecosystem page.
This page has two main sections focused on:

Tech ecosystem, containing two tabs: integrations and plugins
Adopter ecosystem, containing two tabs: end user and vendors.

These two sections are visually separated to make the distinction between tech and adopter ecosystem.
The user is able to switch between tabs in each section. Each tab will contain CTA (call to action). For example, in "Integrations" we want users to easily request another output options. In "Plugins" we want users to find the most useful information or guide on how to build a new plugin and contribute to the community.
In "End user" section, users can add their logos or be featured in our detailed case studies. For vendors who have complete case studies, there is additional blog-like page. In "Vendors" tab, vendors can add logos and description on how they use Falco in their own offerings.
The next section is FAQ related to the topics on the page. The bottom of the page leaves more breadcrumbs of what users can read next.
As usual, we are working on the implementation and the PR will be submitted shortly. Please, share your feedback soon :)
ECOSYSTEM - integrations.pdf
ECOSYSTEM - plugins.pdf
ECOSYSTEM - stories.pdf

Closing this issue as it is complete: https://github.com/falcosecurity/falco-website/pull/837


Missing redirections

https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-7-1
This link is used in the description of this youtube video from dotNET channel. One of the comments is complaining that the link is broken. So a redirection is needed.

Thanks for noting this @Youssef1313
I've just submitted #21059 to address this.


[Hue] ...

Extension – Hue
Author:

Describe the feature and the current behavior/state.
Who will benefit with this feature?
Any Other info.

Sorry, accidentally miscreated empty issue.


operator-sdk new failed

What did you do?
I ran the following command and it gives me timeout error every time -
operator-sdk new cnat-operator --repo github.com/riponbanik/k8s-example/cnat-operator
INFO[0000] Creating new Go operator 'cnat-operator'.
INFO[0000] Created go.mod
INFO[0000] Created tools.go
INFO[0000] Created cmd/manager/main.go
INFO[0000] Created build/Dockerfile
INFO[0000] Created build/bin/entrypoint
INFO[0000] Created build/bin/user_setup
INFO[0000] Created deploy/service_account.yaml
INFO[0000] Created deploy/role.yaml
INFO[0000] Created deploy/role_binding.yaml
INFO[0000] Created deploy/operator.yaml
INFO[0000] Created pkg/apis/apis.go
INFO[0000] Created pkg/controller/controller.go
INFO[0000] Created version/version.go
INFO[0000] Created .gitignore
INFO[0000] Validating project
go<EMAIL_ADDRESS>Get<EMAIL_ADDRESS>dial tcp: i/o timeout
Error: failed to exec []string{"go", "build", "./..."}: exit status 1
What did you expect to see?
Operator creation pass without any error
What did you see instead? Under which circumstances?
go<EMAIL_ADDRESS>Get<EMAIL_ADDRESS>dial tcp: i/o timeout
Environment

operator-sdk version:
operator-sdk version: "v0.12.0", commit: "2445fcda834ca4b7cf0d6c38fba6317fb219b469", go version: "go1.13.3 linux/amd64"

go version:

go version go1.13.3 linux/amd64

Kubernetes version information:
Client Version: version.Info{Major:"1", Minor:"14+", GitVersion:"v1.14.6-eks-5047ed", GitCommit:"5047edce664593832e9b889e447ac75ab104f527", GitTreeState:"clean", BuildDate:"2019-08-22T06:44:59Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.2", GitCommit:"c97fe5036ef3df2967d086711e6c0c405941e14b", GitTreeState:"clean", BuildDate:"2019-10-15T19:09:08Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}

Kubernetes cluster kind:
minikube

Are you writing your operator in ansible, helm, or go?
go

Possible Solution
N/A
Additional context
Learning on how to build operator

Shows that you have some network issues locally. See dial tcp: i/o timeout

@camilamacedo86  Does not seem to be network issue. I am using 50MBPS internet connection

Hi @riponbanik,
See that I am not facing any issue.
$ operator-sdk new cnat-operator --repo github.com/riponbanik/k8s-example/cnat-operator
INFO[0000] Creating new Go operator 'cnat-operator'.
INFO[0000] Created go.mod
INFO[0000] Created tools.go
INFO[0000] Created cmd/manager/main.go
INFO[0000] Created build/Dockerfile
INFO[0000] Created build/bin/entrypoint
INFO[0000] Created build/bin/user_setup
INFO[0000] Created deploy/service_account.yaml
INFO[0000] Created deploy/role.yaml
INFO[0000] Created deploy/role_binding.yaml
INFO[0000] Created deploy/operator.yaml
INFO[0000] Created pkg/apis/apis.go
INFO[0000] Created pkg/controller/controller.go
INFO[0000] Created version/version.go
INFO[0000] Created .gitignore
INFO[0000] Validating project
go: finding github.com/operator-framework/operator-sdk master
go: downloading github.com/operator-framework/operator-sdk v0.12.1-0.20191205200208-31846a5e480e
go: extracting github.com/operator-framework/operator-sdk v0.12.1-0.20191205200208-31846a5e480e
INFO[0006] Project validation successful.
INFO[0006] Project creation complete.

Then check that when it will get the module in your logs has a TCP timeout issue

go<EMAIL_ADDRESS>Get<EMAIL_ADDRESS>dial tcp: i/o timeout

Which means that was that from your computer is has been not possible to get the module from the https://proxy.golang.org/.
IMPORTANT
Does not seem to be a network issue. I am using 50MBPS internet connection. I changed to use go version 12 and that issue is gone. Now I am seeing timeout for some of the downloads.

The version 1.12+ of go is not compatible with the latest version of the operator-SDK
The 1.13 adopted by default the Proxy. So, check if you have any firewall which is blocking you to get things from https://proxy.golang.org/ and your GOPROXY env var. Can you print here the go env used by you?

@camilamacedo86 Thanks. Strange things, I never had this before. I run this from a vm virtual box and it used to download all go modules perfectly. Here is go env -
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/ripon/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/ripon/ws/build/golang"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build773677291=/tmp/go-build -gno-record-gcc-switches"

@camilamacedo86  I have tested with Go version 12.14 and operator-sdk 11.0. I am not seeing any timeout issue, but the following

operator-sdk new
..............
go: error loading module requirements
Error: failed to exec []string{"go", "build", "./..."}: exit status 1
Usage:
operator-sdk new  [flags]

operator-sdk add api

INFO[0043] Created deploy/crds/cnat.programming-kubernetes.info_v1alpha1_at_cr.yaml
Error: api scaffold failed: (error loading API roots ["/home/riponb/ws/k8s/cnat-operator/pkg/apis/cnat/v1alpha1"]: go [list -e -json -compiled=true -test=false -export=false -deps=true -find=false -tags ignore_autogenerated -- /home/riponb/ws/k8s/cnat-operator/pkg/apis/cnat/v1alpha1]: exit status 1: go: finding github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db
go: finding github.com/gorilla/mux v1.6.2

No error for operator-sdk add controller

HI @riponbanik,
See that you face the same issue. You are unable to download the go modules.
go: error loading module requirements
Following some suggestions and info.

The go does not work well with more than one version installed locally, so let's try o fix your setup for the latest version with go  1.13+. Could you please remove all go bins that you have and re-duo your local setup for the latest version?
Then, could you please run the command go env and add the output here.
Note that in the go1.13+ the GOPROXY="" by default should be GOPROXY="https://proxy.golang.org,direct"
After removing all try to run the command line run go get -u golang.org/x/lint/golint only. It should work with success if all is ok.
If it works, means that you are able to download the modules. Then, install the latest version of the SDK and try again.
If it do not work, please put here the result of  go env.Are you in a private LAN or are you trying it from home? If you are in a private LAN, for example in the work could you check with the admins if it has some firewall rules in place which may are be blocking you?

Please, let me know if it works.

@camilamacedo86 Thanks for your suggestion.  Let's try:

Ensure that you have just 1 go version installed (1.13+)
Clean your local env by:

// remove all inside of $GOPATH/bin/*

Than;

$ export GO111MODULE=off
$ go clean --modcache
$ go clean
$ export GO111MODULE=on

And try again without the option --repo=github.com/riponbanik/k8s-example/cnat-operator
If it doesn't work please put here;

operator-sdk version
go version
the path that you are doing it?

@camilamacedo86 Thanks for assistance to troubleshoot the issue. None of it fixed my issue in my office laptop. I have got a pc at home where I did the installation and it succeeded. It could be the proxy/file system scanner (Application Controll) slowing down and thus timing out. Is there any way to increase timeout or no of retries?

Hi @riponbanik,
Really thank you for let me know. So, shows that my first guess was accurate. You are in some private LAN where a firewall rule is blocking it. I do not think that increase the time will solve it. I'd recommend you speak with the admins of this LAN. They can help find out what rule has been violated with and change the rules to allow you to do it in their network.
I am closing this as sort out.
Please, feel free to re-open if you think that is required.

just used --vendor and worked :)