Giter Site home page Giter Site logo

solenopsis / solenopsis Goto Github PK

View Code? Open in Web Editor NEW
104.0 104.0 41.0 20.47 MB

A deployment tool for Salesforce

Home Page: http://solenopsis.github.com/Solenopsis/

License: Other

Makefile 1.26% Shell 14.22% Python 55.89% Apex 0.43% XSLT 13.02% Vim Script 15.18%

solenopsis's Introduction

Solenopsis

Solenopsis is a tool born out of necessity. With no good command-line tool to deploy Salesforce code with it was written to meet a need. Solenopsis is a combination of some ANT scripts to do deployment and Python scripts to do easily manage flags and other neat things like templates.

Right now, all testing and development has been focused on Linux. But patches are welcome to make it truely multi-platform.

Build Status

Dependencies

  • Python
  • Ant
  • Python Beatbox (optional)

Libraries

These are the libraries used in Solenopsis. Just a list for them being awesome (and some legal reasons too).

Ant

Licenses and additional information can be found in the docs directory.

Python

Getting Started

Getting Started With v1.1

NOTE: Currently this project has only been developed and tested on Linux. Patches and help for other platforms are always accepted.

solenopsis's People

Contributors

dvf1976 avatar jeremyross avatar jotraverso avatar juanbrein avatar kthompso avatar pcon avatar sfloess avatar solenopsis-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

solenopsis's Issues

Chunk into 400mb pulls

I know this is the longest of the long shots, but any possibility in the future of being able to pull from orgs that hit the 400mb metadata API limit by chunking the pulls out?

The error just in case :)

/usr/share/solenopsis/ant/util/sfdc-util.xml:613: Failed to process the request successfully. Cause(LIMIT_EXCEEDED): LIMIT_EXCEEDED: The retrieved zip file exceeded the limit of 419430400 bytes.

All reports do not get packages correctly on a file push and the name element in package.xml is missing data

If you attempt to push a report, the package.xml is wrong and the report may not get pushed. The package.xml looks like (using square brackets vs angle):

[package xmlns="http://soap.sforce.com/2006/04/metadata"]
[types]
[members]*[/members]
[name][/name]
[/types]
[version]26.0[/version]
[/package]

Also, the deploy.zip has this as its contents:

Archive: /tmp/sfloess/solenopsis/file-push/deploy.zip
Length Date Time Name


  173  02-08-2013 09:37   package.xml

  173                     1 file

Document generateTests

Need to document generateTests:

  • solenopsis.properties
    • sf.generateTests
  • env credentials file

Enhance XML building

There is currently no way to use arbitrary attributes. We definitely need this in sfdcutil:runTests where we build the tests to run. Its sorta kludgy right now.

Document bsolenopsis

When working on issue #48, we included a new shell script for kicking off the Ant script. It calls Ant as a Java app and really only supports Ant based command line arguments.

This needs to be documented in the wiki.

Stop using solenopsis.ENVIRONMENT

There is really no reason to use anything contained in solenopsis.ENVIRONMENT. We can extrapolate environments from whats contained in solenopsis credentials home...

jdk/ant version issue?

I am not sure, but I got following when destructive-push.

/usr/share/solenopsis/ant/solenopsis.xml:206: The following error occurred while executing this line:
/usr/share/solenopsis/ant/util/sfdc-util.xml:822: Failed to login: Failed to parse detail: START_TAG seen ...<sf:LoginFault xsi:type="sf:LoginFault">... @1:434 due to: com.sforce.ws.ConnectionException: Incompatible type 'class com.sforce.soap.partner.fault.LoginFault' specified as xsi:type. It must be a subclass of 'class com.sforce.ws.ConnectionException'

Please note:
$ java -version
java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)

$ ant -version
Apache Ant(TM) version 1.8.3 compiled on February 29 2012

Ability to conduct a text search to generate a package.xml

Occasionally a full diff isn't needed but a search for specific text string, usually a ticket number added in code comments/description of fields. Would be good if a text search could be made and a package.xml generated with the results. This would allow for smaller portions of work to be moved. Useful if 2 people are working separate issues.

Need command line processing for generating packages

Added two new targets to solenopsis.xml:

  • generate-package
    • -Dsf.packageDir - directory to generate a non-folder based package. Is optional and if not set defaults to the current working dir.
    • -Dsf.version - the API version in package.xml. Is optional and will default to the one denoted in sfdc.metadata.properties.
  • generate-full-package
    • -Dsolenopsis.env.MASTER - the master env to use. Is optional and if not set, defaults to whatever is in ~/solenopsis.properties.
    • -Dsf.packageDir - directory to generate a non-folder based package. Its optional and if not set defaults to the current working dir.
    • -Dsf.version - the API version in package.xml. Is optional and will default to the one denoted in sfdc.metadata.properties.

Document the log types

We've denoted the log types, but also denote them in a place like a Tips-And-Tricks page.

Set env first, then call solenopsis.properties

In solenopsis-setup.xml, we set properties from solenopsis.properties first then from the environment. We really should set properties from the environment, then from solenopsis.properties.

Need to make filesContains be its own push type

Currently, we overload file-push to also include fileContains. Although this works, it makes the file-push macrodef more convoluted.

It should really be its own push type like file-contains-push.

Allow for multiple SCM clients as a plugin

Although we support git, it'd be nice to support others such as Subversion, CVS or any source control system. I propose we allow a more plugin type functionality:

  • scm-status
  • scm-push
  • scm-destructive-push

We need to be able to then denote the type of scm Solenopsis should use.

We should default to git and git-status. However, we need that functionality pulled out and put into its own XML file. Inclusion of the scm file needs to be done elsewhere - likely solenopsis-setup.xml.

Ability to run all non managed tests

If you use the runAllTests arg in build.xml and you are on an org that has managed packages the build will report as failure if any managed package test class errors. This is very common as managed package test classes will hit validation and mandatory fields in an org.

It would be good if solenopsis could strip out all the test classes and run just the non managed ones. Seeing as you dont get access to managed package code you can just pull * ApexClass and scan for test methods.

destructive-push failed

When I run python solenopsis destructive-push

${rh-util.branch.BRANCH} is echoed instead of the actual value. It didn't seem like an issue until the build failed and I saw that it was in the destructiveChanges.xml itself.

You'll notice that the paths are windows paths, but I get the same results in Fedora 16. I just altered the scripts to run in Windows 7 for our windows developers.

https://gist.github.com/2338708

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.