1660983720
PkgDev provides tools for Julia package developers. The package is currently being rewritten for Julia 1.x and only for brave early adopters.
Tag a new release for package package_name
. The package you want to tag must be deved in the current Julia environment. You pass the package name package_name
as a String
. The git commit that is the HEAD
in the package folder will form the basis for the version to be tagged.
If you don't specify a version
, then the version
field in the Project.toml
must have the format x.y.z-DEV
, and the command will tag version x.y.z
as the next release. Alternatively you can specify one of :major
, :minor
or :patch
for the version
parameter. In that case PkgDev.tag
will increase that part of the version number by 1 and tag that version. Finally, you can also specify a full VersionNumber
as the value for the version
parameter, in which case that version will be tagged.
The only situation where you would specify a value for registry
is when you want to register a new package for the first time in a registry that is not General
. In all other situations, PkgDev.tag
will automatically figure out in which registry your package is registered. When you do pass a value for registry
, it should simply be the short name of a registry that is one of the registries your local system is connected with.
If you want to add custom release notes for TagBot, do so with the release_notes
keyword.
PkgDev.tag
runs through the following process when it tags a new version:
release-x.y.z
.Project.toml
and commit that change on the release branch.Project.toml
to x.y.z+1-DEV
and commit that change also to the release branch. 4a. For packages in the General registry: add a comment that triggers Registrator. 4b. For packages in other registries: Open a pull request against the registry that tags the first new commit on the release branch as a new version x.y.z
.master
.If you have TagBot installed for your package with the branches: true
setting, it will automatically merge the release-x.y.z
branch into master
once the pull request for the registry has been merged. If you use the package butler (desribed below) it auto-configures your repository for this workflow.
Enables the Julia Package Butler for package package_name
. The package must be deved in the current Julia environment. The command will make various modifications to the files in the deved folder of the package. You then then need to commit these changes and push them to GitHub. The command will also add a deploy key to the GitHub repository of the package and show instructions on how to add two GitHub Actions secrets to the repository.
The channel
argument can be :auto
, :stable
or :dev
. There are two channels of updates: stable
and dev
. The dev
channel will run the Julia Package Butler workflow every 5 minutes and it will use the master
branch of the Julia Packge Butler engine, i.e. it will get new features more quickly. The stable
branch runs the Julia Package Butler workflow every hour, and new features in the Julia Package Butler engine are only pushed out to the stable channel once they have been tested for a while on the dev
channel. If you specify :auto
as the argument, any existing channel choice you have previously made for the package will be retained, otherwise the package will be configure for the stable
channel.
The template
argument can be :auto
, :default
or :bach
. Different templates will configure different aspects of your package. At this point everyone should use the :default
template (or :auto
template), everything else is considered experimental.
Switch the Julia Package Butler channel for package package_name
. The package you want to tag must be deved in the current Julia environment and the Julia Package Butler must already be enabled for the package. The channel
argument can be :auto
, :stable
or :dev
, see the documentation for PkgDev.enable_pkgbutler
for an explanation of the different channels.
Switch the Julia Package Butler template for package package_name
. The package you want to tag must be deved in the current Julia environment and the Julia Package Butler must already be enabled for the package. The template
argument can be :auto
, :default
or :bach
.
Format all the Julia source code files for the package with name package_name
. The package you want to format must be deved in the current Julia environment. This function uses DocumentFormat.jl.
Author: JuliaLang
Source Code: https://github.com/JuliaLang/PkgDev.jl
License: View license
1595059664
With more of us using smartphones, the popularity of mobile applications has exploded. In the digital era, the number of people looking for products and services online is growing rapidly. Smartphone owners look for mobile applications that give them quick access to companies’ products and services. As a result, mobile apps provide customers with a lot of benefits in just one device.
Likewise, companies use mobile apps to increase customer loyalty and improve their services. Mobile Developers are in high demand as companies use apps not only to create brand awareness but also to gather information. For that reason, mobile apps are used as tools to collect valuable data from customers to help companies improve their offer.
There are many types of mobile applications, each with its own advantages. For example, native apps perform better, while web apps don’t need to be customized for the platform or operating system (OS). Likewise, hybrid apps provide users with comfortable user experience. However, you may be wondering how long it takes to develop an app.
To give you an idea of how long the app development process takes, here’s a short guide.
_Average time spent: two to five weeks _
This is the initial stage and a crucial step in setting the project in the right direction. In this stage, you brainstorm ideas and select the best one. Apart from that, you’ll need to do some research to see if your idea is viable. Remember that coming up with an idea is easy; the hard part is to make it a reality.
All your ideas may seem viable, but you still have to run some tests to keep it as real as possible. For that reason, when Web Developers are building a web app, they analyze the available ideas to see which one is the best match for the targeted audience.
Targeting the right audience is crucial when you are developing an app. It saves time when shaping the app in the right direction as you have a clear set of objectives. Likewise, analyzing how the app affects the market is essential. During the research process, App Developers must gather information about potential competitors and threats. This helps the app owners develop strategies to tackle difficulties that come up after the launch.
The research process can take several weeks, but it determines how successful your app can be. For that reason, you must take your time to know all the weaknesses and strengths of the competitors, possible app strategies, and targeted audience.
The outcomes of this stage are app prototypes and the minimum feasible product.
#android app #frontend #ios app #minimum viable product (mvp) #mobile app development #web development #android app development #app development #app development for ios and android #app development process #ios and android app development #ios app development #stages in app development
1602964260
Last year, we provided a list of Kubernetes tools that proved so popular we have decided to curate another list of some useful additions for working with the platform—among which are many tools that we personally use here at Caylent. Check out the original tools list here in case you missed it.
According to a recent survey done by Stackrox, the dominance Kubernetes enjoys in the market continues to be reinforced, with 86% of respondents using it for container orchestration.
(State of Kubernetes and Container Security, 2020)
And as you can see below, more and more companies are jumping into containerization for their apps. If you’re among them, here are some tools to aid you going forward as Kubernetes continues its rapid growth.
(State of Kubernetes and Container Security, 2020)
#blog #tools #amazon elastic kubernetes service #application security #aws kms #botkube #caylent #cli #container monitoring #container orchestration tools #container security #containers #continuous delivery #continuous deployment #continuous integration #contour #developers #development #developments #draft #eksctl #firewall #gcp #github #harbor #helm #helm charts #helm-2to3 #helm-aws-secret-plugin #helm-docs #helm-operator-get-started #helm-secrets #iam #json #k-rail #k3s #k3sup #k8s #keel.sh #keycloak #kiali #kiam #klum #knative #krew #ksniff #kube #kube-prod-runtime #kube-ps1 #kube-scan #kube-state-metrics #kube2iam #kubeapps #kubebuilder #kubeconfig #kubectl #kubectl-aws-secrets #kubefwd #kubernetes #kubernetes command line tool #kubernetes configuration #kubernetes deployment #kubernetes in development #kubernetes in production #kubernetes ingress #kubernetes interfaces #kubernetes monitoring #kubernetes networking #kubernetes observability #kubernetes plugins #kubernetes secrets #kubernetes security #kubernetes security best practices #kubernetes security vendors #kubernetes service discovery #kubernetic #kubesec #kubeterminal #kubeval #kudo #kuma #microsoft azure key vault #mozilla sops #octant #octarine #open source #palo alto kubernetes security #permission-manager #pgp #rafay #rakess #rancher #rook #secrets operations #serverless function #service mesh #shell-operator #snyk #snyk container #sonobuoy #strongdm #tcpdump #tenkai #testing #tigera #tilt #vert.x #wireshark #yaml
1598437740
APIs can be as simple as 1 endpoint for use by 100s of users or as complex as the AWS APIs with 1000s of endpoints and 100s of thousands of users. Building them can mean spending a couple of hours using a low-code platform or months of work using a multitude of tools. Hosting them can be as simple as using one platform that does everything we need or as complex as setting up and managing ingress control, security, caching, failover, metrics, scaling etc.
What they all have in common are three basic steps to go from nothing to a running API.
Each of these steps has its own set of tools. Here are some I’ve used and popular alternatives.
REST is the most popular API interface and has the best tooling. Our design output for REST services always includes an OpenAPI specification. The specification language can be tricky to get right in JSON (how many curly brackets?) or YAML (how many spaces?) so a good editor saves a lot of time.
Four popular ones are:
I’ve only used Swagger and Postman but both Insomnia and Stoplight look interesting. All of them offer additional functionality like documentation, testing and collaboration so are much more than just specification generators.
#api #apis #api-development #restful-api #rest-api #development-tools #app-development-tools #developer-tools
1602979200
For a developer, becoming a team leader can be a trap or open up opportunities for creating software. Two years ago, when I was a developer, I was thinking, “I want to be a team leader. It’s so cool, he’s in charge of everything and gets more money. It’s the next step after a senior.” Back then, no one could tell me how wrong I was. I had to find it out myself.
I’m naturally very organized. Whatever I do, I try to put things in order, create systems and processes. So I’ve always been inclined to take on more responsibilities than just coding. My first startup job, let’s call it T, was complete chaos in terms of development processes.
Now I probably wouldn’t work in a place like that, but at the time, I enjoyed the vibe. Just imagine it — numerous clients and a team leader who set tasks to the developers in person (and often privately). We would often miss deadlines and had to work late. Once, my boss called and asked me to come back to work at 8 p.m. to finish one feature — all because the deadline was “the next morning.” But at T, we were a family.
We also did everything ourselves — or at least tried to. I’ll never forget how I had to install Ubuntu on a rack server that we got from one of our investors. When I would turn it on, it sounded like a helicopter taking off!
At T, I became a CTO and managed a team of 10 people. So it was my first experience as a team leader.
Then I came to work at D — as a developer. And it was so different in every way when it came to processes.
They employed classic Scrum with sprints, burndown charts, demos, story points, planning, and backlog grooming. I was amazed by the quality of processes, but at first, I was just coding and minding my own business. Then I became friends with the Scrum master. I would ask him lots of questions, and he would willingly answer them and recommend good books.
My favorite was Scrum and XP from the Trenches by Henrik Kniberg. The process at D was based on its methods. As a result, both managers and sellers knew when to expect the result.
Then I joined Skyeng, also as a developer. Unlike my other jobs, it excels at continuous integration with features shipped every day. Within my team, we used a Kanban-like method.
We were also lucky to have our team leader, Petya. At our F2F meetings, we could discuss anything, from missing deadlines to setting up a task tracker. Sometimes I would just give feedback or he would give me advice.
That’s how Petya got to know I’d had some management experience at T and learned Scrum at D.
So one day, he offered me to host a stand-up.
#software-development #developer #dev-team-leadership #agile-software-development #web-development #mobile-app-development #ios-development #android-development
1660983720
PkgDev provides tools for Julia package developers. The package is currently being rewritten for Julia 1.x and only for brave early adopters.
Tag a new release for package package_name
. The package you want to tag must be deved in the current Julia environment. You pass the package name package_name
as a String
. The git commit that is the HEAD
in the package folder will form the basis for the version to be tagged.
If you don't specify a version
, then the version
field in the Project.toml
must have the format x.y.z-DEV
, and the command will tag version x.y.z
as the next release. Alternatively you can specify one of :major
, :minor
or :patch
for the version
parameter. In that case PkgDev.tag
will increase that part of the version number by 1 and tag that version. Finally, you can also specify a full VersionNumber
as the value for the version
parameter, in which case that version will be tagged.
The only situation where you would specify a value for registry
is when you want to register a new package for the first time in a registry that is not General
. In all other situations, PkgDev.tag
will automatically figure out in which registry your package is registered. When you do pass a value for registry
, it should simply be the short name of a registry that is one of the registries your local system is connected with.
If you want to add custom release notes for TagBot, do so with the release_notes
keyword.
PkgDev.tag
runs through the following process when it tags a new version:
release-x.y.z
.Project.toml
and commit that change on the release branch.Project.toml
to x.y.z+1-DEV
and commit that change also to the release branch. 4a. For packages in the General registry: add a comment that triggers Registrator. 4b. For packages in other registries: Open a pull request against the registry that tags the first new commit on the release branch as a new version x.y.z
.master
.If you have TagBot installed for your package with the branches: true
setting, it will automatically merge the release-x.y.z
branch into master
once the pull request for the registry has been merged. If you use the package butler (desribed below) it auto-configures your repository for this workflow.
Enables the Julia Package Butler for package package_name
. The package must be deved in the current Julia environment. The command will make various modifications to the files in the deved folder of the package. You then then need to commit these changes and push them to GitHub. The command will also add a deploy key to the GitHub repository of the package and show instructions on how to add two GitHub Actions secrets to the repository.
The channel
argument can be :auto
, :stable
or :dev
. There are two channels of updates: stable
and dev
. The dev
channel will run the Julia Package Butler workflow every 5 minutes and it will use the master
branch of the Julia Packge Butler engine, i.e. it will get new features more quickly. The stable
branch runs the Julia Package Butler workflow every hour, and new features in the Julia Package Butler engine are only pushed out to the stable channel once they have been tested for a while on the dev
channel. If you specify :auto
as the argument, any existing channel choice you have previously made for the package will be retained, otherwise the package will be configure for the stable
channel.
The template
argument can be :auto
, :default
or :bach
. Different templates will configure different aspects of your package. At this point everyone should use the :default
template (or :auto
template), everything else is considered experimental.
Switch the Julia Package Butler channel for package package_name
. The package you want to tag must be deved in the current Julia environment and the Julia Package Butler must already be enabled for the package. The channel
argument can be :auto
, :stable
or :dev
, see the documentation for PkgDev.enable_pkgbutler
for an explanation of the different channels.
Switch the Julia Package Butler template for package package_name
. The package you want to tag must be deved in the current Julia environment and the Julia Package Butler must already be enabled for the package. The template
argument can be :auto
, :default
or :bach
.
Format all the Julia source code files for the package with name package_name
. The package you want to format must be deved in the current Julia environment. This function uses DocumentFormat.jl.
Author: JuliaLang
Source Code: https://github.com/JuliaLang/PkgDev.jl
License: View license