profile
viewpoint
Peter Bittner bittner @painless-software Kreuzlingen, Switzerland https://djangogigs.com/developers/peter-bittner/ Continuous delivery for a living. A perfectionist with deadlines, just like Django.

behave/behave-django 144

Behave BDD integration for Django

bittner/django-apptemplates 30

Django template loader that allows you to load and override a template from a specific Django application.

bittner/django-bootstrap-static 26

Bootstrap static content wrapped in a pip installable django package

bittner/appear-in 3

Video conversations on Ubuntu Touch, with up to 8 people, for free.

bittner/behave 1

BDD, Python style.

bittner/cmsplugin-zinnia 1

Bridge between django-blog-zinnia and django-cms

bittner/django-addthis 1

Simple integration of the AddThis social sharing widget in Django projects

bittner/awesome-django 0

A curated list of awesome Django apps, projects and resources.

bittner/bankaustria 0

UniCredit Bank Austria MobileBanking (Unofficial) WebApp for Ubuntu Touch devices.

bittner/behave-django 0

Behave BDD integration for Django

Pull request review commentvoxpupuli/modulesync

Add support for GitLab merge requests (MRs)

 def self.update(options)     end     exit 1 if errors && options[:fail_on_warnings]   end++  def self.create_pr_manager+    github_token = ENV.fetch('GITHUB_TOKEN', '')+    gitlab_token = ENV.fetch('GITLAB_TOKEN', '')++    if !github_token.empty?+      require 'modulesync/pr/github'+      ModuleSync::PR::GitHub.new(github_token, ENV.fetch('GITHUB_BASE_URL', 'https://api.github.com'))+    elsif !gitlab_token.empty?+      require 'modulesync/pr/github'

Fixed via commit 2b5388230fb39dff85e3522db753d20e8c88dfab.

chamer81

comment created time in an hour

delete branch vshn/docker-concierge

delete branch : readme/add-pr-examples

delete time in 7 hours

delete branch vshn/docker-modulesync

delete branch : feature/add-versions-110-120-130

delete time in 7 hours

Pull request review commentvshn/docker-concierge

Add examples for automatic MRs/PRs to README

 Concierge ========= -[![dockeri.co](http://dockeri.co/image/vshn/concierge)](https://hub.docker.com/r/vshn/concierge/) +[![dockeri.co](http://dockeri.co/image/vshn/concierge)](https://hub.docker.com/r/vshn/concierge/)

I figured that was in the other repo. I probably move an empty line with the IDE unconsciously. This is now fixed.

bittner

comment created time in 7 hours

push eventvshn/docker-concierge

Peter Bittner

commit sha 030b8a0dde6145a0f2b3446e04048404802b62d3

Use latest ModuleSync Docker image Add examples for automatic MRs/PRs to README

view details

push time in 7 hours

Pull request review commentvshn/docker-concierge

Add examples for automatic MRs/PRs to README

 Concierge ========= -[![dockeri.co](http://dockeri.co/image/vshn/concierge)](https://hub.docker.com/r/vshn/concierge/) +[![dockeri.co](http://dockeri.co/image/vshn/concierge)](https://hub.docker.com/r/vshn/concierge/)

This looks like a mistake stemming from the adaption of the f-strings in the Python script. :hankey:

bittner

comment created time in 7 hours

PR opened vshn/docker-concierge

Reviewers
Add examples for automatic MRs/PRs to README
  • Update to base image to the current latest ModuleSync
  • Expands the setup examples to show how automatic MRs / PRs are configured.

NOTE: This PR must be merged after https://github.com/vshn/docker-modulesync/pull/9 is merged, and the new Docker images were published successfully on Docker Hub.

+5 -3

0 comment

2 changed files

pr created time in 8 hours

push eventvshn/docker-concierge

Peter Bittner

commit sha 6c362bf24d4806b0fce2073b6e29fc77b1df79dc

Use latest ModuleSync Docker image Add examples for automatic MRs/PRs to README

view details

push time in 8 hours

create barnchvshn/docker-concierge

branch : readme/add-pr-examples

created branch time in 8 hours

PR opened vshn/docker-modulesync

Reviewers
Generate Docker images for v1.1.0 through v1.3.0

This will generate new Docker image( tag)s for the newer modulesync versions v1.1.0 through v1.3.0.

+100 -13

0 comment

6 changed files

pr created time in 8 hours

create barnchvshn/docker-modulesync

branch : feature/add-versions-110-120-130

created branch time in 8 hours

push eventvshn/concierge-cli

Peter Bittner

commit sha d78d4198ff3c21d9f89178271acab157f8e665b9

Update indirect dependency urllib3 (1.25.9 ➜ 1.25.10)

view details

push time in 13 hours

issue commentbehave/behave-django

Scenario Independence

PR #56 was closed by request of the PR and issue author. Is there a proper way to get this topic resolved? Maybe add an explanation of the behavior to the related docs?

We should otherwise close this issue.

bkuehlhorn

comment created time in 18 hours

issue commentbehave/behave-django

Getting more programmatic flexibility on the testcase type used in scenarios

With our test setup in this project we use "decorators" in the .feature files, and selectively run the related tests using behave's --tags option.

Does that already answer your question?

LucidDan

comment created time in 18 hours

issue commentbehave/behave-django

Fixtures silently do nothing when --simple is specified, and no documentation calls this out

For some reason, the tests that cover fixture loading specify a @requires-live-http decorator.

@sebastianmanger, @mixxorz, does one of you happen to remember why?

LucidDan

comment created time in 18 hours

issue commentbehave/behave-django

Fixtures silently do nothing when --simple is specified, and no documentation calls this out

I'm not sure why using --simple should result in a different behavior with fixtures. For what I understand from the documentation and source code there should be no reason why fixtures aren't loaded.

Related resources:

Were you able to understand more? Would you be able to add a test case that mimics the behavior?

LucidDan

comment created time in 19 hours

issue commentbehave/behave-django

Documentation of django_ready hook incorrectly lists "scenario" as a second positional argument

That one has popped up a few times since it was introduced with #46. Should be fixed now with commit 4d8df68. Sorry for the inconvenience. Not sure why this happened since not even the tests show the second argument.

Can you check the updated documentation and close this issue if the change is fine?

LucidDan

comment created time in 19 hours

push eventbehave/behave-django

Peter Bittner

commit sha 4d8df68c3395edb933ba5656dc596c0ca38df963

Fix documentation of django_ready hook

view details

push time in 19 hours

delete branch painless-software/painless-continuous-delivery

delete branch : renovate/sentry-sdk-0.x

delete time in 20 hours

push eventpainless-software/painless-continuous-delivery

Renovate Bot

commit sha 0e42542770d1ecb9ef3d0cb1c5699a1df0ef167b

Update dependency sentry-sdk to v0.16.3

view details

push time in 20 hours

PR merged painless-software/painless-continuous-delivery

Update dependency sentry-sdk to v0.16.3

This PR contains the following updates:

Package Update Change
sentry-sdk patch ==0.16.2 -> ==0.16.3

Release Notes

<details> <summary>getsentry/sentry-python</summary>

v0.16.3

Compare Source

  • Fix AWS Lambda support for Python 3.8.
  • The AWS Lambda integration now captures initialization/import errors for Python 3.
  • The AWS Lambda integration now supports an option to warn about functions likely to time out.
  • Testing for RQ 1.5
  • Flip default of traceparent_v2. This change should have zero impact. The flag will be removed in 0.17.
  • Fix compatibility bug with Django 3.1.

</details>


Renovate configuration

:date: Schedule: At any time (no schedule defined).

:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.

:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: Ignore: Close this PR and you won't be reminded about this update again.


  • [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

This PR has been generated by WhiteSource Renovate. View repository job log here.

+1 -1

0 comment

1 changed file

renovate[bot]

pr closed time in 20 hours

issue commentmikebader/django-vitae

Add template tag for "add new item"

Awesome! :astonished: :smiley:

With those changes the code looks much nicer.

Maybe you want to add a similar change to the edit links? Not all sections seem to allow editing, though. I'm not sure why.

bittner

comment created time in a day

issue commentcoreruleset/modsecurity-crs-docker

Update sources?

That's correct, there is only a single branch here. I mixed this up with the modsecurity-docker repository. Sorry!

shiz0

comment created time in a day

pull request commentcoreruleset/modsecurity-crs-docker

Update repo references

@shiz0 Can you squash all your changes into a single commit in the end, please?

shiz0

comment created time in a day

pull request commentcoreruleset/modsecurity-crs-docker

Update crs 3.4 dev

Good that we didn't merge this yet.

The original idea was that we have a single source of truth for the Dockerfile and its related configuration, which should ideally live in the src folder, and there should be a Makefile (or something similar) to (re)generate the Dockerfiles for all the currently supported CRS versions and web proxy combinations.

This was originally described in https://github.com/coreruleset/modsecurity-docker/issues/32 and related issues. Looks like we missed out on implementing this to the full extend, as originally planned.

What Next?

We could

  • either merge this PR "as is", and attempt the scripted implementation of generating all Dockerfile setups as a follow-up step
  • or you could try to implement the scripted approach with this PR directly, before merging it into master.

Opinions?

(Personally, I'd prefer to add another commit with the scripted generation to this PR, already. This would make sure the job gets done more likely, I believe. Just a personal opinion, though.)

fzipi

comment created time in a day

Pull request review commentcoreruleset/modsecurity-crs-docker

update repo references

-# https://github.com/SpiderLabs/owasp-modsecurity-crs/blob/v3.2/dev/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example+# https://github.com/coreruleset/coreruleset/blob/v3.2/dev/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example

It's probably a good idea to update the reference to the latest development branch, e.g.

# https://github.com/coreruleset/coreruleset/blob/v3.4/dev/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example

Though, this change would be totally optional. This file is only used in docker-compose.yml, IIUC.

shiz0

comment created time in a day

Pull request review commentcoreruleset/modsecurity-crs-docker

update repo references

-# https://github.com/SpiderLabs/owasp-modsecurity-crs/blob/v3.2/dev/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example+# https://github.com/coreruleset/coreruleset/blob/v3.2/dev/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example

Same, optional change here:

# https://github.com/coreruleset/coreruleset/blob/v3.4/dev/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example
shiz0

comment created time in a day

issue openedmikebader/django-vitae

Add template tag for "add new item"

The project has quite a few section types, which all seem to have a "Add new section" link at the end of a section to allow adding new items. The related code is duplicated all over the templates (e.g. degrees, books, articles, grants, students, talks).

Instead of duplicating code, a template tag shall implement the internals and the templates shall call the template tag with appropriate parameters. Similar for editing existing items.

created time in a day

issue openedaxeliodiaz/django-curriculum

Describe actual features in documentation

The package documentation describes:

  • how to install the package, run the migrations and how to extend urls.py to make API endpoints available
  • how to run tests and how to contribute

What is missing is a description of the actual features, e.g.

  • What does the package do?
  • How can users benefit?

The "Features" section from the README, which is included in the docs still bears a big "TODO" notice.

created time in a day

issue commentcoreruleset/modsecurity-crs-docker

Update sources?

The repository was moved only recently. You can expect most if not all absolute URLs to point to the "wrong" location. If you want to try a PR to fix the situation that would be helpful. Only the master branch is relevant, you can ignore all other branches.

shiz0

comment created time in 2 days

issue commentcoreruleset/modsecurity-crs-docker

Update sources?

The README on Docker Hub is not updated automatically since we build the images with GitHub Actions and don't let Docker Hub take care of it. That needs to be updated manually. Thanks for reporting!

shiz0

comment created time in 2 days

issue commentbehave/behave-django

Getting more programmatic flexibility on the testcase type used in scenarios

I can't comment properly now as I'm on the beach, currently. 🏖️ However, I encourage you to find out and find an intuitive, the most intuitive way, ideally.

Just a comment on your history, my personal preference would be to integrate pytest style testing into behave, or at least behave-django. See https://github.com/behave-contrib/behave-pytest/issues/1 for example.

I've also recently added page objects to allow for a clean approach on BDD testing typical websites.

Whatever helps to make testing easy, intuitive, straightforward, yet still keeping a clean approach, let's make it come true if it's not possible yet.

LucidDan

comment created time in 3 days

delete branch painless-software/painless-continuous-delivery

delete branch : renovate/urllib3-1.x

delete time in 11 days

push eventpainless-software/painless-continuous-delivery

Renovate Bot

commit sha fbca715f113744e538e98f558cfec5d0a59b517d

Update dependency urllib3 to v1.25.10

view details

Peter Bittner

commit sha e9f4af610ffc06048c52f5977cdb66e841f6a2d6

Correct indenting

view details

push time in 11 days

PR merged painless-software/painless-continuous-delivery

Update dependency urllib3 to v1.25.10

This PR contains the following updates:

Package Update Change
urllib3 (source) patch ==1.25.9 -> ==1.25.10

Release Notes

<details> <summary>urllib3/urllib3</summary>

v1.25.10

Compare Source

Release: 1.25.10

</details>


Renovate configuration

:date: Schedule: At any time (no schedule defined).

:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.

:recycle: Rebasing: Renovate will not automatically rebase this PR, because other commits have been found.

:no_bell: Ignore: Close this PR and you won't be reminded about this update again.


  • [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

This PR has been generated by WhiteSource Renovate. View repository job log here.

+1 -1

0 comment

1 changed file

renovate[bot]

pr closed time in 11 days

push eventpainless-software/painless-continuous-delivery

Peter Bittner

commit sha ced3c48c3e263ef92afa1c812eddb4058fd3c9db

Correct indenting

view details

push time in 11 days

Pull request review commentpainless-software/painless-continuous-delivery

Update dependency urllib3 to v1.25.10

 pytz==2020.1              # via django sentry-sdk==0.16.0        # via -r requirements.in{% endif %} sqlparse==0.3.1           # via django {%- if cookiecutter.monitoring == 'Sentry' %}-urllib3==1.25.9           # via sentry-sdk{% endif %}+urllib3==1.25.10           # via sentry-sdk{% endif %}

The change should keep the indenting intact.

urllib3==1.25.10          # via sentry-sdk{% endif %}
renovate[bot]

comment created time in 11 days

delete branch painless-software/painless-continuous-delivery

delete branch : renovate/sentry-sdk-0.x

delete time in 11 days

push eventpainless-software/painless-continuous-delivery

Renovate Bot

commit sha 6faefa8f19c5ca322013c8c20f2450bb86cdcc66

Update dependency sentry-sdk to v0.16.2

view details

push time in 11 days

PR merged painless-software/painless-continuous-delivery

Update dependency sentry-sdk to v0.16.2

This PR contains the following updates:

Package Update Change
sentry-sdk patch ==0.16.0 -> ==0.16.2

Release Notes

<details> <summary>getsentry/sentry-python</summary>

v0.16.2

Compare Source

  • New (optional) integrations for richer stacktraces: pure_eval for additional variables, executing for better function names.

v0.16.1

Compare Source

  • Flask integration: Fix a bug that prevented custom tags from being attached to transactions.

</details>


Renovate configuration

:date: Schedule: At any time (no schedule defined).

:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.

:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: Ignore: Close this PR and you won't be reminded about this update again.


  • [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

This PR has been generated by WhiteSource Renovate. View repository job log here.

+1 -1

0 comment

1 changed file

renovate[bot]

pr closed time in 11 days

PR opened appuio/container-oc

Upgrade Kustomize to v3.8.1, SOPS to v3.6.0
  • Kustomize is reported to have a new --from-file option of the edit command
  • SOPS has new --recursive and --omit-extensions flags
+30 -30

0 comment

10 changed files

pr created time in 11 days

push eventappuio/container-oc

Peter Bittner

commit sha 86bf5c69a0efe5f7d22a2a58ccf435b0312c2e80

Upgrade Kustomize to v3.8.1, SOPS to v3.6.0 Kustomize is reported to have a new `--from-file` option of the `edit` command SOPS has new `--recursive` and `--omit-extensions` flags https://github.com/kubernetes-sigs/kustomize/issues/189#issuecomment-663124335

view details

push time in 11 days

create barnchappuio/container-oc

branch : feature/upgrade-kustomize-sops

created branch time in 11 days

issue commentbittner/lego-mindstorms-ev3-comparison

cookie fail

It looks like there is no button anymore, or none with a class="l-accept__btn" attribute on the page being evaluated. Or the page did load too slowly.

wclifton1

comment created time in 14 days

issue commentbittner/pyclean

Release 1.1

I have released v2.0.0, which should now work on any platform supported by Python3.

Can you try whether it does what you expect?

python3 -m pip install --upgrade pyclean
pyclean --version
2.0.0
pyclean --help
PhilippSelenium

comment created time in 16 days

issue commentbittner/pyclean

python 3.7 invalid syntax

I have released v2.0.0, which should now work on any platform supported by Python3.

Can you try whether it does what you expect?

leonyu

comment created time in 16 days

issue commentbittner/pyclean

Update version of pyclean on PyPI

I have released v2.0.0, which should now work on any platform supported by Python3.

Can you try whether it does what you expect?

nth10sd

comment created time in 16 days

issue closedbittner/pyclean

Make pyclean warn about ImportError (instead of failing)

The lack of cross-platform compatibility seems rooted mainly in the dependency on debpython:

ImportError: No module named debpython

Related

closed time in 16 days

bittner

issue commentbittner/pyclean

Make pyclean warn about ImportError (instead of failing)

I will go a different route: Instead of trying to make the Debian scripts behave well on other platforms there will be the modern, pure python implementation that will try to come close to Debian's feature set for cleaning up byte code.

I say "try", because there are no tests available for the Debian scripts, which makes it difficult to prove that the implementations match. I'll be dependent on feedback from the original maintainers.

bittner

comment created time in 16 days

issue commentbittner/pyclean

pyclean3 failing on Windows 10

I have released v2.0.0, which should now work on any platform supported by Python3.

@HoECoder @rittneje Can you try whether it does what you expect?

C:\your\code\folder> python3 -m pip install --upgrade pyclean
C:\your\code\folder> pyclean --version
2.0.0
C:\your\code\folder> pyclean .

You can also use the --dry-run and --verbose options to help you understand what the command is doing.

See the usage screen for details:

C:\your\code\folder> pyclean --help
HoECoder

comment created time in 16 days

pull request commentjazzband/django-analytical

Updated regex for gtag to accept measurement ID

@taharushain Flake8 complains that 3 lines are too long. Please split up the lines to make Flake8 happy.

taharushain

comment created time in 17 days

issue commentappuio/seiso

Possibility to specify namespace parameter makes configuration confusing

Can you re-evaluate the current behavior? I believe it is already in sync with the oc CLI. There should be no need for a change.

ccremer

comment created time in 18 days

delete tag bittner/pyclean

delete tag : 2.0.0

delete time in 18 days

created tagbittner/pyclean

tag2.0.0

Pure Python cross-platform pyclean. Clean up your Python bytecode.

created time in 18 days

created tagbittner/pyclean

tag2.0.0

Pure Python cross-platform pyclean. Clean up your Python bytecode.

created time in 18 days

delete tag bittner/pyclean

delete tag : 2.0.0

delete time in 18 days

created tagbittner/pyclean

tag2.0.0

Pure Python cross-platform pyclean. Clean up your Python bytecode.

created time in 18 days

delete branch bittner/pyclean

delete branch : feature/modern-implementation

delete time in 18 days

push eventbittner/pyclean

Peter Bittner

commit sha 0d020f4e3f2b9557f5d5c1eb0035b4158359f70c

Add modern implementation (directory cleanup)

view details

Peter Bittner

commit sha 8fd1f0fe02546d798d07bd8ad5289b855e31735d

Release v2.0.0

view details

push time in 18 days

PR merged bittner/pyclean

Add modern implementation (directory cleanup)

Implements the modern, pure Python and Python 3 only bytecode files and folders cleanup.

Allows to specify target directories only, for the moment (no packages and the like).

+221 -17

0 comment

5 changed files

bittner

pr closed time in 18 days

push eventbittner/pyclean

Peter Bittner

commit sha b6cd2338664ea6c1cdf7d7aab2ed21190145e6df

Release v2.0.0

view details

push time in 19 days

Pull request review commentappuio/seiso

Add unit tests to ConfigMap and Secret

+package configmap++import (+	"github.com/stretchr/testify/assert"+	"k8s.io/api/core/v1"+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"+	"k8s.io/apimachinery/pkg/runtime/schema"+	"k8s.io/client-go/kubernetes/fake"+	"testing"+)++type HelperKubernetes struct{}++func (k *HelperKubernetes) ResourceContains(namespace, value string, resource schema.GroupVersionResource) (bool, error) {+	if "nameA" == value {+		return false, nil+	} else {+		return true, nil+	}+}++var now = metav1.Now()+var testNamespace = "testNamespace"++func Test_ListNamesAndLabels(t *testing.T) {+	tests := []struct {+		name           string+		configMaps     []v1.ConfigMap+		configMapNames []string+		labels         []string+		err            error+	}{+		{+			name:           "ShouldParseNamesAndLabels",+			configMaps:     generateTestConfigMaps(),+			configMapNames: []string{"nameA", "nameB"},+			labels:         []string{"keyA=valueA", "keyB=valueB", "keyC=valueC"},+		},+	}++	for _, tt := range tests {+		t.Run(tt.name, func(t *testing.T) {+			fakeConfigMapInterface := fake.NewSimpleClientset(&tt.configMaps[0], &tt.configMaps[1]).CoreV1().ConfigMaps(testNamespace)+			service := NewConfigMapsService(fakeConfigMapInterface, &HelperKubernetes{})+			resources, labels, err := service.ListNamesAndLabels()+			assert.NoError(t, err)+			assert.ElementsMatch(t, tt.configMapNames, resources)+			assert.ElementsMatch(t, tt.labels, labels)+		})+	}+}++func Test_List(t *testing.T) {+	tests := []struct {+		name       string+		configMaps []v1.ConfigMap+		err        error+	}{+		{+			name:       "ShouldListAllConfigMaps",+			configMaps: generateTestConfigMaps(),+		},+	}++	for _, tt := range tests {+		t.Run(tt.name, func(t *testing.T) {+			fakeConfigMapInterface := fake.NewSimpleClientset(&tt.configMaps[0], &tt.configMaps[1]).CoreV1().ConfigMaps(testNamespace)+			service := NewConfigMapsService(fakeConfigMapInterface, &HelperKubernetes{})+			list, err := service.List(metav1.ListOptions{})+			assert.NoError(t, err)+			assert.ElementsMatch(t, tt.configMaps, list)+		})+	}+}++func Test_Delete(t *testing.T) {+	tests := []struct {+		name       string+		configMaps []v1.ConfigMap+		err        error+	}{+		{+			name:       "ShouldDeleteAllConfigMaps",+			configMaps: generateTestConfigMaps(),+		},+	}++	for _, tt := range tests {+		t.Run(tt.name, func(t *testing.T) {+			// create service with fake clients

Here is the explanation of the "for some reason":

  • Code should be self-explanatory (no comments should be needed that explain what the code does, unless they explain a concept or approach)
  • Test code should be obvious and easy to read (if test code is difficult to understand there is risk that the test code doesn't do what you intended; and who can easily prove without tests?)

The simpler a test is, the better.

ZuGao

comment created time in 19 days

PR opened bittner/pyclean

Add modern implementation (directory cleanup)

Implements the modern, pure Python and Python 3 only bytecode files and folders cleanup.

Allows to specify target directories only, for the moment (no packages and the like).

+216 -12

0 comment

3 changed files

pr created time in 19 days

create barnchbittner/pyclean

branch : feature/modern-implementation

created branch time in 19 days

issue commentev3dev/vscode-ev3dev-browser

Submit extension also in Open VSX store

I managed to flawlessly install the extension in my shiny up-to-date Codium on Ubuntu 18.04.4 LTS. The extension page showed "7 downloads", and now "8 downloads" in Codium, and also the "License" link goes to open-vsx.org, which lets me assume it was actually installed from the new store. :+1:

bittner

comment created time in 19 days

issue commentmbi/django-rosetta

Break dependency on the admin

I'd suggest to generalize this topic and call it "Separate Rosetta cleanly from Django Admin".

Why? – Because currently, Rosetta is not even cleanly integrated with the Admin:

  • From the user interface, it's not possible to navigate back to the admin (although it seems to be visually integrated)
  • Rosetta's templates don't inherit from Django's admin/base.html, which makes it tedious to customize its look and feel

If there were a clean separation it should be easy to allow for a Django setting to use either an integrated Django admin user experience, or a completely independent, stand-alone app appearance and behavior.

That would then potentially obsolete or replace settings like ROSETTA_SHOW_AT_ADMIN_PANEL.

alvra

comment created time in 19 days

issue commentmbi/django-rosetta

setting "ROSETTA_SHOW_AT_ADMIN_PANEL" not working

I can confirm this works in the current version (0.9.4).

This issue can probably be closed.

lc-thomas

comment created time in 19 days

issue commentappuio/seiso

Possibility to specify namespace parameter makes configuration confusing

I agree: I would not deprecate or remove the possibility to explicitly specify the full path for an image.

Let me reaffirm, I believe it's a good idea to keep the behavior in sync with the tools the Kubernetes ecosystem provides.

ccremer

comment created time in 20 days

push eventvshn/concierge-cli

Peter Bittner

commit sha 5c955b6bda698be0a7fc590621fe809875b75e26

Update python-gitlab (2.3.1 ➜ 2.4.0)

view details

push time in 21 days

issue commentpuppetlabs/pdk

Add switch to make PDK validate fail on warnings

Nice! IIUC there is no command line switch for that, though. You have to enable the feature via .puppet-lint.rc.

Can this feature be made available via a command line switch, too?

bittner

comment created time in 21 days

Pull request review commentappuio/seiso

WIP: Add unit tests to Secrets and ConfigMaps

 func init() { 		"Delete Secrets that are older than the duration, e.g. [1y2mo3w4d5h6m7s]") } -func validateSecretCommandInput(args []string) error {-+func validateSecretCommandInput() error { 	if _, err := parseCutOffDateTime(config.Resource.OlderThan); err != nil { 		return fmt.Errorf("Could not parse older-than flag: %w", err) 	} 	return nil } -func executeSecretCleanupCommand(args []string) error {-	if len(config.Resource.Labels) == 0 {-		if err := listSecrets(); err != nil {+func executeSecretCleanupCommand(resources resource.SecretResources, config *cfg.Configuration) error {+	namespace := resources.GetNamespace()+	labels := config.Resource.Labels+	if len(labels) == 0 {+		secretNames, labels, err := resources.ListSecrets()+		if err != nil { 			return err 		}+		log.WithFields(log.Fields{+			"\n - namespace": namespace,+			"\n - 🔐 secrets": secretNames,+			"\n - 🎫 labels":  labels,+		}).Info("Please use labels to select Secrets. The following Secrets and Labels are available:") 		return nil 	} -	c := config.Resource-	namespace := config.Namespace--	log.WithField("namespace", namespace).Debug("Looking for secrets")+	log.WithField("namespace", namespace).Debug("looking for secrets") -	foundSecrets, err := openshift.ListSecrets(namespace, getListOptions(c.Labels))+	err := resources.LoadSecrets(getListOptions(labels)) 	if err != nil {-		return fmt.Errorf("Could not retrieve secrets with labels '%s' for '%s': %w", c.Labels, namespace, err)+		return fmt.Errorf("could not retrieve secrets with labels '%s' for '%s': %w", labels, namespace, err) 	} -	unusedSecrets, err := openshift.ListUnusedResources(namespace, foundSecrets)+	err = resources.FilterUsed() 	if err != nil {-		return fmt.Errorf("Could not retrieve unused secrets for '%s': %w", namespace, err)+		return fmt.Errorf("could not retrieve unused secrets for '%s': %w", namespace, err) 	} -	cutOffDateTime, _ := parseCutOffDateTime(c.OlderThan)-	filteredSecrets := cleanup.FilterResourcesByTime(unusedSecrets, cutOffDateTime)-	filteredSecrets = cleanup.FilterResourcesByMaxCount(filteredSecrets, config.History.Keep)+	olderThan := config.Resource.OlderThan+	keep := config.History.Keep+	cutOffDateTime, _ := parseCutOffDateTime(olderThan)+	resources.FilterByTime(cutOffDateTime)+	resources.FilterByMaxCount(keep)  	if config.Delete {-		DeleteResources(-			filteredSecrets,-			func(client *core.CoreV1Client) cfg.CoreObjectInterface {-				return client.Secrets(namespace)-			})+		err := resources.Delete(func(client kubernetes.CoreV1ClientInt) cfg.CoreObjectInterface {+			return client.Secrets(namespace)+		})+		if err != nil {+			log.WithError(err).Errorf("Failed to complete deletion in namespace %s", namespace)+		} 	} else {-		log.Infof("Showing results for --keep=%d and --older-than=%s", config.History.Keep, c.OlderThan)-		PrintResources(filteredSecrets, namespace)+		log.Infof("showing results for --keep=%d and --older-than=%s", keep, olderThan)

Same here. Is there a reason why you change this to small caps?

ZuGao

comment created time in 21 days

Pull request review commentappuio/seiso

WIP: Add unit tests to Secrets and ConfigMaps

 func init() { 		"Delete Secrets that are older than the duration, e.g. [1y2mo3w4d5h6m7s]") } -func validateSecretCommandInput(args []string) error {-+func validateSecretCommandInput() error { 	if _, err := parseCutOffDateTime(config.Resource.OlderThan); err != nil { 		return fmt.Errorf("Could not parse older-than flag: %w", err) 	} 	return nil } -func executeSecretCleanupCommand(args []string) error {-	if len(config.Resource.Labels) == 0 {-		if err := listSecrets(); err != nil {+func executeSecretCleanupCommand(resources resource.SecretResources, config *cfg.Configuration) error {+	namespace := resources.GetNamespace()+	labels := config.Resource.Labels+	if len(labels) == 0 {+		secretNames, labels, err := resources.ListSecrets()+		if err != nil { 			return err 		}+		log.WithFields(log.Fields{+			"\n - namespace": namespace,+			"\n - 🔐 secrets": secretNames,+			"\n - 🎫 labels":  labels,+		}).Info("Please use labels to select Secrets. The following Secrets and Labels are available:") 		return nil 	} -	c := config.Resource-	namespace := config.Namespace--	log.WithField("namespace", namespace).Debug("Looking for secrets")+	log.WithField("namespace", namespace).Debug("looking for secrets") -	foundSecrets, err := openshift.ListSecrets(namespace, getListOptions(c.Labels))+	err := resources.LoadSecrets(getListOptions(labels)) 	if err != nil {-		return fmt.Errorf("Could not retrieve secrets with labels '%s' for '%s': %w", c.Labels, namespace, err)+		return fmt.Errorf("could not retrieve secrets with labels '%s' for '%s': %w", labels, namespace, err) 	} -	unusedSecrets, err := openshift.ListUnusedResources(namespace, foundSecrets)+	err = resources.FilterUsed() 	if err != nil {-		return fmt.Errorf("Could not retrieve unused secrets for '%s': %w", namespace, err)+		return fmt.Errorf("could not retrieve unused secrets for '%s': %w", namespace, err)

Why do you start with a lower-case character on these messages (line 86, too), while all the other error messages start with a capital letter?

ZuGao

comment created time in 21 days

Pull request review commentappuio/seiso

WIP: Add unit tests to Secrets and ConfigMaps

+package cmd++import (+	"errors"+	"github.com/appuio/seiso/cfg"+	"github.com/appuio/seiso/cmd/mocks"+	"github.com/appuio/seiso/pkg/resource"+	"github.com/golang/mock/gomock"+	"github.com/stretchr/testify/assert"+	"testing"+)++//go:generate mockgen -source=configmaps_test.go -destination=mocks/mock_configmaps.go -package=mocks -aux_files=github.com/appuio/seiso/cmd=common.go MockConfigMapsResources

Doesn't this apply to the entirety of the *_test.go files, too? If we separated the tests out into a dedicated tests folder we'd have this issue solved. But that requires structural changes to the tests. We may want to discuss this after this PR has been merged.

ZuGao

comment created time in 21 days

Pull request review commentappuio/seiso

WIP: Add unit tests to Secrets and ConfigMaps

 func validateConfigMapCommandInput(args []string) error { 	return nil } -func executeConfigMapCleanupCommand(args []string) error {-	if len(config.Resource.Labels) == 0 {-		if err := listConfigMaps(); err != nil {+func executeConfigMapCleanupCommand(resources resource.ConfigMapResources, config *cfg.Configuration) error {+	namespace := resources.GetNamespace()+	labels := config.Resource.Labels+	if len(labels) == 0 {+		configMapNames, labels, err := resources.ListConfigMaps()+		if err != nil { 			return err 		}+		log.WithFields(log.Fields{+			"\n - namespace":    namespace,+			"\n - 🔓 configMaps": configMapNames,+			"\n - 🎫 labels":     labels,+		}).Info("Please use labels to select ConfigMaps. The following ConfigMaps and Labels are available:") 		return nil 	} -	c := config.Resource-	namespace := config.Namespace- 	log.WithField("namespace", namespace).Debug("Looking for ConfigMaps") -	foundConfigMaps, err := openshift.ListConfigMaps(namespace, getListOptions(c.Labels))+	err := resources.LoadConfigMaps(getListOptions(labels)) 	if err != nil {-		return fmt.Errorf("Could not retrieve ConfigMaps with labels '%s' for '%s': %w", c.Labels, namespace, err)+		return fmt.Errorf("could not retrieve ConfigMaps with labels '%s' for '%s': %w", labels, namespace, err) 	} -	unusedConfigMaps, err := openshift.ListUnusedResources(namespace, foundConfigMaps)+	err = resources.FilterUsed() 	if err != nil {-		return fmt.Errorf("Could not retrieve unused ConfigMaps for '%s': %w", namespace, err)+		return fmt.Errorf("could not retrieve unused configMaps for '%s': %w", namespace, err)

"ConfigMaps" seems to be written with a capital initial letter in all other locations (usage screen, debug output). It might make sense to keep it this way here, too?

ZuGao

comment created time in 21 days

issue commentappuio/seiso

Possibility to specify namespace parameter makes configuration confusing

It should just work the same way as oc does. Simple as that. There should be no need to reinvent the wheel, no need for a developer used to the OpenShift CLI to learn a new behavior.

I believe, with oc the namespace is like the place where you start your command (similar to pwd in a shell). When you specify the path explicitly this takes precedence. I think that's oc's behavior. Please, let's verify this and keep the behavior in sync between the two CLI's.

ccremer

comment created time in 21 days

issue commentcoreruleset/modsecurity-docker

Switching to owasp/modsecurity:nginx - unable to audit log to file

The env variables are simply placeholder values with defaults, as documented. If you override or overwrite a configuration file that replaces or excludes the configuration files shipped with the image then your configuration takes over. There is no magic. It should be straight-forward to understand.

Also note that the new images are based on the official Apache and Nginx images, so the directory layout may have changed.

dosera

comment created time in 22 days

issue commentcoreruleset/modsecurity-docker

Switching to owasp/modsecurity:nginx - unable to audit log to file

Yes, the environment variables should make it easier to run the container image in a cloud-native setup (e.g. with Kubernetes, but also without). See the README for an explanation of all of them.

Let us know if you find this hard to use, and what your expectations on an easy, yet modern setup are.

dosera

comment created time in 22 days

pull request commentjazzband/django-analytical

Fixed error for Matomo (return code 500-php/server error) - no parent…

Your PR needs to be rebased to be eligible for being merged.

Sorry, no time to improve the tests

This sounds like an arrogant statement. I'm sure you don't mean it that way.

If your changes need tests to be adapted I'm afraid there is no other choice than getting that done, too. If you write tests, if you refactor tests, if you improve tests, that demonstrates professional attitude. If you break tests, that is something that would be unprofessional from our side to accept. We can't do that.

What we can do is offer our support. Let us know where you struggle with aligning the existing tests with your changes. There will be someone taking their time – even if "we don't have it", even when our families would deserve that time more. That's how we people are in the free software community. Ask us! We're happy about your contribution, and we're here to help.

rristow

comment created time in 25 days

issue commentjazzband/django-analytical

Google analytics Measurement ID Issue

Probably.

(Frankly, I don't care, because I don't use Google Analytics and I would encourage everyone to stop using it, too. But that's a totally different discussion.)

What does Google's documentation say? Are there official patterns of valid ID's? If not let's make it simple for everyone.

taharushain

comment created time in 25 days

pull request commentsvenkreiss/html5validator

API for programmatic access to error messages

However, "flake8" gives warnings on validator.py lines 202 and 205 (lines 174 and 177 in the master branch), which are unrelated to these changes.

This is normal, and happens in all project, recently. The story is that Flake8 got its rules updated to identify code that is hard to understand. This is exactly the case in line 202-204.

I think that deserves fixing, also in this PR, as a side-job. As an act of good citizenship. Simply try to figure out what is the meaning of the code and turn the variable names into something self-explanatory (i.e. long names that actually tell a story).

bemoody

comment created time in 25 days

issue closedbittner/pyclean

Release 1.1

Is it possible to release a new version in order to get all the fixes from the master branch? Version 1.0 is just broken on python3.6

$ pyclean .
pyclean.py", line 63
    except (IOError, OSError), e:
                             ^
SyntaxError: invalid syntax

closed time in a month

PhilippSelenium

issue commentbittner/pyclean

Release 1.1

Try using the explicit alias py3clean, as I explained in #17. I hope that helps.

The current master mostly contains preparations for an upcoming 2.0.0 release. It's seems broken, actually, for the new --legacy option due to the fact that there were never tests for the Debian scripts that I integrated.

I'll try to work on the next release in the upcoming weeks.

PhilippSelenium

comment created time in a month

issue commentbittner/pyclean

Update version of pyclean on PyPI

Pyclean is currently just a wrapper around the Debian scripts (as described in and linked to from the README).

Version 1.0.0 installs three direct aliases to the original scripts: pyclean (for Python 2), py3clean (for Python 3), pypyclean (for PyPy3). You may want to try to use them directly to match your Python version.

Note that the plan are to get rid of the heritage (in some ideally backward compatible way) and have just a single implementation. This is what is currently the modern module.

nth10sd

comment created time in a month

issue commentsvenkreiss/html5validator

Consider using --stdout option to vnu.jar

@mhansen Could you turn your suggestion into an acitonable PR, please? This will make it more likely that your feature suggestion comes true.

mhansen

comment created time in a month

pull request commentsvenkreiss/html5validator

API for programmatic access to error messages

@bemoody Any plans to finish this PR?

At least, the branch must be rebased and conflicts resolved.

bemoody

comment created time in a month

issue commentsvenkreiss/html5validator

Can we get a new pip release please?

True. This will likely provide a more readable, more usable validation output to everyone.

mhansen

comment created time in a month

issue commentjazzband/django-analytical

Google analytics Measurement ID Issue

Can you verify which change would be necessary to the django-analytical code? Ideally, you would create a PR for that.

taharushain

comment created time in a month

push eventtalent-campus/talent-campus.github.io

Peter Bittner

commit sha 72733c7b4fffd2810c7b7534898a9c13cd8f384d

Validate HTML before deploying with GitLab Pages

view details

push time in a month

Pull request review commentappuio/seiso

Move logic out of the Configuration container

 func NewDefaultConfig() *Configuration { 	} } -//CoreObjectInterface defines interface for core kubernetes resources-type CoreObjectInterface interface {-	Delete(name string, options *metav1.DeleteOptions) error+func (c *Configuration) KubernetesNamespace() string {+	if c.Namespace == "" {+		log.Debug("Determining namespace from kubeconfig...")+		defaultNamespace := "default"+		namespace, err := kubernetes.Namespace()+		if err != nil {+			log.Warningf("Unable to determine default namespace. Falling back to '%s'", defaultNamespace)+			c.Namespace = defaultNamespace

I think the fallback was to make the tests pass in the pipeline. But that should be obsolete, we do mock the namespace now, don't we?

ccremer

comment created time in a month

push eventpainless-software/ansible-role-software

Peter Bittner

commit sha c1adef02a4cdb8abe44e80673e8d28583c15e403

Fix installation of helm2 and helm3 -> helm

view details

push time in a month

push eventpainless-software/ansible-role-software

Peter Bittner

commit sha 95fa6a9466ae2a8d43a1f2f088e9a039462156d8

Install helm2 and helm3 in parallel Update helmfile, helm, kubeseal, k3s, k9s

view details

push time in a month

delete branch painless-software/painless-continuous-delivery

delete branch : renovate/sentry-sdk-0.x

delete time in a month

push eventpainless-software/painless-continuous-delivery

Renovate Bot

commit sha 0d5ee5226a55920ac71285874d57f1e5f031382a

Update dependency sentry-sdk to v0.16.0

view details

push time in a month

PR merged painless-software/painless-continuous-delivery

Update dependency sentry-sdk to v0.16.0

This PR contains the following updates:

Package Update Change
sentry-sdk minor ==0.15.1 -> ==0.16.0

Release Notes

<details> <summary>getsentry/sentry-python</summary>

v0.16.0

Compare Source

  • Redis integration: add tags for more commands
  • Redis integration: Patch rediscluster package if installed.
  • Session tracking: A session is no longer considered crashed if there has been a fatal log message (only unhandled exceptions count).
  • Breaking change: Revamping of the tracing API.
  • Breaking change: before_send is no longer called for transactions.

</details>


Renovate configuration

:date: Schedule: At any time (no schedule defined).

:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.

:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: Ignore: Close this PR and you won't be reminded about this update again.


  • [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

This PR has been generated by WhiteSource Renovate. View repository job log here.

+1 -1

0 comment

1 changed file

renovate[bot]

pr closed time in a month

pull request commentjazzband/django-analytical

Only show piwik warning if using piwik

We should eventually remove the Piwiki integration as such, one day.

WhyNotHugo

comment created time in a month

pull request commentvoxpupuli/modulesync

release 1.2.0

Nice! :confetti_ball: :rocket:

bastelfreak

comment created time in a month

issue openeddjango-dbbackup/django-dbbackup

Deduplicated backups (e.g. Borg or restic)

IIUC, the current feature set requires you to handle rotating the backups yourself.

  • Whether you compress, encrypt and store to whatever backend, there will always be something like a tarball for every new execution of a backup process. Hence, you have to deal yourself with deleting old copies (and keeping selected ones, e.g. one every week for the last 3 months) to make sure you don't run out of disk space.
  • Also, if there are no changes (be it in the database or the media files) there will still be a backup, which will unnecessarily occupy disk space and/or incur additional cost on a storage service.

These problems are solved by backup applications that do deduplicated backups, such as Borg or Restic. The latter is a Go implementation, the former a Python tool.

Would it be realistic to try and integrate those tools in django-dbbackup? Calling them as external binaries would likely be sufficient.

created time in a month

Pull request review commentappuio/seiso

WIP: Replace viper with koanf

 var ( 		PersistentPreRun: parseConfig, 	} 	config = cfg.NewDefaultConfig()+	k      = koanf.New(".")

Is the k self-explanatory enough?

ccremer

comment created time in a month

issue commentdjango-dbbackup/django-dbbackup

Is ReadTheDoc up to date ?

@ZuluPro All but the "latest" docs builds ran. Can you trigger also "latest"?

Personally, I would remove the "master" version and use "latest" instead. Everything else seems confusing. What do you think?

aymericderbois

comment created time in a month

issue commentdjango-dbbackup/django-dbbackup

Is ReadTheDoc up to date ?

@ZuluPro Could you verify the build configuration on Readthedocs? The last (automatic) build was 3 years and 9 months ago. It should build automatically on each change.

aymericderbois

comment created time in a month

more