More than one level deeply nested views get their posSize messed up when they're not immediately added to a parent view.

The following code results in a wrongly placed TextEditor. The vertical scroller is not visible, and you can't get to the top of the text.
This makes it hard to impossible to create more complex groups of views. I will try to make a more concrete example of the problem I am seeing.
from vanilla import *

w = Window((500, 500), "Test", minSize=(300, 300))

group1 = Group((10, 10, -10, -10))
group2 = Group((20, 20, -20, -20))
group2.textEditor = TextEditor((0, 0, 0, 0), "abcdefgh " * 1000)

# exchange these two lines and all is fine, but it's not always possible to do that
group1.group2 = group2
w.group1 = group1

w.open()

Here's a second example of the behavior. Note how the layout is wrong in the second tab.
from vanilla import *

class SliderWithEditField(Group):
    def __init__(self, posSize):
        super(SliderWithEditField, self).__init__(posSize)
        self.slider = Slider((0, 0, -80, 0))
        self.editField = EditText((-60, 0, 0, 0))

w = Window((400, 200), "Test", minSize=(200, 100))

w.tabs = Tabs((10, 10, -10, -10), ["One", "Two"])
w.tabs[0].slider = SliderWithEditField((0, 0, 0, 50))
w.tabs[1].slider = SliderWithEditField((0, 0, 0, 50))

w.open()

Maybe VanillaBaseObject._setFrame() needs to be called recursively on its children, I'll try to investigate.

this solves it:
but maybe it only has to happen before a window or a sheet will open, otherwise this will loop through all views each time a view is been added to another view
from vanilla import *

class SliderWithEditField(Group):
    def __init__(self, posSize):
        super(SliderWithEditField, self).__init__(posSize)
        self.slider = Slider((0, 0, -80, 0))
        self.editField = EditText((-60, 0, 0, 0))

w = Window((400, 200), "Test", minSize=(200, 100))

w.tabs = Tabs((10, 10, -10, -10), ["One", "Two"])
w.tabs[0].slider = SliderWithEditField((0, 0, 0, 50))
w.tabs[1].slider = SliderWithEditField((0, 0, 0, 50))

def recursiveSetFrame(view):
    for subview in view.subviews():
        if hasattr(subview, "vanillaWrapper"):
            obj = subview.vanillaWrapper()
            obj._setFrame(view.frame())
            print view.frame()

        recursieveSetFrame(subview)

recursiveSetFrame(w.tabs[1]._getContentView())

w.open()

maybe something similar as _breakCycles needs to be setup just before a view will be displayed
https://github.com/typesupply/vanilla/blob/master/Lib/vanilla/vanillaBase.py#L254
_breakCycles feels similar but inverted

I was just playing with a recursive _setFrame() and indeed found that fixed the second example. Hoewever, it doesn't fix the example with a TextEditor:
from vanilla import *

w = Window((500, 500), "Test", minSize=(300, 300))

group1 = Group((10, 10, -10, -10))
group2 = Group((20, 20, -20, -20))
group2.textEditor = TextEditor((0, 0, 0, 0), "abcdefgh " * 1000)

group1.group2 = group2
w.group1 = group1

def recursiveSetFrame(view):
    for subview in view.subviews():
        if hasattr(subview, "vanillaWrapper"):
            obj = subview.vanillaWrapper()
            obj._setFrame(view.frame())
            print view.frame()

        recursiveSetFrame(subview)

recursiveSetFrame(w.group1._getContentView())

w.open()

pff
and this works
from vanilla import *

w = Window((500, 500), "Test", minSize=(300, 300))

group1 = Group((10, 10, -10, -10))
group2 = Group((20, 20, -20, -20))
group2.textEditor = TextEditor((0, 0, 0, 0), "abcdefgh " * 1000)

# exchange these two lines and all is fine, but it's not always possible to do that
group1.group2 = group2
w.group1 = group1

def recursiveSetFrame(view):
    for subview in view.subviews():
        if hasattr(subview, "vanillaWrapper"):
            obj = subview.vanillaWrapper()
            obj.setPosSize(obj.getPosSize())

        recursiveSetFrame(subview)

recursiveSetFrame(w._getContentView())

w.open()

Thanks, I'll try to make sense of it. Unless you beat me to it, I'll make a pull request.

found the weird thingy:
def recursiveSetFrame(view):
    for subview in view.subviews():
        if hasattr(subview, "vanillaWrapper"):
            obj = subview.vanillaWrapper()
            parent = obj._getContentView().superview()
            print parent == view # the content view super view is not always the same as the nsview sub view parent
            obj._setFrame(parent.frame())
        recursiveSetFrame(subview)

i would vote for something like
_setupCycles()
that could solve the specific issues like in tabs see https://github.com/typesupply/vanilla/blob/master/Lib/vanilla/vanillaTabs.py#L137-L140
most of  the views will just work fine with obj._contentView and the nsview.subviews() but some like tabs (and maybe split view will not...)

Yeah, _getContentView() doesnt always return _nsObject...

I'm searching further and I notice the problem is (probably) caused by the fact that an NSView has a frame of ((0, 0), (0, 0)) by default. The autosize stuff only seems to work well once the frame has been set to something "decent". I'm now experimenting with setting a default size right after alloc(), and that seems to help.

@typemytype, please check #48. It's a little ugly, but shows that a secursive _setFrame() is not needed.

Ouch, my "fix" causes https://github.com/typemytype/drawbot/issues/155


some wonderful algorithm

https://github.com/pathak22/noreward-rl
https://pathak22.github.io/noreward-rl/
realAI for Deep Reinforcement Learning
ICM algorithm ? （Curiosity-driven Exploration for Deep Reinforcement Learning - realAI

It is currently not planned, but we are open for contributions

https://github.com/openai/baselines/tree/master/baselines/her

We have an implementation of HER in a private branch, maybe will come with next release.

world models  https://worldmodels.github.io

Thanks for the references. We add new algorithms to Coach from time to time, but the field is growing too fast for us to add all of them. We are open for contributions and encourage you to add new implementations to Coach and submit them as PRs. I am closing this issue for now. Thanks again!

https://github.com/vitchyr/rlkit/blob/master/rlkit/torch/tdm/TDMs.md

https://github.com/createamind/Imagination-Augmented-Agents/blob/master/README.md

https://github.com/createamind/Imagination-Augmented-Agents/blob/master/README.md


Automate Louketo releases (#615)

Testing this PR

Download the *.yml files from this PR and add it to .github/workflows into the fork of
Louketo
Push the changes to master at your fork
Go to https://github.com//louketo-proxy/releases
Draft a new release
Specify the tag version
Publish the release

Nice. LGTM as a starting point. In time you may need to add more things to a release like publish containers, update website, etc..

Converted to draft because I will add documentation to the process and also record a demo.

@stianst added a releases doc and also a video with a demo.

@ASzc I totally understand your point, but we still have the Makefile which is the "command-line" way of doing this. The purpose of this PR is to reduce the complexity while doing releases, but we can improve the process and discuss the productization details later on.
Meanwhile, I'd appreciate your review and if you could give it a try and report if something is not working on your end.

@abstractj GitHub doesn't seem to like it if one pushes in the workflows from outside. I tried to add in a workflow through the online editor too, and it doesn't seem to actually add the workflow. I only have the initial example workflow.
Drafting a release doesn't seem to attach binaries automatically: https://github.com/ASzc/louketo-proxy/releases/tag/test

@abstractj GitHub doesn't seem to like it if one pushes in the workflows from outside. I tried to add in a workflow through the online editor too, and it doesn't seem to actually add the workflow. I only have the initial example workflow.
Drafting a release doesn't seem to attach binaries automatically: https://github.com/ASzc/louketo-proxy/releases/tag/test

@ASzc I believe that happened because of the specified version, which is a non valid Semver. See the error from your logs:
 release failed after 0.34s error=failed to parse tag test as semver: Invalid Semantic Version

Could you please give it another try with something like X.Y.Z and if that does not work we can jump in a call to check what's wrong.

@abstractj That seems to have worked here


⚠ Jenkins Plugins Artifactory has degraded performance

In c16ee1b, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1200 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 1305de7 after 31 minutes.


About the parameters["no_augmentation"]

It seems that, in train_segthor.py, no augmentation is applied to the input images. But when some RandomAffine transformations are applied to the input images in the training stage, directly using the affined output to correct the noisy labels seems very unreasonable. I hope to know how to fix this problem in the current codes.

This actually concerns how do you want to do the inference that is used for annotation correction. As mentioned in Appendx C.1. We have two options for the segTHOR dataset:
• Iteration: the outputs are computed after each training iteration.
• Epoch: the outputs are computed at the end of each training epoch.
For the epoch update, this augmentation problem would not be an issue.
For the iteration update, if augmentation is added, it is somehow important to notice whether the augmentation is investable. For some augmentation like cropping, it can happen that some object region is cut off and not able to recover by reverse cropping. Therefore, you can choose not to correct the annotation in those regions.
Let me know if you have more questions.

Thanks a lot for your reply! It seems a little troublesome to add augmentations in the iteration update mode because the random augmentation parameters need to be saved for the reverse augmentation in the label correction stage.


After installation on Mac it can not display the diagram-tabs

Describe the Bug
Tab can not be displayed after Installation. Camunda Modeller Version 2.0.2 worked before.
Steps to Reproduce

downloaded *.dmg / or *.zip from https://camunda.com/download/modeler/
Install it on Mac
Tab can not be displayed

I found the log file:

Expected Behavior
It should show the diagram in this tab.
Environment

OS: MacOS 10.14.5
Camunda Modeler Version: 3.4.1

Ok, it seems I have incompatible Plugins - After Disable them it worked again.


New responsive classes

Currently there is no way to hide an element on a breakpoint and above, eg.: medium size and above. Given this issue, a good enhancement would be having some responsive classes. I created and I'm proposing the following classes:
md-hide-#{type}-and-up

Where #{type} can be: xsmall, small, medium, large, xlarge.
The media queries that controls those classes are:
@mixin layout-xsmall-and-up {
  @media (min-width: #{$breakpoint-xsmall - 300px}) { // 300px
    @content;
  }
}

@mixin layout-small-and-up {
  @media (min-width: #{$breakpoint-small - 300px}) { // 660px
    @content;
  }
}

@mixin layout-medium-and-up {
  @media (min-width: #{$breakpoint-small - 16px}) { //  944px
    @content;
  }
}

@mixin layout-large-and-up {
  @media (min-width: #{$breakpoint-medium - 16px}) { // 1264px
    @content;
  }
}

@mixin layout-xlarge-and-up {
  @media (min-width: #{$breakpoint-large - 16px}) { // 1904px
    @content;
  }
}

Why?
Like I said before, if I want to show an element only on medium screens, right now, there is no way of doing it, based on the documentation:

Hide a layout container/child on screen sizes less than or equal to given breakpoint.

I had to implement it today to show/hide a fab button. I think it will be a good asset to the project.

Hi @pablohpsilva
I liked it a lot. It will be a great feature. I just want to discuss one thing:
This should be applied to flex and other options too. Like: md-flex-medium-and-up or md-column-small-and-up.
What do you think? Can you do this?

Hello @marcosmoura
Thank you! I think I can do this. It's kinda late right now, but I will work on that ASAP.

Good morning @marcosmoura . Now that I'm thinking straight, I could not see a reason to add those classes you asked for other than just having it hanging around.
My thought process was:

If I have a class that will hide an element no matter what happens given the screen size, why should I bother on having auxiliaries classes that would do exactly the same with a different name?

What do you think about it?

No. Sorry. I think I wasn't that clear. My idea is:
If we have new classes to hide elements to breakpoints greater than a given breakpoint, why not having classes to apply flex sizes and to change columns to rows? I mean, if I want to develop a mobile first application, I would use those new classes/parameters. Did you get it?

Oohhh... That's brilliant @marcosmoura !
Alright, I can do this. Could you please accept this PR? I'll create another one with the other classes.

Yep! Approved and Merged!

@marcosmoura Will you merge the develop branch on master soon?
I'm just asking (so I can remove my helpers css and use vue-material's)...

@pablohpsilva No. The master changed a lot due to some build errors. I will merge the develop only after the 0.7.0 release.

@pablohpsilva there is exist md-hide-#{type}, why not create md-show-#{type} ? right now I am using my own css for my simple usage..
.small-visible {
  @media (min-width: 500px) {
    display: none;
  }
}

.small-hide {
  @media (max-width: 500px) {
    display: none;
  }
}

Hello @primadi ! How are you?
If you want to hide something using vue-material, you can use md-hide-medium, for example. That class will hide all elements on xs, sm, and medium screen. This PR was made to create the opposite effect. Classes like md-hide-medium-and-up will hide all elements on md, lg screens.
I got what you're saying. You can create an issue asking this enhancement or make a PR yourself! :D
Feel free to choose. Thank you for your help, @primadi

Hello @pablohpsilva
I have 2 md-icon, one has class md-hide-medium, this icon hide on 1280px and down.
the other icon has class md-hide-medium-and-up, this icon hide on 960px and up.
Is this intended behaviour ?
Thanks.

Yes, @primadi you're right :D
for md-hide-medium you have the rule (max-width: 1280px)
for the md-hide-medium-and-up you have the rule (min-width: 960px)


Unable to create new email domain - internal server error. Compose method.

So on step 2 of the domain wizard, it says to create an MX record pointing level 0 to “.”, which I know is incorrect. It should show the domain name.
In step 4, when I click finish, I am told “internal server error”.
I investigated the issue, and noticed none of the containers seem to have DNS resolution. /etc/resolv.conf in the mail container has DNS pointing to loopback, however, there is no process listening there. I suspect the same in the other containers. I highly suspect this is related to the server error mentioned above.

Hello @aaronouthier Please try to restart mail server container sudo docker restart onlyoffice-mail-server, and try again.

Ok, so restarting mail server did cause dns to start working.
However, I still am having the same symptoms with creating a new domain.
Looking at the logs, it appears there is an authentication issue between mail server and mysql server.
From the mail server logs: ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client  appears a few times.
Another line reads: Waiting for external MySql response.
I am going to see if I can update mysql client safely.

I am not able to do anything with the mail server as far as updates, as it is based on CentOS 6, which is now obsolete.
Have the devs been able to confirm this as a bug or reproduce the issue on your end?
If not, it could be user error. If so, then what are my options to troubleshoot?

Please check the table mail_server_server in the database, column mx_record, if your domain is there. If not, try adding.

Unfortunately, I know almost nothing about using databases, and have not the skills to do as requested.

After 2 hours, I was able to figure out how to show the columns in that database table.
Field   Type    Null    Key     Default Extra id      int     NO      PRI     NULL    auto_increment mx_record       varchar(128)    NO connection_string       text    NO              NULL server_type     int     NO      MUL     NULL smtp_settings_id        int     NO              NULL imap_settings_id        int     NO              NULL

It looks like something went wrong during the installation process and your mail server is missing a connection string. Try reconnecting the mail server in the portal settings(/Management.aspx?type=20) by specifying its IP address (you can check it through the docker inspect onlyoffice-mail-server).

So, I have now started over from scratch, by reinstalling the OS on the entire machine. It has been about 8 hours now, but OnlyOffice is still setting up “The portal start up process might take some time, please wait”.
I am noticing in the mail server logs docker-compose logs onlyoffice-mail-server that I am getting authentication errors connecting to the mysql server, as I noted previously.

Attaching to onlyoffice-mail-server
onlyoffice-mail-server         | [ INFO ] Checking configuration file: /usr/src/iRedMail/config ... [FOUND]
onlyoffice-mail-server         | [ INFO ] Import installation process status from file: /usr/src/iRedMail/runtime/install.status.
onlyoffice-mail-server         | Waiting for external MySql response
onlyoffice-mail-server         |
onlyoffice-mail-server         |
onlyoffice-mail-server         |
onlyoffice-mail-server         |
onlyoffice-mail-server         | ********************************************************************
onlyoffice-mail-server         | * Start iRedMail Configurations
onlyoffice-mail-server         | ********************************************************************
onlyoffice-mail-server         | [ INFO ] Create required system accounts: vmail, iredapd.
onlyoffice-mail-server         | [ INFO ] Configure Apache web server and PHP.
onlyoffice-mail-server         | [ INFO ] Configure PHP.
onlyoffice-mail-server         | [ INFO ] Configure MySQL database server.
onlyoffice-mail-server         | ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client
onlyoffice-mail-server         | [ INFO ] Configure Postfix (Message Transfer Agent).
onlyoffice-mail-server         | [ INFO ] Configure Cluebringer (postfix policy server).
onlyoffice-mail-server         | ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client
onlyoffice-mail-server         | [ INFO ] Configure Dovecot (pop3/imap/managesieve server).
onlyoffice-mail-server         | [ INFO ] Configure ClamAV (anti-virus toolkit).
onlyoffice-mail-server         | [ INFO ] Configure Amavisd-new (interface between MTA and content checkers).
onlyoffice-mail-server         | ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client
onlyoffice-mail-server         | ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client
onlyoffice-mail-server         | [ INFO ] Configure SpamAssassin (content-based spam filter).
onlyoffice-mail-server         | ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client
onlyoffice-mail-server         | ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client
onlyoffice-mail-server         | ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client
onlyoffice-mail-server         | [ INFO ] Configure OpenDkim.
onlyoffice-mail-server         | ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client
onlyoffice-mail-server         | [ INFO ] Configure Fail2ban (authentication failure monitor).
onlyoffice-mail-server         | [ INFO ] Configure Server API.
onlyoffice-mail-server         | ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client
onlyoffice-mail-server         | rake aborted!
onlyoffice-mail-server         | Mysql2::Error: Client does not support authentication protocol requested by server; consider upgrading MySQL client
onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/mysql2-0.3.21/lib/mysql2/client.rb:70:in connect' onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/mysql2-0.3.21/lib/mysql2/client.rb:70:in initialize'
onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in new' onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in mysql2_connection'
onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/abstract/connection_pool.rb:315:in new_connection' onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/abstract/connection_pool.rb:325:in checkout_new_connection'
onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/abstract/connection_pool.rb:247:in block (2 levels) in checkout' onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:in loop'
onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:in block in checkout' onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/abstract/connection_pool.rb:239:in checkout'
onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/abstract/connection_pool.rb:102:in block in connection' onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/abstract/connection_pool.rb:101:in connection'
onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/abstract/connection_pool.rb:410:in retrieve_connection' onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/abstract/connection_specification.rb:171:in retrieve_connection'
onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/abstract/connection_specification.rb:145:in connection' onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/model_schema.rb:229:in columns'
onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/schema_plus-1.5.3/lib/schema_plus/active_record/base.rb:23:in columns_with_schema_plus' onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/model_schema.rb:244:in column_defaults'
onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/base.rb:482:in initialize' onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/persistence.rb:44:in new'
onlyoffice-mail-server         | /usr/local/rvm/gems/ruby-2.3.3/gems/activerecord-<IP_ADDRESS>/lib/active_record/persistence.rb:44:in create' onlyoffice-mail-server         | /var/www/html/mailserver_api-2.0.1/Rakefile:8:in block (2 levels) in <top (required)>'
onlyoffice-mail-server         | Tasks: TOP => api_key:generate
onlyoffice-mail-server         | (See full trace by running task with --trace)
onlyoffice-mail-server         | [ INFO ] Configure SpamTrainer.
onlyoffice-mail-server         | [ INFO ] Configure Awstats (logfile analyzer for mail and web server).
onlyoffice-mail-server         |
onlyoffice-mail-server         | *************************************************************************
onlyoffice-mail-server         | * iRedMail-0.9.2 installation and configuration complete.
onlyoffice-mail-server         | *************************************************************************
onlyoffice-mail-server         |
onlyoffice-mail-server         | [ INFO ] Disable SELinux in /etc/selinux/config.
onlyoffice-mail-server         | [ INFO ] Removing package(s): sendmail
onlyoffice-mail-server         | Loaded plugins: fastestmirror, ovl
onlyoffice-mail-server         | Setting up Remove Process
onlyoffice-mail-server         | Resolving Dependencies
onlyoffice-mail-server         | --> Running transaction check
onlyoffice-mail-server         | ---> Package sendmail.x86_64 0:8.14.4-9.el6_8.1 will be erased
onlyoffice-mail-server         | --> Processing Dependency: sendmail = 8.14.4-9.el6_8.1 for package: sendmail-devel-8.14.4-9.el6_8.1.x86_64
onlyoffice-mail-server         | --> Running transaction check
onlyoffice-mail-server         | ---> Package sendmail-devel.x86_64 0:8.14.4-9.el6_8.1 will be erased
onlyoffice-mail-server         | --> Finished Dependency Resolution
onlyoffice-mail-server         |
onlyoffice-mail-server         | Dependencies Resolved
onlyoffice-mail-server         |
onlyoffice-mail-server         | ================================================================================
onlyoffice-mail-server         |  Package               Arch          Version                 Repository    Size
onlyoffice-mail-server         | ================================================================================
onlyoffice-mail-server         | Removing:
onlyoffice-mail-server         |  sendmail              x86_64        8.14.4-9.el6_8.1        @base        1.5 M
onlyoffice-mail-server         | Removing for dependencies:
onlyoffice-mail-server         |  sendmail-devel        x86_64        8.14.4-9.el6_8.1        @base        254 k
onlyoffice-mail-server         |
onlyoffice-mail-server         | Transaction Summary
onlyoffice-mail-server         | ================================================================================
onlyoffice-mail-server         | Remove        2 Package(s)
onlyoffice-mail-server         |
onlyoffice-mail-server         | Installed size: 1.8 M
onlyoffice-mail-server         | Downloading Packages:
onlyoffice-mail-server         | Running rpm_check_debug
onlyoffice-mail-server         | Running Transaction Test
onlyoffice-mail-server         | Transaction Test Succeeded
onlyoffice-mail-server         | Running Transaction
onlyoffice-mail-server         | Warning: RPMDB altered outside of yum.
Erasing    : sendmail-devel-8.14.4-9.el6_8.1.x86_64                       1/2
Erasing    : sendmail-8.14.4-9.el6_8.1.x86_64                             2/2
onlyoffice-mail-server         | warning:    erase unlink of /var/log/mail/statistics failed: No such file or directory
onlyoffice-mail-server         | warning:    erase unlink of /var/log/mail failed: No such file or directory
Verifying  : sendmail-devel-8.14.4-9.el6_8.1.x86_64                       1/2
Verifying  : sendmail-8.14.4-9.el6_8.1.x86_64                             2/2
onlyoffice-mail-server         |
onlyoffice-mail-server         | Removed:
onlyoffice-mail-server         |   sendmail.x86_64 0:8.14.4-9.el6_8.1
onlyoffice-mail-server         |
onlyoffice-mail-server         | Dependency Removed:
onlyoffice-mail-server         |   sendmail-devel.x86_64 0:8.14.4-9.el6_8.1
onlyoffice-mail-server         |
onlyoffice-mail-server         | Complete!
onlyoffice-mail-server         | [ INFO ] Copy firewall sample rules: /etc/sysconfig/iptables.
onlyoffice-mail-server         | [ INFO ] Restarting firewall ...
onlyoffice-mail-server         | [ INFO ] Copy MySQL sample file: /etc/my.cnf.
onlyoffice-mail-server         | [ INFO ] Enable SSL support for MySQL server.
onlyoffice-mail-server         | ********************************************************************
onlyoffice-mail-server         | * First mail account credential:
onlyoffice-mail-server         | *
onlyoffice-mail-server         | *   o Username<EMAIL_ADDRESS>onlyoffice-mail-server         | *   o Password: NzhhNTg4MWY1
onlyoffice-mail-server         | *
onlyoffice-mail-server         | *
onlyoffice-mail-server         | ********************************************************************
onlyoffice-mail-server         | * Congratulations, mail server setup completed successfully. Please
onlyoffice-mail-server         | * read below file for more information:
onlyoffice-mail-server         | *
onlyoffice-mail-server         | *   - /usr/src/iRedMail/iRedMail.tips
onlyoffice-mail-server         | *
onlyoffice-mail-server         | * And it's sent to your mail account<EMAIL_ADDRESS>onlyoffice-mail-server         | *
onlyoffice-mail-server         | ********************* WARNING **************************************
onlyoffice-mail-server         | Waiting for external MySql response
onlyoffice-mail-server         | [ INFO ] Configure MySQL database server.
onlyoffice-mail-server         | ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client
onlyoffice-mail-server         | Starting crond:           [  OK  ]
onlyoffice-mail-server         | Starting Dovecot Imap:    [  OK  ]
onlyoffice-mail-server         | Starting system logger:   [  OK  ]
onlyoffice-mail-server         | Starting amavisd:         [  OK  ]
onlyoffice-mail-server         |
onlyoffice-mail-server         | Starting postfix:         [  OK  ]
onlyoffice-mail-server         | Starting cbpolicyd:       [  OK  ]
onlyoffice-mail-server         | Starting Clam AntiVirus Daemon: LibClamAV Warning: **************************************************
onlyoffice-mail-server         | LibClamAV Warning: ***  The virus database is older than 7 days!  ***
onlyoffice-mail-server         | LibClamAV Warning: ***   Please update it as soon as possible.    ***
onlyoffice-mail-server         | LibClamAV Warning: **************************************************
onlyoffice-mail-server         |                           [  OK  ]
onlyoffice-mail-server         | Starting clamd.amavisd: LibClamAV Warning: **************************************************
onlyoffice-mail-server         | LibClamAV Warning: ***  The virus database is older than 7 days!  ***
onlyoffice-mail-server         | LibClamAV Warning: ***   Please update it as soon as possible.    ***
onlyoffice-mail-server         | LibClamAV Warning: **************************************************
onlyoffice-mail-server         |                           [  OK  ]
onlyoffice-mail-server         | Starting httpd:           [  OK  ]
onlyoffice-mail-server         | Starting OpenDKIM Milter: opendkim: /etc/opendkim.conf: dsn:mysql://onlyoffice_mailserver_user:onlyoffice_mailserver_user_pass@onlyoffice-mysql-server/onlyoffice_mailserver/table=dkim?keycol=domain_name?datacol=id: dkimf_db_open(): Client does not support authentication protocol requested by server; consider upgrading MySQL client
onlyoffice-mail-server         |                           [FAILED]
onlyoffice-mail-server         | Starting spamd:           [  OK  ]
onlyoffice-mail-server         | Starting fail2ban:        [  OK  ]
onlyoffice-mail-server         | Starting server

Please check the status of onlyoffice-mysql-server container. If this is "restarting" - you need to redownload this repo and run docker-compose install one more time.

All containers are “up”, none are restarting.

Ok, then please look at docker logs onlyoffice-community-server and docker exec -it onlyoffice-community-server systemctl status monoserve.

docker exec -it onlyoffice-community-server systemctl status monoserve
System has not been booted with systemd as init system (PID 1). Can't operate.
mastermind@office:/srv$ docker exec -it onlyoffice-community-server service monoserve status
monoserve: unrecognized service

The only errors I see in community server are:
ERROR 1146 (42S02) at line 1: Table 'onlyoffice_mailserver.greylisting_whitelist' doesn't exist

MAIL_SERVER_HOSTNAME=

Let's start over:

What host OS do you use?
Did you download the repository again?
What changes do you make to the file docker-compose.yml?
Show the full log of docker logs onlyoffice-community-server.

Ubuntu Server 22.04 “Jammy” - no xorg, just cli.
I wiped the drive and reinstalled with the above OS yesterday.
Removed the environment variable starting with ‘$’ and replaced with the FQDN of my mail server.
Coming at you momentarily.

Yes, I confirm that we have a problem of running Onlyoffice with a mail server via docker-compose(bug 59041 in our private bugtracker).

Fixed by https://github.com/ONLYOFFICE/Docker-CommunityServer/commit/a35dfc7abf32093a9f20ad2127ced8825fbda10b https://github.com/ONLYOFFICE/Docker-CommunityServer/commit/bf11d95fb5eb66f3e451b6aabd637e69786d3883 https://github.com/ONLYOFFICE/Docker-CommunityServer/commit/10f15ec4d9b562027d20f0ba4c0a77300f1134b0


Arducam Mini Shield ov2640 SDCard error on Arduino and Esp12E

Hello, I successfully set up arducam mini with Arduino and took shots with arducam.exe. I also successfully used it with esp12e/esp8266 video streaming and capture via browser.
The issue is, I need to make it work with SDCard. I used different Chip select as expected, made sure both are not low at the same time, nevertheless it keeps returning interface error.
I used same mosi, miso, clk  but used different cs on both uno and 8266, same error.
How can I resolve this?

@ayoadejoe
Hi,
What's your  SD CS?
Regards,

@supprot
On Arduino uno, I used pin 7 for arducam and 4 for a sdcard
On esp, I used gpio 16 (D1) for arducam and gpio 2 (D4) for sdcard
Both yielded the same error. However, whenever I remove the miso/mosi pin, the arducam runs but sdcard fails (of course).

Hello, I successfully set up arducam mini with Arduino and took shots with arducam.exe. I also successfully used it with esp12e/esp8266 video streaming and capture via browser.
The issue is, I need to make it work with SDCard. I used different Chip select as expected, made sure both are not low at the same time, nevertheless it keeps returning interface error.
I used same mosi, miso, clk but used different cs on both uno and 8266, same error.
How can I resolve this?

@ayoadejoe
Hi,
You should better check your SD CS by the oscilloscope firstly.
Maybe it exist some hardware problems.
Let us know if you need more help.
Regards,
ArduCAM support team.

Alright, here is the solution. I switched the SD Card to 3.3V supply. The 5V I was previously using was probably too high for it even though I had used the SD on 5V in another project. It works quite well now.


elixir: 1.4.0 -> 1.4.2

Motivation for this change
Update Elixir to 1.4.2
Things done

[ ] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[x] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Tested. Thanks!


Cello cannot add working host.

Hi, yeasy.
I have the question for you.
Environment:
OS：Ubuntu 16.04 64bit
docker version：1.12.3
Steps:
First, I set up cello by the document: https://github.com/yeasy/cello/blob/master/docs/deployment.md
Second, I setup fabric by this docker-compose.yml configuration and run docker-compose up:
  1 membersrvc:
  2   image: hyperledger/fabric-membersrvc
  3   ports:
  4     - "7054:7054"
  5   command: membersrvc
  6 vp0:
  7   image: hyperledger/fabric-peer
  8   ports:
  9     - "7050:7050"
 10     - "7051:7051"
 11     - "7053:7053"
 12   environment:
 13     - CORE_PEER_ADDRESSAUTODETECT=true
 14     - CORE_VM_ENDPOINT=unix:///var/run/docker.sock
 15     - CORE_LOGGING_LEVEL=DEBUG
 16     - CORE_PEER_ID=vp0
 17     - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054
 18     - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054
 19     - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054
 20     - CORE_SECURITY_ENABLED=true
 21     - CORE_SECURITY_ENROLLID=test_vp0
 22     - CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT
 23   links:
 24     - membersrvc
 25   command: sh -c "sleep 5; peer node start --peer-chaincodedev"

The docker ps information:
docker ps
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                                                      NAMES
37cd4d7eb818        cello-watchdog                  "python watchdog.py"     43 minutes ago      Up 43 minutes                                                                  watchdog
5b74299bb1d9        mongo:3.2                       "/entrypoint.sh mongo"   53 minutes ago      Up 53 minutes       <IP_ADDRESS>:27017-27018->27017-27018/tcp                     mongo
2ca266103e2c        yeasy/nginx                     "/bin/bash /tmp/docke"   53 minutes ago      Up 53 minutes       <IP_ADDRESS>:80->80/tcp, <IP_ADDRESS>:8080->8080/tcp, 443/tcp        nginx
3527d725afd4        cello-dashbard                  "python dashboard.py"    53 minutes ago      Up 53 minutes       8080/tcp                                                   dashbard
0102e74f1530        cello-restserver                "python restserver.py"   53 minutes ago      Up 53 minutes       80/tcp                                                     restserver
a68e9f1920b9        hyperledger/fabric-peer         "sh -c 'sleep 5; peer"   4 days ago          Up 14 minutes       <IP_ADDRESS>:7050-7051->7050-7051/tcp, <IP_ADDRESS>:7053->7053/tcp   bctest2_vp0_1
7a7491a81f9e        hyperledger/fabric-membersrvc   "membersrvc"             4 days ago          Up 14 minutes       <IP_ADDRESS>:7054->7054/tcp                                     bctest2_membersrvc_1

Then I login in localhost:8080 and add host that input <IP_ADDRESS>:7050 or <IP_ADDRESS>:7050.
The Cello server logs error like that:
dashbard      | [2016-11-27 15:36:22,487] DEBUG [resources.host] [utils.py:71        request_debug()] - path=/api/host, method=POST
dashbard      | [2016-11-27 15:36:22,487] DEBUG [resources.host] [utils.py:72        request_debug()] - request args:
dashbard      | [2016-11-27 15:36:22,488] DEBUG [resources.host] [utils.py:75        request_debug()] - request form:
dashbard      | [2016-11-27 15:36:22,489] DEBUG [resources.host] [utils.py:77        request_debug()] - Form: daemon_url:<IP_ADDRESS>:7050
dashbard      | [2016-11-27 15:36:22,489] DEBUG [resources.host] [utils.py:77        request_debug()] - Form: name:test
dashbard      | [2016-11-27 15:36:22,489] DEBUG [resources.host] [utils.py:77        request_debug()] - Form: log_type:local
dashbard      | [2016-11-27 15:36:22,489] DEBUG [resources.host] [utils.py:77        request_debug()] - Form: log_level:DEBUG
dashbard      | [2016-11-27 15:36:22,489] DEBUG [resources.host] [utils.py:77        request_debug()] - Form: log_server:
dashbard      | [2016-11-27 15:36:22,489] DEBUG [resources.host] [utils.py:77        request_debug()] - Form: capacity:1
dashbard      | [2016-11-27 15:36:22,490] DEBUG [resources.host] [utils.py:78        request_debug()] - request raw body data:
dashbard      | [2016-11-27 15:36:22,490] DEBUG [resources.host] [utils.py:79        request_debug()] - b''
dashbard      | [2016-11-27 15:36:22,490] DEBUG [resources.host] [utils.py:80        request_debug()] - None
dashbard      | [2016-11-27 15:36:22,490] DEBUG [resources.host] [host.py:57          host_create()] - name=test, daemon_url=<IP_ADDRESS>:7050, capacity=1fillup=false, schedulable=false, log=local/
dashbard      | [2016-11-27 15:36:22,490] DEBUG [modules.host] [host.py:67               create()] - Create host: name=test, daemon_url=<IP_ADDRESS>:7050, capacity=1, log=local/, autofill=false, schedulable=false
dashbard      | [2016-11-27 15:36:22,494] ERROR [agent.docker_swarm] [docker_swarm.py:132         check_daemon()] - Exception in check_daemon Error while fetching server API version: HTTPConnectionPool(host='<IP_ADDRESS>', port=7050): Max retries exceeded with url: /version (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fe68c407eb8>: Failed to establish a new connection: [Errno 111] Connection refused',))
dashbard      | [2016-11-27 15:36:22,495] WARNING [modules.host] [host.py:83               create()] - The daemon_url is inactive:tcp://<IP_ADDRESS>:7050
dashbard      | [2016-11-27 15:36:22,497] ERROR [agent.docker_swarm] [docker_swarm.py:159   detect_daemon_type()] - Error while fetching server API version: HTTPConnectionPool(host='<IP_ADDRESS>', port=7050): Max retries exceeded with url: /version (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fe68c177588>: Failed to establish a new connection: [Errno 111] Connection refused',))
dashbard      | [2016-11-27 15:36:22,497] ERROR [agent.docker_swarm] [docker_swarm.py:238 setup_container_host()] - Invalid host_type=None
dashbard      | [2016-11-27 15:36:22,497] WARNING [modules.host] [host.py:89               create()] - test cannot be setup
dashbard      | [2016-11-27 15:36:22,498] WARNING [resources.host] [host.py:75          host_create()] - Failed to create host test
dashbard      | <IP_ADDRESS> - - [27/Nov/2016 15:36:22] "POST /api/host HTTP/1.0" 400 -
dashbard      | [2016-11-27 15:36:24,531] DEBUG [resources.index] [utils.py:71        request_debug()] - path=/, method=GET
dashbard      | [2016-11-27 15:36:24,531] DEBUG [resources.index] [utils.py:72        request_debug()] - request args:
dashbard      | [2016-11-27 15:36:24,531] DEBUG [resources.index] [utils.py:75        request_debug()] - request form:
dashbard      | [2016-11-27 15:36:24,532] DEBUG [resources.index] [utils.py:78        request_debug()] - request raw body data:
dashbard      | [2016-11-27 15:36:24,532] DEBUG [resources.index] [utils.py:79        request_debug()] - b''
dashbard      | [2016-11-27 15:36:24,533] DEBUG [resources.index] [utils.py:80        request_debug()] - None
dashbard      | [2016-11-27 15:36:24,534] DEBUG [modules.cluster] [cluster.py:46                 list()] - List all active clusters
dashbard      | [2016-11-27 15:36:24,535] DEBUG [modules.cluster] [cluster.py:50                 list()] - List all released clusters
dashbard      | [2016-11-27 15:36:24,536] DEBUG [modules.cluster] [cluster.py:46                 list()] - List all active clusters
dashbard      | [2016-11-27 15:36:24,536] DEBUG [modules.cluster] [cluster.py:46                 list()] - List all active clusters
How can I add new host ?

Cello will add a host, and treat these host as docker driver.
Cello will create the fabric cluster automatically.
Hence, your 2nd step is meaningless. Just setup another vm as compute node (docker installed with fabric images inside), then add its ip:2375 through cello's dashboard.

I updated the deployment doc and clarify the architect, hope it can help you.
https://github.com/yeasy/cello/blob/master/docs/deployment.md
Thanks!

Hi，Yeasy
Thank you very much for your update !
I have another question for you.
1st, I setup another VM (Ubuntu 16.04) that use VirtualBox and bridge pattern network.
2nd, I installed docker with  fabric images.
3th, I add
DOCKER_OPTS="$DOCKER_OPTS -H tcp://<IP_ADDRESS>:2375 -H unix:///var/run/docker.sock --api-cors-header='*' --default-ulimit=nofile=8192:16384 --default-ulimit=nproc=8192:16384"
in /etc/default/docker and setup Firewall like deployment document in VM.
Cello logs error yet like this.
dashbard      | [2016-11-28 11:27:00,637] DEBUG [resources.host] [host.py:57          host_create()] - name=Test, daemon_url=<IP_ADDRESS>:2375, capacity=1fillup=false, schedulable=false, log=local/
dashbard      | [2016-11-28 11:27:00,637] DEBUG [modules.host] [host.py:67               create()] - Create host: name=Test, daemon_url=<IP_ADDRESS>:2375, capacity=1, log=local/, autofill=false, schedulable=false
dashbard      | [2016-11-28 11:27:00,643] ERROR [agent.docker_swarm] [docker_swarm.py:132         check_daemon()] - Exception in check_daemon Error while fetching server API version: HTTPConnectionPool(host='<IP_ADDRESS>', port=2375): Max retries exceeded with url: /version (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fc489b82860>: Failed to establish a new connection: [Errno 111] Connection refused',))
dashbard      | [2016-11-28 11:27:00,643] WARNING [modules.host] [host.py:83               create()] - The daemon_url is inactive:tcp://<IP_ADDRESS>:2375
dashbard      | [2016-11-28 11:27:00,645] ERROR [agent.docker_swarm] [docker_swarm.py:159   detect_daemon_type()] - Error while fetching server API version: HTTPConnectionPool(host='<IP_ADDRESS>', port=2375): Max retries exceeded with url: /version (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fc489ea8f28>: Failed to establish a new connection: [Errno 111] Connection refused',))
dashbard      | [2016-11-28 11:27:00,645] ERROR [agent.docker_swarm] [docker_swarm.py:238 setup_container_host()] - Invalid host_type=None
dashbard      | [2016-11-28 11:27:00,646] WARNING [modules.host] [host.py:89               create()] - Test cannot be setup
dashbard      | [2016-11-28 11:27:00,646] WARNING [resources.host] [host.py:75          host_create()] - Failed to create host Test
dashbard      | <IP_ADDRESS> - - [28/Nov/2016 11:27:00] "POST /api/host HTTP/1.0" 400 -
dashbard      | [2016-11-28 11:27:02,691] DEBUG [resources.index] [utils.py:71        request_debug()] - path=/, method=GET
dashbard      | [2016-11-28 11:27:02,691] DEBUG [resources.index] [utils.py:72        request_debug()] - request args:
dashbard      | [2016-11-28 11:27:02,691] DEBUG [resources.index] [utils.py:75        request_debug()] - request form:
dashbard      | [2016-11-28 11:27:02,691] DEBUG [resources.index] [utils.py:78        request_debug()] - request raw body data:
dashbard      | [2016-11-28 11:27:02,692] DEBUG [resources.index] [utils.py:79        request_debug()] - b''
dashbard      | [2016-11-28 11:27:02,692] DEBUG [resources.index] [utils.py:80        request_debug()] - None
dashbard      | [2016-11-28 11:27:02,693] DEBUG [modules.cluster] [cluster.py:46                 list()] - List all active clusters
dashbard      | [2016-11-28 11:27:02,694] DEBUG [modules.cluster] [cluster.py:50                 list()] - List all released clusters
dashbard      | [2016-11-28 11:27:02,696] DEBUG [modules.cluster] [cluster.py:46                 list()] - List all active clusters
dashbard      | [2016-11-28 11:27:02,697] DEBUG [modules.cluster] [cluster.py:46                 list()] - List all active cluster

Is it a permission problem or network problem ?

aha, have u restart the docker service after 3rd step?
please first make sure the manager can access worker nodes through port 2375.

@WhiteCrow I think your problem is that your swarm might not be properly configured. 2375 is the default port swarm manager listening. Make sure the host ip is correct and the swarm manager is running.

Thank you ! @yeasy and @kid143
@kid143  help me resolve the problem.
In ubuntu 16.04, before edit config file /etc/default/docker, we need create file that is /etc/systemd/system/docker.service.d/override.conf and write
env like that:
Service]
EnvironmentFile=-/etc/default/docker
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS

It fixed the problem.
Thank you again! yeasy.

Add some info on this issue.
From Ubuntu 16.04, systemd is used to manage all daemon service including docker engine.
But the original docker engine service unit do not define enough start options(listening port etc).
So you have to override the original service unit by adding /etc/systemd/system/docker.service.d/override.conf.
The DOCKER_OPTS environment variable must contain the options you use.

@WhiteCrow
I'm collecting the adoption cases of Cello, and plan to add into the documentation.
Could you help provide some information of your deployment, like:

Number of nodes
Number of chains
User scenario


fabric8 create project UI

fabric8 has a create new project UI:

Which is a front end to fabric8-forge a set of forge addons that can be used with the (currently at) 48 https://github.com/fabric8-quickstarts to generate new projects.
To avoid duplication of work across projects it would be good to get a handle of what work is required going forward as there are a few other efforts that have doing something similar.
I'm sure it's more detailed but at a super high level what's needed here?

migrate existing forge UI from fabric8-console to angular 2
unify

https://github.com/fabric8io/fabric8-console
https://github.com/obsidian-toaster/generator-frontend
https://github.com/almighty/almighty-ui

are there forge addons from obsidian-toaster and the previous almighty project that need to be moved to fabric8's github org and included in fabric8-forge?

This is just a start  - lets flesh out or correct where we can
/CC @jstrachan @rajdavies @cmoulliard @pmuir

/cc @joshuawilson

@gashcrumb has a port to angular2 of the fabric8 forge UI

Yep, right now it's hiding out here -> https://github.com/redhat-ipaas/ipaas-api/tree/master/sandbox

Obsidian is also angular2 + patternfly
Here is the code generator front where we have published it today (backend should be redeployed to generate a zip file - will be affective in 1H)
Demo : https://obsidian-toaster.github.io/intro
Projects :
Front :  https://github.com/obsidian-toaster/generator-frontend
Forge Backend :  https://github.com/obsidian-toaster/generator-backend

@cmoulliard is the Obsidian frontend still WIP?  Is it worth Obsidian switching and collaborating on the fabric8 one which has been around for over a year?  We can then all work together to fill in the missing parts because unless I'm missing something they seem to do the same thing?
Yes the fabric8 forge UI needs to be angular 2 but as @gashcrumb mentioned that work has already started.

@gashcrumb has migrated the forge part of fabric8 console to angular 2 already - its being used in the iPaaS https://github.com/redhat-ipaas/ipaas-api/tree/master/sandbox
at some point it'd be good to move all of fabric8-console over to angular2. I think @joshuawilson is looking at supporting angular 1 and 2 together for a little while tactically until we can migrate everything over

@rawlingsj For sure James. We will Almighty + Obsidian + Fabric8 collaborate together to design the new Developer UI Experience. The ideas of the different groups/teams will be discussed in order to design/develop the different screens/wizards/workflows.
The Obsidian Front end like the Fabric8 front end will be merged at some point as we are developing our respective projects using the same standards; Angular2 + PatternFly & REST Forge endpoints

@cmoulliard this repository is the UI created as part of Dev Experience &  the fabric8 team and anyone else who wants to contribute and its being created from the fabric8 console. Anything anyone has outside of the fabric8 console should be merged in.

@cmoulliard you might want to integrate any Obsidian Forge addons into the fabric8-forge project so that they show up in the fabric8 console (and hence in the DevExp console)

@jstrachan +1 - this is our integration repository now.

As we are preparing a first release of Obsidian - TP in 2 weeks to support Eclipse Vert.x, Spring Boot + Apache Tomcat with the Front Generator tool, I suggest that we discuss/start this merging process  beginning of next year in order to :

Move our Quickstarts to Fabric8 quickstarts organization
Merge code developed for the new addon used by the Front in order to create a Vert.x/Swarm or SpringBoot project
Integrate development done for Front end of Obsidian

@cmoulliard BTW the fabric8 console has had wizards to create projects in vertx, spring boot, tomcat, karaf & WF Swarm using jboss forge for over a year ;)

As the purpose of this ticket is to discuss "Create Project UI", we should keep the discussion around this topic ;-)

@cmoulliard Out of interest, why are you creating something that has existed in fabric8 console for a long time? Why not just reuse those or if they aren't quite what you want, help to update them?

Just a minor consideration here: https://github.com/fabric8io/fabric8-forge/issues/726 decouples the Forge integration (moves a subset of the Fabric8-forge-core  classes needed for integration with the Forge UI API) from the Fabric8-forge-core and it's maintained by the Forge team (me), so it's updated everytime a Forge release happens.

The workflow requested by the PM was different from what has been created in Fabric8

From vert.x/spring boot (and later wildfly swarm) --> create a zipped file
From vert.x/spring boot (with or without Red Hat SSO) --> create a zipped file

and the frontend designed using angular2, patternfly & almighty

@cmoulliard I don't grok the 'create zipped file' comments above. If you'd rather create projects as downloadable tarballs and have no git, CI, CD, OpenShift integration, that could be added as a separate wizard step (to avoid the git + CD and just make a tarball). It doesn't sound terribly useful though does it? :) Most folks wanna build + run projects really

Oh you mean you want a stand alone start.spring.io style website only - and not have any OpenShift / CI / CD / git integration right? At least you can reuse the same underlying forge commands & may be able to repurpose most of the angular front end - its just a different action at the end (import to git + setup CD versus download tarball)

@jstrachan exactly, that's what the current backend is doing right now. We are reusing the Fabric8 addons, so it's basically the same thing

so could we:

add the obsidian quickstarts to fabric8
add the obsidian addons to fabric8-forge
add any missing UI bits to fabric8-console

Then Obsidian could just use fabric8?
Once we get this repo updated with the migrated angular 2 fabric8 forge UI (or the tactical option mentioned above) you'd satisfy the PM requirements, we'd avoid duplication and both projects would benefit from each other.
Would that work?

@rawlingsj that would be my thought as well, to happen after this first release

I need to look at the Fabric8 create project UI. We don't want to duplicate work, but we also do not plan to support all the fabric8 features up front.
Post-December, we may have the opportunity to switch from "download zip" to a more online-centric experience since our target deployment focus is switching from the OpenShift Container Platform to OpenShift Online.
I dunno about others, but I could use a quick demo of the fabric8 create project UI. Recording already exist somewhere?

@jclingan this one is good: https://youtu.be/bERRJksRB1A?t=1012

this one is good: https://youtu.be/bERRJksRB1A?t=1012

yeah that's probably the best one we have
FWIW you can find all the fabric8 demos here https://blog.fabric8.io/
If you don't want to support all the fabric8 features from day one then that's totally fine.  We could look adding feature flags for example but for me the main thing would be to reuse and extend what's already been developed in the community.

@jclingan yeah the above demo is probably the best. If you're super pushed for time here's a 6 minute video from about 6 months ago; the console's a little older but its about the same as today https://vimeo.com/170830750
BTW once a project is created via the web UI & the Forge wizards; we could easily configure what happens next via, say, a configuration (whether we want to download a ZIP or create a project in git & setup a CD Pipeline) - its easy to support either. Or we could make it a wizard page as to whether to import into git or download as a zip so the user can choose.
When inside OpenShift it makes more sense to spin up the project in a git repo and setup a CD Pipeline and build, test & run it. When running as a hosted public website, trying to do a start.spring.io type of site - then downloading a zip sounds fine; but the build, test and run approach is more appealing to developers really

BTW, this is seriously great stuff! I watched the whole video last week, didn't realize that this is the same UI we are talking about here (versus prior versions). All goodness.
I'm going to take some of this offline since it relates specifically to product.

Since we have an App Wizard in OSIO that talks to forge and generates projects and pipelines now, I'm closing this.


1.2.2 not working with require.js

When underscore 1.2.2 is loaded as follows it is not being assigned to the window object causing backbone.js fail because it cannot locate the dependency. 1.2.0 is assigned to window object correctly when loaded via require. I checked the DOM and the script tag is there along with the JS. It is just not in the window object.
require(['underscore.'], function () {
console.log(window.);  // null
console.log(_);  // null
});

require(['underscore'], function () {
console.log(); // should be correct
});

BTW, what is the most convenient way to use underscore in AMD now?
I used underscore similar way before
// mylibs/myunderscore.js
define('Underscore', ['libs/underscore'], function () {
    return _.noConflict(); // extend with extensions, other things
});

//src/otherfiles.js
define(['Underscore'], function( _ ){
    _.map(...);
});

But now it seems I should load file and AMD module in my init file
  // mylibs/myunderscore.js
define('Underscore', [
    'order!libs/underscore',
    'order!underscore'
], function (file, _) {
    return _.noConflict(); // extend with extensions, other things
});

But it seems to be a problem with "order" plugin in require.js for IE browsers and IE tries to require file 'underscore.js', which is not a file but a module. I dont want to do any hacks now, I want to save my code clean and make all actions with underscore in one place.
I think is it possible to use jQuery way to prevent AMD loading in underscore? Like
 } else if (typeof define === 'function' && define.amd && define.amd.underscore) {
    // Register as a named module with AMD.
   define('underscore', function() {
      return _;
   });
}

Or it may be allowed to do underscore AMD package with the same name as file
 } else if (typeof define === 'function' && define.amd) {
    // Register as a named module with AMD.
   define(function() {
      return _;
   });
}

Or maybe I still cant understand some basic require.js tricks to prevent problems??

Ok, I've found it, I should use configuration to set paths to modules
require.config({
    paths: {
        jquery: 'libs/jquery/jquery'
        ,underscore: 'libs/underscore'
   }
})

Yes, that's correct -- Underscore now exports itself for AMD loaders, and Backbone will probably follow suit soon as well. In the meantime, you can use @jrburke's branch of Backbone to get compatibility, or fix it in your local copy.


Problems flashing ("Amica") NodeMCU with CP2101

I have a couple of ("Amica") NodeMCU with CP2101 that i cannot flash with ESP web tools.

Flashing the same NodeMCU's with Arduino IDE or PlatformIO is working fine:

I allready tried different browsers/computers

Could it be the baud rate?
ESP Web Tools defaults to 115200 baud rate: https://github.com/esphome/esp-web-tools/blob/main/src/connect.ts#L21

While the bottom of the NodeMCU states 9600 baud rate the upload speed in arduino IDE and PlatformIO is 115200 and working fine. I changed the baud rate to 9600 in esp web tools but uploading doesnt work. Openening the serial console through esp webtools does work , so the serial connection seems to be ok.
I browsed through the issue list and found https://github.com/esphome/esp-web-tools/issues/27. It seems there is a problem with uploading to ESP8266EX. This chip is on the boards i have. In this issue there are 2 problems described and it seems uploading to ESP8266EX is never solved.
If helpfull I can send you a board.

Hello
i have 2 of these nodemcu boards = ESP 12E
no problem with my esp web tools installer https://ldijkman.github.io/randomnerd_esp32_wifi_manager/Touch_Electra-Electra_Touch/
also have wemos uno sized ESP 12F wich also works ok installing
today i recieved 5 wemos d1 mini ESP12F and that does not work
looks like the code bin part is done at 26% and then the littlefs part "Timed out waiting for packet header"
code is running if i look at serial monitor (but it has no littlefs files)
made a littlefs bin adress 0x200000 button on webpage works ok on nodemcu esp12E and wemos uno sized 12F
but does not work for wemos D1 mini ESP12F
cannot figure out yet what is the problem

https://esphome.github.io/esp-web-tools/
tryed the install
worked on my amica nodemcu ESP8266 / ESP12E (nice the improv configure wifi ! )
wemos d1 mini ESP12F also worked

changed the baudrate in local js file to 57600 now it installs littlefs bin at 0x200000 on wemos d1 mini esp12F
https://github.com/ldijkman/randomnerd_esp32_wifi_manager/issues/28
https://ldijkman.github.io/randomnerd_esp32_wifi_manager/Touch_Electra-Electra_Touch/local_js.html

with the latest version flashing ("Amica") NodeMCU with CP2101 is working

Same issue... I moved the VIN pin to the RST pin. It connected and flashed. In case someone is stuck also


Dockerfile pytorch version incorrect

Hi,
I am trying to use nnDetection, building the Dockerfile in the repo. It uses an NVIDIA pre-built image for it's base which is where pytorch comes from. This appears to by pytorch 1.8.0. However, when I use it I get errors because the code appears to depend on pytorch >= 1.10:
Traceback (most recent call last):
File "/opt/conda/bin/nndet_prep", line 33, in
sys.exit(load_entry_point('nndet', 'console_scripts', 'nndet_prep')())
File "/opt/code/nndet/nndet/utils/check.py", line 62, in wrapper
return func(*args, **kwargs)
File "/opt/code/nndet/scripts/preprocess.py", line 406, in main
run(OmegaConf.to_container(cfg, resolve=True),
File "/opt/code/nndet/scripts/preprocess.py", line 335, in run
run_planning_and_process(
File "/opt/code/nndet/scripts/preprocess.py", line 162, in run_planning_and_process
plan_identifiers = planner.plan_experiment(
File "/opt/code/nndet/nndet/planning/experiment/v001.py", line 43, in plan_experiment
plan_3d = self.plan_base_stage(
File "/opt/code/nndet/nndet/planning/experiment/base.py", line 234, in plan_base_stage
architecture_plan = architecture_planner.plan(
File "/opt/code/nndet/nndet/planning/architecture/boxes/c002.py", line 127, in plan
res = super().plan(
File "/opt/code/nndet/nndet/planning/architecture/boxes/base.py", line 346, in plan
patch_size = self._plan_architecture(
File "/opt/code/nndet/nndet/planning/architecture/boxes/c002.py", line 205, in _plan_architecture
_, fits_in_mem = self.estimator.estimate(
File "/opt/code/nndet/nndet/planning/estimator.py", line 127, in estimate
res = self._estimate_mem_available(
File "/opt/code/nndet/nndet/planning/estimator.py", line 154, in _estimate_mem_available
fixed, dynamic = self.measure(shape=target_shape,
File "/opt/code/nndet/nndet/planning/estimator.py", line 229, in measure
loss_dict, _ = network.train_step(
File "/opt/code/nndet/nndet/core/retina.py", line 133, in train_step
pred_detection, anchors, pred_seg = self(images)
File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 744, in _call_impl
result = self.forward(*input, **kwargs)
File "/opt/code/nndet/nndet/core/retina.py", line 223, in forward
anchors = self.anchor_generator(inp, feature_maps_head)
File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 744, in _call_impl
result = self.forward(*input, **kwargs)
File "/opt/code/nndet/nndet/core/boxes/anchors.py", line 228, in forward
anchors_over_all_feature_maps = self.cached_grid_anchors(grid_sizes, strides)
File "/opt/code/nndet/nndet/core/boxes/anchors.py", line 115, in cached_grid_anchors
self._cache[key] = self.grid_anchors(grid_sizes, strides)
File "/opt/code/nndet/nndet/core/boxes/anchors.py", line 364, in grid_anchors
shift_x, shift_y, shift_z = torch.meshgrid(shifts_x, shifts_y, shifts_z, indexing="ij")
TypeError: meshgrid() got an unexpected keyword argument 'indexing'
The documentation only states that the required pytorch version is 1.7.0+. Could the documentation and/or the Dockerfile be updated so it matches the true dependencies of the code? Thanks

TypeError: meshgrid() got an unexpected keyword argument 'indexing'
File "/opt/code/nndet/nndet/core/boxes/anchors.py", line 364, change to
shift_x, shift_y, shift_z = torch.meshgrid(shifts_x, shifts_y, shifts_z)
File "/opt/code/nndet/nndet/core/retina.py", line 367, in postprocess_detections_single_image
anchor_idxs = torch.div(idx, self.num_foreground_classes, rounding_mode="floor")
TypeError: div() got an unexpected keyword argument 'rounding_mode'
File "/opt/code/nndet/nndet/core/retina.py", line 367,change to
anchor_idxs = torch.floor_divide(idx, self.num_foreground_classes)

Sorry for the delay, I was on vacation.
The Dockerfile is now updated and uses a newer PyTorch version and the readme now states the dependency of PyTorch >1.10


cycle/run issue with React Native

Code to reproduce the issue:
The issue happens not in all setups so it is not easy to reproduce, even the order of imports in the file may matter.
The problem that when this line is executed:
https://github.com/cyclejs/cyclejs/blob/master/run/src/internals.ts#L12
const scheduleMicrotask = quicktask();

RN timers (functions setImmediate, setTimeout) happen to be not initialized yet and it returns undefined, so scheduleMicrotask tends to be undefined.
Just screen as confirmation:

If to place the line inside replicateMany (https://github.com/cyclejs/cyclejs/blob/master/run/src/internals.ts#L78) it should fix the issue.
Any objections or considerations against it?
@staltz

Good that you found this, and this is a great description of the bug. I think I agree with your solution as well.
@jvanbruegge ?

Yeah, me too


duplicated auto title generation

If several LLMs is used in parallel, the auto title generation request will be sent N times.
I think the auto title generation request should be sent only once in this case.
v0.3.8

Fixed on dev!


Code quality analysis (scrutinizer like alternative)

Evaluate code quality analysis scrutinizer like; alternative https://sonarcloud.io/
It must be compatible with Python 3.9, scrutinizer was lagging behind
It must integrate well with GitHub actions

Also include in this scope, whether this solution can also report code coverage results, or open a new issue to support codecov.io or coveralls

I've removed the 2022.3 label since scrutinizer has been working well and is correctly supporting Py3.9 version. We don't have the capability to run multiple inspections in parallel but that doesn't impact much at the moment since it runs relatively fast and we don't have hundreds of PRs

Closing this since so far scrutinizer is meeting the expectations. This issue might get reopened if that changes in the future.


'using module [ModuleName].psm1' is not isolating functions from outside variables

VSCode Version: Code 1.17.2 (b813d12980308015bcd2b3a2f6efa5c810c33ba5, 2017-10-16T13:59:46.104Z)
OS Version: Windows_NT x64 10.0.16299
Extensions:

Extension
Author (truncated)
Version

csharp
ms-
1.12.1

PowerShell
ms-
1.4.3

Steps to Reproduce:

run a function from a module (psm1 file) that was added with 'using module'
the function has access to variables outside it's scope when it should not (when run in PowerShell.exe the functions in the module are isolated like they are supposed to be)

Please file this issue against the powershell extension: https://github.com/PowerShell/vscode-powershell/issues


Can not parse passport with 8 character long passport number eg:- K9876543

I am not able to parse below list of string which I get from one passport.
After debugging, I came to know that this package is not parsing below mrz code because it have passport number with 8 character log i.e 'K9876543'. If I change this passport number with 9 digit long than it will parse perfectly but not parses the 8 character long. Please fix it.
[
'P<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<',
'K9876543<8UTO8708243F2206219<<<<<<<<<<<<<<<6'
];
Thanks in advance,

Hi Kartik,
Thanks for reporting! It is indeed an issue inside the parser. I'll get back to you soon with the solution.

Could you please check the new package version 1.1.0?
Beware that parse() method now throws MRZException if parsing was unsuccessful. For silent parsing use tryParse().

Thanks a lot @foxanna for fixing it. :100: :+1:


Define the waterfall of steps we are going to work on

Step 1 - Doc of the organization
Step 2 - Create the Terraform + Terragrunt code to create the organization
Step 3 - Convert the terraform code to modules

We just archive this item because it was to big to inform here, so we are going to think this in every step


Some events are simply not returned

For instance for calendar<EMAIL_ADDRESS>...the events on 2018 January 26
On this day events can be seen and edited through the browser app, but they are not retrieved either with:

java api 3-rev270-1.23.0 nor
though the api explorer

I have noted this when a program that worked for years began to fail. The problem has started in the last 3-6 weeks.

It sounds like it could be a problem with the API if you reproduced it with this client and API Explorer. I searched Google Calendar's issue tracker and I can't find a reported issue similar to this one that you describe. I would ask, if you do file a bug report there, to please follow the instructions in the description field. Detailed and reproducible bug reports help developers respond quickly to your issue.

Thank you. I have created an issue there. Best regards, Robert

It is working again. Issue can be closed. Thank you


List view weird clipping behavior

Steps to reproduce

Create a new app
Insert the code from the code sample

Expected results
The ListView should be clipped inside of the container and the list tiles should have an orange background color.
Actual results
The color of the list tiles is not visible inside the container, but outside it has the color. I also tried using clipBehavior: Clip.hardEdge, but that did not work either.
Code sample
Expanded(
              child: Container(
                margin: const EdgeInsets.all(Spacing.medium),
                padding: const EdgeInsets.all(Spacing.medium),
                decoration: BoxDecoration(
                  color: context.colorScheme.surfaceContainer,
                  borderRadius: BorderRadius.circular(Radii.medium),
                ),
                child: ListView.builder(
                  itemCount: 15,
                  itemBuilder: (context, index) {
                    return ListTile(
                      title: Text("Item $index"),
                      subtitle: const Text("16.06.2024 12:47"),
                      onTap: () {},
                      tileColor: Colors.orange,
                    );
                  },
                ),
              ),
            ),

Screenshots or Video
https://github.com/flutter/flutter/assets/85431690/ee63c205-5344-4aa0-aa02-2d63c8e643a5
Logs
No logs
Flutter Doctor output
[✓] Flutter (Channel stable, 3.22.2, on Microsoft Windows [Version 10.0.22631.3737], locale de-DE)
• Flutter version 3.22.2 on channel stable at C:\src\flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 761747bfc5 (12 days ago), 2024-06-05 22:15:13 +0200
• Engine revision edd8546116
• Dart version 3.4.3
• DevTools version 2.34.3
[✓] Windows Version (Installed version of Windows is version 10 or higher)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at C:\Users\vogel\AppData\Local\Android\sdk
• Platform android-34, build-tools 34.0.0
• Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
• Java version OpenJDK Runtime Environment (build 17.0.10+0--11609105)
• All Android licenses accepted.
[✓] Chrome - develop for the web
• Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[✓] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.10.2)
• Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
• Visual Studio Community 2022 version 17.10.35004.147
• Windows 10 SDK version 10.0.22621.0
[✓] Android Studio (version 2024.1)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.10+0--11609105)
[✓] VS Code (version 1.90.1)
• VS Code at C:\Users\vogel\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.90.0
[✓] Connected device (4 available)
• sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 14 (API 34) (emulator)
• Windows (desktop)            • windows       • windows-x64    • Microsoft Windows [Version 10.0.22631.3737]
• Chrome (web)                 • chrome        • web-javascript • Google Chrome 124.0.6367.208
• Edge (web)                   • edge          • web-javascript • Microsoft Edge 126.0.2592.56
[✓] Network resources
• All expected network resources are available.
• No issues found!

Could you share a complete minimal sample code? I tried with one below but didn't see the issue:

Demo

Sample code
import 'package:flutter/material.dart';

void main() => runApp(const MainApp());

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Column(
            children: [
              Container(
                height: 100,
                color: Colors.white,
                alignment: Alignment.center,
                child: const Text('Header'),
              ),
              Expanded(
                child: Container(
                  margin: const EdgeInsets.all(4.0),
                  padding: const EdgeInsets.all(4.0),
                  decoration: BoxDecoration(
                    borderRadius: BorderRadius.circular(4.0),
                  ),
                  child: ListView.builder(
                    itemCount: 15,
                    itemBuilder: (context, index) {
                      return ListTile(
                        title: Text("Item $index"),
                        subtitle: const Text("16.06.2024 12:47"),
                        onTap: () {},
                        tileColor: Colors.orange,
                      );
                    },
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Thank you for helping me. Your solution works.


Resize modal windows

On window resize

Will this fix wrong positions for example modal popups on browser zoom change?

It should, yes. It addresses the problem of modal windows not reacting to resize events.

cancelled


glossary entry is hidden beneath navbar, and other CSS anomalies

Issues
When I click on an anchor tag (e.g. link to a glossary entry, or something in the left sidebar) then the result is hidden beneath the navbar and I have to scroll up a few lines to see it.
Improvements
I should not have to scroll up to see the result.
Additional discussion
This issue is a side effect of the position: fixed; navbar. If I edit the navbar to scroll off the top of the screen, then all the anchor tags work fine.
I have spent many hours on this already, and simple examples are not helping. There is some interaction happening in our implementation that still eludes me.

Recently I have made progress on overall styling by using Sphinx Bootstrap Theme, which I am integrating into a development branch. There are a couple immediate benefits

It replaces a lot of my ad hoc web design with the sort of "theme" that I wanted to leverage all along. The theme is based on Bootswatch sandstone.
Out of the box, the theme provides the sort of navbar, sidebar, and footer behavior that we want (in terms of what's fixed and how things scroll etc.)

On the downside, this theme is about 7 years old and uses Bootstrap 3, not Bootstrap 5. No flex-boxes among other things.
Another intriguing possible benefit... Because this is a Sphinx theme, in order to use it, I have encapsulated a dummy installation of Sphinx inside the Eleventy system that defines the site. Right now, I'm just using that to extract styling elements from Sphinx into Eleventy, but there's certainly a possibility that we could put actual content inside the encapsulated Sphinx installation, so that Eleventy can extract that content and display it as part of the overall site. Bottom line: can we maybe combine the benefits of Sphinx documentation management with Eleventy website flexibility?

PR #186 subsumes this issue


Update rack dependency

Rack 1.6.2 addresses CVE-2015-3225. It probably doesn't affect this project directly, but easy enough to update.

The travis builds are failing.  It looks like this repo needs additional updates to dependency changes that have modified the require rdf-vocab (it might be require rdf/vocab now).  There is also some problem with coveralls.  This repo is not a high priority for my work right now, so this PR may have to wait.

@darrenleeweber thanks, that was indeed it. It looks like when rdf-vocab got moved into the rdf organization, they updated the load path for consistency with other gems in the organization.

How does this PR specify using rack >= 1.6.2?  It's not explicit in any of these changes, although it might be implicit by removing Gemfile.lock, although that actually has no impact on use of the gem.  That is, there is nothing specific in the .gemset file to indicate the rack pin.  Other changes are not specific to this main topic for the PR.

It's not explicit in any of these changes, although it might be implicit by removing Gemfile.lock, although that actually has no impact on use of the gem.

You're right, 7a351bf is entirely gratuitous after I removed the Gemfile.lock file. I've rebased to remove that.
The other commit is to make the build pass, as discussed, with the new rdf-vocab structure.


Schema::TYPE_TEXT is too short in MySQL

Schema::TYPE_TEXT converts to TEXT in MySQL. This is just 64K, which is not a lot. Unless it's in strict mode, MySQL will truncate anything longer when inserting, and not throw an error (it'll throw a warning, but you'll have to look in the mysql server log).
You can use MEDIUMTEXT and LONGTEXT for your fields, but that only works in MySQL, and not in Postgre and Sqlite for example (where TEXT is long enough), so if you're writing portable code, you can't just use 'MEDIUMTEXT'.
It's also likely that most developers will just use Yii's schema types, without knowing that the data is limited to 64K.
I see several possible solutions to this:

Adding Schema::TYPE_MEDIUMTEXT and Schema::TYPE_LONGTEXT, similar to how we have TYPE_INTEGER and TYPE_BIGINT. This probably breaks BC, because custom QueryBuilders will be missing these types, and it also makes the typeMap more bloated, just because of a quirk in MySQL (unlike bigint, which is present in other databases).  I don't think this is a good solution.

Changing \yii\db\mysql\QueryBuilder::$typeMap[Schema::TYPE_TEXT] to 'MEDIUMTEXT' or 'LONGTEXT'. This adds 1 or 2 extra bytes per field per row, which can add up if you have a lot of rows, but in typical use cases shouldn't matter much. It's better to have a safe default, and let those who know the trade-offs optimize it. This change would cause inconsistency in existing databases (fields that were created before the change would remain TEXT, new ones would become MEDIUMTEXT, while rebuilding the database using the new version would create all MEDIUMTEXT).

Making the default configurable. You could have a setting that determines globally what Schema::TYPE_TEXT will be converted to in MySQL. You could default this to 'TEXT' for BC, but I think it would be a good idea to default it to 'MEDIUMTEXT' (maybe in Yii 2.1?).

I'm going to change the default to MEDIUMTEXT for my projects, overwriting the typeMap in mysql\QueryBuilder. Unfortunately, the query builder is not created using Yii::createObject, so I can't use DI to do this, and I'll have to extend both \yii\db\mysql\Schema and \yii\db\mysql\QueryBuilder, then overwrite the db connection's schemaMap (and I can't change just the mysql schema in the application configuration, I have to replace the whole thing). This is really inconvenient. Is there a better way to do this? I can use DI to replace the Schema at least.

I made a simple extension that does this: https://github.com/nkovacs/yii2-mysql

why this important feature is in the 2.1 and not for the 2.0.9 ? :/
thx

Because it probably breaks backwards compatibility, and such changes can only go into 2.1.

oh well :/ for now only work adding directly i will wait 2.1.x


Add ambiguous check when generate projection plan

Describe the bug
When the two table both has c0, then the following sql will work:
❯ explain select c0 from test0, test1;
+---------------+-----------------------------------------------------------------------------------------------------+
| plan_type     | plan                                                                                |
+---------------+-----------------------------------------------------------------------------------------------------+
| logical_plan  | Projection: test0.c0                                                                                |
|               |   CrossJoin:                                                                                |
|               |     TableScan: test0 projection=[c0]                                                                |
|               |     TableScan: test1 projection=[c0]                                                                |

The projection part of this sql is not clear, datafusion should throw an error.
To Reproduce
Create two table test0 and test1, which both contain c0.
Run sql explain select c0 from test0, test1;
Expected behavior
Additional context

What's the behavior in other systems? Like SparkSQL and PostgreSQL ?

Like join and selection in PostgreSQL , it will report an error:
psql -d "$POSTGRES_DB" -h "$POSTGRES_HOST" -p "$POSTGRES_PORT" -U "$POSTGRES_USER" -c "select c0 from test0, test1"
ERROR:  column reference "c0" is ambiguous
LINE 1: select c0 from test0, test1
               ^


sys: plan9/mksysnum_plan9.sh has a duplicated, mangled copyright header

The plan9/mksysnum_plan9.sh script has a duplicated, mangled copyright header:
# Copyright 2009 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.# Copyright 2009 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

https://go-review.googlesource.com/17684

Note that while this was fixed for syscall in the 'go' repository (src/syscall/mksysnum_plan9.sh), I was actually filing this bug against the sys repository:
https://github.com/golang/sys/blob/master/plan9/mksysnum_plan9.sh
Apologies for any confusion I might have caused, although it appears the same change should apply to both.


Vitest issue due to missing export field in package.json

Hello, I've been trying to use various uiwjs packages in my app that uses Vitest. I ran into this issue where Vitest incorrectly tries to load the cjs version rather than the esm: https://github.com/vitest-dev/vitest/discussions/4233
It seems the fix is to simply add exports to the package.json like so:
"exports": {
"require": "./cjs/index.js",
"import": "./esm/index.js"
},
The same applies to react-colour-name. I haven't tried other uiwjs packages but expect they could fall foul of the same issue.

Can I fix this Issue? I am a Full-Stack Software Developer and work with various Tech Stack like MERN , NEXT , REACT , FLUTTER, C#.

@syedmaazsaeed You're welcome to submit a PR, thank you!


Running containerlab on darwin

Triggered by https://github.com/weaveworks/ignite/pull/860

I'll do a PR shortly

👋  @sc68cal, before I go ahead with this, there are more places where containerlab depends on Linux.  For example,
$  GOOS=darwin go build -o /home/mk/clab-networkop/bin/containerlab main.go
go build github.com/containernetworking/plugins/pkg/ns: build constraints exclude all Go files in<EMAIL_ADDRESS>$ go mod why github.com/containernetworking/plugins/pkg/ns
# github.com/containernetworking/plugins/pkg/ns
github.com/srl-labs/containerlab/clab
github.com/containernetworking/plugins/pkg/ns

So even if I disable ignite for non-Linux OS, there are still more places where this may need to be addressed. Will you be able to address these other issues?
@hellt have you had anyone trying to run containerlab on Darnwin? Do you know of any other issues that may creep up? My understanding was that MacOS runs docker in a docker-machine VM which may prevent containerlab from accessing and manipulating container network namespace.

@networkop containerlab won't be able to run on Darwin. the docker-machine is not providing the necessary networking primitives that containerlab uses to create the wiring plumbing
The best chance on mac so far is to use a VM with proper linux OS

@networkop containerlab won't be able to run on Darwin. the docker-machine is not providing the necessary networking primitives that containerlab uses to create the wiring plumbing
The best chance on mac so far is to use a VM with proper linux OS

Which is what I ended up doing, and mounting the git repo as a shared folder via vagrant
It's just annoying that for simple stuff where I wasn't executing the tests that were relying on the CNI, for the PR I did, I had to dig down into this super deep. Then again, this might be a golang issue compared to my normal language of Python where everything is lazily evaluated.

I will note that I tried to stub out other dependencies, like vishvananda/netlink#669 where there was infrastructure for doing so, that got me further along in compiling containerlab for Darwin

I'm no OSX expert but it looks like "developing locally and running inside a container" is a common pattern, see this.

That being said, I think it IS possible to run containerlab on OSX without spinning up a dedicated Linux VM. The main idea is to run containerlab from another container as opposed to from OSX's native shell. So you'd need to

Build a long-running docker image and place containerlab binary in it.
  Bind mount /run/netns
b. Be privileged
c. Run in host network mode.
Instead of doing containerlab <verb> run docker exec my-container containerlab <verb>

I obv. haven't tested this but, in theory, this idea should work.

you can take it a step further and even develop containerlab inside that docker container, e.g. if you're using VSCode this is how you'd do it

@networkop what about docker daemon inside this container? We will need dind I suppose

oh yeah, but you just need to mount the socket file too. some something like -v /var/run/docker.sock:/var/run/docker/sock would do

That is where things will break down I'm afraid
If we mount the docker socket, then the clab docker network will be
attempted to be created in the docker machine
I remember I was trying something like that and it was full of wonders, so
I left it
Maybe someone else will be more persuasive
On Tue, 10 Aug 2021 at 12:27, Michael Kashin @.***>
wrote:

oh yeah, but you just need to mount the socket file too. some something
like -v /var/run/docker.sock:/var/run/docker/sock would do
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/srl-labs/containerlab/issues/577#issuecomment-895915238,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABLKV5KXYL57OGDBD4UVR2LT4D5KZANCNFSM5B2OIPKQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

Not if you run it in host network namespace and mount the /run/netns.  There may be some other directories that need to be mounted but I believe this should be possible. After all this is how k8s CNI plugins like Cilium work - they are distributed as containers and mount the required directories from the host and from then on they manage all networking aspects for other containers on the host.
@sc68cal do you want to investigate and test this?

@networkop there is no /run/netns on macos, so I am trying to see how this could possibly work? At the very least, it seems the netns go libs we use will have to be interfaced with darwin methods, but that is a lot of work it seems for a purpose of supporting darwin

there should be /run/netns inside the docker-machine. based on my understanding docker on MAC only mounts some OSX folders into this VM -- see this, so mounting anything else would mount it directly from the docker-machine VM.

Does the networking side of it work if you don't have any bind mounts though?
This is why I said that you may need to mount a few extra directories or specify which paths you can mount from, e.g. if /Users is mounted inside the docker-machine on the same path, you should be able to bind mound this into a containerlab container as /Users:/Users and get that visibility.

@networkop thanks, that got me further
if I  run a container on a mac like that
docker run --rm -it --network host --privileged \
       -v /var/run/docker.sock:/var/run/docker.sock \
       -v /run/netns:/run/netns \
       -v /proc:/proc \
       -v /Users/romandodin/clab:/Users/romandodin/clab \
       ubuntu bash

where the last mount is the dir under /Users that exists on mac, then you can install docker-cli and containerlab there
and that almost work
then it almost works
root@docker-desktop:/Users/romandodin/clab# clab dep -t srlfrr01.clab.yml
INFO[0000] Parsing & checking topology file: srlfrr01.clab.yml
INFO[0000] Creating lab directory: /Users/romandodin/clab/clab-srlfrr01
INFO[0000] Creating root CA
INFO[0000] Creating docker network: Name='clab', IPv4Subnet='<IP_ADDRESS>/24', IPv6Subnet='2001:172:20:20::/64', MTU='1500'
INFO[0000] Creating container: srl
INFO[0001] Creating container: srl2
INFO[0002] Creating virtual wire: srl:e1-1 <--> srl2:e1-1
ERRO[0002] Failed to open current namespace: failed to Statfs "/proc/3900/task/3907/ns/net": no such file or directory
INFO[0002] Adding containerlab host entries to /etc/hosts file
INFO[0002] 🎉 New containerlab version 0.16.2 is available! Release notes: https://containerlab.srlinux.dev/rn/0.16/#0162
Run 'containerlab version upgrade' to upgrade or go check other installation options at https://containerlab.srlinux.dev/install/
+---+--------------------+--------------+-----------------------+------+-------+---------+----------------+----------------------+
| # |        Name        | Container ID |         Image         | Kind | Group |  State  |  IPv4 Address  |     IPv6 Address     |
+---+--------------------+--------------+-----------------------+------+-------+---------+----------------+----------------------+
| 1 | clab-srlfrr01-srl  | b6d7a5aab012 | ghcr.io/nokia/srlinux | srl  |       | running | <IP_ADDRESS>/24 | 2001:172:20:20::2/64 |
| 2 | clab-srlfrr01-srl2 | feed9d422da8 | ghcr.io/nokia/srlinux | srl  |       | running | <IP_ADDRESS>/24 | 2001:172:20:20::3/64 |
+---+--------------------+--------------+-----------------------+------+-------+---------+----------------+----------------------+

there is some issue with root NS detection it seems, I think it comes from this step https://github.com/srl-labs/containerlab/blob/3087f30da9017f47ab68ac0e22a7cb94c8ddc8ff/clab/netlink.go#L179
and I am not sure why it fails...

ah, ok you need to see the process ids of the host, I'm not 100% what's the right docker command for it. can you try --cgroupns 'host' ?

in k8s it's pod.Spec.hostPID = true so it must be possible to do the same with docker

ah, there it is , i think --pid="host"

@networkop looks like this did it
I am testing it atm, but looks promising so far

@networkop
you are A W E S O M E, man
root@docker-desktop:/Users/romandodin/clab# clab dep -t srlfrr01.clab.yml
INFO[0000] Parsing & checking topology file: srlfrr01.clab.yml
INFO[0000] Creating lab directory: /Users/romandodin/clab/clab-srlfrr01
INFO[0000] Creating docker network: Name='clab', IPv4Subnet='<IP_ADDRESS>/24', IPv6Subnet='2001:172:20:20::/64', MTU='1500'
INFO[0000] Creating container: srl2
INFO[0000] Creating container: srl
INFO[0001] Creating virtual wire: srl:e1-1 <--> srl2:e1-1
INFO[0001] Adding containerlab host entries to /etc/hosts file
+---+--------------------+--------------+-----------------------+------+-------+---------+----------------+----------------------+
| # |        Name        | Container ID |         Image         | Kind | Group |  State  |  IPv4 Address  |     IPv6 Address     |
+---+--------------------+--------------+-----------------------+------+-------+---------+----------------+----------------------+
| 1 | clab-srlfrr01-srl  | 3513a7f4aed6 | ghcr.io/nokia/srlinux | srl  |       | running | <IP_ADDRESS>/24 | 2001:172:20:20::2/64 |
| 2 | clab-srlfrr01-srl2 | 191de529f549 | ghcr.io/nokia/srlinux | srl  |       | running | <IP_ADDRESS>/24 | 2001:172:20:20::3/64 |
+---+--------------------+--------------+-----------------------+------+-------+---------+----------------+----------------------+
root@docker-desktop:/Users/romandodin/clab# docker exec  clab-srlfrr01-srl ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
5: gway-2800@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether fe:70:87:f0:23:be brd ff:ff:ff:ff:ff:ff link-netns srbase-mgmt
6: monit_in@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9234 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 82:28:01:55:8b:f0 brd ff:ff:ff:ff:ff:ff link-netns monit
7: mgmt0-0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether a6:08:d2:99:bc:a5 brd ff:ff:ff:ff:ff:ff link-netns srbase-mgmt
    alias mgmt0.0
8: dummy-mgmt0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 36:a7:c8:bd:44:84 brd ff:ff:ff:ff:ff:ff
75: mgmt0@if76: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1514 qdisc noqueue state UP mode DEFAULT group default
    link/ether 02:42:ac:14:14:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
80: e1-1@if79: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9500 qdisc noqueue state UP mode DEFAULT group default
    link/ether aa:c1:ab:7d:cf:75 brd ff:ff:ff:ff:ff:ff link-netnsid 1

--{ running }--[  ]--
A:srl2# ping <IP_ADDRESS> network-instance default
Using network instance default
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=35.0 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=4.90 ms
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 4.900/19.971/35.042/15.071 ms

@networkop definitely
I will try to come up with a diagram how this works (in September), unless anyone else can do that.
For now I will create a container image with the tools/containerlab installed, so others could use it already
Next step would be to incorporate container build with goreleaser for  each release

this has been sorted out and documented here https://containerlab.srlinux.dev/install/#mac-os
@networkop feel free to close this, if that answers the initial reqs

I think this is as far as we can get on OSX. Development on OSX can be done in a similar way - from inside a container with VSCode plugins.
@sc68cal feel free to re-open if you think more can be done here.

Thanks, appreciate everyone's effort on this.